9a0656a10edbc8fd879682e6804af735f8a76111
[clamp.git] / src / main / resources / META-INF / resources / designer / scripts / DashboardCtrl.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP CLAMP
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights
6  *                             reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License"); 
9  * you may not use this file except in compliance with the License. 
10  * You may obtain a copy of the License at
11  * 
12  * http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software 
15  * distributed under the License is distributed on an "AS IS" BASIS, 
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
17  * See the License for the specific language governing permissions and 
18  * limitations under the License.
19  * ============LICENSE_END============================================
20  * ===================================================================
21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  */
23
24 'use strict';
25
26
27 function DashboardCtrl($scope,$rootScope,$resource, $http, $timeout, $location, $interval, $q, Datafactory) 
28 {
29         console.log("//////////////DashboardCtrl");
30         $scope.autosaveInterval = 1800000;
31         $scope.testsetgendashboard = false;
32         $rootScope.isModel = false;
33         $rootScope.isPalette = false;
34         $rootScope.isTestSet = false;  
35         $rootScope.isRequirementCoverage = false;
36         $rootScope.ispropertyExplorer = false;
37         $rootScope.parameters;
38         $scope.orientation ="horizontal";
39         $rootScope.ispropertyExplorer = false;
40         $rootScope.isActive =true;
41         $rootScope.models=[];
42         $scope.selectedParent={};
43         $rootScope.utmModels={};
44         $rootScope.selectedModelName;
45         $rootScope.dialogName="";
46         
47
48         $interval( function(){
49                 console.log("interval"); 
50                 /*AutosaveProject($scope,$rootScope,$resource, $http, $timeout, $location, $interval,
51                 $q, Datafactory);*/
52                 }, $scope.autosaveInterval);
53         
54         
55         $rootScope.onSelectActivityModel =function(obj)
56     {
57         console.log("onSelectActivityModel");
58         
59                 $rootScope.isPalette = true;
60                 $rootScope.isTestSet = false;  
61                 $rootScope.isRequirementCoverage = false;
62                 $rootScope.ispropertyExplorer = false;
63         //document.getElementById('propertyExplorer').classList.remove('visible');
64         
65         //$( "#propertyExplorer" ).prev().css( "display" ,"block");
66                 $( "#activity_modeler" ).prev().css( "display", "block" );
67                 $( 'div' ).find('.k-expand-next').click();
68            
69                 if(obj == undefined){
70                         document.getElementById("modeler_name").textContent="Activity Modeler" ;
71                 }else{
72                         selected_model=obj;
73                 document.getElementById("modeler_name").textContent="Activity Modeler"+"  - "+ selected_model ;                 
74                 }
75                 
76                 $rootScope.modelName = selected_model;
77         
78         $rootScope.modeltestset = list_model_test_sets[selected_model];
79         if(list_model_schema_extensions[selected_model] == null){
80                 if(list_model_schema_extensions[$rootScope.utmModels.name] != null) {
81                         list_model_schema_extensions[selected_model] = jQuery.extend(true, {}, list_model_schema_extensions[$rootScope.utmModels.name]);
82                 } else { 
83                         list_model_schema_extensions[selected_model] = {};
84                 }
85         }
86
87                 $rootScope.initProjectExplorer();
88         
89         visibility_model();
90         changecolor(selected_model);
91         
92        
93     };
94     $scope.selectActivityTestSet =function()
95     {
96         console.log("selectActivityTestSet");
97         $rootScope.isPalette = false;
98         $rootScope.isRequirementCoverage = false;
99                 $rootScope.isTestset = true;
100                 document.getElementById("modeler_name").textContent="UTM Test Set";
101                 //document.getElementById('propertyExplorer').classList.add('visible');
102                 //$( "#propertyExplorer" ).prev().css( "display" ,"none");
103                 $( 'div' ).find('.k-collapse-next').click();
104                 $rootScope.modeltestset = list_model_test_sets[selected_model];
105                 $rootScope.$apply();
106                 
107     };
108         $scope.showPalette= function(){
109                 console.log("showPalette");
110                 //alert("showPalette()");
111                 $rootScope.isModel = true;
112         //      $rootScope.isPalette = true;
113                 
114         };
115         
116         //$scope.initialShow=false;
117                         
118         if("/testsetgendashboard"==$location.url())
119         {
120                 $scope.testsetgendashboard = true;
121                 
122                 
123                 $rootScope.total_users = 0;
124                 $scope.showUserView = true;
125                 $scope.showTestExecution = true;
126                 //$rootScope.total_accounts = 606;
127                 $scope.showAccountView = true;
128
129                 $rootScope.total_creation_times = 0;
130                 $rootScope.success_rate_percent = 0;//(((data.data[0].value*1.0)/(data.data[0].value+data.data[1].value))*100).toFixed();
131                 $rootScope.total_accounts = 0;
132                 $scope.showCreation_timeView = true;
133                 $scope.showSuccess_ratePercent = true;
134                 
135                 
136                 //$scope.generalMessages= "This section will show general messages/alerts.";
137                 $scope.gridHeaderMessages= "TestData Self-Service: Select TestCase and Click on Run button!!!";
138                 
139                 //Filters' JS
140
141                     $scope.dt = new Date();
142                   $scope.clear = function () {
143                         console.log("clear");
144                     $scope.dt = null;
145                   };
146
147                   // Disable weekend selection
148                   $scope.disabled = function(date, mode) {
149                         console.log("disabled");
150                     return ( mode === 'day' && ( date.getDay() === 0 || date.getDay() === 6 ) );
151                   };
152
153                   $scope.toggleMin = function() {
154                         console.log("toggleMin");
155                     $scope.minDate = $scope.minDate ? null : new Date();
156                   };
157                   $scope.toggleMin();
158
159                   $scope.open2 = function($event) {
160                         console.log("open2");
161                           $event.preventDefault();
162                     $event.stopPropagation();
163                     console.log(' herro: is the value of opened');
164                     $scope.opened = true;
165                     console.log($scope.opened + ' is the value of opened');
166                   };
167
168                   $scope.dateOptions = {
169                     formatYear: 'yy',
170                     startingDay: 1
171                   };
172
173                   $scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
174                   $scope.format = $scope.formats[0];
175                   
176                   $scope.disabled = function(date, mode) 
177                   {
178                         console.log("disabled");
179                 return ( mode === 'day' && ( date.getDay() === -1 || date.getDay() === 7 ) );
180               };
181
182                $scope.maxDate = new Date();
183
184
185                  $scope.open = function($event,opened) {
186                         console.log("open");
187                       $event.preventDefault();
188                       $event.stopPropagation();
189
190                       $scope[opened] = true;
191                     };
192
193
194                $scope.dateOptions = {
195                'year-format': "'yy'",
196                'starting-day': 1
197                };
198                
199                $scope.date = "29-December-2014";
200                $scope.date2 = new Date();
201                
202                $scope.printDate = function()
203                {
204                    console.log("printDate");
205                };
206                                 
207         };
208         
209         
210         
211         
212         
213         $scope.returnObjectArray = function(arrayObj)
214         {
215                 console.log("returnObjectArray");
216                 var newArrayObj = [];
217                 
218                 angular.forEach(arrayObj, function(value, key) 
219                 {
220                         console.log("arrayObj");
221                         newArrayObj.push({"data":value});
222                 });
223                 
224                 return newArrayObj;
225         };
226         
227          
228         $scope.returnTestScenarioTstObjectArray = function(arrayObj)
229          {
230           console.log("returnTestScenarioTstObjectArray");
231           var newArrayObj = [];
232           
233           angular.forEach(arrayObj, function(value, key) 
234           {
235                 console.log("arrayObj");
236                   if( value.testScenarioInstances !=undefined && value.testScenarioInstances.length !=0){
237                           var tempLabel = value.testScenarioInstances[0].label.split(":");
238                                 newArrayObj.push({"data":tempLabel[0]});
239                   }
240                         
241           });
242           
243           return newArrayObj;
244          };
245
246         
247         
248
249         $scope.returnOverRiddenObjectArray = function(arrayObj)
250         {
251                 console.log("returnOverRiddenObjectArray");
252                 var newArrayObj = [];
253                 
254                 angular.forEach(arrayObj, function(value, key) 
255                 {
256                         console.log("arrayObj");
257                         newArrayObj.push({"data":value.name});
258                 });
259                 
260                 return newArrayObj;
261         };
262         
263         
264         
265         
266         $rootScope.filterRouter = 'partials/DashboardFilters.html';
267         $scope.isActivePROD = true;
268         $scope.isActiveQC = false;
269         $rootScope.reload = function(env)
270         {
271                         console.log("reload");
272         };
273
274         $scope.showTDSSView = true;
275         
276         $scope.ReLoadDashboardFromViewResetComboBox = function(type, amount)//('Users','All') ('Accounts','All') ('Creation_times','All')
277         {
278                 console.log("ReLoadDashboardFromViewResetComboBox");
279         };
280         
281         
282         
283         //////////////////////////////////
284         
285         $scope.total_tdr_team_selected_model = [];
286         $scope.total_tdr_users_selected_model = [];
287         $scope.total_tdr_requests_selected_model = [];
288         $scope.total_tdr_entities_selected_model = [];
289         
290         $scope.reloadTDRDashboard = function(name)
291         {
292                 console.log("reloadTDRDashboard");
293                 var url = "/testdata-service/test-data-request/dashboard/counts.json?";
294                                 
295                 $http.get(url+params).success(function(data)
296                 {
297                         console.log("success");
298                         $scope.total_tdr_team_count = data.result.dashboardCountModel.teams;
299                         $scope.total_tdr_users_count = data.result.dashboardCountModel.users;
300                         $scope.total_tdr_requests_count = data.result.dashboardCountModel.requests;
301                         $scope.total_tdr_entities_count = data.result.dashboardCountModel.entities;
302                         
303                         
304                         if("team"!=name)
305                         {
306                                 $scope.total_tdr_team_array = $scope.returnObjectArray(data.result.tdrDashboardModel.teams);    
307                                 $scope.TDRTeamGridId.api().clear().draw();
308                                 $scope.TDRTeamGridId.fnAddData($scope.total_tdr_team_array);
309                         }
310                         
311                         
312                         if("users"!=name)
313                         {
314                                 $scope.total_tdr_users_array = $scope.returnObjectArray(data.result.tdrDashboardModel.users);
315                                 $scope.TDRUserGridId.api().clear().draw();
316                                 $scope.TDRUserGridId.fnAddData($scope.total_tdr_users_array);
317                         }
318                                 
319                         if("status"!=name)
320                         {
321                                 $scope.total_tdr_entities_array = $scope.returnObjectArray(data.result.tdrDashboardModel.entities);
322                                 $scope.TDREntitiesGridId.api().clear().draw();
323                                 $scope.TDREntitiesGridId.fnAddData($scope.total_tdr_entities_array);
324                         }
325                         
326                         if("request"!=name)
327                         {
328                                 $scope.total_tdr_requests_array = $scope.returnObjectArray(data.result.tdrDashboardModel.requests);
329                                 $scope.TDRNumberGridId.api().clear().draw();
330                                 $scope.TDRNumberGridId.fnAddData($scope.total_tdr_requests_array);
331                         }                       
332                 });
333                 
334         };
335         
336         
337         $scope.loadTDRDashboard = function()
338         {
339                 console.log("loadTDRDashboard");
340                 $rootScope.launch('wait'); 
341                 
342                 /* api jobs */
343                 var apiJobUrl = "/utm-service/em/jobs?timezoneOffset=420";
344                  
345                 $http.get(apiJobUrl).success(function(data)
346                 {
347                         console.log("success");
348                         $scope.total_test_scenario_count = data.length;
349                         
350
351                         $scope.TDRNumberGridId = $('#TDRNumberGridId').dataTable( {
352                                 "serverSide": false,
353                                 "aoColumns": [
354
355                                       {   "sTitle": "","mDataProp": null, "sWidth": "20px", "bSortable": false},
356                                       {   "sTitle":"Total TestScenarios","mDataProp": "data","bSortable": true}                                                      
357                           ],
358                                 //"columns": [{"data":   "data"}],
359                           "order": [[ 1, "asc" ]],
360                                 "bPaginate": false,
361                                 "bFilter": false, 
362                                 "bInfo": false,
363                             "bAutoWidth": false,
364                             "bScrollCollapse": false,
365                            "bLengthChange":false,
366                            "bJQueryUI": true,
367                            "search": {"caseInsensitive": true},
368                            "scrollY": "200px",
369                        "scrollX": "100%",
370                        "sScrollXInner": "100%",
371                            "fnCreatedRow": function( nRow, aData, iDataIndex ) 
372                            {
373                                 console.log("fnCreatedRow");
374                                 $(nRow).children("td").css("overflow", "hidden");
375                                 $(nRow).children("td").css("white-space", "nowrap");
376                                 $(nRow).children("td").css("text-overflow", "ellipsis");
377                                 
378                                 var found = false;              
379                                 
380                                 angular.forEach($scope.total_tdr_requests_selected_model, function (value) 
381                         {
382                                 console.log("total_tdr_requests_selected_model");
383                                                 if(aData.data==value.id)
384                                                 {
385                                                         found=true;
386                                                 }
387                         });
388                                 
389                                 if(found)
390                                 {
391                                         $('td:eq(0)', nRow).html( '<span class="tdr_checkbox tdr_checkbox_glyphicon_glyphicon_ok glyphicon glyphicon-ok" id="'+aData.data+'"></span>');
392                                 }
393                                 else
394                                 {
395                                         $('td:eq(0)', nRow).html( '<span class="tdr_checkbox tdr_checkbox_glyphicon_glyphicon_unchecked glyphicon glyphicon-unchecked" id="'+aData.data+'"></span>');
396                                 }
397                                 
398                                 
399                             }
400                     } );
401                         
402                         $scope.total_tdr_requests_array = $scope.returnOverRiddenObjectArray(data);
403                         
404                         if($scope.total_tdr_requests_array.length > 0)
405                         {
406                                 $scope.TDRNumberGridId.fnAddData($scope.total_tdr_requests_array);      
407                         }
408                         
409                         
410                         
411                                                 
412                         
413                         $('#TDRNumberGridId tbody').on( 'click', 'td', function () 
414                         {
415                                 console.log("click");
416                                 var position = $scope.TDRNumberGridId.fnGetPosition(this); // getting the clicked row position                          
417                         
418                          if(position[1]==1)
419                          {
420                                  
421                                         var valueX = this.innerHTML;
422                                 
423                                 $('.tdr_checkbox').each(function(i, obj) 
424                                 {        
425                                         console.log("tdr_checkbox");
426                                         var uncheck = $(obj).hasClass( "glyphicon-unchecked");
427                                         
428                                         if(valueX==obj.id && uncheck)
429                                         {
430                                                 $(obj).attr('class','tdr_checkbox tdr_checkbox_glyphicon_glyphicon_ok glyphicon glyphicon-ok');
431                                         }                                       
432                                         else if(valueX==obj.id && !uncheck)
433                                         {
434                                                 $(obj).attr('class','tdr_checkbox tdr_checkbox_glyphicon_glyphicon_unchecked glyphicon glyphicon-unchecked');
435                                         }                                                                                       
436                                 });
437                                 
438                                 
439                                  if($('.tdr_checkbox_glyphicon_glyphicon_ok').length <= 0)
440                                      {
441                                          $scope.total_tdr_requests_selected_model = [];                                  
442                                          $scope.total_tdr_requests_selected_model.push({'id':'All'});                                    
443                                  }
444                                  else
445                                          {
446                                          $scope.total_tdr_requests_selected_model = [];
447                                          
448                                                 $('.tdr_checkbox_glyphicon_glyphicon_ok').each(function(i, obj) 
449                                         {       
450                                                 console.log("tdr_checkbox_glyphicon_glyphicon_ok");
451                                                         $scope.total_tdr_requests_selected_model.push({'id':obj.id});
452                                         });
453                                                 
454                                          }
455                          }              
456                          else
457                          {
458                                 var valueX = this.innerHTML.substring(this.innerHTML.indexOf("id=\"")+4,this.innerHTML.length-9);
459                                 
460                                 $('.tdr_checkbox').each(function(i, obj) 
461                                         {        
462                                                 console.log("tdr_checkbox");
463                                         var uncheck = $(obj).hasClass( "glyphicon-unchecked");
464                                         
465                                         if(valueX==obj.id && uncheck)
466                                         {
467                                                 $(obj).attr('class','tdr_checkbox tdr_checkbox_glyphicon_glyphicon_ok glyphicon glyphicon-ok');
468                                         }                                       
469                                         else if(valueX==obj.id && !uncheck)
470                                         {
471                                                 $(obj).attr('class','tdr_checkbox tdr_checkbox_glyphicon_glyphicon_unchecked glyphicon glyphicon-unchecked');
472                                         }
473                                                                                         
474                                          });
475                                 
476                                 
477                                  if($('.tdr_checkbox_glyphicon_glyphicon_ok').length <= 0)
478                                      {
479                                          $scope.total_tdr_requests_selected_model = [];                                  
480                                          $scope.total_tdr_requests_selected_model.push({'id':'All'});   
481                                  }
482                                  else
483                                          { 
484                                          $scope.total_tdr_requests_selected_model = [];
485                                                 $('.tdr_checkbox_glyphicon_glyphicon_ok').each(function(i, obj) 
486                                         {        
487                                                 console.log("tdr_checkbox_glyphicon_glyphicon_ok");
488                                                         $scope.total_tdr_requests_selected_model.push({'id':obj.id});   
489                                         });
490                                          }
491                          }
492
493                          $scope.reloadTDRDashboard('request');
494                         });
495                         //$scope.initialShow=true;
496                         $rootScope.$broadcast('dialogs.wait.complete');
497                         
498                 
499                 });
500                 
501         };
502                 
503
504         
505         $scope.getCommaSeparatedString = function(json) 
506         { 
507                 console.log("getCommaSeparatedString");
508                 if(json==undefined || json==null)
509                 {
510                         return "All";
511                 }
512                 
513                 var result = "";
514                 var found =false;
515                 
516                 for (var dString in json) 
517                 { 
518                         result += json[dString].id + ",";
519                         found=true;
520                 }
521                                 
522                 var res = result.match(/All,/g);
523                 
524                 if(res!=null && result.split(",").length > 1)
525                 {
526                         result = result.replace("All,", "");
527                 }
528                                 
529                 if(!found || result=="")
530                 {
531                         return "All";
532                 }
533                 
534                 return result.replace(/,(\s+)?$/, '');
535         };
536         
537         
538         /*if("/dashboard"==$location.url())
539         {
540                 $scope.loadTDRDashboard();
541         }*/
542         
543         
544         
545         $scope.reloadTDRDashboardFromReset = function(name)
546         {
547                 console.log("reloadTDRDashboardFromReset");
548                 var url = "/testdata-service/test-data-request/dashboard/counts.json?";
549                 var params = "teams="+$scope.getCommaSeparatedString($scope.total_tdr_team_selected_model);
550                 params = params + "&users="+$scope.getCommaSeparatedString($scope.total_tdr_users_selected_model); 
551                 params = params + "&requests="+$scope.getCommaSeparatedString($scope.total_tdr_requests_selected_model);
552                 params = params + "&status="+$scope.getCommaSeparatedString($scope.total_tdr_entities_selected_model);
553                                 
554                 $http.get(url+params).success(function(data)
555                 {
556                         console.log("success");
557                         $scope.total_tdr_team_count = data.result.dashboardCountModel.teams;
558                         $scope.total_tdr_users_count = data.result.dashboardCountModel.users;
559                         $scope.total_tdr_requests_count = data.result.dashboardCountModel.requests;
560                         $scope.total_tdr_entities_count = data.result.dashboardCountModel.entities;
561                         
562                         $scope.total_tdr_team_array = $scope.returnObjectArray(data.result.tdrDashboardModel.teams);    
563                         $scope.TDRTeamGridId.api().clear().draw();
564                         $scope.TDRTeamGridId.fnAddData($scope.total_tdr_team_array);
565                         
566                         $scope.total_tdr_users_array = $scope.returnObjectArray(data.result.tdrDashboardModel.users);
567                         $scope.TDRUserGridId.api().clear().draw();
568                         $scope.TDRUserGridId.fnAddData($scope.total_tdr_users_array);
569                         
570                         $scope.total_tdr_entities_array = $scope.returnObjectArray(data.result.tdrDashboardModel.entities);                     
571                         $scope.TDREntitiesGridId.api().clear().draw();
572                         $scope.TDREntitiesGridId.fnAddData($scope.total_tdr_entities_array);
573                         
574                         $scope.total_tdr_requests_array = $scope.returnObjectArray(data.result.tdrDashboardModel.requests);
575                         $scope.TDRNumberGridId.api().clear().draw();
576                         $scope.TDRNumberGridId.fnAddData($scope.total_tdr_requests_array);                                              
577                 });
578                 
579         };
580         
581         
582         $scope.ReLoadTDRDashboard = function(name)
583         {
584                 console.log("ReLoadTDRDashboard");
585                 if("team"==name)
586                 {
587                         $scope.total_tdr_team_selected_model = [];
588                 }               
589                 
590                 if("users"==name)
591                 {
592                         $scope.total_tdr_users_selected_model = [];
593                 }
594                         
595                 if("status"==name)
596                 {
597                         $scope.total_tdr_entities_selected_model = [];
598                 }
599                 
600                 if("request"==name)
601                 {
602                         $scope.total_tdr_requests_selected_model = [];
603                 }       
604                 
605                 $scope.reloadTDRDashboardFromReset(name);
606                 
607         };
608         
609 }
610 function changecolor(selected_model)
611 {
612         console.log("changecolor");
613         
614         var i = 0;
615         //var modelNames =[];
616         
617     $(".models").each(function(i){
618         console.log("each");
619     var model_value = $(this).text().trim();
620     //modelName.push(model_value);
621     if(model_value == selected_model || model_value == "")
622     {
623          $(this).addClass("selectedcolor");
624     }
625     else
626     {
627         $(this).removeClass("selectedcolor");
628         
629     }
630         
631        i++; 
632     });
633 }
634
635