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