Commit 1b630ad721c408dd3a1333982f7676072b0a500b
1 parent
67c72eea
Exists in
master
กดปุ่มเพื่อค้นหา
Showing
3 changed files
with
308 additions
and
95 deletions
Show diff stats
src/app/dashboard/dashboard.component.html
1 | -<!-- งานใหม่ --> | |
2 | -<!-- Active --> | |
3 | 1 | <div class="portlet-body"> |
4 | 2 | <div class="tabbable-custom nav-justified"> |
5 | 3 | <ul class="nav nav-tabs"> |
6 | - <li class="sbold font"> | |
7 | - <a href="#tab1" data-toggle="tab" aria-expanded="false">ติดตั้ง | |
4 | + <li class="active sbold font"> | |
5 | + <a href="#tab1" data-toggle="tab" aria-expanded="true">ติดตั้ง | |
8 | 6 | <span class="badge"> {{resultNum}} </span> |
9 | 7 | </a> |
10 | 8 | </li> |
... | ... | @@ -38,14 +36,14 @@ |
38 | 36 | <span class="badge"> {{resultNum6}} </span> |
39 | 37 | </a> |
40 | 38 | </li> |
41 | - <li class="active sbold"> | |
42 | - <a href="#tab8" data-toggle="tab" aria-expanded="true">Smart IT | |
43 | - <span class="badge"> {{resultNum}} </span> | |
39 | + <li class="sbold"> | |
40 | + <a href="#tab8" data-toggle="tab" aria-expanded="false">Smart IT | |
41 | + <span class="badge"> {{resultNum8}} </span> | |
44 | 42 | </a> |
45 | 43 | </li> |
46 | 44 | </ul> |
47 | 45 | <div class="tab-content"> |
48 | - <div class="panel tab-pane " id="tab1"> | |
46 | + <div class="panel tab-pane active" id="tab1"> | |
49 | 47 | <div class="caption"> |
50 | 48 | <h1 class="icon-bubble font-green-sharp"> |
51 | 49 | <span class="caption-subject font-green-sharp sbold font"> Active</span> |
... | ... | @@ -57,9 +55,6 @@ |
57 | 55 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearch"> |
58 | 56 | </div> |
59 | 57 | </div> |
60 | - <br> | |
61 | - <br> | |
62 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton1(name.valueN)" style="margin-left: 5px; margin-top: 3px;">{{ name.name }}</button> | |
63 | 58 | <hr> |
64 | 59 | <br> |
65 | 60 | </div> |
... | ... | @@ -116,9 +111,6 @@ |
116 | 111 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> |
117 | 112 | </div> |
118 | 113 | </div> |
119 | - <br> | |
120 | - <br> | |
121 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton1Onhold(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
122 | 114 | <hr> |
123 | 115 | <br> |
124 | 116 | </div> |
... | ... | @@ -171,9 +163,6 @@ |
171 | 163 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearch"> |
172 | 164 | </div> |
173 | 165 | </div> |
174 | - <br> | |
175 | - <br> | |
176 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton2(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
177 | 166 | <hr> |
178 | 167 | <br> |
179 | 168 | </div> |
... | ... | @@ -228,9 +217,6 @@ |
228 | 217 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> |
229 | 218 | </div> |
230 | 219 | </div> |
231 | - <br> | |
232 | - <br> | |
233 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton2Onhold(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
234 | 220 | <hr> |
235 | 221 | <br> |
236 | 222 | </div> |
... | ... | @@ -282,9 +268,6 @@ |
282 | 268 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearch"> |
283 | 269 | </div> |
284 | 270 | </div> |
285 | - <br> | |
286 | - <br> | |
287 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton3(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
288 | 271 | <hr> |
289 | 272 | <br> |
290 | 273 | </div> |
... | ... | @@ -339,9 +322,6 @@ |
339 | 322 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> |
340 | 323 | </div> |
341 | 324 | </div> |
342 | - <br> | |
343 | - <br> | |
344 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton3Onhold(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
345 | 325 | <hr> |
346 | 326 | <br> |
347 | 327 | </div> |
... | ... | @@ -393,9 +373,6 @@ |
393 | 373 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearch"> |
394 | 374 | </div> |
395 | 375 | </div> |
396 | - <br> | |
397 | - <br> | |
398 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton4(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
399 | 376 | <hr> |
400 | 377 | <br> |
401 | 378 | </div> |
... | ... | @@ -450,9 +427,6 @@ |
450 | 427 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> |
451 | 428 | </div> |
452 | 429 | </div> |
453 | - <br> | |
454 | - <br> | |
455 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton4Onhold(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
456 | 430 | <hr> |
457 | 431 | <br> |
458 | 432 | </div> |
... | ... | @@ -504,9 +478,6 @@ |
504 | 478 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearch"> |
505 | 479 | </div> |
506 | 480 | </div> |
507 | - <br> | |
508 | - <br> | |
509 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton5(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
510 | 481 | <hr> |
511 | 482 | <br> |
512 | 483 | </div> |
... | ... | @@ -561,9 +532,6 @@ |
561 | 532 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> |
562 | 533 | </div> |
563 | 534 | </div> |
564 | - <br> | |
565 | - <br> | |
566 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton5Onhold(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
567 | 535 | <hr> |
568 | 536 | <br> |
569 | 537 | </div> |
... | ... | @@ -615,9 +583,6 @@ |
615 | 583 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearch"> |
616 | 584 | </div> |
617 | 585 | </div> |
618 | - <br> | |
619 | - <br> | |
620 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton6(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
621 | 586 | <hr> |
622 | 587 | <br> |
623 | 588 | </div> |
... | ... | @@ -672,9 +637,6 @@ |
672 | 637 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> |
673 | 638 | </div> |
674 | 639 | </div> |
675 | - <br> | |
676 | - <br> | |
677 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton6Onhold(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
678 | 640 | <hr> |
679 | 641 | <br> |
680 | 642 | </div> |
... | ... | @@ -728,7 +690,7 @@ |
728 | 690 | </div> |
729 | 691 | <br> |
730 | 692 | <br> |
731 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton7(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
693 | + <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton7(name.valueN);getButton7Onhold(name.valueN);" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
732 | 694 | <hr> |
733 | 695 | |
734 | 696 | <br> |
... | ... | @@ -785,9 +747,6 @@ |
785 | 747 | <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> |
786 | 748 | </div> |
787 | 749 | </div> |
788 | - <br> | |
789 | - <br> | |
790 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton7Onhold(name.valueN)" style="margin-left: 5px; margin-top: 2px;">{{ name.name }}</button> | |
791 | 750 | <!-- <br><br> |
792 | 751 | <button *ngFor="let name of ButtonValue" (click)="getButton(name.valueN)">{{ name.name }}</button> --> |
793 | 752 | <hr> |
... | ... | @@ -829,7 +788,112 @@ |
829 | 788 | </div> |
830 | 789 | </div> |
831 | 790 | </div> |
832 | - <div class="panel tab-pane active" id="tab8"> | |
791 | + <div class="panel tab-pane" id="tab8"> | |
792 | + <div class="caption"> | |
793 | + <h1 class="icon-bubble font-green-sharp"> | |
794 | + <span class="caption-subject font-green-sharp sbold font"> Active</span> | |
795 | + </h1> | |
796 | + | |
797 | + <div class="input-group" style="float: right; margin-top: 11px;"> | |
798 | + <div class="input-icon right"> | |
799 | + <i class="icon-magnifier"> | |
800 | + </i> | |
801 | + <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearch"> | |
802 | + </div> | |
803 | + </div> | |
804 | + <hr> | |
805 | + <br> | |
806 | + </div> | |
807 | + <div class="panel-body"> | |
808 | + <div class="row"> | |
809 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData8 | filter:FilterSearch: '' "> | |
810 | + <a class="dashboard-stat dashboard-stat-v2 red " href="{{item.link}}" target="_blank" [ngStyle]="{'background-color': getColorDay(item.days.toFixed(0))}"> | |
811 | + <!-- <div [ngStyle]="{'background-color':item.days === '366.0098' ? 'green' : 'red' }"></<div> --> | |
812 | + <!-- <div class="avater">{{(item.days).toFixed(0)}} D</div> --> | |
813 | + <div class="avater" [ngStyle]="{'background-color': getColorDay(item.days.toFixed(0))}" style="font-size: 26px; text-align: center; font-weight: bold;">{{item.days.toFixed(0)}}D</div> | |
814 | + <div class="visual"> | |
815 | + <i class="fa fa-comments"></i> | |
816 | + </div> | |
817 | + <table> | |
818 | + <tr> | |
819 | + <div class="details" style="width: calc(100% - 50px);"> | |
820 | + <div style="text-align: right; margin-top: -60px; color: black;">{{item.type | textshort}}</div> | |
821 | + <div style="text-align: right; color: black;">{{item.STATUS}}</div> | |
822 | + <div class="number" style=" color: black; display: block; text-align: right; margin-top: -7px;"> | |
823 | + <span data-counter="counterup" data-value="">{{item.custgroupName}}</span> | |
824 | + </div> | |
825 | + <div class="desc" style=" color: black;">{{item.team}}</div> | |
826 | + <br> | |
827 | + <!-- <div class="desc" style="text-align: left; text-align: bottom; color: black;">{{(item.COMMENT > 20)? | (item.COMMENT | slice:0:20) + '....':(item.COMMENT)}}</div> --> | |
828 | + </div> | |
829 | + </tr> | |
830 | + <tr> | |
831 | + <div class="details" style="width: calc(100% - 50px);"> | |
832 | + <div class="desc" style="text-align: left; color: black; margin-top: 120px;">{{item.COMMENT | short}}</div> | |
833 | + <div class="a desc" style="text-align: left; color: black;">{{item.COMMENT | font}}</div> | |
834 | + </div> | |
835 | + </tr> | |
836 | + </table> | |
837 | + </a> | |
838 | + </div> | |
839 | + </div> | |
840 | + </div> | |
841 | + <br> | |
842 | + <br> | |
843 | + <br> | |
844 | + <br> | |
845 | + <!-- On Hold --> | |
846 | + | |
847 | + <div class="caption"> | |
848 | + <h1 class="icon-bubble font-grey-gallery"> | |
849 | + <span class="caption-subject font-grey-gallery sbold font"> On Hold</span> | |
850 | + </h1> | |
851 | + <div class="input-group" style="float: right; margin-top: 11px;"> | |
852 | + <div class="input-icon right"> | |
853 | + <i class="icon-magnifier"> | |
854 | + </i> | |
855 | + <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> | |
856 | + </div> | |
857 | + </div> | |
858 | + <hr> | |
859 | + <br> | |
860 | + </div> | |
861 | + <div class="panel-body"> | |
862 | + <div class="row"> | |
863 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultDataOnHold8 | filter:FilterSearchOnHold: '' "> | |
864 | + <a class="dashboard-stat dashboard-stat-v2 red " href="{{item.link}}" target="_blank" [ngStyle]="{'background-color': getColorDay(item.days.toFixed(0))}"> | |
865 | + <!-- <div [ngStyle]="{'background-color':item.days === '366.0098' ? 'green' : 'red' }"></<div> --> | |
866 | + <!-- <div class="avater">{{(item.days).toFixed(0)}} D</div> --> | |
867 | + <div class="avater" [ngStyle]="{'background-color': getColorDay(item.days.toFixed(0))}" style="font-size: 26px; text-align: center; font-weight: bold;">{{item.days.toFixed(0)}}D</div> | |
868 | + <div class="visual"> | |
869 | + <i class="fa fa-comments"></i> | |
870 | + </div> | |
871 | + <table> | |
872 | + <tr> | |
873 | + <div class="details" style="width: calc(100% - 50px);"> | |
874 | + <div style="text-align: right; margin-top: -60px; color: black;">{{item.type | textshort}}</div> | |
875 | + <div style="text-align: right; color: black;">{{item.STATUS}}</div> | |
876 | + <div class="number" style=" color: black; display: block; text-align: right; margin-top: -7px;"> | |
877 | + <span data-counter="counterup" data-value="">{{item.custgroupName}}</span> | |
878 | + </div> | |
879 | + <div class="desc" style=" color: black;">{{item.team}}</div> | |
880 | + <br> | |
881 | + <!-- <div class="desc" style="text-align: left; text-align: bottom; color: black;">{{(item.COMMENT > 20)? | (item.COMMENT | slice:0:20) + '....':(item.COMMENT)}}</div> --> | |
882 | + </div> | |
883 | + </tr> | |
884 | + <tr> | |
885 | + <div class="details" style="width: calc(100% - 50px);"> | |
886 | + <div class="desc" style="text-align: left; color: black; margin-top: 120px;">{{item.COMMENT | short}}</div> | |
887 | + <div class="a desc" style="text-align: left; color: black;">{{item.COMMENT | font}}</div> | |
888 | + </div> | |
889 | + </tr> | |
890 | + </table> | |
891 | + </a> | |
892 | + </div> | |
893 | + </div> | |
894 | + </div> | |
895 | + </div> | |
896 | + <!-- <div class="panel tab-pane active" id="tab8"> | |
833 | 897 | <div class="caption"> |
834 | 898 | <h1 class="icon-bubble font-green-sharp"> |
835 | 899 | <span class="caption-subject font-green-sharp sbold font"> Active</span> |
... | ... | @@ -843,17 +907,31 @@ |
843 | 907 | </div> |
844 | 908 | <br> |
845 | 909 | <br> |
846 | - <button type="button" class="btn btn-circle button " *ngFor="let name of ButtonValue" (click)="getButton1(name.valueN)" style="margin-left: 5px; margin-top: 3px;">{{ name.name }}</button> | |
910 | + <div class="row"> | |
911 | + <div class="form-group"> | |
912 | + <div class="items-collection"> | |
913 | + <div class="info-block block-info clearfix"> | |
914 | + <div data-toggle="buttons" class="btn-group bizmoduleselect"> | |
915 | + <label class="btn btn-success" *ngFor="let name of ButtonValue" (click)="btnSelect(name.valueN)" style="margin-left: 5px; margin-top: 3px;">{{ name.name }} | |
916 | + <div class="itemcontent"> | |
917 | + <input type="checkbox" [(ngModel)]="Namebtn" autocomplete="off" value=""> | |
918 | + </div> | |
919 | + </label> | |
920 | + </div> | |
921 | + </div> | |
922 | + </div> | |
923 | + </div> | |
924 | + </div> | |
847 | 925 | <hr> |
848 | 926 | <br> |
849 | 927 | </div> |
850 | 928 | <div class="panel-body"> |
851 | 929 | <div class="row"> |
852 | - <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData | filter:FilterSearch: ''"> | |
853 | - <!-- <p *ngIf="showSecret" style="text-align: center;">0 Tricket</p> --> | |
930 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData8 | filter:FilterSearch: ''"> | |
931 | + <p *ngIf="showSecret" style="text-align: center;">0 Tricket</p> // comment | |
854 | 932 | <a class="dashboard-stat dashboard-stat-v2 red " href="{{item.link}}" target="_blank" [ngStyle]="{'background-color': getColorDay(item.days.toFixed(0))}"> |
855 | - <!-- <div [ngStyle]="{'background-color':item.days === '366.0098' ? 'green' : 'red' }"></<div> --> | |
856 | - <!-- <div class="avater">{{(item.days).toFixed(0)}} D</div> --> | |
933 | + <div [ngStyle]="{'background-color':item.days === '366.0098' ? 'green' : 'red' }"></<div> // comment | |
934 | + <div class="avater">{{(item.days).toFixed(0)}} D</div> // comment | |
857 | 935 | <div class="avater" [ngStyle]="{'background-color': getColorDay(item.days.toFixed(0))}" style="font-size: 26px; text-align: center; font-weight: bold;">{{item.days.toFixed(0)}}D</div> |
858 | 936 | <div class="visual"> |
859 | 937 | <i class="fa fa-comments"></i> |
... | ... | @@ -868,48 +946,42 @@ |
868 | 946 | </div> |
869 | 947 | <div class="desc" style=" color: black;">{{item.team}}</div> |
870 | 948 | <br> |
871 | - <!-- <div class="desc" style="text-align: left; text-align: bottom; color: black;">{{(item.COMMENT > 20)? | (item.COMMENT | slice:0:20) + '....':(item.COMMENT)}}</div> --> | |
949 | + <div class="desc" style="text-align: left; text-align: bottom; color: black;">{{(item.COMMENT > 20)? | (item.COMMENT | slice:0:20) + '....':(item.COMMENT)}}</div> // comment | |
872 | 950 | </div> |
873 | 951 | </tr> |
874 | 952 | <tr> |
875 | 953 | <div class="details" style="width: calc(100% - 50px);"> |
876 | 954 | <div class="desc" style="text-align: left; color: black; margin-top: 120px;">{{item.COMMENT | short}}</div> |
877 | - <!-- <div class="a desc" style="text-align: left; color: black;">{{item.COMMENT | font}}</div> --> | |
955 | + <div class="a desc" style="text-align: left; color: black;">{{item.COMMENT | font}}</div> // comment | |
878 | 956 | <div class="a desc" style="text-align: left; color: black;">{{item.COMMENT | font}}</div> |
879 | 957 | </div> |
880 | 958 | </tr> |
881 | 959 | </table> |
882 | 960 | </a> |
883 | 961 | </div> |
962 | + | |
884 | 963 | </div> |
964 | + <button type="button" class="btn btn-circle button" *ngFor="let name of ButtonValue" (click)="getButton1(name.valueN)" style="margin-left: 5px; margin-top: 3px;">{{ name.name }}</button> // comment | |
885 | 965 | </div> |
886 | - <br> | |
887 | - <br> | |
888 | - <br> | |
889 | - <br> | |
890 | - <!-- On Hold --> | |
891 | - </div> | |
892 | - | |
893 | - </div> | |
894 | - | |
895 | - <!-- งานเก่า | |
896 | - <div class="row"> | |
897 | - <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData"> | |
898 | - <a class="dashboard-stat dashboard-stat-v2 {{item.color}}" href="#"> | |
899 | - <div class="avater {{item.color}}">{{item.id}} D</div> | |
900 | - <div style="margin-left: 20px; margin-top: 10px; color:aliceblue;">{{item.days + " Days"}}</div> | |
901 | - <div class="visual"> | |
902 | - <i class="fa fa-comments"></i> | |
903 | - </div> | |
904 | - | |
905 | - <div class="details" style="width: calc(100% - 50px);"> | |
906 | - <div class="number"> | |
907 | - <span data-counter="counterup" data-value="">{{item.custgroupName}}</span> | |
966 | + ----- // comment start------ | |
967 | + <div class="row"> | |
968 | + <div class="form-group"> | |
969 | + <div class="items-collection"> | |
970 | + <div class="info-block block-info clearfix"> | |
971 | + <div data-toggle="buttons" class="btn-group bizmoduleselect"> | |
972 | + <label class="btn btn-success" *ngFor="let name of ButtonValue" (click)="getButton1(name.valueN)" style="margin-left: 5px; margin-top: 3px;">{{ name.name }} | |
973 | + <div class="itemcontent"> | |
974 | + <input type="checkbox" name="var_id[]" autocomplete="off" value=""> | |
975 | + </div> | |
976 | + </label> | |
977 | + </div> | |
908 | 978 | </div> |
909 | - <div class="desc">{{item.team}}</div> | |
910 | - <div class="desc" style="text-align: left;">{{item.comment}}</div> | |
979 | + </div> | |
911 | 980 | </div> |
912 | - | |
913 | - </a> | |
914 | - </div> | |
915 | - </div> --> | |
916 | 981 | \ No newline at end of file |
982 | + </div> | |
983 | + ------ // coment end------- | |
984 | + <hr> | |
985 | + </div> --> | |
986 | + </div> | |
987 | + </div> | |
988 | +</div> | |
917 | 989 | \ No newline at end of file | ... | ... |
src/app/dashboard/dashboard.component.ts
... | ... | @@ -20,7 +20,7 @@ export class DashboardComponent implements OnInit { |
20 | 20 | |
21 | 21 | |
22 | 22 | getColorDay(days) { |
23 | - console.log(days) | |
23 | + // console.log(days) | |
24 | 24 | |
25 | 25 | if (days >= 0 && days <= 7) { |
26 | 26 | return '#32c5d2'; |
... | ... | @@ -70,6 +70,10 @@ export class DashboardComponent implements OnInit { |
70 | 70 | resultNum7: number = 0; |
71 | 71 | resultDataOnHold7: any; |
72 | 72 | |
73 | + resultData8: any; | |
74 | + resultNum8: number = 0; | |
75 | + resultDataOnHold8: any; | |
76 | + | |
73 | 77 | Show1: any = []; |
74 | 78 | Show1Onhold: any = []; |
75 | 79 | Show2: any = []; |
... | ... | @@ -85,8 +89,17 @@ export class DashboardComponent implements OnInit { |
85 | 89 | Show7: any = []; |
86 | 90 | Show7Onhold: any = []; |
87 | 91 | |
92 | + Namebtn:any = []; | |
93 | + | |
94 | + selectArr: any; | |
95 | + | |
88 | 96 | ButtonValue = [ |
89 | 97 | { |
98 | + id: 33, | |
99 | + name: 'All', | |
100 | + valueN: '' | |
101 | + }, | |
102 | + { | |
90 | 103 | id: 1, |
91 | 104 | name: 'ACC', |
92 | 105 | valueN: 'acc' |
... | ... | @@ -245,12 +258,7 @@ export class DashboardComponent implements OnInit { |
245 | 258 | id: 32, |
246 | 259 | name: 'WEB', |
247 | 260 | valueN: 'web' |
248 | - }, | |
249 | - { | |
250 | - id: 33, | |
251 | - name: 'All', | |
252 | - valueN: '' | |
253 | - }, | |
261 | + } | |
254 | 262 | ]; |
255 | 263 | |
256 | 264 | showSecret = false; |
... | ... | @@ -689,10 +697,90 @@ export class DashboardComponent implements OnInit { |
689 | 697 | setInterval(async () => { |
690 | 698 | await this.getDataOnHold7(); |
691 | 699 | }, 600000); |
700 | + | |
701 | + | |
702 | +// ----------------------------8------------------------ | |
703 | +try { | |
704 | + const data8 = { | |
705 | + // tslint:disable-next-line:max-line-length | |
706 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT CONCAT( xx.createdtime , ' : ' , xx.comments) FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) = 'ITS (SmartIT)' AND LCASE(vtiger_troubletickets. STATUS) not in('closed' , 'Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC ", | |
707 | + "params": ["vtiger_crmentity"] | |
708 | + }; | |
709 | + const response = await this._apiService.post('dynamic', data8); | |
710 | + if (response !== null) { | |
711 | + this.resultData8 = response; | |
712 | + this.resultData8.link = decodeURIComponent(decodeURIComponent(this.resultData8.link)); | |
713 | + console.log('link: ', this.resultData8.link); | |
714 | + // tslint:disable-next-line:forin | |
715 | + for (const i in this.resultData8) { | |
716 | + this.resultData8[i].link = this._common.decodeURI(this.resultData8[i].link); | |
717 | + this.resultData8[i].birth_date = this._common.convertDate(this.resultData8[i].birth_date); | |
718 | + this.resultNum8 = this.resultData8.length; | |
719 | + } | |
720 | + | |
721 | + // this.Show = Object.assign(this.resultData7); | |
722 | + console.log('hi', this.Show7) | |
723 | + | |
724 | + } else { | |
725 | + this.resultData8 = []; | |
726 | + } | |
727 | +} catch (error) { | |
728 | + console.log(error); | |
729 | +} | |
730 | + | |
731 | +setInterval(async () => { | |
732 | + await this.getData8(); | |
733 | +}, 600000); | |
734 | + | |
735 | + | |
736 | +// OnHold | |
737 | +try { | |
738 | + const dataOnHold8 = { | |
739 | + // tslint:disable-next-line:max-line-length | |
740 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT CONCAT( xx.createdtime , ' : ' , xx.comments) FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) = 'ITS (SmartIT)' AND LCASE(vtiger_troubletickets. STATUS) IN('Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC ", | |
741 | + "params": ["vtiger_crmentity"] | |
742 | + }; | |
743 | + const response = await this._apiService.post('dynamic', dataOnHold8); | |
744 | + if (response !== null) { | |
745 | + this.resultDataOnHold8 = response; | |
746 | + this.resultDataOnHold8.link = decodeURIComponent(decodeURIComponent(this.resultDataOnHold8.link)); | |
747 | + console.log('link: ', this.resultDataOnHold8.link); | |
748 | + // tslint:disable-next-line:forin | |
749 | + for (const i in this.resultDataOnHold8) { | |
750 | + this.resultDataOnHold8[i].link = this._common.decodeURI(this.resultDataOnHold8[i].link); | |
751 | + this.resultDataOnHold8[i].birth_date = this._common.convertDate(this.resultDataOnHold8[i].birth_date); | |
752 | + } | |
753 | + } else { | |
754 | + this.resultDataOnHold8 = []; | |
755 | + } | |
756 | +} catch (error) { | |
757 | + console.log(error); | |
758 | +} | |
759 | + | |
760 | +setInterval(async () => { | |
761 | + await this.getDataOnHold8(); | |
762 | +}, 600000); | |
763 | + | |
764 | +} | |
765 | + | |
766 | + | |
767 | + | |
768 | + btnSelect(selVal) { | |
769 | + // console.log(selVal); | |
770 | + let arr = []; | |
771 | + for (let i in selVal) { | |
772 | + arr.push(selVal); | |
773 | + } | |
774 | + | |
775 | + // console.log('select1 : ', arr); | |
776 | + | |
777 | + this.Namebtn = arr; | |
778 | + | |
779 | + console.log('select : ', this.Namebtn); | |
692 | 780 | } |
693 | 781 | |
694 | 782 | getButton1(valueN) { |
695 | - console.log(valueN); | |
783 | + // console.log(valueN); | |
696 | 784 | |
697 | 785 | if (this.Show1.length === 0) { |
698 | 786 | return this.Show1; |
... | ... | @@ -710,14 +798,15 @@ export class DashboardComponent implements OnInit { |
710 | 798 | |
711 | 799 | var string2 = valueN.toLowerCase(); |
712 | 800 | if (st.indexOf(string2) > -1) { |
713 | - console.log(st); | |
801 | + // console.log(st); | |
714 | 802 | resultArray.push(item); |
803 | + // console.log(resultArray); | |
715 | 804 | } |
716 | 805 | |
717 | 806 | } |
718 | 807 | |
719 | 808 | this.resultData = resultArray; |
720 | - console.log(this.resultData); | |
809 | + // console.log(this.resultData); | |
721 | 810 | } |
722 | 811 | /* buttondataOnhold1 */ |
723 | 812 | getButton1Onhold(valueN) { |
... | ... | @@ -1457,4 +1546,56 @@ export class DashboardComponent implements OnInit { |
1457 | 1546 | } |
1458 | 1547 | } |
1459 | 1548 | |
1549 | +// ----------------------------8------------------------ | |
1550 | + // Active | |
1551 | + async getData8() { | |
1552 | + try { | |
1553 | + const data8 = { | |
1554 | + // tslint:disable-next-line:max-line-length | |
1555 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT CONCAT( xx.createdtime , ' : ' , xx.comments) FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) = 'ITS (SmartIT)' AND LCASE(vtiger_troubletickets. STATUS) not in('closed' , 'Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC ", | |
1556 | + "params": ["vtiger_crmentity"] | |
1557 | + }; | |
1558 | + const response = await this._apiService.post('dynamic', data8); | |
1559 | + if (response !== null) { | |
1560 | + this.resultData8 = response; | |
1561 | + this.resultData8.link = decodeURIComponent(decodeURIComponent(this.resultData8.link)); | |
1562 | + console.log('link: ', this.resultData8.link); | |
1563 | + // tslint:disable-next-line:forin | |
1564 | + for (const i in this.resultData8) { | |
1565 | + this.resultData8[i].link = this._common.decodeURI(this.resultData8[i].link); | |
1566 | + this.resultData8[i].birth_date = this._common.convertDate(this.resultData8[i].birth_date); | |
1567 | + this.Show7.push(this.resultData8[i]); | |
1568 | + } | |
1569 | + } else { | |
1570 | + this.resultData8 = []; | |
1571 | + } | |
1572 | + } catch (error) { | |
1573 | + console.log(error); | |
1574 | + } | |
1575 | + } | |
1576 | + // On Hold | |
1577 | + async getDataOnHold8() { | |
1578 | + try { | |
1579 | + const dataOnHold8 = { | |
1580 | + // tslint:disable-next-line:max-line-length | |
1581 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT CONCAT( xx.createdtime , ' : ' , xx.comments) FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) = 'ITS (SmartIT)' AND LCASE(vtiger_troubletickets. STATUS) IN('Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC ", | |
1582 | + "params": ["vtiger_crmentity"] | |
1583 | + }; | |
1584 | + const response = await this._apiService.post('dynamic', dataOnHold8); | |
1585 | + if (response !== null) { | |
1586 | + this.resultDataOnHold8 = response; | |
1587 | + this.resultDataOnHold8.link = decodeURIComponent(decodeURIComponent(this.resultDataOnHold8.link)); | |
1588 | + console.log('link: ', this.resultDataOnHold8.link); | |
1589 | + // tslint:disable-next-line:forin | |
1590 | + for (const i in this.resultDataOnHold8) { | |
1591 | + this.resultDataOnHold8[i].link = this._common.decodeURI(this.resultDataOnHold8[i].link); | |
1592 | + this.resultDataOnHold8[i].birth_date = this._common.convertDate(this.resultDataOnHold8[i].birth_date); | |
1593 | + } | |
1594 | + } else { | |
1595 | + this.resultDataOnHold8 = []; | |
1596 | + } | |
1597 | + } catch (error) { | |
1598 | + console.log(error); | |
1599 | + } | |
1600 | + } | |
1460 | 1601 | } |
1461 | 1602 | \ No newline at end of file | ... | ... |
src/app/dashboard/filter.pipe.ts
... | ... | @@ -15,7 +15,7 @@ export class FilterPipe implements PipeTransform { |
15 | 15 | var txt = "0 hi" |
16 | 16 | const resultArray = []; |
17 | 17 | for (const item of value) { |
18 | - console.log('item: ', item); | |
18 | + // console.log('item: ', item); | |
19 | 19 | |
20 | 20 | var st = ''; |
21 | 21 | //st = item['team'].toLowerCase() + item['COMMENT'].toLowerCase() + item['custgroupName'].toLowerCase() + item['STATUS'].toLowerCase() ; | ... | ... |