Commit d3b45fd701b4d0a80abd39c8fa759dc96dc469d9

Authored by Birendra Kumar
2 parents c6b048ab 7b4bdba9

Merge branch 'AIABugFixes' into AIA_Develop

Showing 25 changed files with 923 additions and 328 deletions
400-SOURCECODE/AIAHTML5.API/AIAHTML5.API.csproj
@@ -178,7 +178,7 @@ @@ -178,7 +178,7 @@
178 <VisualStudio> 178 <VisualStudio>
179 <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> 179 <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
180 <WebProjectProperties> 180 <WebProjectProperties>
181 - <UseIIS>True</UseIIS> 181 + <UseIIS>False</UseIIS>
182 <AutoAssignPort>True</AutoAssignPort> 182 <AutoAssignPort>True</AutoAssignPort>
183 <DevelopmentServerPort>63874</DevelopmentServerPort> 183 <DevelopmentServerPort>63874</DevelopmentServerPort>
184 <DevelopmentServerVPath>/</DevelopmentServerVPath> 184 <DevelopmentServerVPath>/</DevelopmentServerVPath>
400-SOURCECODE/AIAHTML5.API/Web.config
@@ -63,9 +63,8 @@ @@ -63,9 +63,8 @@
63 <add key="Aod_site_Url" value="https://uat.adamondemand.com/"/> 63 <add key="Aod_site_Url" value="https://uat.adamondemand.com/"/>
64 <add key="aiapasskey" value="as@2$eDu8Jk"/> 64 <add key="aiapasskey" value="as@2$eDu8Jk"/>
65 65
66 - <!--<add key ="AIADatabaseV5Context" value="Data Source=192.168.90.53;Initial Catalog=AIADatabaseV5;User ID=AIA_Dev;Password=india123;"/>-->  
67 - <add key ="AIADatabaseV5Context" value="Data Source=LAPTOP-BIRU-PC\SQLEXPRESS;Initial Catalog=AIADatabaseV5;User ID=AIA_Dev;Password=india123;"/>  
68 - 66 + <add key ="AIADatabaseV5Context" value="Data Source=192.168.90.53;Initial Catalog=AIADatabaseV5;User ID=AIA_Dev;Password=india123;"/>
  67 +
69 </appSettings> 68 </appSettings>
70 69
71 70
400-SOURCECODE/AIAHTML5.Web/app/controllers/CurrBuildController.js
@@ -2974,6 +2974,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $ @@ -2974,6 +2974,7 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
2974 width: $rootScope.AIWindowData[i].width 2974 width: $rootScope.AIWindowData[i].width
2975 }, 2975 },
2976 imageId: $rootScope.AIWindowData[i].imageId, 2976 imageId: $rootScope.AIWindowData[i].imageId,
  2977 + imgLeft:$rootScope.AIWindowData[i].imgLeft,
2977 minimised: $rootScope.AIWindowData[i].minimised, 2978 minimised: $rootScope.AIWindowData[i].minimised,
2978 windowTitle: $rootScope.AIWindowData[i].currentViewTitle, 2979 windowTitle: $rootScope.AIWindowData[i].currentViewTitle,
2979 maximised: $rootScope.AIWindowData[i].maximised, 2980 maximised: $rootScope.AIWindowData[i].maximised,
@@ -3206,7 +3207,6 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $ @@ -3206,7 +3207,6 @@ function ($scope, $rootScope, pages, log, Modules, $http, $compile, $location, $
3206 height: $rootScope.AAWindowData[i].height 3207 height: $rootScope.AAWindowData[i].height
3207 }, 3208 },
3208 id: $rootScope.AAWindowData[i].id, 3209 id: $rootScope.AAWindowData[i].id,
3209 - imgLeft:$rootScope.AAWindowData[i].imgLeft,  
3210 showSelectedPins: $rootScope.AAWindowData[i].isShowSelectedPins, 3210 showSelectedPins: $rootScope.AAWindowData[i].isShowSelectedPins,
3211 hideCallOuts: false,//N 3211 hideCallOuts: false,//N
3212 showAllPins: $rootScope.AAWindowData[i].isShowAllPins, 3212 showAllPins: $rootScope.AAWindowData[i].isShowAllPins,
400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js
@@ -525,7 +525,6 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l @@ -525,7 +525,6 @@ AIA.controller(&quot;DAController&quot;, [&quot;$scope&quot;, &quot;$rootScope&quot;, &quot;$compile&quot;, &quot;$http&quot;, &quot;$l
525 525
526 } ; 526 } ;
527 527
528 - //window.parent.closeIFrame();  
529 window.parent.AIAModuleOpenResourceInfo(DaopenData); 528 window.parent.AIAModuleOpenResourceInfo(DaopenData);
530 529
531 } 530 }
400-SOURCECODE/AIAHTML5.Web/app/controllers/HomeController.js
@@ -611,11 +611,17 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data @@ -611,11 +611,17 @@ function ($rootScope, $scope, Modules, $log, $location, $compile, $timeout, Data
611 $rootScope.homeURL =x.substring(0,pos+1); 611 $rootScope.homeURL =x.substring(0,pos+1);
612 612
613 var hTopicUrl = $rootScope.homeURL + "content/help/index.html"; 613 var hTopicUrl = $rootScope.homeURL + "content/help/index.html";
614 - var aboutADAM = $rootScope.homeURL + "content/help/about/Adam_Credits_AIA5.html"; 614 + var productCredit = $rootScope.homeURL + "content/help/about/Adam_Credits_AIA5.html";
  615 + var customerSupport = "http://adameducation.com/Contact";
  616 + var userAgreement = "https://store.adameducation.com/EmailTemplate/EULA.html";
  617 + var aboutADAM = "https://www.adam.com/about";
  618 +
615 619
616 $("#helplinkId").append("<li><a target='_blank' href='" + hTopicUrl + "'> Help Topics </li>"); 620 $("#helplinkId").append("<li><a target='_blank' href='" + hTopicUrl + "'> Help Topics </li>");
617 - $("#helplinkId").append("<li><a target='_blank' href='http://adameducation.com/Contact'> Customer Support </li>"); 621 + $("#helplinkId").append("<li><a target='_blank' href='"+customerSupport+"'> Customer Support </li>");
618 $("#helplinkId").append("<li role='separator' class='divider'></li>"); 622 $("#helplinkId").append("<li role='separator' class='divider'></li>");
  623 + $("#helplinkId").append("<li><a target='_blank' href='" + userAgreement + "'> End User License Agreement </li>");
  624 + $("#helplinkId").append("<li><a target='_blank' href='" + productCredit + "'> Product Credits </li>");
619 $("#helplinkId").append("<li><a target='_blank' href='" + aboutADAM + "'> About A.D.A.M. </li>"); 625 $("#helplinkId").append("<li><a target='_blank' href='" + aboutADAM + "'> About A.D.A.M. </li>");
620 626
621 } 627 }
400-SOURCECODE/AIAHTML5.Web/app/controllers/LabExercController.js
@@ -233,8 +233,6 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter, @@ -233,8 +233,6 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
233 233
234 window.parent.AIAModuleOpenResourceInfo(LEopenData); 234 window.parent.AIAModuleOpenResourceInfo(LEopenData);
235 235
236 - window.parent.closeIFrame();  
237 -  
238 } 236 }
239 else { 237 else {
240 // $rootScope.menuLabExer = 1;//used in home controller 238 // $rootScope.menuLabExer = 1;//used in home controller
@@ -488,7 +486,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter, @@ -488,7 +486,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
488 486
489 var userloginid = JSON.parse(localStorage.getItem('loggedInUserDetails')).Id; 487 var userloginid = JSON.parse(localStorage.getItem('loggedInUserDetails')).Id;
490 $scope.SetLEwindowStoreData(windowviewid, 'userloginid', userloginid); 488 $scope.SetLEwindowStoreData(windowviewid, 'userloginid', userloginid);
491 - 489 +
492 490
493 $timeout(function () { 491 $timeout(function () {
494 var isMaximize = $scope.GetLEwindowStoreData(windowviewid, 'maximised'); 492 var isMaximize = $scope.GetLEwindowStoreData(windowviewid, 'maximised');
@@ -512,15 +510,62 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter, @@ -512,15 +510,62 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
512 $scope.SetLEwindowStoreData(windowviewid, 'width', $scope.jsPanelWidth); 510 $scope.SetLEwindowStoreData(windowviewid, 'width', $scope.jsPanelWidth);
513 $scope.SetLEwindowStoreData(windowviewid, 'height', $scope.jsPanelHeight); 511 $scope.SetLEwindowStoreData(windowviewid, 'height', $scope.jsPanelHeight);
514 512
515 - $scope.setControlsIDs(windowviewid);  
516 - $scope.createScopeVariable(windowviewid);  
517 -  
518 - $scope.labViewID = "LabView_" + windowviewid;  
519 - var labViewElement = angular.element(document.getElementById($scope.labViewID));  
520 -  
521 - $compile(labViewElement.contents())($scope);  
522 -  
523 - 513 +
  514 + $scope.setControlsIDs(windowviewid);
  515 +
  516 + var timeintval = null;
  517 + timeintval = $interval(function () {
  518 + $scope.labViewID = "LabView_" + windowviewid;
  519 + var labViewElement = angular.element(document.getElementById($scope.labViewID));
  520 + if (document.getElementById($scope.labViewID) != null)
  521 + {
  522 + var panelBody = document.getElementById("panelbodyDiv_" + windowviewid);
  523 + var len = panelBody!=null?(panelBody.id).split("_").length:0;
  524 + if (len>1) {
  525 + $scope.stopLabIntervalLoader();
  526 + $compile(labViewElement.contents())($scope);
  527 + $scope.createScopeVariable(windowviewid);
  528 +
  529 + //wait until DOM element load of Lab
  530 +
  531 + $scope.PanelActivity();
  532 + $scope.JsPanelclick(windowviewid);
  533 +
  534 + var canvasDIvHeight = $('#labImagePanel_' + windowviewid+ " .jsPanel-content").height();
  535 + $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-100);
  536 + $('#resultbodyDiv_' + windowviewid).css("height",canvasDIvHeight-90);
  537 +
  538 + $scope.LoadLabExercise(windowviewid,userloginid,Identifier);
  539 +
  540 + }
  541 + else
  542 + {
  543 + $scope.setControlsIDs(windowviewid);
  544 + console.log("waiting for loading content");
  545 + }
  546 +
  547 + }
  548 + else
  549 + {
  550 + $scope.setControlsIDs(windowviewid);
  551 + console.log("waiting for loading view scope");
  552 + }
  553 +
  554 +
  555 + },100);
  556 + $scope.stopLabIntervalLoader = function () {
  557 + if (angular.isDefined(timeintval)) {
  558 + $interval.cancel(timeintval);
  559 + timeintval = undefined;
  560 + }
  561 + };
  562 +
  563 +
  564 + }, 100);
  565 + }
  566 +
  567 + $scope.LoadLabExercise = function (windowviewid,userloginid,Identifier) {
  568 +
524 var labExerciseInfo = { 569 var labExerciseInfo = {
525 userId: userloginid, 570 userId: userloginid,
526 identifier: Identifier, 571 identifier: Identifier,
@@ -528,13 +573,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter, @@ -528,13 +573,7 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
528 LabExerciseService.GetLabExercise(labExerciseInfo) 573 LabExerciseService.GetLabExercise(labExerciseInfo)
529 .then( 574 .then(
530 function (labResult) { 575 function (labResult) {
531 -  
532 - $timeout(function () {  
533 - var canvasDIvHeight = $('#labImagePanel_' + windowviewid+ " .jsPanel-content").height();  
534 - $('#panelbodyDiv_' + windowviewid).css("height",canvasDIvHeight-100);  
535 - $('#resultbodyDiv_' + windowviewid).css("height",canvasDIvHeight-90);  
536 - $scope.JsPanelclick(windowviewid);  
537 - 576 +
538 if (labResult != undefined && labResult.lastQuestion > 0 && labResult != AIAConstants.SAVED_LAB_EXERCISE_NOT_FOUND) { 577 if (labResult != undefined && labResult.lastQuestion > 0 && labResult != AIAConstants.SAVED_LAB_EXERCISE_NOT_FOUND) {
539 578
540 $scope.SetLEwindowStoreData(windowviewid, 'SavedLabExercise', labResult); 579 $scope.SetLEwindowStoreData(windowviewid, 'SavedLabExercise', labResult);
@@ -550,18 +589,13 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter, @@ -550,18 +589,13 @@ function ($scope, $rootScope, pages, log, $http, $timeout, DataService, $filter,
550 } 589 }
551 $scope.DisableLabUI(windowviewid); 590 $scope.DisableLabUI(windowviewid);
552 591
553 - },300)  
554 -  
555 }, 592 },
556 function (error) { 593 function (error) {
557 console.log('error in getting save ddata'); 594 console.log('error in getting save ddata');
558 $scope.DisableLabUI(windowviewid); 595 $scope.DisableLabUI(windowviewid);
559 - }  
560 - )  
561 -  
562 - $scope.PanelActivity();  
563 - }, 500);  
564 - } 596 + })
  597 + }
  598 +
565 599
566 $scope.JsPanelclick = function (windowviewid) { 600 $scope.JsPanelclick = function (windowviewid) {
567 //reset option list manager and annotation 601 //reset option list manager and annotation
400-SOURCECODE/AIAHTML5.Web/app/controllers/TileViewListController.js
@@ -366,8 +366,6 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou @@ -366,8 +366,6 @@ function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeou
366 366
367 window.parent.AIAModuleOpenResourceInfo(AAopenData); 367 window.parent.AIAModuleOpenResourceInfo(AAopenData);
368 368
369 - window.parent.closeIFrame();  
370 -  
371 } 369 }
372 else 370 else
373 { 371 {
400-SOURCECODE/AIAHTML5.Web/app/widget/TopMenu.html
@@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
20 <li id="printAVAnchor"><a href="" data-toggle="modal" ng-click="ShowPrintWindow()">Print Active Viewer</a></li> 20 <li id="printAVAnchor"><a href="" data-toggle="modal" ng-click="ShowPrintWindow()">Print Active Viewer</a></li>
21 <li id="printAllAVAnchor"><a href="#" data-toggle="modal" ng-click="ShowAllPrintWindow()">Print All Open Viewers</a></li> 21 <li id="printAllAVAnchor"><a href="#" data-toggle="modal" ng-click="ShowAllPrintWindow()">Print All Open Viewers</a></li>
22 <li id="printPreviewAnchor"><a href="" data-toggle="modal" ng-click="ShowPrintPreviewWindow()">Print Preview</a></li> 22 <li id="printPreviewAnchor"><a href="" data-toggle="modal" ng-click="ShowPrintPreviewWindow()">Print Preview</a></li>
  23 + <li role="separator" class="divider"></li>
23 <li id="arragePannel"><a href="#" role="button" aria-haspopup="true" aria-expanded="false" > Arrange Window <span class="caret"></span></a> 24 <li id="arragePannel"><a href="#" role="button" aria-haspopup="true" aria-expanded="false" > Arrange Window <span class="caret"></span></a>
24 <ul class="dropdown-content"> 25 <ul class="dropdown-content">
25 <li><a href="#" ng-click="arrangeCascadePanel()">Cascade View</a></li> 26 <li><a href="#" ng-click="arrangeCascadePanel()">Cascade View</a></li>
400-SOURCECODE/AIAHTML5.Web/content/help/about/Adam_Credits_AIA5.html
@@ -88,29 +88,29 @@ @@ -88,29 +88,29 @@
88 <div class="w100 LabelFieldSmall">Technical Support<br/><br/></div> 88 <div class="w100 LabelFieldSmall">Technical Support<br/><br/></div>
89 </div> 89 </div>
90 90
91 - <div class="w80" align="center" >  
92 - <div class="w100 LabelFieldMediumBold"><b>Online Technology Production & Quality Assurance</b></div>  
93 - </div> 91 + <!-- <div class="w80" align="center" > -->
  92 + <!-- <div class="w100 LabelFieldMediumBold"><b>Online Technology Production & Quality Assurance</b></div> -->
  93 + <!-- </div> -->
94 94
95 - <div class="w80" align="center">  
96 - <div class="w100 LabelFieldSmall">Magic Software Pvt Ltd<br/></div>  
97 - </div> 95 + <!-- <div class="w80" align="center"> -->
  96 + <!-- <div class="w100 LabelFieldSmall">Magic Software Pvt Ltd<br/></div> -->
  97 + <!-- </div> -->
98 98
99 - <div class="w80" align="center">  
100 - <div class="w100"><img src ="images/magic_logo.jpg"/><br /><br /></div>  
101 - </div> 99 + <!-- <div class="w80" align="center"> -->
  100 + <!-- <div class="w100"><img src ="images/magic_logo.jpg"/><br /><br /></div> -->
  101 + <!-- </div> -->
102 102
103 - <div class="w80" align="center">  
104 - <div class="w100 LabelFieldMediumBold">Online Help Guides<br/></div>  
105 - </div> 103 + <!-- <div class="w80" align="center"> -->
  104 + <!-- <div class="w100 LabelFieldMediumBold">Online Help Guides<br/></div> -->
  105 + <!-- </div> -->
106 106
107 - <div class="w80" align="center">  
108 - <div class="w100 LabelFieldSmall">Stan Samuels<br/></div>  
109 - </div> 107 + <!-- <div class="w80" align="center"> -->
  108 + <!-- <div class="w100 LabelFieldSmall">Stan Samuels<br/></div> -->
  109 + <!-- </div> -->
110 110
111 - <div class="w80" align="center">  
112 - <div class="w100 LabelFieldSmall">Brent Brickett<br/><br/></div>  
113 - </div> 111 + <!-- <div class="w80" align="center"> -->
  112 + <!-- <div class="w100 LabelFieldSmall">Brent Brickett<br/><br/></div> -->
  113 + <!-- </div> -->
114 114
115 <div class="w80" align="center" > 115 <div class="w80" align="center" >
116 <div class="w100 LabelFieldMediumBold"><b>Medical Illustration and Animation Development</b></div> 116 <div class="w100 LabelFieldMediumBold"><b>Medical Illustration and Animation Development</b></div>
400-SOURCECODE/Admin/src/app/app.component.ts
@@ -33,6 +33,8 @@ export class AppComponent implements OnInit { @@ -33,6 +33,8 @@ export class AppComponent implements OnInit {
33 public submenustaus: string; 33 public submenustaus: string;
34 public UpdateProfileVisible: boolean; 34 public UpdateProfileVisible: boolean;
35 public UserManageRightsList: Array<UserManageRightsModel>; 35 public UserManageRightsList: Array<UserManageRightsModel>;
  36 +
  37 + public LicenseTypeId:any;
36 38
37 constructor(private idle: Idle, private keepalive: Keepalive,private titleService: Title,private _confirmService: ConfirmService,private userservice: UserService,private _loadingService: LoadingService, public global: GlobalService, private router: Router,) { 39 constructor(private idle: Idle, private keepalive: Keepalive,private titleService: Title,private _confirmService: ConfirmService,private userservice: UserService,private _loadingService: LoadingService, public global: GlobalService, private router: Router,) {
38 const projectTitle= this.titleService.getTitle(); 40 const projectTitle= this.titleService.getTitle();
@@ -95,7 +97,26 @@ export class AppComponent implements OnInit { @@ -95,7 +97,26 @@ export class AppComponent implements OnInit {
95 ngOnInit(): void { 97 ngOnInit(): void {
96 this.menustaus = "True"; 98 this.menustaus = "True";
97 this.global.getJSON().subscribe(data => { 99 this.global.getJSON().subscribe(data => {
98 - this.obj = data["AdminSections"] 100 + this.obj = data["AdminSections"] ;
  101 + this.LicenseTypeId=this.global.LicenseTypeId;
  102 + if(this.LicenseTypeId !=undefined && this.LicenseTypeId!=0 && this.global.UserTypeName=="Client Admin")
  103 + {
  104 + if(this.obj[2].UserType=="Client Admin")
  105 + {
  106 + var mainsection=this.obj[2];
  107 + var clientadminSection=mainsection.HeaderMenu[4];
  108 + var siteUageReportSection=clientadminSection.SubMenu[6];
  109 + var concurrentLicenseId=siteUageReportSection.LicenseTypeId;
  110 +
  111 + //do not show this report for concurrent license of client admin
  112 + if(concurrentLicenseId ==this.LicenseTypeId)
  113 + {
  114 + siteUageReportSection.SubMenuStatus="False";
  115 + }
  116 + }
  117 + }
  118 +
  119 +
99 for (let i = 0; i < 7; i++) { 120 for (let i = 0; i < 7; i++) {
100 if (this.obj[i].Id == this.global.UserType) { 121 if (this.obj[i].Id == this.global.UserType) {
101 if (this.global.UserTypeName == "General Admin") { 122 if (this.global.UserTypeName == "General Admin") {
@@ -104,7 +125,7 @@ export class AppComponent implements OnInit { @@ -104,7 +125,7 @@ export class AppComponent implements OnInit {
104 UserId: this.global.UserId, 125 UserId: this.global.UserId,
105 UserType: this.global.UserTypeName 126 UserType: this.global.UserTypeName
106 }).subscribe(x => { 127 }).subscribe(x => {
107 - //console.log(x); this.UserManageRightsList = x; 128 + this.UserManageRightsList = x;
108 this.objMenuGernal = this.obj[i].HeaderMenu; 129 this.objMenuGernal = this.obj[i].HeaderMenu;
109 //this.objMenuGernal = this.objMenu; 130 //this.objMenuGernal = this.objMenu;
110 //this.objMenu=''; 131 //this.objMenu='';
400-SOURCECODE/Admin/src/app/app.module.ts
@@ -44,6 +44,7 @@ import { LicenseModestySettings } from &#39;./components/licenseentity/licensemodest @@ -44,6 +44,7 @@ import { LicenseModestySettings } from &#39;./components/licenseentity/licensemodest
44 import { LicenseModuleSettings } from './components/licenseentity/licensemodulesettings.component'; 44 import { LicenseModuleSettings } from './components/licenseentity/licensemodulesettings.component';
45 import { SiteLicenseAccount } from './components/licenseentity/sitelicenseaccount.component'; 45 import { SiteLicenseAccount } from './components/licenseentity/sitelicenseaccount.component';
46 import { UserGroup } from './components/userentity/usergroup.component'; 46 import { UserGroup } from './components/userentity/usergroup.component';
  47 +import { licenseAgreement } from './components/licenseentity/licenseAgreement.component';
47 import { AppComponent } from './app.component'; 48 import { AppComponent } from './app.component';
48 import { AppRoutingModule } from './app.routing.module'; 49 import { AppRoutingModule } from './app.routing.module';
49 //import { AuthGuard } from '../app/authguard.service'; 50 //import { AuthGuard } from '../app/authguard.service';
@@ -82,7 +83,7 @@ import { MyFilterPipe } from &#39;./shared/my-filter.pipe&#39;; @@ -82,7 +83,7 @@ import { MyFilterPipe } from &#39;./shared/my-filter.pipe&#39;;
82 ExpiringSubscriptionReport, SubscriptionReport, 83 ExpiringSubscriptionReport, SubscriptionReport,
83 SubscriptionCancellationReport, NetAdSubscriptionReport, 84 SubscriptionCancellationReport, NetAdSubscriptionReport,
84 SiteLicenseUsageReport, DiscountCodeReport, ImageExportReport, 85 SiteLicenseUsageReport, DiscountCodeReport, ImageExportReport,
85 - EditLicenseBasicSettings, LicenseModestySettings, 86 + EditLicenseBasicSettings, LicenseModestySettings,licenseAgreement,
86 LicenseModuleSettings, SiteLicenseAccount, UserGroup, PagerComponent, NumberOnlyDirective, 87 LicenseModuleSettings, SiteLicenseAccount, UserGroup, PagerComponent, NumberOnlyDirective,
87 //filter 88 //filter
88 MyFilterPipe 89 MyFilterPipe
400-SOURCECODE/Admin/src/app/app.routing.module.ts
@@ -24,6 +24,8 @@ import { LicenseModestySettings } from &#39;./components/licenseentity/licensemodest @@ -24,6 +24,8 @@ import { LicenseModestySettings } from &#39;./components/licenseentity/licensemodest
24 import { LicenseModuleSettings } from './components/licenseentity/licensemodulesettings.component'; 24 import { LicenseModuleSettings } from './components/licenseentity/licensemodulesettings.component';
25 import { SiteLicenseAccount } from './components/licenseentity/sitelicenseaccount.component'; 25 import { SiteLicenseAccount } from './components/licenseentity/sitelicenseaccount.component';
26 import { UserGroup } from './components/userentity/usergroup.component'; 26 import { UserGroup } from './components/userentity/usergroup.component';
  27 +import { licenseAgreement } from './components/licenseentity/licenseAgreement.component';
  28 +
27 const appRoutes: Routes = [ 29 const appRoutes: Routes = [
28 //{ path: '', redirectTo:'updateuserprofile',pathMatch } 30 //{ path: '', redirectTo:'updateuserprofile',pathMatch }
29 { path: 'updateuserprofile', component: UpdateUserProfile }, 31 { path: 'updateuserprofile', component: UpdateUserProfile },
@@ -49,6 +51,7 @@ const appRoutes: Routes = [ @@ -49,6 +51,7 @@ const appRoutes: Routes = [
49 { path: 'editlicensebasicsettings', component: EditLicenseBasicSettings }, 51 { path: 'editlicensebasicsettings', component: EditLicenseBasicSettings },
50 { path: 'licensemodestysettings', component: LicenseModestySettings }, 52 { path: 'licensemodestysettings', component: LicenseModestySettings },
51 { path: 'licensemodulesettings', component: LicenseModuleSettings }, 53 { path: 'licensemodulesettings', component: LicenseModuleSettings },
  54 + { path: 'licenseAgreement', component: licenseAgreement },
52 { path: 'sitelicenseaccount', component: SiteLicenseAccount }, 55 { path: 'sitelicenseaccount', component: SiteLicenseAccount },
53 { path: 'usergroup', component: UserGroup } 56 { path: 'usergroup', component: UserGroup }
54 ]; 57 ];
400-SOURCECODE/Admin/src/app/components/LicenseEntity/addlicense.component.html
@@ -242,6 +242,7 @@ @@ -242,6 +242,7 @@
242 {{item.StateName}} 242 {{item.StateName}}
243 </option> 243 </option>
244 </select> 244 </select>
  245 + <div *ngIf="insertUpdateLicenseFrm.get('stateId').hasError('min')" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">State is required</div>
245 </div> 246 </div>
246 </div> 247 </div>
247 </div> 248 </div>
@@ -277,7 +278,7 @@ @@ -277,7 +278,7 @@
277 <label for="Phone" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0" title="">Phone <span class="red">*</span> : </label> 278 <label for="Phone" class="col-sm-12 col-lg-6 control-label text-right-lg paddTop7 padd-left0" title="">Phone <span class="red">*</span> : </label>
278 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0"> 279 <div class="col-sm-12 col-lg-6 padd-left0 padd-right0">
279 <input type="text" class="form-control input-sm" id="Phone" formControlName="phone" maxlength="30" (keyup)="onKeyUp($event)" (keydown.space)="$event.preventDefault();"> 280 <input type="text" class="form-control input-sm" id="Phone" formControlName="phone" maxlength="30" (keyup)="onKeyUp($event)" (keydown.space)="$event.preventDefault();">
280 - <span class="help-block">(xxx-xxx-xxxx)</span> 281 + <span *ngIf="IsUniteState" class="help-block">(xxx-xxx-xxxx)</span>
281 <div *ngIf="insertUpdateLicenseFrm.controls.phone.hasError('required') && insertUpdateLicenseFrm.controls.phone.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Phone is required</div> 282 <div *ngIf="insertUpdateLicenseFrm.controls.phone.hasError('required') && insertUpdateLicenseFrm.controls.phone.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Phone is required</div>
282 <div *ngIf="insertUpdateLicenseFrm.controls.phone.hasError('pattern') && (insertUpdateLicenseFrm.controls.phone.dirty || license.LicenseId > 0)" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Phone is invalid</div> 283 <div *ngIf="insertUpdateLicenseFrm.controls.phone.hasError('pattern') && (insertUpdateLicenseFrm.controls.phone.dirty || license.LicenseId > 0)" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Phone is invalid</div>
283 </div> 284 </div>
400-SOURCECODE/Admin/src/app/components/LicenseEntity/addlicense.component.ts
@@ -50,6 +50,7 @@ export class AddLicense implements OnInit { @@ -50,6 +50,7 @@ export class AddLicense implements OnInit {
50 dateStartInvalid: boolean = false; 50 dateStartInvalid: boolean = false;
51 dateEndInvalid: boolean = false; 51 dateEndInvalid: boolean = false;
52 dateRenewInvalid: boolean = false; 52 dateRenewInvalid: boolean = false;
  53 + IsUniteState:Boolean=false;
53 NumberOfRows:number=0; 54 NumberOfRows:number=0;
54 constructor(private _loadingService: LoadingService,private licenseService: LicenseService, private globalService: GlobalService, 55 constructor(private _loadingService: LoadingService,private licenseService: LicenseService, private globalService: GlobalService,
55 private router: Router, private activeRoute: ActivatedRoute, 56 private router: Router, private activeRoute: ActivatedRoute,
@@ -76,11 +77,12 @@ export class AddLicense implements OnInit { @@ -76,11 +77,12 @@ export class AddLicense implements OnInit {
76 address1: ['', [Validators.required,this.noWhitespaceValidator]], 77 address1: ['', [Validators.required,this.noWhitespaceValidator]],
77 address2: [''], 78 address2: [''],
78 city: ['', [Validators.required,this.noWhitespaceValidator]], 79 city: ['', [Validators.required,this.noWhitespaceValidator]],
79 - stateId: [0, Validators.min(1)], 80 + stateId: [0, [Validators.min(1)]],
80 countryId: [0, Validators.min(1)], 81 countryId: [0, Validators.min(1)],
81 zip: ['', [Validators.required]], 82 zip: ['', [Validators.required]],
82 emailId: ['', [Validators.required]], 83 emailId: ['', [Validators.required]],
83 - phone: ['', [Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$')]], 84 + //phone: ['', [Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$')]],
  85 + phone: ['', [Validators.required]],
84 editionLoginArr: this.fb.array([]), 86 editionLoginArr: this.fb.array([]),
85 editionLogins: [''], 87 editionLogins: [''],
86 totalLogins: [0], 88 totalLogins: [0],
@@ -198,47 +200,86 @@ export class AddLicense implements OnInit { @@ -198,47 +200,86 @@ export class AddLicense implements OnInit {
198 200
199 onKeyUp(event: any) { 201 onKeyUp(event: any) {
200 var mobno = event.target.value; 202 var mobno = event.target.value;
201 - var newnum=mobno;  
202 - if(mobno!="" && event.key!="Backspace") 203 + var countryName =$("#Country option:selected").text().trim();
  204 +
  205 + if(mobno!="" && event.key!="Backspace")
  206 + {
  207 + if(countryName=="United States")
  208 + {
  209 + this.USFormatPhoneNumber(mobno);
  210 + }
  211 + else
203 { 212 {
204 - var tempArr = mobno.split('-');  
205 -  
206 - if(tempArr.length==1)  
207 - {  
208 - var countdigit=tempArr[0].length;  
209 - newnum=tempArr[0];  
210 - if(countdigit==3)  
211 - {  
212 - newnum=tempArr[0]+"-";  
213 - }  
214 - else if(countdigit>3)  
215 - {  
216 - newnum=tempArr[0].substr(0,3)+"-"+tempArr[0].substr(3,1);  
217 - }  
218 -  
219 - }  
220 - else if(tempArr.length==2)  
221 - {  
222 - newnum=tempArr[0]+"-"+tempArr[1];  
223 - var countdigit=tempArr[1].length;  
224 - if(countdigit==3)  
225 - {  
226 - newnum=tempArr[0]+"-"+tempArr[1]+"-";  
227 - }  
228 - else if(countdigit>3)  
229 - {  
230 - newnum= tempArr[0]+"-"+tempArr[1].substr(0,3)+"-"+tempArr[1].substr(3,1);  
231 - }  
232 - }  
233 - else  
234 - {  
235 - newnum=tempArr[0]+"-"+tempArr[1]+"-"+tempArr[2];  
236 - }  
237 - 213 + this.OtherFormatPhoneNumber(mobno);
  214 + }
238 } 215 }
239 - this.insertUpdateLicenseFrm.controls['phone'].setValue(newnum);  
240 }; 216 };
241 217
  218 +
  219 +OtherFormatPhoneNumber(mobno:any)
  220 +{
  221 + //var regex = /\d+/g;
  222 + //var matches = mobno.match(regex); //extract digit only
  223 + //var currentNum= matches==null?"" :matches.join('');
  224 + this.insertUpdateLicenseFrm.controls['phone'].setValue(mobno);
  225 +}
  226 +
  227 +USFormatPhoneNumber(mobno:any)
  228 +{
  229 + var newformat="";
  230 + if(mobno!="" && mobno!=null)
  231 + {
  232 + var regex = /\d+/g;
  233 + var matches = mobno.match(regex); //extract digit only
  234 + var currentNum= matches==null?"" :matches.join('');
  235 +
  236 + for(var ind=0;ind<currentNum.length;ind++)
  237 + {
  238 + if(newformat.length==3)
  239 + {
  240 + newformat=newformat+"-";
  241 + }
  242 + else if(newformat.length==7)
  243 + {
  244 + newformat=newformat+"-";
  245 + }
  246 + newformat=newformat+currentNum[ind];
  247 + }
  248 +
  249 + }
  250 + this.insertUpdateLicenseFrm.controls['phone'].setValue(newformat);
  251 +}
  252 +
  253 +//get Property
  254 +get PhoneNumber() {
  255 + return this.insertUpdateLicenseFrm.get('phone');
  256 +}
  257 +
  258 +UpdatePhoneValidation()
  259 +{
  260 + var phoneno=this.PhoneNumber.value==null?"":this.PhoneNumber.value;
  261 +
  262 + var countryName =$("#Country option:selected").text().trim();
  263 + if(countryName=="United States")
  264 + {
  265 + // validate first phone number
  266 + this.IsUniteState=true;
  267 +
  268 + this.PhoneNumber.setValidators([Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$')]);
  269 + this.PhoneNumber.updateValueAndValidity();
  270 + this.USFormatPhoneNumber(phoneno);
  271 + }
  272 + else
  273 + {
  274 + this.IsUniteState=false;
  275 + // this.PhoneNumber.setValidators([Validators.required, Validators.pattern('^[0-9]*$')]);
  276 + this.PhoneNumber.setValidators([Validators.required]);
  277 + this.PhoneNumber.updateValueAndValidity();
  278 + this.OtherFormatPhoneNumber(phoneno);
  279 + }
  280 +
  281 +}
  282 +
242 openModal(template: TemplateRef<any>) { 283 openModal(template: TemplateRef<any>) {
243 this.modalRef = this.modalService.show(template); 284 this.modalRef = this.modalService.show(template);
244 } 285 }
@@ -469,15 +510,9 @@ export class AddLicense implements OnInit { @@ -469,15 +510,9 @@ export class AddLicense implements OnInit {
469 this.insertUpdateLicenseFrm.controls['isActive'].setValue('false'); 510 this.insertUpdateLicenseFrm.controls['isActive'].setValue('false');
470 } 511 }
471 512
472 - // this.insertUpdateLicenseFrm.controls['phone'].clearValidators();  
473 - // if (this.lstCountry.find(C => C.Id == this.license.CountryId).CountryName != "United States") {  
474 - // this.insertUpdateLicenseFrm.controls['phone'].setValidators([Validators.required,this.noWhitespaceValidator]);  
475 - // }  
476 - // else {  
477 - // this.insertUpdateLicenseFrm.controls['phone'].setValidators([Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$'),this.noWhitespaceValidator]);  
478 - // }  
479 - // this.insertUpdateLicenseFrm.controls['phone'].updateValueAndValidity();  
480 this.insertUpdateLicenseFrm.controls['phone'].setValue(this.license.Phone); 513 this.insertUpdateLicenseFrm.controls['phone'].setValue(this.license.Phone);
  514 + // validate first phone number
  515 + this.UpdatePhoneValidation();
481 516
482 if (this.license.EditionLogins == null) return; 517 if (this.license.EditionLogins == null) return;
483 var TempArr = this.license.EditionLogins.split('|'); 518 var TempArr = this.license.EditionLogins.split('|');
@@ -774,16 +809,12 @@ export class AddLicense implements OnInit { @@ -774,16 +809,12 @@ export class AddLicense implements OnInit {
774 if (this.lstCountry.find(C => C.Id == this.license.CountryId).CountryName != "United States") { 809 if (this.lstCountry.find(C => C.Id == this.license.CountryId).CountryName != "United States") {
775 this.license.StateId = this.lstState.find(C => C.StateName == "Other").Id; 810 this.license.StateId = this.lstState.find(C => C.StateName == "Other").Id;
776 this.insertUpdateLicenseFrm.controls['stateId'].setValue(this.license.StateId); 811 this.insertUpdateLicenseFrm.controls['stateId'].setValue(this.license.StateId);
777 - // this.insertUpdateLicenseFrm.controls['phone'].clearValidators();  
778 - // this.insertUpdateLicenseFrm.controls['phone'].setValidators([Validators.required,this.noWhitespaceValidator]);  
779 } 812 }
780 else { 813 else {
781 this.license.StateId = 0; 814 this.license.StateId = 0;
782 this.insertUpdateLicenseFrm.controls['stateId'].setValue(this.license.StateId); 815 this.insertUpdateLicenseFrm.controls['stateId'].setValue(this.license.StateId);
783 - // this.insertUpdateLicenseFrm.controls['phone'].clearValidators();  
784 - // this.insertUpdateLicenseFrm.controls['phone'].setValidators([Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$'),this.noWhitespaceValidator]);  
785 } 816 }
786 - //this.insertUpdateLicenseFrm.controls['phone'].updateValueAndValidity(); 817 + this.UpdatePhoneValidation();
787 } 818 }
788 819
789 OnStateChange(element: any) { 820 OnStateChange(element: any) {
@@ -791,16 +822,11 @@ export class AddLicense implements OnInit { @@ -791,16 +822,11 @@ export class AddLicense implements OnInit {
791 if (this.lstState.find(C => C.Id == this.license.StateId).StateName != "Other") { 822 if (this.lstState.find(C => C.Id == this.license.StateId).StateName != "Other") {
792 this.license.CountryId = this.lstCountry.find(C => C.CountryName == "United States").Id; 823 this.license.CountryId = this.lstCountry.find(C => C.CountryName == "United States").Id;
793 this.insertUpdateLicenseFrm.controls['countryId'].setValue(this.license.CountryId); 824 this.insertUpdateLicenseFrm.controls['countryId'].setValue(this.license.CountryId);
794 - // this.insertUpdateLicenseFrm.controls['phone'].clearValidators();  
795 - // this.insertUpdateLicenseFrm.controls['phone'].setValidators([Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$'),this.noWhitespaceValidator]);  
796 } 825 }
797 else { 826 else {
798 this.license.CountryId = 0; 827 this.license.CountryId = 0;
799 this.insertUpdateLicenseFrm.controls['countryId'].setValue(this.license.CountryId); 828 this.insertUpdateLicenseFrm.controls['countryId'].setValue(this.license.CountryId);
800 - // this.insertUpdateLicenseFrm.controls['phone'].clearValidators();  
801 - // this.insertUpdateLicenseFrm.controls['phone'].setValidators([Validators.required,this.noWhitespaceValidator]);  
802 - }  
803 - // this.insertUpdateLicenseFrm.controls['phone'].updateValueAndValidity(); 829 + }
804 } 830 }
805 831
806 SubscriptionPriceBlur() { 832 SubscriptionPriceBlur() {
400-SOURCECODE/Admin/src/app/components/LicenseEntity/editlicensebasicsettings.component.html
@@ -122,15 +122,16 @@ @@ -122,15 +122,16 @@
122 {{item.StateName}} 122 {{item.StateName}}
123 </option> 123 </option>
124 </select> 124 </select>
  125 + <div *ngIf="updateLicenseBasicSettingsFrm.get('stateId').hasError('min')" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">State is required</div>
125 </div> 126 </div>
126 </div> 127 </div>
127 128
128 <div class="form-group"> 129 <div class="form-group">
129 <label for="inputEmail3" class="col-sm-4 control-label">Country <span class="red">*</span> :</label> 130 <label for="inputEmail3" class="col-sm-4 control-label">Country <span class="red">*</span> :</label>
130 <div class="col-sm-7"> 131 <div class="col-sm-7">
131 - <select class="form-control input-sm" id="Country" formControlName="countryId"> 132 + <select class="form-control input-sm" id="Country" formControlName="countryId" (change)="onCountryChange($event)">
132 <option value="0">Select</option> 133 <option value="0">Select</option>
133 - <option *ngFor="let item of lstCountry" value="{{item.Id}}"> 134 + <option *ngFor="let item of lstCountry" [value]="item.Id">
134 {{item.CountryName}} 135 {{item.CountryName}}
135 </option> 136 </option>
136 </select> 137 </select>
@@ -138,12 +139,12 @@ @@ -138,12 +139,12 @@
138 </div> 139 </div>
139 140
140 <div class="form-group"> 141 <div class="form-group">
141 - <label for="inputEmail3" class="col-sm-4 control-label">Phone <span class="red">*</span> :</label> 142 + <label for="Phone" class="col-sm-4 control-label">Phone <span class="red">*</span> :</label>
142 <div class="col-sm-7"> 143 <div class="col-sm-7">
143 <input type="text" class="form-control input-sm" id="Phone" formControlName="phone" maxlength="30" (keyup)="onKeyUp($event)" (keydown.space)="$event.preventDefault();"> 144 <input type="text" class="form-control input-sm" id="Phone" formControlName="phone" maxlength="30" (keyup)="onKeyUp($event)" (keydown.space)="$event.preventDefault();">
144 - <span class="help-block">(xxx-xxx-xxxx)</span> 145 + <span *ngIf="IsUniteState" class="help-block">(xxx-xxx-xxxx)</span>
145 <div *ngIf="updateLicenseBasicSettingsFrm.controls.phone.hasError('required') && updateLicenseBasicSettingsFrm.controls.phone.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Phone is required</div> 146 <div *ngIf="updateLicenseBasicSettingsFrm.controls.phone.hasError('required') && updateLicenseBasicSettingsFrm.controls.phone.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Phone is required</div>
146 - <div *ngIf="updateLicenseBasicSettingsFrm.controls.phone.hasError('pattern') && updateLicenseBasicSettingsFrm.controls.phone.dirty" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Phone is invalid</div> 147 + <div *ngIf="updateLicenseBasicSettingsFrm.controls.phone.hasError('pattern') && (updateLicenseBasicSettingsFrm.controls.phone.dirty||license.LicenseId)" class="alert alert-danger" style="padding: 2px; margin-bottom: 2px;">Phone is invalid</div>
147 </div> 148 </div>
148 </div> 149 </div>
149 150
400-SOURCECODE/Admin/src/app/components/LicenseEntity/editlicensebasicsettings.component.ts
@@ -32,6 +32,7 @@ export class EditLicenseBasicSettings implements OnInit { @@ -32,6 +32,7 @@ export class EditLicenseBasicSettings implements OnInit {
32 MinusCharater: number; 32 MinusCharater: number;
33 LicenseId:number=0; 33 LicenseId:number=0;
34 AccountNumber:string=''; 34 AccountNumber:string='';
  35 + IsUniteState:Boolean=false;
35 36
36 constructor(private _loadingService: LoadingService,private licenseService: LicenseService, 37 constructor(private _loadingService: LoadingService,private licenseService: LicenseService,
37 public globalService: GlobalService, private router: Router, 38 public globalService: GlobalService, private router: Router,
@@ -53,11 +54,12 @@ export class EditLicenseBasicSettings implements OnInit { @@ -53,11 +54,12 @@ export class EditLicenseBasicSettings implements OnInit {
53 address1: ['', [Validators.required,this.noWhitespaceValidator]], 54 address1: ['', [Validators.required,this.noWhitespaceValidator]],
54 address2: [''], 55 address2: [''],
55 city: ['', [Validators.required,this.noWhitespaceValidator]], 56 city: ['', [Validators.required,this.noWhitespaceValidator]],
56 - stateId: [0], 57 + stateId: [0, [Validators.min(1)]],
57 countryId: [0], 58 countryId: [0],
58 zip: ['', [Validators.required]], 59 zip: ['', [Validators.required]],
59 emailId: ['', [Validators.required]], 60 emailId: ['', [Validators.required]],
60 - phone: ['', [Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$')]], 61 + //phone: ['', [Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$')]],
  62 + phone: ['', [Validators.required]]
61 }); 63 });
62 this.GetCountry(); 64 this.GetCountry();
63 this.GetState(); 65 this.GetState();
@@ -114,57 +116,100 @@ export class EditLicenseBasicSettings implements OnInit { @@ -114,57 +116,100 @@ export class EditLicenseBasicSettings implements OnInit {
114 return isValid ? null: { 'whitespace': true }; 116 return isValid ? null: { 'whitespace': true };
115 117
116 } 118 }
  119 +
117 onKeyUp(event: any) { 120 onKeyUp(event: any) {
118 var mobno = event.target.value; 121 var mobno = event.target.value;
119 - var newnum=mobno;  
120 - if(mobno!="" && event.key!="Backspace") 122 + var countryName =$("#Country option:selected").text().trim();
  123 + if(mobno!="" && event.key!="Backspace")
  124 + {
  125 + if(countryName=="United States")
  126 + {
  127 + this.USFormatPhoneNumber(mobno);
  128 + }
  129 + else
121 { 130 {
122 - var tempArr = mobno.split('-');  
123 -  
124 - if(tempArr.length==1)  
125 - {  
126 - var countdigit=tempArr[0].length;  
127 - newnum=tempArr[0];  
128 - if(countdigit==3)  
129 - {  
130 - newnum=tempArr[0]+"-";  
131 - }  
132 - else if(countdigit>3)  
133 - {  
134 - newnum=tempArr[0].substr(0,3)+"-"+tempArr[0].substr(3,1);  
135 - }  
136 -  
137 - }  
138 - else if(tempArr.length==2)  
139 - {  
140 - newnum=tempArr[0]+"-"+tempArr[1];  
141 - var countdigit=tempArr[1].length;  
142 - if(countdigit==3)  
143 - {  
144 - newnum=tempArr[0]+"-"+tempArr[1]+"-";  
145 - }  
146 - else if(countdigit>3)  
147 - {  
148 - newnum= tempArr[0]+"-"+tempArr[1].substr(0,3)+"-"+tempArr[1].substr(3,1);  
149 - }  
150 - }  
151 - else  
152 - {  
153 - newnum=tempArr[0]+"-"+tempArr[1]+"-"+tempArr[2];  
154 - } 131 + this.OtherFormatPhoneNumber(mobno);
  132 + }
  133 +}
  134 +
  135 +};
155 136
156 - }  
157 - this.updateLicenseBasicSettingsFrm.controls['phone'].setValue(newnum);  
158 - 137 +OtherFormatPhoneNumber(mobno:any)
  138 +{
  139 + //var regex = /\d+/g;
  140 + //var matches = mobno.match(regex); //extract digit only
  141 + //var currentNum= matches==null?"" :matches.join('');
  142 + this.updateLicenseBasicSettingsFrm.controls['phone'].setValue(mobno);
  143 +}
  144 +
  145 +USFormatPhoneNumber(mobno:any)
  146 +{
  147 + var newformat="";
  148 + if(mobno!="" && mobno!=null)
  149 + {
  150 + var regex = /\d+/g;
  151 + var matches = mobno.match(regex); //extract digit only
  152 + var currentNum= matches==null?"" :matches.join('');
  153 +
  154 + for(var ind=0;ind<currentNum.length;ind++)
  155 + {
  156 + if(newformat.length==3)
  157 + {
  158 + newformat=newformat+"-";
  159 + }
  160 + else if(newformat.length==7)
  161 + {
  162 + newformat=newformat+"-";
  163 + }
  164 + newformat=newformat+currentNum[ind];
  165 + }
  166 +
  167 + }
  168 + this.updateLicenseBasicSettingsFrm.controls['phone'].setValue(newformat);
  169 +}
  170 +
  171 +//get Property
  172 +get PhoneNumber() {
  173 + return this.updateLicenseBasicSettingsFrm.get('phone');
  174 +}
  175 +onCountryChange(event: any) {
  176 + //let contryName = event.target.options[event.target.options.selectedIndex].text;
  177 + this.UpdatePhoneValidation()
159 }; 178 };
160 179
  180 +UpdatePhoneValidation()
  181 +{
  182 + var phoneno=this.PhoneNumber.value==null?"":this.PhoneNumber.value;
  183 +
  184 + var countryName =$("#Country option:selected").text().trim();
  185 + if(countryName=="United States")
  186 + {
  187 + // validate first phone number
  188 + this.IsUniteState=true;
  189 + this.PhoneNumber.setValidators([Validators.required, Validators.pattern('^([0-9]{3})-([0-9]{3})-([0-9]{4})$')]);
  190 + this.PhoneNumber.updateValueAndValidity();
  191 + this.USFormatPhoneNumber(phoneno);
  192 + }
  193 + else
  194 + {
  195 + this.IsUniteState=false;
  196 + // this.PhoneNumber.setValidators([Validators.required, Validators.pattern('^[0-9]*$')]);
  197 + this.PhoneNumber.setValidators([Validators.required]);
  198 + this.PhoneNumber.updateValueAndValidity();
  199 + this.OtherFormatPhoneNumber(phoneno);
  200 + }
  201 +
  202 +}
  203 +
161 openModal(template: TemplateRef<any>) { 204 openModal(template: TemplateRef<any>) {
162 this.modalRef = this.modalService.show(template); 205 this.modalRef = this.modalService.show(template);
163 } 206 }
164 207
165 GetCountry() { 208 GetCountry() {
166 this.licenseService.GetCountry() 209 this.licenseService.GetCountry()
167 - .subscribe(y => { this.lstCountry = y; }, error => this.error = <any>error); 210 + .subscribe(y => {
  211 + this.lstCountry = y;
  212 + }, error => this.error = <any>error);
168 } 213 }
169 214
170 GetState() { 215 GetState() {
@@ -207,6 +252,8 @@ export class EditLicenseBasicSettings implements OnInit { @@ -207,6 +252,8 @@ export class EditLicenseBasicSettings implements OnInit {
207 this.updateLicenseBasicSettingsFrm.controls['emailId'].setValue(this.license.EmailId); 252 this.updateLicenseBasicSettingsFrm.controls['emailId'].setValue(this.license.EmailId);
208 this.updateLicenseBasicSettingsFrm.controls['phone'].setValue(this.license.Phone); 253 this.updateLicenseBasicSettingsFrm.controls['phone'].setValue(this.license.Phone);
209 this._loadingService.HideLoading("global-loading"); 254 this._loadingService.HideLoading("global-loading");
  255 +
  256 + this.UpdatePhoneValidation();
210 }, 257 },
211 error => this.error = <any>error); 258 error => this.error = <any>error);
212 } 259 }
400-SOURCECODE/Admin/src/app/components/LicenseEntity/licenseAgreement.component.html 0 โ†’ 100644
  1 +<!-- main-heading -->
  2 +<div class="row" style="margin-right: auto;">
  3 +
  4 +<div class="col-sm-12 pageHeading" style="margin-left: 15px;">
  5 + <h4>Product License</h4>
  6 +</div>
  7 +
  8 +<!-- container -->
  9 +<div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
  10 + <div class="container-fluid main-full">
  11 + <div class="row">
  12 +
  13 + <div class="well">
  14 + <div class="row">
  15 + <div class="col-sm-12">
  16 + <div class="panel-body">
  17 + <div class="form-horizontal" id="accountsection">
  18 + <div class="form-group">
  19 + <label for="inputEmail3" class="col-sm-3 control-label">Select Account :</label>
  20 + <div class="col-sm-7">
  21 + <select id='accountSelect'>
  22 + <option *ngFor="let item of tempLstAccountNumbers" [value]="item.m_Item1">{{item.m_Item2}}</option>
  23 + </select>
  24 + </div>
  25 + </div>
  26 + </div>
  27 + <!-- form -->
  28 + <form class="form-horizontal" [formGroup]="LicenseAgreementFrm">
  29 +
  30 + <div class="row">
  31 + <input type="hidden" formControlName="licenseId" />
  32 + <input type="hidden" formControlName="licenseTypeId" />
  33 + <input type="hidden" formControlName="accountTypeId" />
  34 + <input type="hidden" formControlName="stateId" />
  35 + <input type="hidden" formControlName="countryId" />
  36 + </div>
  37 +
  38 + <div class="form-group">
  39 + <label class="col-sm-3 control-label">License Type :</label>
  40 + <div class="col-sm-7">
  41 + <input type="text" class="form-control input-sm" id="licenseTypeName" formControlName="licenseTypeName" disabled>
  42 + </div>
  43 + </div>
  44 +
  45 + <div class="form-group">
  46 + <div class="col-sm-7 col-sm-offset-3" *ngIf="(license.LicenseId > 0 && this.LicenseAgreementFrm.controls['licenseTypeId'].value != 5 )">
  47 + <div class="table-responsive">
  48 + <table class="table table-condensed table-bordered table-striped table-hover marginTop10">
  49 + <thead>
  50 + <tr>
  51 + <th class="col-sm-9">Product</th>
  52 + <th *ngIf="(this.LicenseAgreementFrm.controls['licenseTypeId'].value != 3 )">No of Login</th>
  53 + </tr>
  54 + </thead>
  55 + <tbody>
  56 + <tr *ngFor="let item of this.LicenseAgreementFrm.controls['editionLoginArr'].value; let i = index">
  57 + <td *ngIf="item.Checked==1 &&(item.Login>0 ||this.LicenseAgreementFrm.controls['licenseTypeId'].value == 3) ">{{item.Title}}</td>
  58 + <td *ngIf="item.Checked==1 && item.Login>0 && (this.LicenseAgreementFrm.controls['licenseTypeId'].value != 3 )">
  59 + <input type="text" maxlength="8" style="width: 100px;" contenteditable="true" [(contenteditableModel)]="item.Login" NumberOnly disabled>
  60 + </td>
  61 + </tr>
  62 + </tbody>
  63 + </table>
  64 + </div>
  65 + </div>
  66 + </div>
  67 +
  68 + <div class="form-group">
  69 + <label for="inputPassword3" class="col-sm-3 control-label">Account No :</label>
  70 + <div class="col-sm-7">
  71 + <input type="text" class="form-control input-sm" id="AccountNo" formControlName="accountNumber" disabled>
  72 + </div>
  73 + </div>
  74 +
  75 + <div class="form-group">
  76 + <label for="inputPassword3" class="col-sm-3 control-label">Licensee First Name :</label>
  77 + <div class="col-sm-7">
  78 + <input type="text" class="form-control input-sm" id="LicenseeFirstName" formControlName="licenseeFirstName" disabled>
  79 + </div>
  80 + </div>
  81 +
  82 + <div class="form-group">
  83 + <label for="inputEmail3" class="col-sm-3 control-label">Licensee Last Name :</label>
  84 + <div class="col-sm-7">
  85 + <input type="text" class="form-control input-sm" id="LicenseelastName" formControlName="licenseeLastName" disabled>
  86 + </div>
  87 + </div>
  88 +
  89 + <div class="form-group">
  90 + <label for="inputEmail3" class="col-sm-3 control-label">Account Type :</label>
  91 + <div class="col-sm-7">
  92 + <input type="text" class="form-control input-sm" id="accountTypeName" formControlName="accountTypeName" disabled>
  93 + </div>
  94 + </div>
  95 +
  96 + <div class="form-group">
  97 + <label for="inputEmail3" class="col-sm-3 control-label">Institution Name :</label>
  98 + <div class="col-sm-7">
  99 + <input type="text" class="form-control input-sm" id="InstitutionName" formControlName="institutionName" disabled>
  100 + </div>
  101 + </div>
  102 +
  103 + <div class="form-group">
  104 + <label for="inputEmail3" class="col-sm-3 control-label">Email ID :</label>
  105 + <div class="col-sm-7">
  106 + <input type="text" class="form-control input-sm" id="Email" formControlName="emailId" disabled>
  107 + </div>
  108 + </div>
  109 +
  110 + <div class="form-group">
  111 + <label for="inputEmail3" class="col-sm-3 control-label">Address :</label>
  112 + <div class="col-sm-7">
  113 + <input type="text" class="form-control input-sm" id="Address" formControlName="address1" disabled>
  114 + </div>
  115 + </div>
  116 +
  117 + <div class="form-group">
  118 + <label for="inputEmail3" class="col-sm-3 control-label">City :</label>
  119 + <div class="col-sm-7">
  120 + <input type="text" class="form-control input-sm" id="City" formControlName="city" disabled>
  121 + </div>
  122 + </div>
  123 +
  124 + <div class="form-group">
  125 + <label for="inputEmail3" class="col-sm-3 control-label">Zip :</label>
  126 + <div class="col-sm-7">
  127 + <input type="text" class="form-control input-sm" id="Zip" formControlName="zip" disabled>
  128 + </div>
  129 + </div>
  130 +
  131 + <div class="form-group">
  132 + <label for="inputEmail3" class="col-sm-3 control-label">State (only U.S.) :</label>
  133 + <div class="col-sm-7">
  134 + <input type="text" class="form-control input-sm" id="stateName" formControlName="stateName" disabled>
  135 + </div>
  136 + </div>
  137 +
  138 + <div class="form-group">
  139 + <label for="inputEmail3" class="col-sm-3 control-label">Country :</label>
  140 + <div class="col-sm-7">
  141 + <input type="text" class="form-control input-sm" id="countryName" formControlName="countryName" disabled>
  142 + </div>
  143 + </div>
  144 +
  145 + <div class="form-group">
  146 + <label for="inputEmail3" class="col-sm-3 control-label">Phone :</label>
  147 + <div class="col-sm-7">
  148 + <input type="text" class="form-control input-sm" id="Phone" formControlName="phone" disabled>
  149 + </div>
  150 + </div>
  151 +
  152 + <div class="row">
  153 + <div class="col-sm-12 marginTop20 text-center">
  154 + <button class="btn btn-primary btn-sm" type="button" (click)="CloseLicense()"><i class="fa fa-plus-circle "></i> Cancel</button>
  155 + </div>
  156 + </div>
  157 +
  158 + </form>
  159 +
  160 + </div>
  161 + </div>
  162 + </div>
  163 + </div>
  164 + </div>
  165 + </div>
  166 + </div>
  167 +</div>
  168 +
400-SOURCECODE/Admin/src/app/components/LicenseEntity/licenseAgreement.component.ts 0 โ†’ 100644
  1 +import { Component, OnInit, AfterViewInit, Input, Output, EventEmitter, Pipe, PipeTransform,HostListener, TemplateRef } from '@angular/core';
  2 +import { LicenseService } from './license.service';
  3 +import { Router } from '@angular/router';
  4 +import { GlobalService } from '../../shared/global';
  5 +import { FormControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
  6 +import { License } from '../userentity/datamodel';
  7 +import { ConfirmService } from '../../shared/confirm/confirm.service';
  8 +import { LoadingService } from '../../shared/loading.service';
  9 +import * as jQuery from 'jquery';
  10 +declare var $:JQueryStatic;
  11 +@Component({
  12 + templateUrl: './licenseAgreement.component.html'
  13 +})
  14 +
  15 +export class licenseAgreement implements OnInit {
  16 +
  17 + lstLicenceType: any;
  18 + lstCountry: any;
  19 + lstState: any;
  20 + lstLicense: any;
  21 + lstAccountType: any;
  22 + lstEdition: any;
  23 + lstEditionLogins: any;
  24 + license: License;
  25 + LicenseAgreementFrm: FormGroup;
  26 + error: any;
  27 + tempLstAccountNumbers: any;
  28 + UserType:number;
  29 + constructor(private _loadingService: LoadingService,private licenseService: LicenseService, private globalService: GlobalService,
  30 + private fb: FormBuilder, private router: Router) {
  31 + this.UserType =this.globalService.UserType;
  32 + }
  33 +
  34 + ngOnInit(): void {
  35 + this._loadingService.ShowLoading("global-loading");
  36 + if( this.UserType<=2)
  37 + {
  38 + $('#accountSelect').chosen({allow_single_deselect:true,width:'300px',placeholder_text_single:'Select Account',search_contains:true});
  39 + }
  40 + else
  41 + {
  42 + $("#accountsection").css("display","none");
  43 + }
  44 +
  45 +
  46 + this.license = new License();
  47 + this.license.LicenseId=0;
  48 + this.UserType =this.globalService.UserType;
  49 + this.LicenseAgreementFrm = this.fb.group({
  50 + licenseId: [0],
  51 + accountNumber: [''],
  52 + accountTypeId: [0],
  53 + accountTypeName: [''],
  54 + licenseeFirstName: [''],
  55 + licenseeLastName: [''],
  56 + licenseTypeId: [1],
  57 + licenseTypeName: [''],
  58 + institutionName: [''],
  59 + address1: [''],
  60 + address2: [''],
  61 + city: [''],
  62 + stateId: [0],
  63 + stateName: [''],
  64 + countryId: [0],
  65 + countryName: [''],
  66 + zip: [''],
  67 + emailId: [''],
  68 + phone: [''],
  69 + editionLoginArr: this.fb.array([]),
  70 + editionLogins: ['']
  71 + });
  72 +
  73 + this.GetLicenseType();
  74 + this.GetState();
  75 + this.GetAccountType();
  76 + this.GetCountry();
  77 +
  78 + this.licenseService.GetEditions()
  79 + .subscribe(x => {
  80 + this.lstEdition = x;
  81 + }, error => this.error = <any>error);
  82 +
  83 +
  84 + if (this.UserType <=2) {
  85 + this._loadingService.ShowLoading("global-loading");
  86 + this.GetLicenseAccounts();
  87 + }
  88 +
  89 + $('#accountSelect')
  90 + .on('change', (e, args) => {
  91 + var selectedValue = Number(args.selected);
  92 + var selectedText= $(".chosen-single span" ).text();
  93 + this.AccountNumberChanged(selectedValue,selectedText);
  94 + });
  95 +
  96 + }
  97 +
  98 + GetLicenseType() {
  99 + this.licenseService.GetLicenceType()
  100 + .subscribe(x => {
  101 + this.lstLicenceType = x;
  102 + }, error => this.error = <any>error);
  103 + }
  104 +
  105 + GetAccountType() {
  106 + this.licenseService.GetAccountType()
  107 + .subscribe(x => {
  108 + this.lstAccountType = x;
  109 + }, error => this.error = <any>error);
  110 + }
  111 +
  112 + GetState() {
  113 + this.licenseService.GetState()
  114 + .subscribe(st => {
  115 + this.lstState = st;
  116 + }, error => this.error = <any>error);
  117 + }
  118 +
  119 + GetCountry() {
  120 + this.licenseService.GetCountry()
  121 + .subscribe(y => {
  122 + this.lstCountry = y;
  123 +
  124 + if (this.UserType > 2) {
  125 + //waiting for data
  126 + this.AccountNumberChanged(this.globalService.AccLicId,this.globalService.AccountNumber);
  127 + }
  128 +
  129 + }, error => this.error = <any>error);
  130 + }
  131 +
  132 + GetLicenseAccounts() {
  133 + this.tempLstAccountNumbers=[];
  134 + this.licenseService.GetLicenseAccounts(0)
  135 + .subscribe(st => {
  136 + var newOption = $('<option value=""></option>');
  137 + $('#accountSelect').append(newOption);
  138 + this.tempLstAccountNumbers=st;
  139 + setTimeout(function(){
  140 + $('#accountSelect').trigger('chosen:updated');
  141 + }, 500);
  142 + this._loadingService.HideLoading("global-loading");
  143 +
  144 + }, error => this.error = <any>error);
  145 + }
  146 +
  147 +
  148 + AccountNumberChanged(LicenseId: number,AccountNumber:string) {
  149 +
  150 + this.LicenseAgreementFrm.reset();
  151 + if (LicenseId == 0) {
  152 + return;
  153 + }
  154 + this._loadingService.ShowLoading("global-loading");
  155 +
  156 + this.license.LicenseId = LicenseId;
  157 + this.GetLicenseById();
  158 + }
  159 +
  160 + GetLicenseById() {
  161 + if (this.license.LicenseId != 0) {
  162 + this.licenseService.GetLicenseById(this.license.LicenseId)
  163 + .subscribe(st => {
  164 + this.license = st;
  165 +
  166 + this.LicenseAgreementFrm.controls['licenseId'].setValue(this.license.LicenseId);
  167 + this.LicenseAgreementFrm.controls['licenseTypeId'].setValue(this.license.LicenseTypeId);
  168 + this.LicenseAgreementFrm.controls['accountNumber'].setValue(this.license.AccountNumber);
  169 + this.LicenseAgreementFrm.controls['accountTypeId'].setValue(this.license.AccountTypeId);
  170 + this.LicenseAgreementFrm.controls['licenseeFirstName'].setValue(this.license.LicenseeFirstName);
  171 + this.LicenseAgreementFrm.controls['licenseeLastName'].setValue(this.license.LicenseeLastName);
  172 + this.LicenseAgreementFrm.controls['institutionName'].setValue(this.license.InstitutionName);
  173 + this.LicenseAgreementFrm.controls['address1'].setValue(this.license.Address1);
  174 + this.LicenseAgreementFrm.controls['address2'].setValue(this.license.Address2);
  175 + this.LicenseAgreementFrm.controls['city'].setValue(this.license.City);
  176 + this.LicenseAgreementFrm.controls['stateId'].setValue(this.license.StateId);
  177 + this.LicenseAgreementFrm.controls['countryId'].setValue(this.license.CountryId);
  178 + this.LicenseAgreementFrm.controls['zip'].setValue(this.license.Zip);
  179 + this.LicenseAgreementFrm.controls['emailId'].setValue(this.license.EmailId);
  180 + this.LicenseAgreementFrm.controls['editionLogins'].setValue(this.license.EditionLogins);
  181 +
  182 + this.LicenseAgreementFrm.controls['phone'].setValue(this.license.Phone);
  183 +
  184 + var LicenseType= this.lstLicenceType.find(ft=>ft.Id==this.license.LicenseTypeId).Title;
  185 + var AccountType= this.lstAccountType.find(ft=>ft.Id==this.license.AccountTypeId).Title;
  186 + var state= this.lstState.find(ft=>ft.Id==this.license.StateId).StateName;
  187 + var country= this.lstCountry.find(ft=>ft.Id==this.license.CountryId).CountryName;
  188 +
  189 + this.LicenseAgreementFrm.controls['licenseTypeName'].setValue(LicenseType);
  190 + this.LicenseAgreementFrm.controls['accountTypeName'].setValue(AccountType);
  191 + this.LicenseAgreementFrm.controls['stateName'].setValue(state);
  192 + this.LicenseAgreementFrm.controls['countryName'].setValue(country);
  193 +
  194 + if (this.license.EditionLogins == null) return;
  195 + var TempArr = this.license.EditionLogins.split('|');
  196 + this.lstEditionLogins = new Array();
  197 + this.lstEdition.forEach(element => {
  198 + if (this.license.LicenseTypeId == 4) {
  199 + if (element.Id == 1 || element.Id == 3) {
  200 + var Check: boolean = false;
  201 + TempArr.forEach(elm => {
  202 + var TempInnerArr = elm.split('-');
  203 + if (TempInnerArr[0] == element.Id) {
  204 + this.lstEditionLogins.push({ Id: element.Id, Title: element.Title, Login: parseInt(TempInnerArr[1]), Checked: 1 });
  205 + Check = true;
  206 + }
  207 + });
  208 + if (!Check) {
  209 + this.lstEditionLogins.push({ Id: element.Id, Title: element.Title, Login: 0, Checked: 0 });
  210 + }
  211 + }
  212 + }
  213 + else {
  214 + var Check: boolean = false;
  215 + TempArr.forEach(elm => {
  216 + var TempInnerArr = elm.split('-');
  217 + if (TempInnerArr[0] == element.Id) {
  218 + this.lstEditionLogins.push({ Id: element.Id, Title: element.Title, Login: parseInt(TempInnerArr[1]), Checked: 1 });
  219 + Check = true;
  220 + }
  221 + });
  222 + if (!Check) {
  223 + this.lstEditionLogins.push({ Id: element.Id, Title: element.Title, Login: 0, Checked: 0 });
  224 + }
  225 + }
  226 + });
  227 + this.LicenseAgreementFrm.setControl('editionLoginArr', this.fb.array(this.lstEditionLogins));
  228 +
  229 + this._loadingService.HideLoading("global-loading");
  230 + },
  231 + error => this.error = <any>error);
  232 + }
  233 + }
  234 +
  235 + CloseLicense() {
  236 + this.router.navigate(['/']);
  237 + }
  238 +
  239 +}
400-SOURCECODE/Admin/src/app/components/Reports/expiringsubscriptionreport.component.html
@@ -175,7 +175,7 @@ @@ -175,7 +175,7 @@
175 175
176 <td colspan="6"><b style="color: red;text-align: center; padding-left: 606px;"><span [innerHTML]="NoRecord"></span></b></td> 176 <td colspan="6"><b style="color: red;text-align: center; padding-left: 606px;"><span [innerHTML]="NoRecord"></span></b></td>
177 </tr> 177 </tr>
178 - <tr *ngFor="let esr of lstExpiringSubscriptionReport | orderBy: key : reverse;"> 178 + <tr *ngFor="let esr of lstExpiringSubscriptionReport">
179 <td>{{esr.AccountNumber}}</td> 179 <td>{{esr.AccountNumber}}</td>
180 <td>{{esr.LicenseeName}}</td> 180 <td>{{esr.LicenseeName}}</td>
181 <td>{{esr.LicenseType}}</td> 181 <td>{{esr.LicenseType}}</td>
400-SOURCECODE/Admin/src/app/components/Reports/sitelicenseusagereport.component.ts
@@ -104,7 +104,8 @@ export class SiteLicenseUsageReport implements OnInit { @@ -104,7 +104,8 @@ export class SiteLicenseUsageReport implements OnInit {
104 iLoginTypeId:[0] 104 iLoginTypeId:[0]
105 }); 105 });
106 if (this.global.UserTypeName == "Client Admin" || this.global.UserTypeName == "District Admin") { 106 if (this.global.UserTypeName == "Client Admin" || this.global.UserTypeName == "District Admin") {
107 - this.SiteLicenseUsageReportForm.controls['sAccountNumber'].setValue(this.global.AccountNumber) 107 + this.SiteLicenseUsageReportForm.controls['sAccountNumber'].setValue(this.global.AccountNumber);
  108 + this.SearchField.sAccountNumber=this.global.AccountNumber;
108 this.DisableAccountNumberControl = true; 109 this.DisableAccountNumberControl = true;
109 } 110 }
110 this.GetEdition(); 111 this.GetEdition();
400-SOURCECODE/Admin/src/app/components/Reports/usagereport.component.ts
@@ -112,7 +112,8 @@ export class UsageReport implements OnInit, AfterViewChecked { @@ -112,7 +112,8 @@ export class UsageReport implements OnInit, AfterViewChecked {
112 iCountry: [0] 112 iCountry: [0]
113 }); 113 });
114 if (this.global.UserTypeName == "Client Admin" || this.global.UserTypeName == "District Admin") { 114 if (this.global.UserTypeName == "Client Admin" || this.global.UserTypeName == "District Admin") {
115 - this.UsageReportForm.controls['sAccountNumber'].setValue(this.global.AccountNumber) 115 + this.UsageReportForm.controls['sAccountNumber'].setValue(this.global.AccountNumber);
  116 + this.SearchField.sAccountNumber=this.global.AccountNumber;
116 this.DisableAccountNumberControl = true; 117 this.DisableAccountNumberControl = true;
117 } 118 }
118 this.alerts = ''; 119 this.alerts = '';
@@ -120,7 +121,7 @@ export class UsageReport implements OnInit, AfterViewChecked { @@ -120,7 +121,7 @@ export class UsageReport implements OnInit, AfterViewChecked {
120 this.GetState(); 121 this.GetState();
121 122
122 this.recordCount = 0; 123 this.recordCount = 0;
123 - this.pageNo = 0; 124 + this.pageNo = 1;
124 this.pageLength = 10; 125 this.pageLength = 10;
125 this.pagerComponent = new PagerComponent(); 126 this.pagerComponent = new PagerComponent();
126 127
400-SOURCECODE/Admin/src/app/components/UserEntity/users.component.ts
@@ -156,7 +156,8 @@ export class UsersList implements OnInit, AfterViewChecked { @@ -156,7 +156,8 @@ export class UsersList implements OnInit, AfterViewChecked {
156 { 156 {
157 if(this.global.AccountNumber !=undefined && this.global.AccountNumber !="") 157 if(this.global.AccountNumber !=undefined && this.global.AccountNumber !="")
158 { 158 {
159 - this.Users.controls['AccountNumber'].setValue(this.global.AccountNumber) 159 + this.Users.controls['AccountNumber'].setValue(this.global.AccountNumber);
  160 + this.SearchField.AccountNumber=this.global.AccountNumber;
160 this.DisableAccountNumberControl = true; 161 this.DisableAccountNumberControl = true;
161 } 162 }
162 163
400-SOURCECODE/Admin/src/app/shared/Pager/pager.component.html
1 <div class="row"> 1 <div class="row">
2 - <div class="col-sm-3"> 2 + <div class="col-md-4 col-sm-3">
3 <div class="form-inline marginTop20"> 3 <div class="form-inline marginTop20">
4 <div class="form-group"> 4 <div class="form-group">
5 <label for="PerPage">Item's Per Page</label> 5 <label for="PerPage">Item's Per Page</label>
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 </div> 12 </div>
13 </div> 13 </div>
14 </div> 14 </div>
15 - <div class="col-sm-5"> 15 + <div class="col-md-5 col-sm-5">
16 <nav aria-label="..."> 16 <nav aria-label="...">
17 <ul class="pagination pagination-sm margin-btm0" (click)="PageNumberChange($event.target)"> 17 <ul class="pagination pagination-sm margin-btm0" (click)="PageNumberChange($event.target)">
18 <li [ngClass]="(pageShowList[0] == 1 ? 'disabled' : '')"> 18 <li [ngClass]="(pageShowList[0] == 1 ? 'disabled' : '')">
@@ -40,8 +40,8 @@ @@ -40,8 +40,8 @@
40 </li> 40 </li>
41 </ul> 41 </ul>
42 </nav> 42 </nav>
43 - </div>  
44 - <div class="col-sm-4"> 43 + </div>
  44 + <div class="col-md-3 col-sm-4">
45 <div class="form-inline marginTop20"> 45 <div class="form-inline marginTop20">
46 <div class="form-group"> 46 <div class="form-group">
47 <label for="Page"> 47 <label for="Page">
@@ -56,5 +56,5 @@ @@ -56,5 +56,5 @@
56 </select> 56 </select>
57 </div> 57 </div>
58 </div> 58 </div>
59 - </div>  
60 - </div> 59 + </div>
  60 +</div>
400-SOURCECODE/Admin/src/app/shared/global.ts
@@ -30,6 +30,7 @@ export class GlobalService { @@ -30,6 +30,7 @@ export class GlobalService {
30 SessionId:number=0; 30 SessionId:number=0;
31 isSiteUser:boolean=false; 31 isSiteUser:boolean=false;
32 isAdmin:boolean=false; 32 isAdmin:boolean=false;
  33 + LicenseTypeId:number=0;
33 RemoveColumns: Array<string> = ["Serial_No", "LicenseId","RowNum"] 34 RemoveColumns: Array<string> = ["Serial_No", "LicenseId","RowNum"]
34 error; 35 error;
35 public href: string = ""; 36 public href: string = "";
@@ -58,7 +59,11 @@ export class GlobalService { @@ -58,7 +59,11 @@ export class GlobalService {
58 this.aiaPingInterval=this.loggedInUser.aiaPingInterval; 59 this.aiaPingInterval=this.loggedInUser.aiaPingInterval;
59 this.SessionId=this.loggedInUser.SessionId; 60 this.SessionId=this.loggedInUser.SessionId;
60 this.isSiteUser=this.loggedInUser.isSiteUser; 61 this.isSiteUser=this.loggedInUser.isSiteUser;
61 - this.isAdmin=this.loggedInUser.LicenseId==0?true:false;; 62 + this.isAdmin=this.loggedInUser.LicenseId==0?true:false;
  63 +
  64 + if (this.loggedInUser.LicenseInfo != null) {
  65 + this.LicenseTypeId=this.loggedInUser.LicenseInfo.LicenseTypeId;
  66 + }
62 67
63 } 68 }
64 69
@@ -88,7 +93,7 @@ export class GlobalService { @@ -88,7 +93,7 @@ export class GlobalService {
88 if (this.resourceBaseUrl == this.ProtocolType+"localhost/API/Adminapi/") { 93 if (this.resourceBaseUrl == this.ProtocolType+"localhost/API/Adminapi/") {
89 94
90 if (this.UserTypeName == "Client Admin" || this.UserTypeName == "District Admin") { 95 if (this.UserTypeName == "Client Admin" || this.UserTypeName == "District Admin") {
91 - this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber 96 + this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber.trim();
92 } 97 }
93 if (this.loggedInUser.LicenseInfo == null) { 98 if (this.loggedInUser.LicenseInfo == null) {
94 this.AccLicId = 0; 99 this.AccLicId = 0;
@@ -97,7 +102,7 @@ export class GlobalService { @@ -97,7 +102,7 @@ export class GlobalService {
97 } 102 }
98 else { 103 else {
99 this.AccLicId = this.loggedInUser.LicenseInfo.Id; 104 this.AccLicId = this.loggedInUser.LicenseInfo.Id;
100 - this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber; 105 + this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber.trim();
101 } 106 }
102 107
103 } 108 }
@@ -107,7 +112,7 @@ export class GlobalService { @@ -107,7 +112,7 @@ export class GlobalService {
107 { 112 {
108 this.LiveURL = this.ProtocolType+"interactiveanatomy.com"; 113 this.LiveURL = this.ProtocolType+"interactiveanatomy.com";
109 if (this.UserTypeName == "Client Admin" || this.UserTypeName == "District Admin") { 114 if (this.UserTypeName == "Client Admin" || this.UserTypeName == "District Admin") {
110 - this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber 115 + this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber.trim();
111 this.AccLicId = this.loggedInUser.LicenseInfo.Id; 116 this.AccLicId = this.loggedInUser.LicenseInfo.Id;
112 } 117 }
113 if (this.loggedInUser.LicenseInfo == null) { 118 if (this.loggedInUser.LicenseInfo == null) {
@@ -117,7 +122,7 @@ export class GlobalService { @@ -117,7 +122,7 @@ export class GlobalService {
117 } 122 }
118 else { 123 else {
119 this.AccLicId = this.loggedInUser.LicenseInfo.Id; 124 this.AccLicId = this.loggedInUser.LicenseInfo.Id;
120 - this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber; 125 + this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber.trim();
121 } 126 }
122 } 127 }
123 128
@@ -127,7 +132,7 @@ export class GlobalService { @@ -127,7 +132,7 @@ export class GlobalService {
127 { 132 {
128 this.LiveURL = this.ProtocolType+"qa.beta.interactiveanatomy.com"; 133 this.LiveURL = this.ProtocolType+"qa.beta.interactiveanatomy.com";
129 if (this.UserTypeName == "Client Admin" || this.UserTypeName == "District Admin") { 134 if (this.UserTypeName == "Client Admin" || this.UserTypeName == "District Admin") {
130 - this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber 135 + this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber.trim();
131 this.AccLicId = this.loggedInUser.LicenseInfo.Id; 136 this.AccLicId = this.loggedInUser.LicenseInfo.Id;
132 } 137 }
133 if (this.loggedInUser.LicenseInfo == null) { 138 if (this.loggedInUser.LicenseInfo == null) {
@@ -137,7 +142,7 @@ export class GlobalService { @@ -137,7 +142,7 @@ export class GlobalService {
137 } 142 }
138 else { 143 else {
139 this.AccLicId = this.loggedInUser.LicenseInfo.Id; 144 this.AccLicId = this.loggedInUser.LicenseInfo.Id;
140 - this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber; 145 + this.AccountNumber = this.loggedInUser.LicenseInfo.AccountNumber.trim();;
141 } 146 }
142 } 147 }
143 148
400-SOURCECODE/Admin/src/assets/data/Menu.json
@@ -26,6 +26,12 @@ @@ -26,6 +26,12 @@
26 "SubMenuName": "Change User ID", 26 "SubMenuName": "Change User ID",
27 "SubMenuUrl": "changeuserid", 27 "SubMenuUrl": "changeuserid",
28 "SubMenuStatus": "True" 28 "SubMenuStatus": "True"
  29 + },
  30 + {
  31 + "SubMenuId": "203",
  32 + "SubMenuName": "Product License Agreement",
  33 + "SubMenuUrl": "licenseAgreement",
  34 + "SubMenuStatus": "True"
29 } 35 }
30 ] 36 ]
31 }, 37 },
@@ -35,13 +41,13 @@ @@ -35,13 +41,13 @@
35 "HeaderMenuStatus": "True", 41 "HeaderMenuStatus": "True",
36 "SubMenu": [ 42 "SubMenu": [
37 { 43 {
38 - "SubMenuId": "203", 44 + "SubMenuId": "204",
39 "SubMenuName": "Search License", 45 "SubMenuName": "Search License",
40 "SubMenuUrl": "searchlicense", 46 "SubMenuUrl": "searchlicense",
41 "SubMenuStatus": "True" 47 "SubMenuStatus": "True"
42 }, 48 },
43 { 49 {
44 - "SubMenuId": "204", 50 + "SubMenuId": "205",
45 "SubMenuName": "Add New License", 51 "SubMenuName": "Add New License",
46 "SubMenuUrl": "addlicense", 52 "SubMenuUrl": "addlicense",
47 "SubMenuStatus": "True" 53 "SubMenuStatus": "True"
@@ -55,13 +61,13 @@ @@ -55,13 +61,13 @@
55 "HeaderMenuStatus": "True", 61 "HeaderMenuStatus": "True",
56 "SubMenu": [ 62 "SubMenu": [
57 { 63 {
58 - "SubMenuId": "205", 64 + "SubMenuId": "206",
59 "SubMenuName": "Manage Discount Code", 65 "SubMenuName": "Manage Discount Code",
60 "SubMenuUrl": "managediscountcode", 66 "SubMenuUrl": "managediscountcode",
61 "SubMenuStatus": "True" 67 "SubMenuStatus": "True"
62 }, 68 },
63 { 69 {
64 - "SubMenuId": "206", 70 + "SubMenuId": "207",
65 "SubMenuName": "Subscription Price", 71 "SubMenuName": "Subscription Price",
66 "SubMenuUrl": "subscriptionprice", 72 "SubMenuUrl": "subscriptionprice",
67 "SubMenuStatus": "True" 73 "SubMenuStatus": "True"
@@ -75,25 +81,25 @@ @@ -75,25 +81,25 @@
75 "HeaderMenuStatus": "True", 81 "HeaderMenuStatus": "True",
76 "SubMenu": [ 82 "SubMenu": [
77 { 83 {
78 - "SubMenuId": "207", 84 + "SubMenuId": "208",
79 "SubMenuName": "List User", 85 "SubMenuName": "List User",
80 "SubMenuUrl": "users", 86 "SubMenuUrl": "users",
81 "SubMenuStatus": "True" 87 "SubMenuStatus": "True"
82 }, 88 },
83 { 89 {
84 - "SubMenuId": "208", 90 + "SubMenuId": "209",
85 "SubMenuName": "Add User", 91 "SubMenuName": "Add User",
86 "SubMenuUrl": "adduser", 92 "SubMenuUrl": "adduser",
87 "SubMenuStatus": "True" 93 "SubMenuStatus": "True"
88 }, 94 },
89 { 95 {
90 - "SubMenuId": "209", 96 + "SubMenuId": "210",
91 "SubMenuName": "Unblock User", 97 "SubMenuName": "Unblock User",
92 "SubMenuUrl": "unblockuser", 98 "SubMenuUrl": "unblockuser",
93 "SubMenuStatus": "True" 99 "SubMenuStatus": "True"
94 }, 100 },
95 { 101 {
96 - "SubMenuId": "210", 102 + "SubMenuId": "211",
97 "SubMenuName": "User Group", 103 "SubMenuName": "User Group",
98 "SubMenuUrl": "usergroup", 104 "SubMenuUrl": "usergroup",
99 "SubMenuStatus": "True" 105 "SubMenuStatus": "True"
@@ -107,55 +113,55 @@ @@ -107,55 +113,55 @@
107 "HeaderMenuStatus": "True", 113 "HeaderMenuStatus": "True",
108 "SubMenu": [ 114 "SubMenu": [
109 { 115 {
110 - "SubMenuId": "211", 116 + "SubMenuId": "212",
111 "SubMenuName": "Usage Report", 117 "SubMenuName": "Usage Report",
112 "SubMenuUrl": "usagereport", 118 "SubMenuUrl": "usagereport",
113 "SubMenuStatus": "True" 119 "SubMenuStatus": "True"
114 }, 120 },
115 { 121 {
116 - "SubMenuId": "212", 122 + "SubMenuId": "213",
117 "SubMenuName": "Customer Summary Report", 123 "SubMenuName": "Customer Summary Report",
118 "SubMenuUrl": "customersummaryreport", 124 "SubMenuUrl": "customersummaryreport",
119 "SubMenuStatus": "True" 125 "SubMenuStatus": "True"
120 }, 126 },
121 { 127 {
122 - "SubMenuId": "213", 128 + "SubMenuId": "214",
123 "SubMenuName": "Expiring Subscription Report", 129 "SubMenuName": "Expiring Subscription Report",
124 "SubMenuUrl": "expiringsubscriptionreport", 130 "SubMenuUrl": "expiringsubscriptionreport",
125 "SubMenuStatus": "True" 131 "SubMenuStatus": "True"
126 }, 132 },
127 { 133 {
128 - "SubMenuId": "214", 134 + "SubMenuId": "215",
129 "SubMenuName": "New Subscription Report", 135 "SubMenuName": "New Subscription Report",
130 "SubMenuUrl": "subscriptionreport", 136 "SubMenuUrl": "subscriptionreport",
131 "SubMenuStatus": "True" 137 "SubMenuStatus": "True"
132 }, 138 },
133 { 139 {
134 - "SubMenuId": "215", 140 + "SubMenuId": "216",
135 "SubMenuName": "Subscription Cancellation Report", 141 "SubMenuName": "Subscription Cancellation Report",
136 "SubMenuUrl": "subscriptioncancellationreport", 142 "SubMenuUrl": "subscriptioncancellationreport",
137 "SubMenuStatus": "True" 143 "SubMenuStatus": "True"
138 }, 144 },
139 { 145 {
140 - "SubMenuId": "216", 146 + "SubMenuId": "217",
141 "SubMenuName": "Net AD Subscription Report", 147 "SubMenuName": "Net AD Subscription Report",
142 "SubMenuUrl": "netadsubscriptionreport", 148 "SubMenuUrl": "netadsubscriptionreport",
143 "SubMenuStatus": "True" 149 "SubMenuStatus": "True"
144 }, 150 },
145 { 151 {
146 - "SubMenuId": "217", 152 + "SubMenuId": "218",
147 "SubMenuName": "Site License Usage Report", 153 "SubMenuName": "Site License Usage Report",
148 "SubMenuUrl": "sitelicenseusagereport", 154 "SubMenuUrl": "sitelicenseusagereport",
149 "SubMenuStatus": "True" 155 "SubMenuStatus": "True"
150 }, 156 },
151 { 157 {
152 - "SubMenuId": "218", 158 + "SubMenuId": "219",
153 "SubMenuName": "Discount Code Report", 159 "SubMenuName": "Discount Code Report",
154 "SubMenuUrl": "discountcodereport", 160 "SubMenuUrl": "discountcodereport",
155 "SubMenuStatus": "True" 161 "SubMenuStatus": "True"
156 }, 162 },
157 { 163 {
158 - "SubMenuId": "219", 164 + "SubMenuId": "220",
159 "SubMenuName": "Image Export Report", 165 "SubMenuName": "Image Export Report",
160 "SubMenuUrl": "imageexportreport", 166 "SubMenuUrl": "imageexportreport",
161 "SubMenuStatus": "True" 167 "SubMenuStatus": "True"
@@ -169,7 +175,7 @@ @@ -169,7 +175,7 @@
169 "HeaderMenuStatus": "True", 175 "HeaderMenuStatus": "True",
170 "SubMenu": [ 176 "SubMenu": [
171 { 177 {
172 - "SubMenuId": "220", 178 + "SubMenuId": "221",
173 "SubMenuName": "Add Building Level Account", 179 "SubMenuName": "Add Building Level Account",
174 "SubMenuUrl": "sitelicenseaccount", 180 "SubMenuUrl": "sitelicenseaccount",
175 "SubMenuStatus": "True" 181 "SubMenuStatus": "True"
@@ -183,19 +189,19 @@ @@ -183,19 +189,19 @@
183 "HeaderMenuStatus": "True", 189 "HeaderMenuStatus": "True",
184 "SubMenu": [ 190 "SubMenu": [
185 { 191 {
186 - "SubMenuId": "221", 192 + "SubMenuId": "222",
187 "SubMenuName": "View-Update Profile", 193 "SubMenuName": "View-Update Profile",
188 "SubMenuUrl": "editlicensebasicsettings", 194 "SubMenuUrl": "editlicensebasicsettings",
189 "SubMenuStatus": "True" 195 "SubMenuStatus": "True"
190 }, 196 },
191 { 197 {
192 - "SubMenuId": "222", 198 + "SubMenuId": "223",
193 "SubMenuName": "Manage Modesty Settings", 199 "SubMenuName": "Manage Modesty Settings",
194 "SubMenuUrl": "licensemodestysettings", 200 "SubMenuUrl": "licensemodestysettings",
195 "SubMenuStatus": "True" 201 "SubMenuStatus": "True"
196 }, 202 },
197 { 203 {
198 - "SubMenuId": "223", 204 + "SubMenuId": "224",
199 "SubMenuName": "Manage Module", 205 "SubMenuName": "Manage Module",
200 "SubMenuUrl": "licensemodulesettings", 206 "SubMenuUrl": "licensemodulesettings",
201 "SubMenuStatus": "True" 207 "SubMenuStatus": "True"
@@ -233,6 +239,12 @@ @@ -233,6 +239,12 @@
233 "SubMenuName": "Change User ID", 239 "SubMenuName": "Change User ID",
234 "SubMenuUrl": "changeuserid", 240 "SubMenuUrl": "changeuserid",
235 "SubMenuStatus": "True" 241 "SubMenuStatus": "True"
  242 + },
  243 + {
  244 + "SubMenuId": "203",
  245 + "SubMenuName": "Product License Agreement",
  246 + "SubMenuUrl": "licenseAgreement",
  247 + "SubMenuStatus": "False"
236 } 248 }
237 ] 249 ]
238 }, 250 },
@@ -242,13 +254,13 @@ @@ -242,13 +254,13 @@
242 "HeaderMenuStatus": "True", 254 "HeaderMenuStatus": "True",
243 "SubMenu": [ 255 "SubMenu": [
244 { 256 {
245 - "SubMenuId": "203", 257 + "SubMenuId": "204",
246 "SubMenuName": "Search License", 258 "SubMenuName": "Search License",
247 "SubMenuUrl": "searchlicense", 259 "SubMenuUrl": "searchlicense",
248 "SubMenuStatus": "True" 260 "SubMenuStatus": "True"
249 }, 261 },
250 { 262 {
251 - "SubMenuId": "204", 263 + "SubMenuId": "205",
252 "SubMenuName": "Add New License", 264 "SubMenuName": "Add New License",
253 "SubMenuUrl": "addlicense", 265 "SubMenuUrl": "addlicense",
254 "SubMenuStatus": "True" 266 "SubMenuStatus": "True"
@@ -262,13 +274,13 @@ @@ -262,13 +274,13 @@
262 "HeaderMenuStatus": "True", 274 "HeaderMenuStatus": "True",
263 "SubMenu": [ 275 "SubMenu": [
264 { 276 {
265 - "SubMenuId": "205", 277 + "SubMenuId": "206",
266 "SubMenuName": "Manage Discount Code", 278 "SubMenuName": "Manage Discount Code",
267 "SubMenuUrl": "managediscountcode", 279 "SubMenuUrl": "managediscountcode",
268 "SubMenuStatus": "True" 280 "SubMenuStatus": "True"
269 }, 281 },
270 { 282 {
271 - "SubMenuId": "206", 283 + "SubMenuId": "207",
272 "SubMenuName": "Subscription Price", 284 "SubMenuName": "Subscription Price",
273 "SubMenuUrl": "subscriptionprice", 285 "SubMenuUrl": "subscriptionprice",
274 "SubMenuStatus": "True" 286 "SubMenuStatus": "True"
@@ -282,25 +294,25 @@ @@ -282,25 +294,25 @@
282 "HeaderMenuStatus": "True", 294 "HeaderMenuStatus": "True",
283 "SubMenu": [ 295 "SubMenu": [
284 { 296 {
285 - "SubMenuId": "207", 297 + "SubMenuId": "208",
286 "SubMenuName": "List User", 298 "SubMenuName": "List User",
287 "SubMenuUrl": "users", 299 "SubMenuUrl": "users",
288 "SubMenuStatus": "True" 300 "SubMenuStatus": "True"
289 }, 301 },
290 { 302 {
291 - "SubMenuId": "208", 303 + "SubMenuId": "209",
292 "SubMenuName": "Add User", 304 "SubMenuName": "Add User",
293 "SubMenuUrl": "adduser", 305 "SubMenuUrl": "adduser",
294 "SubMenuStatus": "True" 306 "SubMenuStatus": "True"
295 }, 307 },
296 { 308 {
297 - "SubMenuId": "209", 309 + "SubMenuId": "210",
298 "SubMenuName": "Unblock User", 310 "SubMenuName": "Unblock User",
299 "SubMenuUrl": "unblockuser", 311 "SubMenuUrl": "unblockuser",
300 "SubMenuStatus": "True" 312 "SubMenuStatus": "True"
301 }, 313 },
302 { 314 {
303 - "SubMenuId": "210", 315 + "SubMenuId": "211",
304 "SubMenuName": "User Group", 316 "SubMenuName": "User Group",
305 "SubMenuUrl": "usergroup", 317 "SubMenuUrl": "usergroup",
306 "SubMenuStatus": "True" 318 "SubMenuStatus": "True"
@@ -314,55 +326,55 @@ @@ -314,55 +326,55 @@
314 "HeaderMenuStatus": "True", 326 "HeaderMenuStatus": "True",
315 "SubMenu": [ 327 "SubMenu": [
316 { 328 {
317 - "SubMenuId": "211", 329 + "SubMenuId": "212",
318 "SubMenuName": "Usage Report", 330 "SubMenuName": "Usage Report",
319 "SubMenuUrl": "usagereport", 331 "SubMenuUrl": "usagereport",
320 "SubMenuStatus": "True" 332 "SubMenuStatus": "True"
321 }, 333 },
322 { 334 {
323 - "SubMenuId": "212", 335 + "SubMenuId": "213",
324 "SubMenuName": "Customer Summary Report", 336 "SubMenuName": "Customer Summary Report",
325 "SubMenuUrl": "customersummaryreport", 337 "SubMenuUrl": "customersummaryreport",
326 "SubMenuStatus": "True" 338 "SubMenuStatus": "True"
327 }, 339 },
328 { 340 {
329 - "SubMenuId": "213", 341 + "SubMenuId": "214",
330 "SubMenuName": "Expiring Subscription Report", 342 "SubMenuName": "Expiring Subscription Report",
331 "SubMenuUrl": "expiringsubscriptionreport", 343 "SubMenuUrl": "expiringsubscriptionreport",
332 "SubMenuStatus": "True" 344 "SubMenuStatus": "True"
333 }, 345 },
334 { 346 {
335 - "SubMenuId": "214", 347 + "SubMenuId": "215",
336 "SubMenuName": "New Subscription Report", 348 "SubMenuName": "New Subscription Report",
337 "SubMenuUrl": "subscriptionreport", 349 "SubMenuUrl": "subscriptionreport",
338 "SubMenuStatus": "True" 350 "SubMenuStatus": "True"
339 }, 351 },
340 { 352 {
341 - "SubMenuId": "215", 353 + "SubMenuId": "216",
342 "SubMenuName": "Subscription Cancellation Report", 354 "SubMenuName": "Subscription Cancellation Report",
343 "SubMenuUrl": "subscriptioncancellationreport", 355 "SubMenuUrl": "subscriptioncancellationreport",
344 "SubMenuStatus": "True" 356 "SubMenuStatus": "True"
345 }, 357 },
346 { 358 {
347 - "SubMenuId": "216", 359 + "SubMenuId": "217",
348 "SubMenuName": "Net AD Subscription Report", 360 "SubMenuName": "Net AD Subscription Report",
349 "SubMenuUrl": "netadsubscriptionreport", 361 "SubMenuUrl": "netadsubscriptionreport",
350 "SubMenuStatus": "True" 362 "SubMenuStatus": "True"
351 }, 363 },
352 { 364 {
353 - "SubMenuId": "217", 365 + "SubMenuId": "218",
354 "SubMenuName": "Site License Usage Report", 366 "SubMenuName": "Site License Usage Report",
355 "SubMenuUrl": "sitelicenseusagereport", 367 "SubMenuUrl": "sitelicenseusagereport",
356 "SubMenuStatus": "True" 368 "SubMenuStatus": "True"
357 }, 369 },
358 { 370 {
359 - "SubMenuId": "218", 371 + "SubMenuId": "219",
360 "SubMenuName": "Discount Code Report", 372 "SubMenuName": "Discount Code Report",
361 "SubMenuUrl": "discountcodereport", 373 "SubMenuUrl": "discountcodereport",
362 "SubMenuStatus": "True" 374 "SubMenuStatus": "True"
363 }, 375 },
364 { 376 {
365 - "SubMenuId": "219", 377 + "SubMenuId": "220",
366 "SubMenuName": "Image Export Report", 378 "SubMenuName": "Image Export Report",
367 "SubMenuUrl": "imageexportreport", 379 "SubMenuUrl": "imageexportreport",
368 "SubMenuStatus": "True" 380 "SubMenuStatus": "True"
@@ -376,7 +388,7 @@ @@ -376,7 +388,7 @@
376 "HeaderMenuStatus": "True", 388 "HeaderMenuStatus": "True",
377 "SubMenu": [ 389 "SubMenu": [
378 { 390 {
379 - "SubMenuId": "220", 391 + "SubMenuId": "221",
380 "SubMenuName": "Add Building Level Account", 392 "SubMenuName": "Add Building Level Account",
381 "SubMenuUrl": "sitelicenseaccount", 393 "SubMenuUrl": "sitelicenseaccount",
382 "SubMenuStatus": "True" 394 "SubMenuStatus": "True"
@@ -390,19 +402,19 @@ @@ -390,19 +402,19 @@
390 "HeaderMenuStatus": "True", 402 "HeaderMenuStatus": "True",
391 "SubMenu": [ 403 "SubMenu": [
392 { 404 {
393 - "SubMenuId": "221", 405 + "SubMenuId": "222",
394 "SubMenuName": "View-Update Profile", 406 "SubMenuName": "View-Update Profile",
395 "SubMenuUrl": "editlicensebasicsettings", 407 "SubMenuUrl": "editlicensebasicsettings",
396 "SubMenuStatus": "True" 408 "SubMenuStatus": "True"
397 }, 409 },
398 { 410 {
399 - "SubMenuId": "222", 411 + "SubMenuId": "223",
400 "SubMenuName": "Manage Modesty Settings", 412 "SubMenuName": "Manage Modesty Settings",
401 "SubMenuUrl": "licensemodestysettings", 413 "SubMenuUrl": "licensemodestysettings",
402 "SubMenuStatus": "True" 414 "SubMenuStatus": "True"
403 }, 415 },
404 { 416 {
405 - "SubMenuId": "223", 417 + "SubMenuId": "224",
406 "SubMenuName": "Manage Module", 418 "SubMenuName": "Manage Module",
407 "SubMenuUrl": "licensemodulesettings", 419 "SubMenuUrl": "licensemodulesettings",
408 "SubMenuStatus": "True" 420 "SubMenuStatus": "True"
@@ -440,6 +452,12 @@ @@ -440,6 +452,12 @@
440 "SubMenuName": "Change User ID", 452 "SubMenuName": "Change User ID",
441 "SubMenuUrl": "changeuserid", 453 "SubMenuUrl": "changeuserid",
442 "SubMenuStatus": "True" 454 "SubMenuStatus": "True"
  455 + },
  456 + {
  457 + "SubMenuId": "203",
  458 + "SubMenuName": "Product License Agreement",
  459 + "SubMenuUrl": "licenseAgreement",
  460 + "SubMenuStatus": "True"
443 } 461 }
444 ] 462 ]
445 }, 463 },
@@ -449,13 +467,13 @@ @@ -449,13 +467,13 @@
449 "HeaderMenuStatus": "False", 467 "HeaderMenuStatus": "False",
450 "SubMenu": [ 468 "SubMenu": [
451 { 469 {
452 - "SubMenuId": "203", 470 + "SubMenuId": "204",
453 "SubMenuName": "Search License", 471 "SubMenuName": "Search License",
454 "SubMenuUrl": "searchlicense", 472 "SubMenuUrl": "searchlicense",
455 "SubMenuStatus": "False" 473 "SubMenuStatus": "False"
456 }, 474 },
457 { 475 {
458 - "SubMenuId": "204", 476 + "SubMenuId": "205",
459 "SubMenuName": "Add New License", 477 "SubMenuName": "Add New License",
460 "SubMenuUrl": "addlicense", 478 "SubMenuUrl": "addlicense",
461 "SubMenuStatus": "False" 479 "SubMenuStatus": "False"
@@ -469,13 +487,13 @@ @@ -469,13 +487,13 @@
469 "HeaderMenuStatus": "False", 487 "HeaderMenuStatus": "False",
470 "SubMenu": [ 488 "SubMenu": [
471 { 489 {
472 - "SubMenuId": "205", 490 + "SubMenuId": "206",
473 "SubMenuName": "Manage Discount Code", 491 "SubMenuName": "Manage Discount Code",
474 "SubMenuUrl": "managediscountcode", 492 "SubMenuUrl": "managediscountcode",
475 "SubMenuStatus": "False" 493 "SubMenuStatus": "False"
476 }, 494 },
477 { 495 {
478 - "SubMenuId": "206", 496 + "SubMenuId": "207",
479 "SubMenuName": "Subscription Price", 497 "SubMenuName": "Subscription Price",
480 "SubMenuUrl": "subscriptionprice", 498 "SubMenuUrl": "subscriptionprice",
481 "SubMenuStatus": "False" 499 "SubMenuStatus": "False"
@@ -489,25 +507,25 @@ @@ -489,25 +507,25 @@
489 "HeaderMenuStatus": "True", 507 "HeaderMenuStatus": "True",
490 "SubMenu": [ 508 "SubMenu": [
491 { 509 {
492 - "SubMenuId": "207", 510 + "SubMenuId": "208",
493 "SubMenuName": "List User", 511 "SubMenuName": "List User",
494 "SubMenuUrl": "users", 512 "SubMenuUrl": "users",
495 "SubMenuStatus": "True" 513 "SubMenuStatus": "True"
496 }, 514 },
497 { 515 {
498 - "SubMenuId": "208", 516 + "SubMenuId": "209",
499 "SubMenuName": "Add User", 517 "SubMenuName": "Add User",
500 "SubMenuUrl": "adduser", 518 "SubMenuUrl": "adduser",
501 "SubMenuStatus": "True" 519 "SubMenuStatus": "True"
502 }, 520 },
503 { 521 {
504 - "SubMenuId": "209", 522 + "SubMenuId": "210",
505 "SubMenuName": "Unblock User", 523 "SubMenuName": "Unblock User",
506 "SubMenuUrl": "unblockuser", 524 "SubMenuUrl": "unblockuser",
507 "SubMenuStatus": "True" 525 "SubMenuStatus": "True"
508 }, 526 },
509 { 527 {
510 - "SubMenuId": "210", 528 + "SubMenuId": "211",
511 "SubMenuName": "User Group", 529 "SubMenuName": "User Group",
512 "SubMenuUrl": "usergroup", 530 "SubMenuUrl": "usergroup",
513 "SubMenuStatus": "True" 531 "SubMenuStatus": "True"
@@ -521,55 +539,56 @@ @@ -521,55 +539,56 @@
521 "HeaderMenuStatus": "True", 539 "HeaderMenuStatus": "True",
522 "SubMenu": [ 540 "SubMenu": [
523 { 541 {
524 - "SubMenuId": "211", 542 + "SubMenuId": "212",
525 "SubMenuName": "Usage Report", 543 "SubMenuName": "Usage Report",
526 "SubMenuUrl": "usagereport", 544 "SubMenuUrl": "usagereport",
527 "SubMenuStatus": "True" 545 "SubMenuStatus": "True"
528 }, 546 },
529 { 547 {
530 - "SubMenuId": "212", 548 + "SubMenuId": "213",
531 "SubMenuName": "Customer Summary Report", 549 "SubMenuName": "Customer Summary Report",
532 "SubMenuUrl": "customersummaryreport", 550 "SubMenuUrl": "customersummaryreport",
533 "SubMenuStatus": "False" 551 "SubMenuStatus": "False"
534 }, 552 },
535 { 553 {
536 - "SubMenuId": "213", 554 + "SubMenuId": "214",
537 "SubMenuName": "Expiring Subscription Report", 555 "SubMenuName": "Expiring Subscription Report",
538 "SubMenuUrl": "expiringsubscriptionreport", 556 "SubMenuUrl": "expiringsubscriptionreport",
539 "SubMenuStatus": "False" 557 "SubMenuStatus": "False"
540 }, 558 },
541 { 559 {
542 - "SubMenuId": "214", 560 + "SubMenuId": "215",
543 "SubMenuName": "New Subscription Report", 561 "SubMenuName": "New Subscription Report",
544 "SubMenuUrl": "subscriptionreport", 562 "SubMenuUrl": "subscriptionreport",
545 "SubMenuStatus": "False" 563 "SubMenuStatus": "False"
546 }, 564 },
547 { 565 {
548 - "SubMenuId": "215", 566 + "SubMenuId": "216",
549 "SubMenuName": "Subscription Cancellation Report", 567 "SubMenuName": "Subscription Cancellation Report",
550 "SubMenuUrl": "subscriptioncancellationreport", 568 "SubMenuUrl": "subscriptioncancellationreport",
551 "SubMenuStatus": "False" 569 "SubMenuStatus": "False"
552 }, 570 },
553 { 571 {
554 - "SubMenuId": "216", 572 + "SubMenuId": "217",
555 "SubMenuName": "Net AD Subscription Report", 573 "SubMenuName": "Net AD Subscription Report",
556 "SubMenuUrl": "netadsubscriptionreport", 574 "SubMenuUrl": "netadsubscriptionreport",
557 "SubMenuStatus": "False" 575 "SubMenuStatus": "False"
558 }, 576 },
559 { 577 {
560 - "SubMenuId": "217", 578 + "SubMenuId": "218",
561 "SubMenuName": "Site License Usage Report", 579 "SubMenuName": "Site License Usage Report",
562 "SubMenuUrl": "sitelicenseusagereport", 580 "SubMenuUrl": "sitelicenseusagereport",
  581 + "LicenseTypeId": 1,
563 "SubMenuStatus": "True" 582 "SubMenuStatus": "True"
564 }, 583 },
565 { 584 {
566 - "SubMenuId": "218", 585 + "SubMenuId": "219",
567 "SubMenuName": "Discount Code Report", 586 "SubMenuName": "Discount Code Report",
568 "SubMenuUrl": "discountcodereport", 587 "SubMenuUrl": "discountcodereport",
569 "SubMenuStatus": "False" 588 "SubMenuStatus": "False"
570 }, 589 },
571 { 590 {
572 - "SubMenuId": "219", 591 + "SubMenuId": "220",
573 "SubMenuName": "Image Export Report", 592 "SubMenuName": "Image Export Report",
574 "SubMenuUrl": "imageexportreport", 593 "SubMenuUrl": "imageexportreport",
575 "SubMenuStatus": "False" 594 "SubMenuStatus": "False"
@@ -583,7 +602,7 @@ @@ -583,7 +602,7 @@
583 "HeaderMenuStatus": "False", 602 "HeaderMenuStatus": "False",
584 "SubMenu": [ 603 "SubMenu": [
585 { 604 {
586 - "SubMenuId": "220", 605 + "SubMenuId": "221",
587 "SubMenuName": "Add Building Level Account", 606 "SubMenuName": "Add Building Level Account",
588 "SubMenuUrl": "sitelicenseaccount", 607 "SubMenuUrl": "sitelicenseaccount",
589 "SubMenuStatus": "False" 608 "SubMenuStatus": "False"
@@ -597,19 +616,19 @@ @@ -597,19 +616,19 @@
597 "HeaderMenuStatus": "True", 616 "HeaderMenuStatus": "True",
598 "SubMenu": [ 617 "SubMenu": [
599 { 618 {
600 - "SubMenuId": "221", 619 + "SubMenuId": "222",
601 "SubMenuName": "View-Update Profile", 620 "SubMenuName": "View-Update Profile",
602 "SubMenuUrl": "editlicensebasicsettings", 621 "SubMenuUrl": "editlicensebasicsettings",
603 "SubMenuStatus": "True" 622 "SubMenuStatus": "True"
604 }, 623 },
605 { 624 {
606 - "SubMenuId": "222", 625 + "SubMenuId": "223",
607 "SubMenuName": "Manage Modesty Settings", 626 "SubMenuName": "Manage Modesty Settings",
608 "SubMenuUrl": "licensemodestysettings", 627 "SubMenuUrl": "licensemodestysettings",
609 "SubMenuStatus": "True" 628 "SubMenuStatus": "True"
610 }, 629 },
611 { 630 {
612 - "SubMenuId": "223", 631 + "SubMenuId": "224",
613 "SubMenuName": "Manage Module", 632 "SubMenuName": "Manage Module",
614 "SubMenuUrl": "licensemodulesettings", 633 "SubMenuUrl": "licensemodulesettings",
615 "SubMenuStatus": "False" 634 "SubMenuStatus": "False"
@@ -648,6 +667,12 @@ @@ -648,6 +667,12 @@
648 "SubMenuName": "Change User ID", 667 "SubMenuName": "Change User ID",
649 "SubMenuUrl": "changeuserid", 668 "SubMenuUrl": "changeuserid",
650 "SubMenuStatus": "True" 669 "SubMenuStatus": "True"
  670 + },
  671 + {
  672 + "SubMenuId": "203",
  673 + "SubMenuName": "Product License Agreement",
  674 + "SubMenuUrl": "licenseAgreement",
  675 + "SubMenuStatus": "True"
651 } 676 }
652 ] 677 ]
653 }, 678 },
@@ -657,13 +682,13 @@ @@ -657,13 +682,13 @@
657 "HeaderMenuStatus": "False", 682 "HeaderMenuStatus": "False",
658 "SubMenu": [ 683 "SubMenu": [
659 { 684 {
660 - "SubMenuId": "203", 685 + "SubMenuId": "204",
661 "SubMenuName": "Search License", 686 "SubMenuName": "Search License",
662 "SubMenuUrl": "searchlicense", 687 "SubMenuUrl": "searchlicense",
663 "SubMenuStatus": "False" 688 "SubMenuStatus": "False"
664 }, 689 },
665 { 690 {
666 - "SubMenuId": "204", 691 + "SubMenuId": "205",
667 "SubMenuName": "Add New License", 692 "SubMenuName": "Add New License",
668 "SubMenuUrl": "addlicense", 693 "SubMenuUrl": "addlicense",
669 "SubMenuStatus": "False" 694 "SubMenuStatus": "False"
@@ -677,13 +702,13 @@ @@ -677,13 +702,13 @@
677 "HeaderMenuStatus": "False", 702 "HeaderMenuStatus": "False",
678 "SubMenu": [ 703 "SubMenu": [
679 { 704 {
680 - "SubMenuId": "205", 705 + "SubMenuId": "206",
681 "SubMenuName": "Manage Discount Code", 706 "SubMenuName": "Manage Discount Code",
682 "SubMenuUrl": "managediscountcode", 707 "SubMenuUrl": "managediscountcode",
683 "SubMenuStatus": "False" 708 "SubMenuStatus": "False"
684 }, 709 },
685 { 710 {
686 - "SubMenuId": "206", 711 + "SubMenuId": "207",
687 "SubMenuName": "Subscription Price", 712 "SubMenuName": "Subscription Price",
688 "SubMenuUrl": "subscriptionprice", 713 "SubMenuUrl": "subscriptionprice",
689 "SubMenuStatus": "False" 714 "SubMenuStatus": "False"
@@ -697,25 +722,25 @@ @@ -697,25 +722,25 @@
697 "HeaderMenuStatus": "True", 722 "HeaderMenuStatus": "True",
698 "SubMenu": [ 723 "SubMenu": [
699 { 724 {
700 - "SubMenuId": "207", 725 + "SubMenuId": "208",
701 "SubMenuName": "List User", 726 "SubMenuName": "List User",
702 "SubMenuUrl": "users", 727 "SubMenuUrl": "users",
703 "SubMenuStatus": "True" 728 "SubMenuStatus": "True"
704 }, 729 },
705 { 730 {
706 - "SubMenuId": "208", 731 + "SubMenuId": "209",
707 "SubMenuName": "Add User", 732 "SubMenuName": "Add User",
708 "SubMenuUrl": "adduser", 733 "SubMenuUrl": "adduser",
709 "SubMenuStatus": "True" 734 "SubMenuStatus": "True"
710 }, 735 },
711 { 736 {
712 - "SubMenuId": "209", 737 + "SubMenuId": "210",
713 "SubMenuName": "Unblock User", 738 "SubMenuName": "Unblock User",
714 "SubMenuUrl": "unblockuser", 739 "SubMenuUrl": "unblockuser",
715 "SubMenuStatus": "True" 740 "SubMenuStatus": "True"
716 }, 741 },
717 { 742 {
718 - "SubMenuId": "210", 743 + "SubMenuId": "211",
719 "SubMenuName": "User Group", 744 "SubMenuName": "User Group",
720 "SubMenuUrl": "usergroup", 745 "SubMenuUrl": "usergroup",
721 "SubMenuStatus": "False" 746 "SubMenuStatus": "False"
@@ -729,55 +754,55 @@ @@ -729,55 +754,55 @@
729 "HeaderMenuStatus": "True", 754 "HeaderMenuStatus": "True",
730 "SubMenu": [ 755 "SubMenu": [
731 { 756 {
732 - "SubMenuId": "211", 757 + "SubMenuId": "212",
733 "SubMenuName": "Usage Report", 758 "SubMenuName": "Usage Report",
734 "SubMenuUrl": "usagereport", 759 "SubMenuUrl": "usagereport",
735 "SubMenuStatus": "True" 760 "SubMenuStatus": "True"
736 }, 761 },
737 { 762 {
738 - "SubMenuId": "212", 763 + "SubMenuId": "213",
739 "SubMenuName": "Customer Summary Report", 764 "SubMenuName": "Customer Summary Report",
740 "SubMenuUrl": "customersummaryreport", 765 "SubMenuUrl": "customersummaryreport",
741 "SubMenuStatus": "False" 766 "SubMenuStatus": "False"
742 }, 767 },
743 { 768 {
744 - "SubMenuId": "213", 769 + "SubMenuId": "214",
745 "SubMenuName": "Expiring Subscription Report", 770 "SubMenuName": "Expiring Subscription Report",
746 "SubMenuUrl": "expiringsubscriptionreport", 771 "SubMenuUrl": "expiringsubscriptionreport",
747 "SubMenuStatus": "False" 772 "SubMenuStatus": "False"
748 }, 773 },
749 { 774 {
750 - "SubMenuId": "214", 775 + "SubMenuId": "215",
751 "SubMenuName": "New Subscription Report", 776 "SubMenuName": "New Subscription Report",
752 "SubMenuUrl": "subscriptionreport", 777 "SubMenuUrl": "subscriptionreport",
753 "SubMenuStatus": "False" 778 "SubMenuStatus": "False"
754 }, 779 },
755 { 780 {
756 - "SubMenuId": "215", 781 + "SubMenuId": "216",
757 "SubMenuName": "Subscription Cancellation Report", 782 "SubMenuName": "Subscription Cancellation Report",
758 "SubMenuUrl": "subscriptioncancellationreport", 783 "SubMenuUrl": "subscriptioncancellationreport",
759 "SubMenuStatus": "False" 784 "SubMenuStatus": "False"
760 }, 785 },
761 { 786 {
762 - "SubMenuId": "216", 787 + "SubMenuId": "217",
763 "SubMenuName": "Net AD Subscription Report", 788 "SubMenuName": "Net AD Subscription Report",
764 "SubMenuUrl": "netadsubscriptionreport", 789 "SubMenuUrl": "netadsubscriptionreport",
765 "SubMenuStatus": "False" 790 "SubMenuStatus": "False"
766 }, 791 },
767 { 792 {
768 - "SubMenuId": "217", 793 + "SubMenuId": "218",
769 "SubMenuName": "Site License Usage Report", 794 "SubMenuName": "Site License Usage Report",
770 "SubMenuUrl": "sitelicenseusagereport", 795 "SubMenuUrl": "sitelicenseusagereport",
771 "SubMenuStatus": "False" 796 "SubMenuStatus": "False"
772 }, 797 },
773 { 798 {
774 - "SubMenuId": "218", 799 + "SubMenuId": "219",
775 "SubMenuName": "Discount Code Report", 800 "SubMenuName": "Discount Code Report",
776 "SubMenuUrl": "discountcodereport", 801 "SubMenuUrl": "discountcodereport",
777 "SubMenuStatus": "False" 802 "SubMenuStatus": "False"
778 }, 803 },
779 { 804 {
780 - "SubMenuId": "219", 805 + "SubMenuId": "220",
781 "SubMenuName": "Image Export Report", 806 "SubMenuName": "Image Export Report",
782 "SubMenuUrl": "imageexportreport", 807 "SubMenuUrl": "imageexportreport",
783 "SubMenuStatus": "False" 808 "SubMenuStatus": "False"
@@ -791,7 +816,7 @@ @@ -791,7 +816,7 @@
791 "HeaderMenuStatus": "True", 816 "HeaderMenuStatus": "True",
792 "SubMenu": [ 817 "SubMenu": [
793 { 818 {
794 - "SubMenuId": "220", 819 + "SubMenuId": "221",
795 "SubMenuName": "Add Building Level Account", 820 "SubMenuName": "Add Building Level Account",
796 "SubMenuUrl": "sitelicenseaccount", 821 "SubMenuUrl": "sitelicenseaccount",
797 "SubMenuStatus": "True" 822 "SubMenuStatus": "True"
@@ -805,19 +830,19 @@ @@ -805,19 +830,19 @@
805 "HeaderMenuStatus": "True", 830 "HeaderMenuStatus": "True",
806 "SubMenu": [ 831 "SubMenu": [
807 { 832 {
808 - "SubMenuId": "221", 833 + "SubMenuId": "222",
809 "SubMenuName": "View-Update Profile", 834 "SubMenuName": "View-Update Profile",
810 "SubMenuUrl": "editlicensebasicsettings", 835 "SubMenuUrl": "editlicensebasicsettings",
811 "SubMenuStatus": "True" 836 "SubMenuStatus": "True"
812 }, 837 },
813 { 838 {
814 - "SubMenuId": "222", 839 + "SubMenuId": "223",
815 "SubMenuName": "Manage Modesty Settings", 840 "SubMenuName": "Manage Modesty Settings",
816 "SubMenuUrl": "licensemodestysettings", 841 "SubMenuUrl": "licensemodestysettings",
817 "SubMenuStatus": "True" 842 "SubMenuStatus": "True"
818 }, 843 },
819 { 844 {
820 - "SubMenuId": "223", 845 + "SubMenuId": "224",
821 "SubMenuName": "Manage Module", 846 "SubMenuName": "Manage Module",
822 "SubMenuUrl": "licensemodulesettings", 847 "SubMenuUrl": "licensemodulesettings",
823 "SubMenuStatus": "False" 848 "SubMenuStatus": "False"
@@ -855,6 +880,12 @@ @@ -855,6 +880,12 @@
855 "SubMenuName": "Change User ID", 880 "SubMenuName": "Change User ID",
856 "SubMenuUrl": "changeuserid", 881 "SubMenuUrl": "changeuserid",
857 "SubMenuStatus": "True" 882 "SubMenuStatus": "True"
  883 + },
  884 + {
  885 + "SubMenuId": "203",
  886 + "SubMenuName": "Product License Agreement",
  887 + "SubMenuUrl": "licenseAgreement",
  888 + "SubMenuStatus": "True"
858 } 889 }
859 ] 890 ]
860 }, 891 },
@@ -864,13 +895,13 @@ @@ -864,13 +895,13 @@
864 "HeaderMenuStatus": "False", 895 "HeaderMenuStatus": "False",
865 "SubMenu": [ 896 "SubMenu": [
866 { 897 {
867 - "SubMenuId": "203", 898 + "SubMenuId": "204",
868 "SubMenuName": "Search License", 899 "SubMenuName": "Search License",
869 "SubMenuUrl": "searchlicense", 900 "SubMenuUrl": "searchlicense",
870 "SubMenuStatus": "False" 901 "SubMenuStatus": "False"
871 }, 902 },
872 { 903 {
873 - "SubMenuId": "204", 904 + "SubMenuId": "205",
874 "SubMenuName": "Add New License", 905 "SubMenuName": "Add New License",
875 "SubMenuUrl": "addlicense", 906 "SubMenuUrl": "addlicense",
876 "SubMenuStatus": "False" 907 "SubMenuStatus": "False"
@@ -884,13 +915,13 @@ @@ -884,13 +915,13 @@
884 "HeaderMenuStatus": "False", 915 "HeaderMenuStatus": "False",
885 "SubMenu": [ 916 "SubMenu": [
886 { 917 {
887 - "SubMenuId": "205", 918 + "SubMenuId": "206",
888 "SubMenuName": "Manage Discount Code", 919 "SubMenuName": "Manage Discount Code",
889 "SubMenuUrl": "managediscountcode", 920 "SubMenuUrl": "managediscountcode",
890 "SubMenuStatus": "False" 921 "SubMenuStatus": "False"
891 }, 922 },
892 { 923 {
893 - "SubMenuId": "206", 924 + "SubMenuId": "207",
894 "SubMenuName": "Subscription Price", 925 "SubMenuName": "Subscription Price",
895 "SubMenuUrl": "subscriptionprice", 926 "SubMenuUrl": "subscriptionprice",
896 "SubMenuStatus": "False" 927 "SubMenuStatus": "False"
@@ -904,25 +935,25 @@ @@ -904,25 +935,25 @@
904 "HeaderMenuStatus": "False", 935 "HeaderMenuStatus": "False",
905 "SubMenu": [ 936 "SubMenu": [
906 { 937 {
907 - "SubMenuId": "207", 938 + "SubMenuId": "208",
908 "SubMenuName": "List User", 939 "SubMenuName": "List User",
909 "SubMenuUrl": "users", 940 "SubMenuUrl": "users",
910 "SubMenuStatus": "False" 941 "SubMenuStatus": "False"
911 }, 942 },
912 { 943 {
913 - "SubMenuId": "208", 944 + "SubMenuId": "209",
914 "SubMenuName": "Add User", 945 "SubMenuName": "Add User",
915 "SubMenuUrl": "adduser", 946 "SubMenuUrl": "adduser",
916 "SubMenuStatus": "True" 947 "SubMenuStatus": "True"
917 }, 948 },
918 { 949 {
919 - "SubMenuId": "209", 950 + "SubMenuId": "210",
920 "SubMenuName": "Unblock User", 951 "SubMenuName": "Unblock User",
921 "SubMenuUrl": "unblockuser", 952 "SubMenuUrl": "unblockuser",
922 "SubMenuStatus": "False" 953 "SubMenuStatus": "False"
923 }, 954 },
924 { 955 {
925 - "SubMenuId": "210", 956 + "SubMenuId": "211",
926 "SubMenuName": "User Group", 957 "SubMenuName": "User Group",
927 "SubMenuUrl": "usergroup", 958 "SubMenuUrl": "usergroup",
928 "SubMenuStatus": "False" 959 "SubMenuStatus": "False"
@@ -936,55 +967,55 @@ @@ -936,55 +967,55 @@
936 "HeaderMenuStatus": "False", 967 "HeaderMenuStatus": "False",
937 "SubMenu": [ 968 "SubMenu": [
938 { 969 {
939 - "SubMenuId": "211", 970 + "SubMenuId": "212",
940 "SubMenuName": "Usage Report", 971 "SubMenuName": "Usage Report",
941 "SubMenuUrl": "usagereport", 972 "SubMenuUrl": "usagereport",
942 "SubMenuStatus": "False" 973 "SubMenuStatus": "False"
943 }, 974 },
944 { 975 {
945 - "SubMenuId": "212", 976 + "SubMenuId": "213",
946 "SubMenuName": "Customer Summary Report", 977 "SubMenuName": "Customer Summary Report",
947 "SubMenuUrl": "customersummaryreport", 978 "SubMenuUrl": "customersummaryreport",
948 "SubMenuStatus": "False" 979 "SubMenuStatus": "False"
949 }, 980 },
950 { 981 {
951 - "SubMenuId": "213", 982 + "SubMenuId": "214",
952 "SubMenuName": "Expiring Subscription Report", 983 "SubMenuName": "Expiring Subscription Report",
953 "SubMenuUrl": "expiringsubscriptionreport", 984 "SubMenuUrl": "expiringsubscriptionreport",
954 "SubMenuStatus": "False" 985 "SubMenuStatus": "False"
955 }, 986 },
956 { 987 {
957 - "SubMenuId": "214", 988 + "SubMenuId": "215",
958 "SubMenuName": "New Subscription Report", 989 "SubMenuName": "New Subscription Report",
959 "SubMenuUrl": "subscriptionreport", 990 "SubMenuUrl": "subscriptionreport",
960 "SubMenuStatus": "False" 991 "SubMenuStatus": "False"
961 }, 992 },
962 { 993 {
963 - "SubMenuId": "215", 994 + "SubMenuId": "216",
964 "SubMenuName": "Subscription Cancellation Report", 995 "SubMenuName": "Subscription Cancellation Report",
965 "SubMenuUrl": "subscriptioncancellationreport", 996 "SubMenuUrl": "subscriptioncancellationreport",
966 "SubMenuStatus": "False" 997 "SubMenuStatus": "False"
967 }, 998 },
968 { 999 {
969 - "SubMenuId": "216", 1000 + "SubMenuId": "217",
970 "SubMenuName": "Net AD Subscription Report", 1001 "SubMenuName": "Net AD Subscription Report",
971 "SubMenuUrl": "netadsubscriptionreport", 1002 "SubMenuUrl": "netadsubscriptionreport",
972 "SubMenuStatus": "False" 1003 "SubMenuStatus": "False"
973 }, 1004 },
974 { 1005 {
975 - "SubMenuId": "217", 1006 + "SubMenuId": "218",
976 "SubMenuName": "Site License Usage Report", 1007 "SubMenuName": "Site License Usage Report",
977 "SubMenuUrl": "sitelicenseusagereport", 1008 "SubMenuUrl": "sitelicenseusagereport",
978 "SubMenuStatus": "False" 1009 "SubMenuStatus": "False"
979 }, 1010 },
980 { 1011 {
981 - "SubMenuId": "218", 1012 + "SubMenuId": "219",
982 "SubMenuName": "Discount Code Report", 1013 "SubMenuName": "Discount Code Report",
983 "SubMenuUrl": "discountcodereport", 1014 "SubMenuUrl": "discountcodereport",
984 "SubMenuStatus": "False" 1015 "SubMenuStatus": "False"
985 }, 1016 },
986 { 1017 {
987 - "SubMenuId": "219", 1018 + "SubMenuId": "220",
988 "SubMenuName": "Image Export Report", 1019 "SubMenuName": "Image Export Report",
989 "SubMenuUrl": "imageexportreport", 1020 "SubMenuUrl": "imageexportreport",
990 "SubMenuStatus": "False" 1021 "SubMenuStatus": "False"
@@ -998,7 +1029,7 @@ @@ -998,7 +1029,7 @@
998 "HeaderMenuStatus": "False", 1029 "HeaderMenuStatus": "False",
999 "SubMenu": [ 1030 "SubMenu": [
1000 { 1031 {
1001 - "SubMenuId": "220", 1032 + "SubMenuId": "221",
1002 "SubMenuName": "Add Building Level Account", 1033 "SubMenuName": "Add Building Level Account",
1003 "SubMenuUrl": "sitelicenseaccount", 1034 "SubMenuUrl": "sitelicenseaccount",
1004 "SubMenuStatus": "False" 1035 "SubMenuStatus": "False"
@@ -1012,19 +1043,19 @@ @@ -1012,19 +1043,19 @@
1012 "HeaderMenuStatus": "False", 1043 "HeaderMenuStatus": "False",
1013 "SubMenu": [ 1044 "SubMenu": [
1014 { 1045 {
1015 - "SubMenuId": "221", 1046 + "SubMenuId": "222",
1016 "SubMenuName": "View-Update Profile", 1047 "SubMenuName": "View-Update Profile",
1017 "SubMenuUrl": "editlicensebasicsettings", 1048 "SubMenuUrl": "editlicensebasicsettings",
1018 "SubMenuStatus": "False" 1049 "SubMenuStatus": "False"
1019 }, 1050 },
1020 { 1051 {
1021 - "SubMenuId": "222", 1052 + "SubMenuId": "223",
1022 "SubMenuName": "Manage Modesty Settings", 1053 "SubMenuName": "Manage Modesty Settings",
1023 "SubMenuUrl": "licensemodestysettings", 1054 "SubMenuUrl": "licensemodestysettings",
1024 "SubMenuStatus": "False" 1055 "SubMenuStatus": "False"
1025 }, 1056 },
1026 { 1057 {
1027 - "SubMenuId": "223", 1058 + "SubMenuId": "224",
1028 "SubMenuName": "Manage Module", 1059 "SubMenuName": "Manage Module",
1029 "SubMenuUrl": "licensemodulesettings", 1060 "SubMenuUrl": "licensemodulesettings",
1030 "SubMenuStatus": "False" 1061 "SubMenuStatus": "False"
@@ -1062,6 +1093,12 @@ @@ -1062,6 +1093,12 @@
1062 "SubMenuName": "Change User ID", 1093 "SubMenuName": "Change User ID",
1063 "SubMenuUrl": "changeuserid", 1094 "SubMenuUrl": "changeuserid",
1064 "SubMenuStatus": "True" 1095 "SubMenuStatus": "True"
  1096 + },
  1097 + {
  1098 + "SubMenuId": "203",
  1099 + "SubMenuName": "Product License Agreement",
  1100 + "SubMenuUrl": "licenseAgreement",
  1101 + "SubMenuStatus": "True"
1065 } 1102 }
1066 ] 1103 ]
1067 }, 1104 },
@@ -1071,13 +1108,13 @@ @@ -1071,13 +1108,13 @@
1071 "HeaderMenuStatus": "False", 1108 "HeaderMenuStatus": "False",
1072 "SubMenu": [ 1109 "SubMenu": [
1073 { 1110 {
1074 - "SubMenuId": "203", 1111 + "SubMenuId": "204",
1075 "SubMenuName": "Search License", 1112 "SubMenuName": "Search License",
1076 "SubMenuUrl": "searchlicense", 1113 "SubMenuUrl": "searchlicense",
1077 "SubMenuStatus": "False" 1114 "SubMenuStatus": "False"
1078 }, 1115 },
1079 { 1116 {
1080 - "SubMenuId": "204", 1117 + "SubMenuId": "205",
1081 "SubMenuName": "Add New License", 1118 "SubMenuName": "Add New License",
1082 "SubMenuUrl": "addlicense", 1119 "SubMenuUrl": "addlicense",
1083 "SubMenuStatus": "False" 1120 "SubMenuStatus": "False"
@@ -1091,13 +1128,13 @@ @@ -1091,13 +1128,13 @@
1091 "HeaderMenuStatus": "False", 1128 "HeaderMenuStatus": "False",
1092 "SubMenu": [ 1129 "SubMenu": [
1093 { 1130 {
1094 - "SubMenuId": "205", 1131 + "SubMenuId": "206",
1095 "SubMenuName": "Manage Discount Code", 1132 "SubMenuName": "Manage Discount Code",
1096 "SubMenuUrl": "managediscountcode", 1133 "SubMenuUrl": "managediscountcode",
1097 "SubMenuStatus": "False" 1134 "SubMenuStatus": "False"
1098 }, 1135 },
1099 { 1136 {
1100 - "SubMenuId": "206", 1137 + "SubMenuId": "207",
1101 "SubMenuName": "Subscription Price", 1138 "SubMenuName": "Subscription Price",
1102 "SubMenuUrl": "subscriptionprice", 1139 "SubMenuUrl": "subscriptionprice",
1103 "SubMenuStatus": "False" 1140 "SubMenuStatus": "False"
@@ -1111,25 +1148,25 @@ @@ -1111,25 +1148,25 @@
1111 "HeaderMenuStatus": "False", 1148 "HeaderMenuStatus": "False",
1112 "SubMenu": [ 1149 "SubMenu": [
1113 { 1150 {
1114 - "SubMenuId": "207", 1151 + "SubMenuId": "208",
1115 "SubMenuName": "List User", 1152 "SubMenuName": "List User",
1116 "SubMenuUrl": "users", 1153 "SubMenuUrl": "users",
1117 "SubMenuStatus": "False" 1154 "SubMenuStatus": "False"
1118 }, 1155 },
1119 { 1156 {
1120 - "SubMenuId": "208", 1157 + "SubMenuId": "209",
1121 "SubMenuName": "Add User", 1158 "SubMenuName": "Add User",
1122 "SubMenuUrl": "adduser", 1159 "SubMenuUrl": "adduser",
1123 "SubMenuStatus": "True" 1160 "SubMenuStatus": "True"
1124 }, 1161 },
1125 { 1162 {
1126 - "SubMenuId": "209", 1163 + "SubMenuId": "210",
1127 "SubMenuName": "Unblock User", 1164 "SubMenuName": "Unblock User",
1128 "SubMenuUrl": "unblockuser", 1165 "SubMenuUrl": "unblockuser",
1129 "SubMenuStatus": "False" 1166 "SubMenuStatus": "False"
1130 }, 1167 },
1131 { 1168 {
1132 - "SubMenuId": "210", 1169 + "SubMenuId": "211",
1133 "SubMenuName": "User Group", 1170 "SubMenuName": "User Group",
1134 "SubMenuUrl": "usergroup", 1171 "SubMenuUrl": "usergroup",
1135 "SubMenuStatus": "False" 1172 "SubMenuStatus": "False"
@@ -1143,55 +1180,55 @@ @@ -1143,55 +1180,55 @@
1143 "HeaderMenuStatus": "False", 1180 "HeaderMenuStatus": "False",
1144 "SubMenu": [ 1181 "SubMenu": [
1145 { 1182 {
1146 - "SubMenuId": "211", 1183 + "SubMenuId": "212",
1147 "SubMenuName": "Usage Report", 1184 "SubMenuName": "Usage Report",
1148 "SubMenuUrl": "usagereport", 1185 "SubMenuUrl": "usagereport",
1149 "SubMenuStatus": "False" 1186 "SubMenuStatus": "False"
1150 }, 1187 },
1151 { 1188 {
1152 - "SubMenuId": "212", 1189 + "SubMenuId": "213",
1153 "SubMenuName": "Customer Summary Report", 1190 "SubMenuName": "Customer Summary Report",
1154 "SubMenuUrl": "customersummaryreport", 1191 "SubMenuUrl": "customersummaryreport",
1155 "SubMenuStatus": "False" 1192 "SubMenuStatus": "False"
1156 }, 1193 },
1157 { 1194 {
1158 - "SubMenuId": "213", 1195 + "SubMenuId": "214",
1159 "SubMenuName": "Expiring Subscription Report", 1196 "SubMenuName": "Expiring Subscription Report",
1160 "SubMenuUrl": "expiringsubscriptionreport", 1197 "SubMenuUrl": "expiringsubscriptionreport",
1161 "SubMenuStatus": "False" 1198 "SubMenuStatus": "False"
1162 }, 1199 },
1163 { 1200 {
1164 - "SubMenuId": "214", 1201 + "SubMenuId": "215",
1165 "SubMenuName": "New Subscription Report", 1202 "SubMenuName": "New Subscription Report",
1166 "SubMenuUrl": "subscriptionreport", 1203 "SubMenuUrl": "subscriptionreport",
1167 "SubMenuStatus": "False" 1204 "SubMenuStatus": "False"
1168 }, 1205 },
1169 { 1206 {
1170 - "SubMenuId": "215", 1207 + "SubMenuId": "216",
1171 "SubMenuName": "Subscription Cancellation Report", 1208 "SubMenuName": "Subscription Cancellation Report",
1172 "SubMenuUrl": "subscriptioncancellationreport", 1209 "SubMenuUrl": "subscriptioncancellationreport",
1173 "SubMenuStatus": "False" 1210 "SubMenuStatus": "False"
1174 }, 1211 },
1175 { 1212 {
1176 - "SubMenuId": "216", 1213 + "SubMenuId": "217",
1177 "SubMenuName": "Net AD Subscription Report", 1214 "SubMenuName": "Net AD Subscription Report",
1178 "SubMenuUrl": "netadsubscriptionreport", 1215 "SubMenuUrl": "netadsubscriptionreport",
1179 "SubMenuStatus": "False" 1216 "SubMenuStatus": "False"
1180 }, 1217 },
1181 { 1218 {
1182 - "SubMenuId": "217", 1219 + "SubMenuId": "218",
1183 "SubMenuName": "Site License Usage Report", 1220 "SubMenuName": "Site License Usage Report",
1184 "SubMenuUrl": "sitelicenseusagereport", 1221 "SubMenuUrl": "sitelicenseusagereport",
1185 "SubMenuStatus": "False" 1222 "SubMenuStatus": "False"
1186 }, 1223 },
1187 { 1224 {
1188 - "SubMenuId": "218", 1225 + "SubMenuId": "219",
1189 "SubMenuName": "Discount Code Report", 1226 "SubMenuName": "Discount Code Report",
1190 "SubMenuUrl": "discountcodereport", 1227 "SubMenuUrl": "discountcodereport",
1191 "SubMenuStatus": "False" 1228 "SubMenuStatus": "False"
1192 }, 1229 },
1193 { 1230 {
1194 - "SubMenuId": "219", 1231 + "SubMenuId": "220",
1195 "SubMenuName": "Image Export Report", 1232 "SubMenuName": "Image Export Report",
1196 "SubMenuUrl": "imageexportreport", 1233 "SubMenuUrl": "imageexportreport",
1197 "SubMenuStatus": "False" 1234 "SubMenuStatus": "False"
@@ -1205,7 +1242,7 @@ @@ -1205,7 +1242,7 @@
1205 "HeaderMenuStatus": "False", 1242 "HeaderMenuStatus": "False",
1206 "SubMenu": [ 1243 "SubMenu": [
1207 { 1244 {
1208 - "SubMenuId": "220", 1245 + "SubMenuId": "221",
1209 "SubMenuName": "Add Building Level Account", 1246 "SubMenuName": "Add Building Level Account",
1210 "SubMenuUrl": "sitelicenseaccount", 1247 "SubMenuUrl": "sitelicenseaccount",
1211 "SubMenuStatus": "False" 1248 "SubMenuStatus": "False"
@@ -1219,19 +1256,19 @@ @@ -1219,19 +1256,19 @@
1219 "HeaderMenuStatus": "False", 1256 "HeaderMenuStatus": "False",
1220 "SubMenu": [ 1257 "SubMenu": [
1221 { 1258 {
1222 - "SubMenuId": "221", 1259 + "SubMenuId": "222",
1223 "SubMenuName": "View-Update Profile", 1260 "SubMenuName": "View-Update Profile",
1224 "SubMenuUrl": "editlicensebasicsettings", 1261 "SubMenuUrl": "editlicensebasicsettings",
1225 "SubMenuStatus": "False" 1262 "SubMenuStatus": "False"
1226 }, 1263 },
1227 { 1264 {
1228 - "SubMenuId": "222", 1265 + "SubMenuId": "223",
1229 "SubMenuName": "Manage Modesty Settings", 1266 "SubMenuName": "Manage Modesty Settings",
1230 "SubMenuUrl": "licensemodestysettings", 1267 "SubMenuUrl": "licensemodestysettings",
1231 "SubMenuStatus": "False" 1268 "SubMenuStatus": "False"
1232 }, 1269 },
1233 { 1270 {
1234 - "SubMenuId": "223", 1271 + "SubMenuId": "224",
1235 "SubMenuName": "Manage Module", 1272 "SubMenuName": "Manage Module",
1236 "SubMenuUrl": "licensemodulesettings", 1273 "SubMenuUrl": "licensemodulesettings",
1237 "SubMenuStatus": "False" 1274 "SubMenuStatus": "False"
@@ -1269,6 +1306,12 @@ @@ -1269,6 +1306,12 @@
1269 "SubMenuName": "Change User ID", 1306 "SubMenuName": "Change User ID",
1270 "SubMenuUrl": "changeuserid", 1307 "SubMenuUrl": "changeuserid",
1271 "SubMenuStatus": "True" 1308 "SubMenuStatus": "True"
  1309 + },
  1310 + {
  1311 + "SubMenuId": "203",
  1312 + "SubMenuName": "Product License Agreement",
  1313 + "SubMenuUrl": "licenseAgreement",
  1314 + "SubMenuStatus": "True"
1272 } 1315 }
1273 ] 1316 ]
1274 }, 1317 },
@@ -1278,13 +1321,13 @@ @@ -1278,13 +1321,13 @@
1278 "HeaderMenuStatus": "False", 1321 "HeaderMenuStatus": "False",
1279 "SubMenu": [ 1322 "SubMenu": [
1280 { 1323 {
1281 - "SubMenuId": "203", 1324 + "SubMenuId": "204",
1282 "SubMenuName": "Search License", 1325 "SubMenuName": "Search License",
1283 "SubMenuUrl": "searchlicense", 1326 "SubMenuUrl": "searchlicense",
1284 "SubMenuStatus": "False" 1327 "SubMenuStatus": "False"
1285 }, 1328 },
1286 { 1329 {
1287 - "SubMenuId": "204", 1330 + "SubMenuId": "205",
1288 "SubMenuName": "Add New License", 1331 "SubMenuName": "Add New License",
1289 "SubMenuUrl": "addlicense", 1332 "SubMenuUrl": "addlicense",
1290 "SubMenuStatus": "False" 1333 "SubMenuStatus": "False"
@@ -1298,13 +1341,13 @@ @@ -1298,13 +1341,13 @@
1298 "HeaderMenuStatus": "False", 1341 "HeaderMenuStatus": "False",
1299 "SubMenu": [ 1342 "SubMenu": [
1300 { 1343 {
1301 - "SubMenuId": "205", 1344 + "SubMenuId": "206",
1302 "SubMenuName": "Manage Discount Code", 1345 "SubMenuName": "Manage Discount Code",
1303 "SubMenuUrl": "managediscountcode", 1346 "SubMenuUrl": "managediscountcode",
1304 "SubMenuStatus": "False" 1347 "SubMenuStatus": "False"
1305 }, 1348 },
1306 { 1349 {
1307 - "SubMenuId": "206", 1350 + "SubMenuId": "207",
1308 "SubMenuName": "Subscription Price", 1351 "SubMenuName": "Subscription Price",
1309 "SubMenuUrl": "subscriptionprice", 1352 "SubMenuUrl": "subscriptionprice",
1310 "SubMenuStatus": "False" 1353 "SubMenuStatus": "False"
@@ -1318,25 +1361,25 @@ @@ -1318,25 +1361,25 @@
1318 "HeaderMenuStatus": "False", 1361 "HeaderMenuStatus": "False",
1319 "SubMenu": [ 1362 "SubMenu": [
1320 { 1363 {
1321 - "SubMenuId": "207", 1364 + "SubMenuId": "208",
1322 "SubMenuName": "List User", 1365 "SubMenuName": "List User",
1323 "SubMenuUrl": "users", 1366 "SubMenuUrl": "users",
1324 "SubMenuStatus": "False" 1367 "SubMenuStatus": "False"
1325 }, 1368 },
1326 { 1369 {
1327 - "SubMenuId": "208", 1370 + "SubMenuId": "209",
1328 "SubMenuName": "Add User", 1371 "SubMenuName": "Add User",
1329 "SubMenuUrl": "adduser", 1372 "SubMenuUrl": "adduser",
1330 "SubMenuStatus": "False" 1373 "SubMenuStatus": "False"
1331 }, 1374 },
1332 { 1375 {
1333 - "SubMenuId": "209", 1376 + "SubMenuId": "210",
1334 "SubMenuName": "Unblock User", 1377 "SubMenuName": "Unblock User",
1335 "SubMenuUrl": "unblockuser", 1378 "SubMenuUrl": "unblockuser",
1336 "SubMenuStatus": "False" 1379 "SubMenuStatus": "False"
1337 }, 1380 },
1338 { 1381 {
1339 - "SubMenuId": "210", 1382 + "SubMenuId": "211",
1340 "SubMenuName": "User Group", 1383 "SubMenuName": "User Group",
1341 "SubMenuUrl": "usergroup", 1384 "SubMenuUrl": "usergroup",
1342 "SubMenuStatus": "False" 1385 "SubMenuStatus": "False"
@@ -1350,55 +1393,55 @@ @@ -1350,55 +1393,55 @@
1350 "HeaderMenuStatus": "False", 1393 "HeaderMenuStatus": "False",
1351 "SubMenu": [ 1394 "SubMenu": [
1352 { 1395 {
1353 - "SubMenuId": "211", 1396 + "SubMenuId": "212",
1354 "SubMenuName": "Usage Report", 1397 "SubMenuName": "Usage Report",
1355 "SubMenuUrl": "usagereport", 1398 "SubMenuUrl": "usagereport",
1356 "SubMenuStatus": "False" 1399 "SubMenuStatus": "False"
1357 }, 1400 },
1358 { 1401 {
1359 - "SubMenuId": "212", 1402 + "SubMenuId": "213",
1360 "SubMenuName": "Customer Summary Report", 1403 "SubMenuName": "Customer Summary Report",
1361 "SubMenuUrl": "customersummaryreport", 1404 "SubMenuUrl": "customersummaryreport",
1362 "SubMenuStatus": "False" 1405 "SubMenuStatus": "False"
1363 }, 1406 },
1364 { 1407 {
1365 - "SubMenuId": "213", 1408 + "SubMenuId": "214",
1366 "SubMenuName": "Expiring Subscription Report", 1409 "SubMenuName": "Expiring Subscription Report",
1367 "SubMenuUrl": "expiringsubscriptionreport", 1410 "SubMenuUrl": "expiringsubscriptionreport",
1368 "SubMenuStatus": "False" 1411 "SubMenuStatus": "False"
1369 }, 1412 },
1370 { 1413 {
1371 - "SubMenuId": "214", 1414 + "SubMenuId": "215",
1372 "SubMenuName": "New Subscription Report", 1415 "SubMenuName": "New Subscription Report",
1373 "SubMenuUrl": "subscriptionreport", 1416 "SubMenuUrl": "subscriptionreport",
1374 "SubMenuStatus": "False" 1417 "SubMenuStatus": "False"
1375 }, 1418 },
1376 { 1419 {
1377 - "SubMenuId": "215", 1420 + "SubMenuId": "216",
1378 "SubMenuName": "Subscription Cancellation Report", 1421 "SubMenuName": "Subscription Cancellation Report",
1379 "SubMenuUrl": "subscriptioncancellationreport", 1422 "SubMenuUrl": "subscriptioncancellationreport",
1380 "SubMenuStatus": "False" 1423 "SubMenuStatus": "False"
1381 }, 1424 },
1382 { 1425 {
1383 - "SubMenuId": "216", 1426 + "SubMenuId": "217",
1384 "SubMenuName": "Net AD Subscription Report", 1427 "SubMenuName": "Net AD Subscription Report",
1385 "SubMenuUrl": "netadsubscriptionreport", 1428 "SubMenuUrl": "netadsubscriptionreport",
1386 "SubMenuStatus": "False" 1429 "SubMenuStatus": "False"
1387 }, 1430 },
1388 { 1431 {
1389 - "SubMenuId": "217", 1432 + "SubMenuId": "218",
1390 "SubMenuName": "Site License Usage Report", 1433 "SubMenuName": "Site License Usage Report",
1391 "SubMenuUrl": "sitelicenseusagereport", 1434 "SubMenuUrl": "sitelicenseusagereport",
1392 "SubMenuStatus": "False" 1435 "SubMenuStatus": "False"
1393 }, 1436 },
1394 { 1437 {
1395 - "SubMenuId": "218", 1438 + "SubMenuId": "219",
1396 "SubMenuName": "Discount Code Report", 1439 "SubMenuName": "Discount Code Report",
1397 "SubMenuUrl": "discountcodereport", 1440 "SubMenuUrl": "discountcodereport",
1398 "SubMenuStatus": "False" 1441 "SubMenuStatus": "False"
1399 }, 1442 },
1400 { 1443 {
1401 - "SubMenuId": "219", 1444 + "SubMenuId": "220",
1402 "SubMenuName": "Image Export Report", 1445 "SubMenuName": "Image Export Report",
1403 "SubMenuUrl": "imageexportreport", 1446 "SubMenuUrl": "imageexportreport",
1404 "SubMenuStatus": "False" 1447 "SubMenuStatus": "False"
@@ -1412,7 +1455,7 @@ @@ -1412,7 +1455,7 @@
1412 "HeaderMenuStatus": "False", 1455 "HeaderMenuStatus": "False",
1413 "SubMenu": [ 1456 "SubMenu": [
1414 { 1457 {
1415 - "SubMenuId": "220", 1458 + "SubMenuId": "221",
1416 "SubMenuName": "Add Building Level Account", 1459 "SubMenuName": "Add Building Level Account",
1417 "SubMenuUrl": "sitelicenseaccount", 1460 "SubMenuUrl": "sitelicenseaccount",
1418 "SubMenuStatus": "False" 1461 "SubMenuStatus": "False"
@@ -1426,19 +1469,19 @@ @@ -1426,19 +1469,19 @@
1426 "HeaderMenuStatus": "False", 1469 "HeaderMenuStatus": "False",
1427 "SubMenu": [ 1470 "SubMenu": [
1428 { 1471 {
1429 - "SubMenuId": "221", 1472 + "SubMenuId": "222",
1430 "SubMenuName": "View-Update Profile", 1473 "SubMenuName": "View-Update Profile",
1431 "SubMenuUrl": "editlicensebasicsettings", 1474 "SubMenuUrl": "editlicensebasicsettings",
1432 "SubMenuStatus": "False" 1475 "SubMenuStatus": "False"
1433 }, 1476 },
1434 { 1477 {
1435 - "SubMenuId": "222", 1478 + "SubMenuId": "223",
1436 "SubMenuName": "Manage Modesty Settings", 1479 "SubMenuName": "Manage Modesty Settings",
1437 "SubMenuUrl": "licensemodestysettings", 1480 "SubMenuUrl": "licensemodestysettings",
1438 "SubMenuStatus": "False" 1481 "SubMenuStatus": "False"
1439 }, 1482 },
1440 { 1483 {
1441 - "SubMenuId": "223", 1484 + "SubMenuId": "224",
1442 "SubMenuName": "Manage Module", 1485 "SubMenuName": "Manage Module",
1443 "SubMenuUrl": "licensemodulesettings", 1486 "SubMenuUrl": "licensemodulesettings",
1444 "SubMenuStatus": "False" 1487 "SubMenuStatus": "False"