aboutsummaryrefslogtreecommitdiffstats
path: root/d2ice.att.io/app/main/modals
diff options
context:
space:
mode:
Diffstat (limited to 'd2ice.att.io/app/main/modals')
-rwxr-xr-xd2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.controller.js66
-rwxr-xr-xd2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.html56
-rwxr-xr-xd2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.less54
-rwxr-xr-xd2ice.att.io/app/main/modals/audit-log/audit-log.controller.js95
-rwxr-xr-xd2ice.att.io/app/main/modals/audit-log/audit-log.html76
-rwxr-xr-xd2ice.att.io/app/main/modals/audit-log/audit-log.less49
-rwxr-xr-xd2ice.att.io/app/main/modals/change-date/change-date.controller.js75
-rwxr-xr-xd2ice.att.io/app/main/modals/change-date/change-date.html62
-rwxr-xr-xd2ice.att.io/app/main/modals/change-progress/change-progress.controller.js71
-rwxr-xr-xd2ice.att.io/app/main/modals/change-progress/change-progress.html65
-rwxr-xr-xd2ice.att.io/app/main/modals/checklist/checklist.controller.js238
-rwxr-xr-xd2ice.att.io/app/main/modals/checklist/checklist.html107
-rwxr-xr-xd2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.controller.js105
-rwxr-xr-xd2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html58
-rwxr-xr-xd2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.less173
-rwxr-xr-xd2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.controller.js92
-rwxr-xr-xd2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.html55
-rwxr-xr-xd2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.less106
-rwxr-xr-xd2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.controller.js100
-rwxr-xr-xd2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html62
-rwxr-xr-xd2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.controller.js124
-rwxr-xr-xd2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.html100
-rwxr-xr-xd2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.less68
-rwxr-xr-xd2ice.att.io/app/main/modals/feedback/feedback.controller.js82
-rwxr-xr-xd2ice.att.io/app/main/modals/feedback/feedback.html57
-rwxr-xr-xd2ice.att.io/app/main/modals/feedback/feedback.less44
-rwxr-xr-xd2ice.att.io/app/main/modals/general-log-modal/general-log-modal.controller.js63
-rwxr-xr-xd2ice.att.io/app/main/modals/general-log-modal/general-log-modal.html45
-rwxr-xr-xd2ice.att.io/app/main/modals/general-log-modal/general-log-modal.less72
-rwxr-xr-xd2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.controller.js74
-rwxr-xr-xd2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.html52
-rwxr-xr-xd2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.less151
-rwxr-xr-xd2ice.att.io/app/main/modals/next-steps/next-steps.controller.js278
-rwxr-xr-xd2ice.att.io/app/main/modals/next-steps/next-steps.html138
-rwxr-xr-xd2ice.att.io/app/main/modals/next-steps/next-steps.less307
-rwxr-xr-xd2ice.att.io/app/main/modals/select-el-modal/select-el-modal.controller.js78
-rwxr-xr-xd2ice.att.io/app/main/modals/select-el-modal/select-el-modal.html56
-rwxr-xr-xd2ice.att.io/app/main/modals/select-el-modal/select-el-modal.less54
-rwxr-xr-xd2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.controller.js63
-rwxr-xr-xd2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.html49
-rwxr-xr-xd2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.less135
-rwxr-xr-xd2ice.att.io/app/main/modals/set-eng-stage/set_eng_stage_modal.html58
-rwxr-xr-xd2ice.att.io/app/main/modals/status/status.controller.js125
-rwxr-xr-xd2ice.att.io/app/main/modals/status/status.html59
-rwxr-xr-xd2ice.att.io/app/main/modals/status/status.less44
-rwxr-xr-xd2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.controller.js78
-rwxr-xr-xd2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.html55
-rwxr-xr-xd2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.less49
-rwxr-xr-xd2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.controller.js73
-rwxr-xr-xd2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.html97
-rwxr-xr-xd2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.less61
-rwxr-xr-xd2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.controller.js202
-rwxr-xr-xd2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.html101
-rwxr-xr-xd2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.less49
54 files changed, 4906 insertions, 0 deletions
diff --git a/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.controller.js b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.controller.js
new file mode 100755
index 00000000..3c1226cb
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.controller.js
@@ -0,0 +1,66 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('archiveEngagementModalController', ['$uibModalInstance','engagementDetails',archiveEngagementModalController]);
+
+ function archiveEngagementModalController($uibModalInstance, engagementDetails) {
+
+ var vm = this;
+ var init = function () {
+ if(engagementDetails) {
+ vm.engagement = engagementDetails;
+ }
+ };
+
+ vm.closeModal = function () {
+ $uibModalInstance.dismiss();
+ };
+
+ vm.archiveEngagement = function() {
+ $uibModalInstance.close(vm.reason);
+ };
+
+ init();
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.html b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.html
new file mode 100755
index 00000000..7d4b5b07
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.html
@@ -0,0 +1,56 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="archive-engagement-modal">
+ <div class="modal-header row">
+ <button type="button" ng-click="vm.closeModal()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <div id="archive-engagement-title" class="archive-engagement-title"><span>Archive Engagement</span></div>
+ <span class="archive-engagement-reason">Please provide a short reason for why you are archiving this engagement.</span>
+ </div>
+ <div class="modal-body row">
+ <form name="archiveEngagementForm" ng-submit="vm.archiveEngagement()" novalidate="" class="">
+ <div class="form-group" ng-class="{ 'has-error' : archiveEngagementForm.reason.$invalid && archiveEngagementForm.reason.$dirty }">
+ <textarea type="text" name="reason" class="form-control" ng-model="vm.reason" required=""></textarea>
+ <div class="ice-form-error" data-ng-show="archiveEngagementForm.reason.$error">
+ <span ng-show="archiveEngagementForm.reason.$error.required && archiveEngagementForm.reason.$dirty" class="help-block ng-hide" aria-hidden="true">Please enter a reason</span>
+ </div>
+ </div>
+ <button id="submit-modal" class="btn btn-primary col-md-12" data-ng-disabled="archiveEngagementForm.$invalid" type="submit">Submit</button>
+ </form>
+ </div>
+</div>
diff --git a/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.less b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.less
new file mode 100755
index 00000000..da2f8503
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.less
@@ -0,0 +1,54 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.archive-engagement-modal {
+ padding: 0px 15px 0px 15px;
+
+ .archive-engagement-title {
+ .a_24_m;;
+ }
+
+ .archive-engagement-reason {
+ .m_16_r;
+ }
+
+ .modal-body {
+ top: 10px;
+ }
+}
+
diff --git a/d2ice.att.io/app/main/modals/audit-log/audit-log.controller.js b/d2ice.att.io/app/main/modals/audit-log/audit-log.controller.js
new file mode 100755
index 00000000..84e7fbc6
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/audit-log/audit-log.controller.js
@@ -0,0 +1,95 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('AuditLogModalController', ['$rootScope', '$uibModalInstance', 'checklistService', 'wizardData',
+ 'toastService', '$log', AuditLogModalController]);
+
+ function AuditLogModalController($rootScope, $uibModalInstance, checklistService, wizardData, toastService, $log) {
+ var vm = this;
+
+ var init = function()
+ {
+ var arr = [];
+ var i;
+ var region = moment().tz( moment.tz.guess()).format('z');
+ var dt = "";
+ vm.name = wizardData.name;
+ vm.checklistAuditLogs = wizardData.checklistAuditLogs;
+ vm.checklistAuditLogs.forEach(function (cl)
+ {
+ dt = moment(cl.create_time).local().format('YYYY-MM-DD hh:mm:ss A') + " " + region;
+ arr.push({"name":cl.creator.full_name,"dt":dt,"desc":cl.description});
+ });
+ vm.checklistAuditLogs = arr;
+ }
+
+ init();
+
+ vm.submitForm = function ()
+ {
+ var jsonPost = {"description":vm.description};
+ checklistService.createAuditlogChecklist(wizardData.uuid, jsonPost)
+ .then(function (response) {
+ if (response.status === 200)
+ {
+ $uibModalInstance.close(response.data);
+ vm.closeModal();
+ }
+ else
+ {
+ toastService.setToast(response.error, 'danger', {displayFor: 'modal'});
+ $rootScope.ice.loader.show = false;
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message, 'danger', {displayFor: 'modal'});
+ $log.error(error.message);
+ });
+ };
+
+ vm.closeModal = function(){
+ toastService.clearToast();
+ $uibModalInstance.close();
+ };
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/audit-log/audit-log.html b/d2ice.att.io/app/main/modals/audit-log/audit-log.html
new file mode 100755
index 00000000..a4ad06f7
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/audit-log/audit-log.html
@@ -0,0 +1,76 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<ice-loader selector=".checkList-form"></ice-loader>
+
+<div class="modal-header checkList">
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <ice-toast is-modal="true"></ice-toast>
+ <div id="modal-title" class="row ">
+ <div class=" dash col-md-12 col-md-12 ">
+ <span class="font_header">Checklist: </span>
+ <span class="font_header_chk_name margin_btm italic">{{vm.name}}</span>
+ </div>
+ </div>
+</div>
+
+<div class="modal-body checkList auditlog">
+ <form name="AuditLogForm" ng-submit="vm.submitForm()" novalidate class="checkList-form">
+ <div class=" margin_top">
+ <h2>Audit Log</h2>
+ </div>
+ <div class="audit-log-items" id="audit-log-lines" data-ng-repeat="auditLog in vm.checklistAuditLogs">
+ <div class="row" >
+ <span class="col-md-6 font_user_name">
+ {{auditLog.name}}
+ </span>
+ <span class="col-md-6 text-right font_date">
+ {{auditLog.dt}}
+ </span>
+ <div class=" col-md-12 font_desc margin_btm5" ng-bind-html="auditLog.desc"></div>
+ </div>
+ </div>
+ <textarea name="inputBox" rows="3" class="form-control col-md-12 margin_top textarea-checklist-audit" ng-model="vm.description" ng-trim="false" ng-pattern="/^[a-zA-Z0-9\&\,\.\ ]*$/"required ></textarea>
+ <div data-ng-show="AuditLogForm.inputBox.$error" class="ice-form-error">
+ <span ng-show="AuditLogForm.inputBox.$error.required && !AuditLogForm.inputBox.$pristine">Please add a Description.</span>
+ <span ng-show="AuditLogForm.inputBox.$error.pattern">Inserted text should not include any special chars such as: \%_*."</span>
+ </div>
+
+ <button type="submit" class="btn btn-primary margin_top" data-ng-disabled="!AuditLogForm.$valid">Add Log Entry</button>
+ </form>
+</div>
diff --git a/d2ice.att.io/app/main/modals/audit-log/audit-log.less b/d2ice.att.io/app/main/modals/audit-log/audit-log.less
new file mode 100755
index 00000000..7ba728e6
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/audit-log/audit-log.less
@@ -0,0 +1,49 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.auditlog {
+
+ .audit-log-items {
+ border-bottom: 1px solid;
+ margin-bottom: 5px;
+ }
+
+ .textarea-checklist-audit {
+ resize: none;
+ }
+}
diff --git a/d2ice.att.io/app/main/modals/change-date/change-date.controller.js b/d2ice.att.io/app/main/modals/change-date/change-date.controller.js
new file mode 100755
index 00000000..35290c99
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/change-date/change-date.controller.js
@@ -0,0 +1,75 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('ChangeDateModalController', ["$uibModalInstance", "completionDate", "engagementUuid", "vfService", "$rootScope", "toastService", changeDateModalController]);
+
+ function changeDateModalController($uibModalInstance, completionDate, engagementUuid, vfService, $rootScope, toastService) {
+
+ var vm = this;
+ //vm.completionDate = new Date(completionDate);
+ vm.completionDate = completionDate;
+
+ vm.dateOptions = {
+ minDate: new Date(),
+ showWeeks: true
+ };
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+
+ vm.submitForm = function(){
+ var postData={"target_date": moment(vm.completionDate).format("YYYY-MM-DD")};
+ vfService.updateDaysLeft(engagementUuid, postData)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(postData);
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.status + ': Error changing completion date!', 'danger');
+ });
+ };
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/change-date/change-date.html b/d2ice.att.io/app/main/modals/change-date/change-date.html
new file mode 100755
index 00000000..4d3e0b59
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/change-date/change-date.html
@@ -0,0 +1,62 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<form name="updateProgressForm" ng-submit="vm.submitForm()" novalidate class="update-progress-form">
+ <div class="modal-header">
+ <h3 class="modal-title" id="modal-title">Target Completion Date</h3>
+ <button type="button" ng-click="vm.closeModal()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ </div>
+ <div class="modal-body">
+ <div class="form-group" ng-class="{ 'has-error' : updateProgressForm.date.$invalid && !updateProgressForm.date.$pristine }">
+
+ <!--<input type="text" name="date" class="form-control" ng-model="vm.completionDate" ng-minlength="1" ng-maxlength="2" maxlength="2" required>-->
+
+ <div>{{vm.completionDate | date:'fullDate' }}</div>
+
+ <div class="ice-form-error" data-ng-show="updateProgressForm.date.$error">
+ <span ng-show="updateProgressForm.date.$error.required && !updateProgressForm.date.$pristine">Date is required field!</span>
+ </div>
+ </div>
+
+ <uib-datepicker ng-model="vm.completionDate" class="well well-sm" datepicker-options="vm.dateOptions"></uib-datepicker>
+
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-primary" data-ng-disabled="!updateProgressForm.$valid">Save</button>
+ </div>
+</form>
diff --git a/d2ice.att.io/app/main/modals/change-progress/change-progress.controller.js b/d2ice.att.io/app/main/modals/change-progress/change-progress.controller.js
new file mode 100755
index 00000000..e28b2528
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/change-progress/change-progress.controller.js
@@ -0,0 +1,71 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+
+ 'use strict';
+
+ angular
+ .module('ice.modals',[])
+ .controller('ChangeProgressModalController', ["$uibModalInstance", "progress", "engagementUuid", "vfService",
+ "$log", "toastService", ChangeProgressModalController]);
+
+ function ChangeProgressModalController($uibModalInstance, progress, engagementUuid, vfService, $log, toastService) {
+
+ var vm = this;
+ vm.progress = progress;
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+
+ vm.submitForm = function(){
+ var postData={"progress": vm.progress};
+ vfService.updateProgress(engagementUuid, postData)
+ .then(function (response) {
+ if (response.status === 202) {
+ $uibModalInstance.close(postData);
+ }
+ })
+ .catch(function (error) {
+ $log.error(error);
+ toastService.setToast(error.status + ': Error changing progress!', 'danger');
+ });
+ };
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/change-progress/change-progress.html b/d2ice.att.io/app/main/modals/change-progress/change-progress.html
new file mode 100755
index 00000000..adfb7e7a
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/change-progress/change-progress.html
@@ -0,0 +1,65 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<form name="updateProgressForm" ng-submit="vm.submitForm()" novalidate class="update-progress-form">
+ <div class="modal-header">
+ <h3 class="modal-title" id="modal-title">Specify Progress in %</h3>
+ <button type="button" ng-click="vm.closeModal()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ </div>
+
+ <div class="modal-body">
+ <div class="form-group" ng-class="{ 'has-error' : updateProgressForm.progress.$invalid && !updateProgressForm.progress.$pristine }">
+ <input type="text"
+ name="progress"
+ class="form-control"
+ ng-model="vm.progress"
+ ng-minlength="1"
+ ng-maxlength="3"
+ maxlength="3"
+ ng-pattern="/^[1-9][0-9]?$|^100|^0$/"
+ required>
+ <div class="ice-form-error" data-ng-show="updateProgressForm.progress.$error">
+ <span ng-show="updateProgressForm.progress.$error.required && !updateProgressForm.progress.$pristine">Progress is a required field!</span>
+ <span ng-show="updateProgressForm.progress.$error.pattern && !updateProgressForm.progress.$pristine">Progress value is not valid!</span>
+ </div>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-primary" id="engagement-progress-submit" data-ng-disabled="!updateProgressForm.$valid">Save</button>
+ </div>
+</form>
diff --git a/d2ice.att.io/app/main/modals/checklist/checklist.controller.js b/d2ice.att.io/app/main/modals/checklist/checklist.controller.js
new file mode 100755
index 00000000..4a20b53d
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/checklist/checklist.controller.js
@@ -0,0 +1,238 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('ChecklistModalController', ['toastService', '$rootScope', '$uibModalInstance', 'checklistService',
+ 'engagementUuid', 'modal_type', 'wizardData', '$log', ChecklistModalController]);
+
+ function ChecklistModalController(toastService, $rootScope, $uibModalInstance, checklistService, engagementUuid,
+ modal_type, wizardData, $log) {
+ var vm = this;
+ vm.checkListAssociatedFiles = [];
+ vm.selectedCheckListAssociatedFiles = [];
+ vm.isDisabled = false;
+
+ var init = function() {
+ switch(modal_type) {
+ case 'create':
+ vm.create = true;
+ vm.createUpadeTitle = "Create";
+ vm.modalType = 'create';
+ vm.modalTitle = "Create";
+ checklistService.getDataForCreateChecklist(engagementUuid)
+ .then(function (response) {
+ if (response.status === 200) {
+ vm.checkListTemplatesLists = [];
+ vm.checkListTemplates = response.data.checkListTemplates;
+ angular.forEach(response.data.checkListAssociatedFiles, function (value, key) {
+ vm.checkListAssociatedFiles.push({File: value});
+ });
+ $rootScope.ice.loader.show = false;
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message, 'danger', {displayFor: 'modal'});
+ $rootScope.ice.loader.show = false;
+ $log.error(error.message);
+ });
+ break;
+ case 'update':
+ vm.update = true;
+ vm.createUpadeTitle = "Update";
+ vm.modalType = 'udpate';
+ vm.modalTitle = "Update";
+ vm.checklistUuid = wizardData.uuid;
+ vm.checkListName = wizardData.name;
+ checklistService.getDataForCreateChecklist(engagementUuid)
+ .then(function (response) {
+ if (response.status === 200) {
+ vm.checkListAssociatedFiles = []
+ angular.forEach(response.data.checkListAssociatedFiles, function (value, key) {
+ vm.checkListAssociatedFiles.push({File: value});
+ });
+ $rootScope.ice.loader.show = false;
+
+ vm.selectedCheckListAssociatedFiles =[]
+
+ angular.forEach(wizardData.associatedFiles, function(val, key1) {
+ vm.selectedCheckListAssociatedFiles.push({File: val});
+ });
+
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message, 'danger', {displayFor: 'modal'});
+ $rootScope.ice.loader.show = false;
+ $log.error(error.message);
+ });
+ vm.selectedTemplateUuid = wizardData.selectedTemplateUuid;
+ vm.selectedTemplateName = wizardData.selectedTemplateName;
+
+ break;
+ }
+ }
+ init();
+
+ vm.addFile = function ()
+ {
+ var newItemNo = vm.selectedCheckListAssociatedFiles.length + 1;
+ vm.selectedCheckListAssociatedFiles.push({'id': newItemNo});
+ };
+
+ vm.removeFile = function (index)
+ {
+ vm.selectedCheckListAssociatedFiles.splice(index,1);
+ };
+
+ vm.closeModal = function(){
+ toastService.clearToast();
+ $rootScope.$emit('onChecklistUpdate');
+ $uibModalInstance.close(vm.checkListName);
+ $uibModalInstance.close();
+ };
+
+
+ vm.submitForm = function ()
+ {
+ vm.isDisabled = true;
+ var checklist_files = [];
+ switch(modal_type){
+ case 'create':
+ angular.forEach(vm.selectedCheckListAssociatedFiles, function(val, key1) {
+ checklist_files.push(val.File);
+ });
+ var jsonPost = {
+ "checkListAssociatedFiles": checklist_files,
+ "checkListName": vm.checkListName,
+ "checkListTemplateUuid" : vm.selectedTemplateUuid
+ };
+
+ checklistService.createChecklist(engagementUuid, jsonPost)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(response.data);
+ $rootScope.ice.loader.show = false;
+ vm.closeModal();
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message || 'Error creating check list.', 'danger', {displayFor: 'modal'});
+ $rootScope.ice.loader.show = false;
+ vm.isDisabled = false;
+ $log.error(error.message);
+ });
+ break;
+ case 'update':
+
+ var updated_file_list = [];
+ angular.forEach(vm.selectedCheckListAssociatedFiles, function(val, key1) {
+ updated_file_list.push(val.File);
+ });
+ $log.debug("update", updated_file_list);
+ var jsonPut = {
+ "checklistUuid": vm.checklistUuid,
+ "checkListAssociatedFiles": updated_file_list,
+ "checkListName": vm.checkListName,
+ "checkListTemplateUuid" : vm.selectedTemplateUuid
+ };
+ checklistService.putDataForChecklist(vm.checklistUuid, jsonPut)
+ .then(function (response) {
+ if (response.status === 200) {
+ $rootScope.$broadcast('onUpdateEngagements',{select:{uuid: engagementUuid, view_type : 'checklist', sub_id: vm.checklistUuid}});
+ $rootScope.ice.loader.show = false;
+
+ var response_data = {};
+ response_data.checklist_name = vm.checkListName;
+ response_data.associated_files = updated_file_list;
+ var array1 = vm.checkListAssociatedFiles.sort();
+ var array2 = updated_file_list.sort();
+
+ var is_same_files = (array1.length == array2.length) && array1.every(function(element, index) {
+ return element === array2[index];
+ });
+ // if file list changed reject checklist
+ if (!is_same_files && wizardData.state != 'pending')
+ {
+ var postData = {};
+ postData["description"] = "Rejected due to file list change";
+ postData["decline"] = "True";
+
+ checklistService.setState(vm.checklistUuid, postData)
+ .then(function (response) {
+ if (response.status === 200) {
+ $rootScope.$broadcast('onUpdateEngagements');
+ }
+ else {
+ toastService.setToast(response.error, 'danger', {displayFor: 'modal'});
+ $rootScope.ice.loader.show = false;
+ vm.isDisabled = false;
+ return;
+ }
+ })
+ .catch(function (error) {
+ $log.error(error);
+ toastService.setToast(error.status + ': Error changing progress!', 'danger');
+ vm.isDisabled = false;
+ return;
+ });
+ }
+
+ $uibModalInstance.close(response_data);
+ vm.closeModal();
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message, 'danger', {displayFor: 'modal'});
+ $rootScope.ice.loader.show = false;
+ $log.error(error.message);
+ vm.isDisabled = false;
+
+ });
+ break;
+ default:
+ $log.debug('no submit action found');
+ vm.isDisabled = false;
+ break;
+ }
+ }
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/checklist/checklist.html b/d2ice.att.io/app/main/modals/checklist/checklist.html
new file mode 100755
index 00000000..d308c9d2
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/checklist/checklist.html
@@ -0,0 +1,107 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<ice-toast is-modal="true"></ice-toast>
+<ice-loader selector=".checkList-form"></ice-loader>
+<div class="modal-header checkList">
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <div class="row margin_btm">
+ <h2 id="modal-header-checklist-15">{{vm.createUpadeTitle}} Checklist</h2>
+ </div>
+</div>
+<div class="modal-body checkList">
+ <form name="checkListForm" ng-submit="vm.submitForm()" novalidate class="checkList-form">
+
+ <div class="row margin_btm" ng-show ="vm.create" id="checklist-subject">
+ Use the form below to create checklist. Please do note that if a file is already associated with another checklist you will need to remove it from that checklist first to be able to associate it.
+ </div>
+ <div class="row margin_btm" ng-show ="vm.update" id="checklist-subject-update">
+ Use the form below to update the checklist. Please do note that if a file is already associated with another checklist you will need to remove it from that checklist first to be able to associate it.
+ </div>
+ <div class="row margin_btm">
+ <div class="col-md-8 row">
+ <h3 id="checklist-name-title" class="col-md-12">Name</h3>
+ <div class="col-md-12"><input type="text" placeholder="Checklist Name" name="checkListName" class="form-control" ng-model="vm.checkListName" maxlength="32" ng-trim="false" ng-pattern="/^[a-zA-Z0-9\&\ ]*$/" required></div>
+ </div>
+ <div class="col-md-4 row">
+ <h3 id="checklist-template-title" class="col-md-12">Checklist Template</h3>
+ <div class="col-md-12">
+ <select id="please-select" ng-model="vm.selectedTemplateUuid" class="form-control" ng-if="vm.modalType === 'create'" required >
+ <option value>Please Select</option>
+ <option id="{{dt.name}}" ng-repeat="dt in vm.checkListTemplates" value="{{dt.uuid}}" ng-selected="{{dt.Selected == true}}">
+ {{dt.name}}
+ </option>
+ </select>
+ </div>
+ <div ng-if="vm.modalType != 'create'" class="col-md-12">
+ <span class="fnt">
+ <input type="text" ng-model="vm.selectedTemplateName" class="form-control" disabled="true" />
+ </span>
+ </div>
+ </div>
+ </div>
+ <div class="row margin_btm">
+ <h3 id="associated-files-title" class="col-md-12 col-no-top">Associate Files</h3>
+
+ <multiselect
+ ng-model="vm.selectedCheckListAssociatedFiles"
+ options="file.File for file in vm.checkListAssociatedFiles"
+ data-multiple="true"
+ scroll-after-rows="5"
+ filter-after-rows="5"
+ class = "col-md-12 checklist-modal-multi-select"
+ ms-header = "Select all associated files for the checklist"
+ ms-selected="{{vm.selectedCheckListAssociatedFiles.length > 1 ? vm.selectedCheckListAssociatedFiles.length + ' Associated files' : vm.selectedCheckListAssociatedFiles.length + ' Associated file'}} selected"
+ id="select-associated-files"
+ tabindex="-1">
+ </multiselect>
+ </div>
+ <div data-ng-show="checkListForm.checkListName.$error" class="ice-form-error">
+ <span ng-show="checkListForm.checkListName.$error.required && !checkListForm.checkListName.$pristine">Name is a required field.</span>
+ <span ng-show="checkListForm.checkListName.$error.maxlength">Provided name is too long.</span>
+ <span ng-show="checkListForm.checkListName.$error.pattern">Name should not include any special chars such as: ,\%_*."</span>
+ </div>
+ <div class="row margin_btm">
+ <div class="col-md-12">
+ <button id="btn-create-checklist" type="submit" class="btn btn-primary" data-ng-disabled="!checkListForm.$valid || vm.isDisabled">{{vm.modalTitle}} Checklist</button>
+ </div>
+ </div>
+ </form>
+</div>
+
+
diff --git a/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.controller.js b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.controller.js
new file mode 100755
index 00000000..160b57cc
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.controller.js
@@ -0,0 +1,105 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('stateDecisionModalController', ['$rootScope','$uibModalInstance', 'checklistService',
+ 'toastService', 'action', 'checklist', '$log', stateDecisionModalController]);
+
+ function stateDecisionModalController($rootScope, $uibModalInstance, checklistService, toastService, action,
+ checklist, $log) {
+
+ var vm = this;
+
+ var init = function () {
+ vm.description = null;
+ vm.checklist_name = checklist.name;
+ vm.state = checklist.state;
+ vm.action = action;
+ vm.modalText = (vm.state == 'pending') ? "Are you sure you want to move the checklist state to Automation?":
+ "Please use the button below to either approve or reject the " +
+ "checklist.<br>You can also add a log entry comment.";
+ };
+
+ vm.submitForm = function(decision) {
+ var postData = {};
+ if (vm.description != null) {
+ postData["description"] = vm.description;
+ }
+ else{
+ postData["description"] = '';
+ }
+
+ if (decision === true) {
+ postData["decline"] = "False";
+ }
+ else {
+ postData["decline"] = "True";
+ }
+
+
+
+ checklistService.setState(checklist.uuid, postData)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(response.data);
+ vm.closeModal();
+ }
+ else {
+ toastService.setToast(response.error, 'danger');
+ $rootScope.ice.loader.show = false;
+ }
+ })
+ .catch(function (error) {
+ $log.error(error);
+ toastService.setToast(error.status + ': Error changing progress!', 'danger');
+ });
+
+ };
+
+ vm.closeModal = function () {
+ $uibModalInstance.close();
+ };
+
+ init();
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html
new file mode 100755
index 00000000..4db81b1f
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html
@@ -0,0 +1,58 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+
+ <form name="approveOrRejectState" id="approve-or-reject-state" novalidate>
+ <div class="row modal-header ">
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <span class="state-title"><span class="bold">Checklist:</span> {{vm.checklist_name}}</span>
+ <div class = "state-title-border"></div>
+ </div>
+ <div class = "row decision-modal-body">
+ <div class = "modal-title" id="modal-title">{{vm.state.replace('_',' ') | capitalize}}</div>
+ <div class = "decision-comment"><div ng-bind-html="vm.modalText"></div></div>
+ <textarea name="entry_comment"rows="3" class = "col-md-12 comment-textarea" ng-model="vm.description" ng-trim="false" ng-pattern="/^[a-zA-Z0-9\&\,\.\ "></textarea>
+ </div>
+ <div data-ng-show="approveOrRejectState.entry_comment.$error" class="ice-form-error">
+ <span ng-show="approveOrRejectState.entry_comment.$error.pattern">Inserted text should not include any special chars such as: \%_*."</span>
+ </div>
+ <div class = "row modal_buttons">
+ <button id="approve-state" type="submit" class="col-md-12 btn btn-gradient-success" ng-if="vm.action == 'approve'" ng-click="vm.submitForm(true)">{{vm.state == 'pending' ? 'Automate' : 'Approve'}}</button>
+ <button id="reject-state" type="submit" class="col-md-12 btn btn-gradient-danger" ng-if="vm.action == 'reject'" ng-click="vm.submitForm(false)">Reject</button>
+ </div>
+ </form>
diff --git a/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.less b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.less
new file mode 100755
index 00000000..08bf14e9
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.less
@@ -0,0 +1,173 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.modal-open .modal {
+ z-index: 30000 !important;
+}
+
+#approve-or-reject-state {
+
+ .modal-title {
+ .a_22_m;
+ }
+
+ .decision-modal-body {
+ margin-bottom: 8px;
+ margin-top: 10px;
+ }
+
+ .decision-comment {
+ .m_14_r;;
+ }
+
+ .modal_buttons {
+ .custom-button {
+ position: relative;
+ width: 30%;
+ float: left;
+ display: inline-block;
+ }
+ .custom-space {
+ position: relative;
+ width: 5%;
+ float: left;
+ min-height: 1px;
+ }
+ }
+
+ .state-title .bold {
+ .m_18_m;
+ }
+ .state-title {
+ .m_18_r;
+ }
+ .state-title-border {
+ border-bottom: dashed 1px;
+ border-color: @main_color_q;
+ margin-left: 0px;
+ }
+
+ .comment-textarea {
+ resize: vertical;
+ }
+
+ .btn-gradient-success {
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #41A02C;
+ *background-color: #41A02C;
+ background-image: -moz-linear-gradient(top, #A2E652, #41A02C);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#A2E652), to(#41A02C));
+ background-image: -webkit-linear-gradient(top, #A2E652, #41A02C);
+ background-image: -o-linear-gradient(top, #A2E652, #41A02C);
+ background-image: linear-gradient(to bottom, #A2E652, #41A02C);
+ background-repeat: repeat-x;
+ border-color: #41A02C;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ }
+ .btn-sample:hover,
+ .btn-sample:focus,
+ .btn-sample:active,
+ .btn-sample.active,
+ .btn-sample.disabled,
+ .btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #41A02C;
+ *background-color: #003bb3;
+ }
+
+ .btn-gradient-danger {
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #AE0020;
+ *background-color: #AE0020;
+ background-image: -moz-linear-gradient(top, #F74658, #AE0020);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F74658), to(#AE0020));
+ background-image: -webkit-linear-gradient(top, #F74658, #AE0020);
+ background-image: -o-linear-gradient(top, #F74658, #AE0020);
+ background-image: linear-gradient(to bottom, #F74658, #AE0020);
+ background-repeat: repeat-x;
+ border-color: #AE0020;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ }
+ .btn-sample:hover,
+ .btn-sample:focus,
+ .btn-sample:active,
+ .btn-sample.active,
+ .btn-sample.disabled,
+ .btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #AE0020;
+ *background-color: #003bb3;
+ }
+
+ .btn-gradient-default {
+ font-weight: bold;
+ color: #B3B3B3;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #D0D0D0;
+ *background-color: #D0D0D0;
+ background-image: -moz-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#FCFCFC), to(#D0D0D0));
+ background-image: -webkit-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: -o-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: linear-gradient(to bottom, #FCFCFC, #D0D0D0);
+ background-repeat: repeat-x;
+ border-color: #D0D0D0;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#D0D0D0', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ }
+ .btn-sample:hover,
+ .btn-sample:focus,
+ .btn-sample:active,
+ .btn-sample.active,
+ .btn-sample.disabled,
+ .btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #D0D0D0;
+ *background-color: #003bb3;
+ }
+
+}
diff --git a/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.controller.js b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.controller.js
new file mode 100755
index 00000000..09773283
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.controller.js
@@ -0,0 +1,92 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('cmsPostModalController', ['$uibModalInstance', 'cmsService','post', '$log', cmsPostModalController]);
+
+ function cmsPostModalController($uibModalInstance, cmsService, post, $log) {
+
+ var vm = this;
+ var init = function () {
+ if(post) {
+ vm.post = post;
+ } else {
+ cmsService.getLastAnnouncementPost()
+ .then(function(response) {
+ if(response && response.data && response.data.length === 1) {
+ vm.post = response.data[0];
+ }
+ })
+ .catch(function(error) {
+ $log.error(error);
+ });
+ }
+
+ loadRecentPosts();
+ };
+
+ vm.closeModal = function (bool) {
+ $uibModalInstance.close(bool);
+ };
+
+ vm.loadSelectedPostData = function(post) {
+ if(post) {
+ vm.post = post;
+ }
+ };
+
+ function loadRecentPosts() {
+ var limit = 5;
+ var fromLastDays = "";
+
+ cmsService.getPosts(limit, fromLastDays, ['Announcement', 'News'])
+ .then(function(response) {
+ vm.recentPosts = response.data;
+ })
+ .catch(function(error) {
+ $log.error(error);
+ });
+ }
+
+ init();
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.html b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.html
new file mode 100755
index 00000000..cd51c5e3
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.html
@@ -0,0 +1,55 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="toast-read-more-container">
+ <div class="modal-header row">
+ <span class="toast-read-more-title" id="toast-title-id">{{vm.post.title}}</span>
+ <p class="toast-read-more-creation ng-binding">Posted at {{vm.post.publish_date | date2: 'EEEE MMMM doo yyyy'}} by {{vm.post.user.username}}</p>
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ </div>
+ <div class="modal-body row toast-read-more-content" id="toast-description" ng-bind-html="vm.post.content"></div>
+ <div class="recent-cms-posts-container row">
+ <div class="line-separator col-md-12"></div>
+ <span class="recent-cms-posts-title">Most recent news & announcements</span>
+ <ul class="recent-cms-posts">
+ <li class="row" data-ng-repeat="post in vm.recentPosts track by post.id" ng-class="{'selected': (post.id === vm.post.id)}" ng-click="vm.loadSelectedPostData(post)">
+ <span class="col-md-7">{{post.title}}</span><span class="col-md-5 post-creation">Posted at {{post.publish_date | date2: 'EEEE MMMM doo yyyy'}} by {{post.user.username}}</span>
+ </li>
+ </ul>
+ </div>
+</div>
diff --git a/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.less b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.less
new file mode 100755
index 00000000..832ef012
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.less
@@ -0,0 +1,106 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.toast-read-more-container {
+ padding: 0 20px;
+ word-wrap: break-word;
+
+ .recent-cms-posts-container {
+ .line-separator {
+ border-bottom: solid 1px @main_color_m;
+ margin: 20px 0;
+ }
+
+ .recent-cms-posts-title {
+ .a_16_m;
+
+ }
+
+ ul.recent-cms-posts {
+ margin-top: 3px;
+
+ li {
+ .f-type._16_m;
+ list-style: none;
+ position: relative;
+ line-height: 28px;
+ cursor: pointer;
+
+ .post-creation {
+ .f-type._12_r;
+ }
+
+ &:before {
+ content: '';
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ }
+ }
+
+ li.selected {
+ background-color: @func_color_r;
+ }
+ }
+ }
+}
+
+.toast-read-more-title {
+ .a_26_m;
+ line-height: 26px;
+}
+
+.toast-read-more-creation {
+ display: block;
+}
+
+.toast-read-more-content {
+ .m_18_r;
+ line-height: 20px;
+ padding: 10px 20px 0;
+}
+
+.modal-cms-post-read-more {
+ width: 70%;
+ margin: 0px auto;
+ height: 100%;
+
+ .modal-content {
+ height: 100%;
+ }
+}
diff --git a/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.controller.js b/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.controller.js
new file mode 100755
index 00000000..e14a9f88
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.controller.js
@@ -0,0 +1,100 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('detailedViewDtsitesModalController', ["$rootScope", "$uibModalInstance", "$stateParams",
+ "dtsiteService", "toastService", "vf_uuid", "$log", detailedViewDtsitesModalController]);
+
+ function detailedViewDtsitesModalController($rootScope, $uibModalInstance, $stateParams, dtsiteService, toastService,
+ vf_uuid, $log) {
+
+ var vm = this;
+
+ var init = function () {
+ if($stateParams.engagement != undefined) {
+ vm.vf = $stateParams.engagement.vf;
+ }
+ getDTsites();
+
+ };
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+
+ vm.json = '';
+
+ vm.submitForm = function(){
+ var postData={
+ "name": vm.json,
+ "vf_uuid": vf_uuid
+ };
+
+ dtsiteService.add(postData)
+ .then(function (response) {
+ $uibModalInstance.close(response.status);
+ })
+ .catch(function (error) {
+ $log.error(error);
+ toastService.setToast(error.status + ': Error changing progress!', 'danger');
+ });
+ };
+
+ var getDTsites = function() {
+ $rootScope.ice.loader.show = true;
+ dtsiteService.get()
+ .then(function (response) {
+ $rootScope.ice.loader.show = false;
+ if (response.status === 200) {
+ vm.dtsites = response.data;
+ }
+ })
+ .catch(function (error) {
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ });
+ };
+
+ init();
+ }
+
+})();
diff --git a/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html b/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html
new file mode 100755
index 00000000..901cd624
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html
@@ -0,0 +1,62 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<form name="addDTSite" ng-submit="vm.submitForm()" novalidate class="update-progress-form">
+ <div class="modal-header">
+ <h3 class="modal-title" id="modal-title">Add Deployment Target</h3>
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ </div>
+
+ <div class="modal-body">
+
+ <div class="table-col-general flex-item">
+ <select ng-model="vm.json" class="form-control" required>
+ <option value>Please Select</option>
+ <option ng-repeat="site in vm.dtsites" value="{{site.name}}">
+ {{site.name}}
+ </option>
+ </select>
+
+ </div>
+ <br>
+ </div>
+
+ <div class="modal-footer">
+ <button type="submit" id="add-dt-save-button" class="btn btn-primary" data-ng-disabled="!addDTSite.$valid">Add Deployment Target</button>
+ </div>
+</form>
diff --git a/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.controller.js b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.controller.js
new file mode 100755
index 00000000..983d8d99
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.controller.js
@@ -0,0 +1,124 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+
+
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('detailedViewVFCModalController', ["$rootScope", "$uibModalInstance", "vfcService", "toastService",
+ "vf_uuid", "usersService", "$log", detailedViewVFCModalController]);
+
+ function detailedViewVFCModalController($rootScope, $uibModalInstance, vfcService, toastService, vf_uuid, usersService, $log) {
+
+ var vm = this;
+
+ var init = function () {
+ vm.me = usersService.getUserData();
+
+ getVendors()
+ };
+
+ vm.vfcs = [{name:'',external_ref_id:'',company:''}];
+ vm.companies = [];
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+
+ vm.addNewChoice = function () {
+ var newItemNo = vm.vfcs.length + 1;
+ vm.vfcs.push({'id': newItemNo});
+ };
+
+ vm.removeChoice = function (index) {
+ vm.vfcs.splice(index,1);
+ };
+
+ vm.submitForm = function(){
+ var jsonAddVfc = [];
+ angular.forEach(vm.vfcs, function (value, key) {
+ vm.item = [];
+ var jsonItem = new Object();
+ jsonItem.name = value.name;
+ jsonItem.external_ref_id = value.external_ref_id;
+ jsonItem.company = value.company;
+ jsonAddVfc.push(jsonItem);
+ });
+
+ var postData={
+ "vfcs": jsonAddVfc,
+ "vf_uuid": vf_uuid,
+ "creator": vm.me,
+ };
+
+ vfcService.add(postData)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(response.status);
+ }
+ })
+ .catch(function (error) {
+ $log.error(error);
+ toastService.setToast(error.status + ': Error changing progress!', 'danger');
+ });
+ };
+
+ var getVendors = function() {
+ $rootScope.ice.loader.show = true;
+ vfcService.getCompanies()
+ .then(function (response) {
+ $rootScope.ice.loader.show = false;
+ if (response.status === 200) {
+ vm.companies = response.data;
+ if(vm.companies.length === 0 ){
+ console.warn("No vendors pulled, request was successfull")
+ }
+ }
+ })
+ .catch(function (error) {
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ });
+ };
+
+ init();
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.html b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.html
new file mode 100755
index 00000000..7ac2097f
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.html
@@ -0,0 +1,100 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+
+<div class="modal-header">
+ <h3 class="modal-title" id="modal-title">Add Virtual Function Components (VFCs)</h3>
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+</div>
+
+<div class = "modal-body">
+
+ <div class = "vfc-explain">Please use the from below to associate the various VFCs to the virtual function
+ and engagement. You can either choose a company or create a new company if it is not listed.</div>
+
+ <form name="addVfcForm" ng-submit="vm.submitForm()">
+
+
+ <div data-ng-repeat="vfc in vm.vfcs" class="row">
+ <!--<div class="flex-container data-row">-->
+ <ng-form name="vfcItemForm">
+ <div class="col-md-6">
+ <input type="text" name="name" placeholder="Name" class="form-control" ng-model="vfc.name" ng-trim="false" ng-pattern="/^[a-zA-Z0-9\&\ \-\_]*$/" maxlength="32" required>
+ </div>
+ <div class="col-md-6 ">
+ <input type="text" name="extRefID" placeholder="Ext. Ref ID" class="form-control" ng-model="vfc.external_ref_id" ng-pattern="/^[a-zA-Z0-9]*$/" maxlength="20" required><br>
+ </div>
+
+
+ <!-- Virtual Function Component's external ref id-->
+ <div class="col-md-6 flex-item">
+ <select ng-model="vfc.company" id="add-vfc-choose-company" class="form-control" required>
+ <option value>Please Select</option>
+ <option ng-repeat="company in vm.companies" value="{{company.name}}">
+ {{company.name}}
+ </option>
+ </select>
+ </div>
+ <div class="col-md-6 flex-item">
+ <input type="text" name="newCompany" placeholder="or create a new company" id="add-vfc-manually-enter-company" class="form-control" ng-model="vfc.company" maxlength="32" ng-trim="false" ng-pattern="/^[a-zA-Z0-9\&\ \-\_]*$/" required>
+ </div>
+ <div class="head flex-container">
+ <div id="add-vfc-remove-obj-from-list" class="vfc-remove-button" ng-if="vm.vfcs.length > 1" ng-click='vm.removeChoice($index)'>
+ <div class="remove-icon" ></div>
+ </div>
+ </div>
+
+ <div class="ice-form-error col-md-12" ng-show="(vfcItemForm.name.$error || vfcItemForm.vfc_extRefID.$error || vfcItemForm.newCompany.$error)">
+ <div ng-show="(vfcItemForm.name.$error.required && !vfcItemForm.name.$pristine) || (vfcItemForm.extRefID.$error.required && !(vfcItemForm.extRefID.$pristine)) || (vfcItemForm.newCompany.$error.required && !(vfcItemForm.newCompany.$pristine))">Please make sure to type a name and Ext. Ref ID for the VFC.</div>
+ <div ng-show="vfcItemForm.name.$error.maxlength || vfcItemForm.extRefID.$error.maxlength || vfcItemForm.newCompany.$error.maxlength"> Name / Ext. Ref ID / new company name is too long.</div>
+ <div ng-show="vfcItemForm.name.$error.pattern || vfcItemForm.extRefID.$error.pattern || vfcItemForm.newCompany.$error.pattern"> Name / Ext. Ref ID / new company name should not include any special chars such as: .,\%" </div>
+ </div>
+ </ng-form>
+ </div>
+
+ <div data-ng-disabled="!addVfcForm.$valid">
+ <a ng-if="!vm.isModal" id="add-vfc-modal" class="modal-add-vfc" ng-click='vm.addNewChoice()'>
+ <span class="add-icon"></span><span class="add-text">Add VFC</span>
+ </a>
+ </div>
+ <div class="modal-footer">
+ <button type="submit" id="add-vfc-save-button" class="btn btn-primary" data-ng-disabled="!addVfcForm.$valid">Add VFCs</button>
+ </div>
+
+ </form>
+</div>
diff --git a/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.less b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.less
new file mode 100755
index 00000000..5ce9098d
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.less
@@ -0,0 +1,68 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.vfc-remove-button {
+ width: 20px;
+ height: 40px;
+ float: right;
+ .a_16_m;
+ cursor: pointer;
+ margin: 14px 0 0 0;
+
+ .remove-icon {
+ .sprite;
+ .sprite.delete-circle;
+ cursor: pointer;
+ display: block;
+ }
+}
+
+.modal-add-vfc {
+ margin-top: 8px;
+ display: block;
+ .add-text {
+ .a_16_m;
+ vertical-align: top;
+ margin-left: 6px;
+ }
+ .add-icon {
+ .sprite;
+ .sprite.add;
+ display: inline-block;
+ }
+}
diff --git a/d2ice.att.io/app/main/modals/feedback/feedback.controller.js b/d2ice.att.io/app/main/modals/feedback/feedback.controller.js
new file mode 100755
index 00000000..acee617b
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/feedback/feedback.controller.js
@@ -0,0 +1,82 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('FeedbackModalController', ['$rootScope','$uibModalInstance', 'feedbackService',
+ 'action', 'toastService', '$log', FeedbackModalController]);
+
+ function FeedbackModalController($rootScope, $uibModalInstance, feedbackService, action, toastService, $log) {
+ var vm = this;
+
+ var init = function() {
+ vm.action = action;
+ vm.feedback_modal_description = '';
+ };
+
+ init();
+
+ vm.submitForm = function ()
+ {
+ var feedbackPostData = {"description":vm.feedback_modal_description};
+ if (action == 'add') {
+ feedbackService.add(feedbackPostData)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(response.data);
+ toastService.setToast('Feedback was sent successfully.', 'success');
+ } else {
+ toastService.setToast(response.error, 'danger');
+ $rootScope.ice.loader.show = false;
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message, 'danger');
+ $log.error(error.message);
+ });
+ }
+ };
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/feedback/feedback.html b/d2ice.att.io/app/main/modals/feedback/feedback.html
new file mode 100755
index 00000000..88912c84
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/feedback/feedback.html
@@ -0,0 +1,57 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="modal-header">
+ <h3 class="modal-title">{{ 'Add' }} Feedback</h3>
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+</div>
+<div class="modal-body feedback-modal-body">
+ <span>Use the form below to {{'add' }} the current feedback.</span>
+ <form name="feedbackForm" ng-submit="vm.submitForm()" novalidate class="feedback-modal-form">
+ <textarea class="col-sm-12 col-xs-12 col-md-12 feedback-modal-description" name="description" required ng-model="vm.feedback_modal_description"></textarea>
+ <div class="ice-form-error" data-ng-show="feedbackForm.description.$error">
+ <span ng-show="feedbackForm.description.$error.required && !feedbackForm.description.$pristine">Description is a required field.</span>
+ </div>
+
+ <div class="modal-footer">
+ <button type="submit" id="add-feedback-save-button" class="btn btn-primary" data-ng-disabled="!feedbackForm.$valid">{{'Add'}} feedback</button>
+ </div>
+ </form>
+</div>
+
+
diff --git a/d2ice.att.io/app/main/modals/feedback/feedback.less b/d2ice.att.io/app/main/modals/feedback/feedback.less
new file mode 100755
index 00000000..5d7fd8b3
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/feedback/feedback.less
@@ -0,0 +1,44 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.feedback-modal-body {
+ .feedback-modal-description {
+ border-color: @main_color_q;
+ margin-bottom:15px;
+ }
+}
diff --git a/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.controller.js b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.controller.js
new file mode 100755
index 00000000..98fb2c14
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.controller.js
@@ -0,0 +1,63 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('GeneralLogModalController', ['$uibModalInstance', 'modalDetails', GeneralLogModalController]);
+
+ function GeneralLogModalController($uibModalInstance, modalDetails) {
+
+ var vm = this;
+
+ var init = function() {
+ if(modalDetails) {
+ vm.headline = modalDetails.headline || 'General log modal';
+ vm.body = modalDetails.body || 'There is no body';
+ }
+ };
+
+ init();
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.html b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.html
new file mode 100755
index 00000000..f87a8ac7
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.html
@@ -0,0 +1,45 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="general-log-containter">
+ <div class="modal-header row general-log-subtitle">
+ <span class="general-log-modal-title" id="general-log-modal-title-id">{{vm.headline}}</span>
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ </div>
+ <pre class="modal-body row general-log-body" id="general-log-modal-body-id" ng-bind-html="vm.body"></pre>
+</div>
diff --git a/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.less b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.less
new file mode 100755
index 00000000..e48ed525
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.less
@@ -0,0 +1,72 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+
+.general-log-containter {
+ height: inherit;
+ padding: 0 20px 30px;
+ word-wrap: break-word;
+
+ .general-log-subtitle {
+ padding-bottom: 10px;
+ }
+
+ .general-log-body {
+ height: inherit;
+ overflow:scroll;
+ padding: 0px 20px 0;
+ .m_18_r;
+ line-height: 20px;
+ }
+}
+
+.general-log-modal-title {
+ .a_26_m;
+ line-height: 26px;
+}
+
+.modal-general-log-modal {
+ width: 70%;
+ margin: 0px auto;
+ height: 100%;
+
+ .modal-content {
+ height: 100%;
+ }
+}
diff --git a/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.controller.js b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.controller.js
new file mode 100755
index 00000000..f887a5ee
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.controller.js
@@ -0,0 +1,74 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('generalPromptModalController', ['$uibModalInstance','modalDetails',generalPromptModalController]);
+
+ function generalPromptModalController($uibModalInstance, modalDetails) {
+
+ var vm = this;
+ var init = function () {
+ if(modalDetails) {
+ vm.upper_headline = modalDetails.upper_headline;
+ vm.upper_headline_value = modalDetails.upper_headline_value;
+ vm.headline = modalDetails.headline || 'D2ICE';
+ vm.message = modalDetails.message || 'Are you sure?';
+ vm.closeCallback = modalDetails.closeCallback;
+ vm.approveText = modalDetails.approve || 'Approve';
+ vm.cancelText = modalDetails.cancel || 'Cancel';
+ vm.is_close_modal_button = modalDetails.is_close_modal_button;
+ vm.is_message = modalDetails.is_message;
+ }
+ };
+
+ vm.closeModal = function (bool) {
+ if(vm.closeCallback) {
+ vm.closeCallback(bool);
+ }
+
+ $uibModalInstance.close(bool);
+ };
+
+ init();
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.html b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.html
new file mode 100755
index 00000000..3bd31887
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.html
@@ -0,0 +1,52 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="modal-header">
+ <button ng-if=vm.is_close_modal_button type="button" ng-click="vm.closeModal()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <div ng-if=vm.upper_headline class="general-prompt-upper-dash">
+ <div id="general-prompt-upper-headline" class="general-prompt-upper-headline">{{vm.upper_headline}}<span ng-if=vm.upper_headline class="upper-headline-value">{{vm.upper_headline_value}}</span></div>
+ </div>
+ <div class="general-prompt-title"><span class="bold" id="general-prompt-title">{{vm.headline}}</span></div>
+</div>
+<div class="modal-body row general-prompt-body">
+ <div ng-if=vm.is_message class="general-prompt-text-details" ng-bind-html="vm.message"></div>
+ <div ng-if=!vm.is_message>&nbsp;</div>
+ <button id="general-prompt-approve-btn" type="submit" class="col-md-5 btn btn-gradient-success" ng-click="vm.closeModal(true)">{{vm.approveText}}</button>
+ <span class="col-md-2"></span>
+ <button id="general-prompt-cancel-btn" type="submit" class="col-md-5 btn btn-gradient-danger" ng-click="vm.closeModal(false)">{{vm.cancelText}}</button>
+</div>
diff --git a/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.less b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.less
new file mode 100755
index 00000000..d367cdaa
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.less
@@ -0,0 +1,151 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.general-prompt-text-details {
+ .l_14_r;
+ padding: 3% 0% 3% 0%;
+}
+
+.general-prompt-upper-headline {
+ .l_14_m;
+}
+.general-prompt-upper-dash {
+ border-bottom: dashed 1px #5a5a5a;
+ margin-bottom: 15px;
+}
+.upper-headline-value{
+ .l_14_i;
+}
+
+.general-prompt-body{
+ margin: 0px;
+}
+
+.general-prompt-title {
+ .m_18_r;
+
+ .bold {
+ .a_18_m;
+ }
+
+}
+
+
+.btn-gradient-success {
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #41A02C;
+ *background-color: #41A02C;
+ background-image: -moz-linear-gradient(top, #A2E652, #41A02C);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#A2E652), to(#41A02C));
+ background-image: -webkit-linear-gradient(top, #A2E652, #41A02C);
+ background-image: -o-linear-gradient(top, #A2E652, #41A02C);
+ background-image: linear-gradient(to bottom, #A2E652, #41A02C);
+ background-repeat: repeat-x;
+ border-color: #41A02C;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+.btn-sample:hover,
+.btn-sample:focus,
+.btn-sample:active,
+.btn-sample.active,
+.btn-sample.disabled,
+.btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #41A02C;
+ *background-color: #003bb3;
+}
+
+.btn-gradient-danger {
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #AE0020;
+ *background-color: #AE0020;
+ background-image: -moz-linear-gradient(top, #F74658, #AE0020);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F74658), to(#AE0020));
+ background-image: -webkit-linear-gradient(top, #F74658, #AE0020);
+ background-image: -o-linear-gradient(top, #F74658, #AE0020);
+ background-image: linear-gradient(to bottom, #F74658, #AE0020);
+ background-repeat: repeat-x;
+ border-color: #AE0020;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+.btn-sample:hover,
+.btn-sample:focus,
+.btn-sample:active,
+.btn-sample.active,
+.btn-sample.disabled,
+.btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #AE0020;
+ *background-color: #003bb3;
+}
+
+.btn-gradient-default {
+ font-weight: bold;
+ color: #B3B3B3;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #D0D0D0;
+ *background-color: #D0D0D0;
+ background-image: -moz-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#FCFCFC), to(#D0D0D0));
+ background-image: -webkit-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: -o-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: linear-gradient(to bottom, #FCFCFC, #D0D0D0);
+ background-repeat: repeat-x;
+ border-color: #D0D0D0;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#D0D0D0', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+.btn-sample:hover,
+.btn-sample:focus,
+.btn-sample:active,
+.btn-sample.active,
+.btn-sample.disabled,
+.btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #D0D0D0;
+ *background-color: #003bb3;
+}
diff --git a/d2ice.att.io/app/main/modals/next-steps/next-steps.controller.js b/d2ice.att.io/app/main/modals/next-steps/next-steps.controller.js
new file mode 100755
index 00000000..b90921ff
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/next-steps/next-steps.controller.js
@@ -0,0 +1,278 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('NextStepsModalController', ['$rootScope', '$uibModalInstance', 'stepsService', 'engagement_team',
+ 'title', 'associated_files', 'engagement_uuid', 'checklist', 'nextstep', 'toastService', '$log', NextStepsModalController]);
+
+ function NextStepsModalController($rootScope, $uibModalInstance, stepsService, engagement_team, title,
+ associated_files, engagement_uuid, checklist, nextstep, toastService, $log) {
+
+ var vm = this;
+ vm.nextSteps = [{assigneesUuids: '',description: '', files: '', duedate: ''}];
+
+ var init = function() {
+
+ vm.myDate = new Date();
+ vm.minDate = new Date(
+ vm.myDate.getFullYear(),
+ vm.myDate.getMonth(),
+ vm.myDate.getDate());
+ vm.maxDate = new Date(
+ vm.myDate.getFullYear() + 2,
+ vm.myDate.getMonth(),
+ vm.myDate.getDate());
+ vm.onlyWeekendsPredicate = function (date) {
+ var day = date.getDay();
+ return day === 0 || day === 6;
+ };
+
+ vm.wysiwyg_menu = [
+ ['bold', 'italic', 'strikethrough', 'underline'],
+ ['unordered-list', 'ordered-list', 'outdent', 'indent']
+ ];
+ vm.select_str = {File: 'Select All'};
+ vm.select_all_flag = false;
+ vm.associated_files = [];
+ vm.associated_files.push( vm.select_str);
+ vm.assigness = [];
+ vm.title = title;
+ if (checklist == undefined)
+ {
+ vm.checklist = {};
+ vm.checklist.uuid = undefined;
+ } else {
+ vm.checklist = checklist;
+ }
+
+ var unique_files = [];
+ angular.forEach(associated_files, function (value, key) {
+ if (unique_files.indexOf(value) == -1) {
+ unique_files.push(value);
+ vm.associated_files.push({File: value});
+ }
+ });
+ angular.forEach(engagement_team, function (value, key) {
+ vm.assigness.push({name: value.full_name, id: value.uuid});
+ });
+ vm.edit = false;
+
+ if (nextstep != undefined)
+ {
+ vm.edit = true;
+ var current = {};
+ current.description = nextstep.description;
+ current.files = [];
+ current.duedate = new Date(nextstep.due_date);
+ var unique_files = [];
+ angular.forEach(nextstep.files, function(val, key1) {
+ if (unique_files.indexOf(value) == -1) {
+ unique_files.push(value);
+ current.files.push({File: val});
+ }
+ });
+
+ current.assigneesUuids = [];
+ angular.forEach(nextstep.assignees, function(val, key1) {
+ current.assigneesUuids.push({name : val.full_name, id :val.uuid});
+
+ });
+ vm.nextSteps = [current];
+ }
+ };
+
+ init();
+
+ vm.get_chosen_files_num = function(ns){
+ if (ns.files.length == associated_files.length+1) {
+ return ns.files.length - 1;
+ }
+ return ns.files.length
+ }
+
+ vm.add_all_associated_files = function (ns , choose_option){
+ if (choose_option == true) {
+ ns.files = [];
+ ns.files.push({File: 'Select All'});
+ _.forEach(associated_files, function (value, key) {
+ ns.files.push({File: value});
+ });
+ }
+ else {
+ vm.select_all_flag = false;
+ ns.files = [];
+ }
+ return;
+ }
+
+ vm.pull_select_all_from_list = function(ns){
+ var shortened_files_list = [];
+ _.forEach(ns.files, function(item) {
+ if (!_.isEqual(item, vm.select_str)) {
+ shortened_files_list.push(item);
+ }
+ });
+ ns.files = shortened_files_list;
+ }
+
+ vm.verify_files_choice = function(ns){
+ _.forEach(ns.files, function(item) {
+ if (ns.files.length == associated_files.length && vm.select_all_flag) {
+ if (item === vm.select_str) {
+ vm.select_all_flag = false;
+ vm.pull_select_all_from_list(ns);
+ }
+ else {
+ vm.add_all_associated_files(ns, false)
+ }
+ }
+ else if (ns.files.length == associated_files.length && !vm.select_all_flag) {
+ ns.files.push({File: 'Select All'});
+ vm.select_all_flag = true;
+ }
+ else if (item === vm.select_str) {
+ vm.select_all_flag = true;
+ vm.add_all_associated_files(ns, true)
+ }
+ })
+ }
+
+ vm.addNewStep = function () {
+ var newItemNo = vm.nextSteps.length + 1;
+ vm.nextSteps.push({'id': newItemNo});
+ };
+
+ vm.removeStep = function (index) {
+ vm.nextSteps.splice(index,1);
+ };
+
+ vm.closeModal = function(){
+ $rootScope.ice.loader.show = false;
+ toastService.clearToast();
+ $uibModalInstance.close();
+ };
+
+ vm.submitForm = function () {
+
+ var jsonNextSteps = [];
+
+ var objDate;
+ var strDate;
+ angular.forEach(vm.nextSteps, function(value, key) {
+ var next_step = {};
+ next_step.files = [];
+ if (value.files.length > associated_files.length) {
+ vm.pull_select_all_from_list(value);
+ }
+ angular.forEach(value.files, function(val, key1) {
+ next_step.files.push(val.File);
+ });
+ next_step.assigneesUuids = [];
+ angular.forEach(value.assigneesUuids, function(val, key1) {
+ next_step.assigneesUuids.push(val.id);
+ });
+
+ // TODO exho correct format in one command
+ objDate = new Date(Date.parse((value.duedate) + moment().format("z")));
+ next_step.duedate = objDate.getFullYear() + "-" + addZero(objDate.getMonth()+1) + "-" + addZero(objDate.getDate());
+ next_step.description = value.description;
+ jsonNextSteps.push(next_step);
+ });
+ var checklist_uuid = vm.checklist.uuid;
+ var engUuid = engagement_uuid;
+ if (vm.edit){
+ stepsService.edit(engagement_uuid, nextstep.uuid,jsonNextSteps[0])
+ .then(function (response) {
+ if (response.status === 202) {
+ $uibModalInstance.close(response.data);
+ }
+ })
+ .catch(function (error) {
+ $log.error(error);
+ toastService.setToast(error.status + ': Error adding next step!', 'danger', {displayFor: 'modal'});
+ });
+ } else if (vm.checklist.uuid == undefined) {
+
+ stepsService.add(engagement_uuid, jsonNextSteps)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(response.data);
+ }
+ })
+ .catch(function (error) {
+ $log.error(error);
+ toastService.setToast(error.status + ': Error adding next step!', 'danger', {displayFor: 'modal'});
+ });
+ } else {
+ stepsService.createChecklistNextStep(checklist_uuid, engUuid, jsonNextSteps)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(response.status);
+ vm.closeModal();
+ }
+ else
+ {
+ toastService.setToast(error.message, 'danger', {displayFor: 'modal'});
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message, 'danger', {displayFor: 'modal'});
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ });
+ }
+ };
+
+ var addZero = function(x)
+ {
+ if (x<10)
+ {
+ return("0"+x);
+ } else
+ {
+ return(x);
+ }
+ }
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/next-steps/next-steps.html b/d2ice.att.io/app/main/modals/next-steps/next-steps.html
new file mode 100755
index 00000000..588247e8
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/next-steps/next-steps.html
@@ -0,0 +1,138 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<ice-toast is-modal="true"></ice-toast>
+<div class="modal-header next-steps">
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <div class="data-row-wrapper col-md-12 checklist-name" >
+ <span class="font_header">
+ {{vm.checklist.uuid == undefined && 'Engagement' || 'Checklist' }}:
+ </span>
+ <span class="font_header_chk_name margin_btm">
+ {{vm.title}}
+ </span>
+ </div>
+</div>
+<div class="modal-body next-steps">
+ <form name="nextStepsForm" ng-submit="vm.submitForm()" novalidate class="checkList-form" style="position:relative">
+ <div class="data-row-wrapper addNextSteps">
+ <div class="row">
+ <div class="col-md-12">
+ <span class="font_header_add_next">
+ <h2>{{vm.edit ? 'Edit' : 'Add'}} Next Steps</h2>
+ </span>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-12">
+ <span class="m_18_r">Use the form below to {{vm.edit ? 'edit next step' : 'add next steps'}}. You will need to specify assignees, which files it applies to and the due date.</span>
+ </div>
+ </div>
+ </div>
+ <div data-ng-repeat="nextStep in vm.nextSteps" ng-class="{lineColor: ($index % 2 != 0)}" class="data-row-wrapper repeaterNextStep">
+ <div class="form-group row posRelative">
+ <span class="remove-icon posAbsDelBtn" ng-if="vm.nextSteps.length > 1" ng-click='vm.removeStep($index)'></span>
+ <div class="col-md-12">
+ <wysiwyg textarea-id="description"
+ textarea-class="form-control"
+ textarea-name="description"
+ name="description"
+ textarea-height="160px"
+ ng-required="true"
+ ng-model="nextStep.description"
+ class="ice-wysiwyg"
+ enable-bootstrap-title="true"
+ textarea-menu="vm.wysiwyg_menu"
+ required>
+ </wysiwyg>
+ </div>
+ <div class="col-md-12 padTop4">
+ <multiselect
+ ng-model="nextStep.files"
+ options="c.File for c in vm.associated_files"
+ name="{{vm.associated_files}}"
+ data-multiple="true"
+ scroll-after-rows="5"
+ filter-after-rows="5"
+ ng-required='vm.checklist.uuid != undefined'
+ ms-selected="{{nextStep.files.length > 1 ? vm.get_chosen_files_num(nextStep) + ' files' : nextStep.files.length + ' file'}} selected"
+ class = "ms"
+ ms-header = "Select all associated files to this next step"
+ id="associated-files-list"
+ tabindex="-1"
+ change="vm.verify_files_choice(nextStep)"
+ >
+ </multiselect>
+ </div>
+ <div class="col-md-6 padTop10">
+ <multiselect
+ ng-model="nextStep.assigneesUuids"
+ options="c.name for c in vm.assigness"
+ data-multiple="true"
+ scroll-after-rows="5"
+ filter-after-rows="5"
+ ng-required='vm.checklist.uuid != undefined'
+ ms-header = "Select assignees"
+ ms-selected="{{nextStep.assigneesUuidss.length > 1 ? nextStep.assigneesUuidss.length + ' assignees' : nextStep.assigneesUuidss.length + ' assignee'}} selected"
+ id="select-assigness"
+ tabindex="-1">
+ </multiselect>
+ </div>
+ <div class="col-md-6 padTop10">
+ <div flex-gt-xs>
+ <md-datepicker ng-model-options="{timezone: 'gmt'}" md-min-date="vm.minDate" class="btn btn-default" ng-model="nextStep.duedate" md-placeholder="Add a Due Date" data-ng-required="true" ></md-datepicker>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="data-row-wrapper " ng-if="!vm.edit">
+ <div class="col-md-12 padLeft0">
+ <a class="add-button" ng-click='vm.addNewStep()'>
+ <span class="add-icon"></span>
+ <span class="add-text" >Add Another Next Step</span>
+ </a>
+ </div>
+ </div>
+ <div class="data-row-wrapper ">
+ <button type="submit" id="btn-submit" class="btn btn-primary" data-ng-disabled="!nextStepsForm.$valid">Submit Next Steps</button>
+ </div>
+ <div class="data-row-wrapper text-right font-deco" ng-click="vm.closeModal()">
+ Skip for now
+ </div>
+ </form>
+</div>
diff --git a/d2ice.att.io/app/main/modals/next-steps/next-steps.less b/d2ice.att.io/app/main/modals/next-steps/next-steps.less
new file mode 100755
index 00000000..faf3eb9e
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/next-steps/next-steps.less
@@ -0,0 +1,307 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.md-datepicker-calendar-pane {
+ z-index:30001;
+}
+md-datepicker.btn {
+ width:100%;
+ padding: 0px;
+ position: relative;
+
+ .md-button.md-icon-button.md-datepicker-button {
+ float:left;
+ min-height: 0px;
+ height: 32px;
+ z-index: 2;
+ width: 100%;
+ padding: 0px;
+ margin: 0px;
+ md-icon {
+ display:none;
+ }
+ }
+
+ .md-datepicker-input-container{
+
+ line-height: 28px;
+ border-bottom:none;
+ margin-left: 0px;
+ position: absolute;
+ left: 0px;
+ padding-left: 0px;
+ width: 100%
+ }
+
+ .md-datepicker-input {
+ width: 100%;
+ text-align: left;
+ line-height: 32px;
+ padding-left: 10px;
+ margin: 0px;
+ }
+ .md-datepicker-input::-webkit-input-placeholder {
+ color: #555;
+ }
+ .md-datepicker-triangle-button {
+ top: 7px;
+ }
+ .md-datepicker-triangle-button .md-datepicker-expand-triangle {
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid transparent;
+ border-bottom: 4px solid transparent;
+ }
+
+ .md-datepicker-triangle-button .md-datepicker-expand-triangle:before {
+ position: absolute;
+ top: -13px;
+ left: -3px;
+ display: inline-block;
+ border-left: 3.8px solid transparent;
+ border-right: 3.8px solid transparent;
+ border-top: 7px solid transparent;
+ border-bottom: 5.9px solid #555555;
+ content: '';
+ }
+
+ .md-datepicker-triangle-button .md-datepicker-expand-triangle:after {
+ position: absolute;
+ top: 1px;
+ left: -3px;
+ display: inline-block;
+ border-left: 3.8px solid transparent;
+ border-right: 3.8px solid transparent;
+ border-top: 5.9px solid #555555;
+ border-bottom: 7px solid transparent;
+ content: '';
+ }
+
+}
+
+.dropdown-menu li[data-ng-if="modelValue().length > 0"] {
+ display:none;
+}
+.next-steps
+{
+ md-datepicker .md-datepicker-input {
+ text-align: center;
+ }
+
+}
+
+.next-steps {
+
+ .checklist-name
+ {
+ padding-left:0px;
+ border-bottom:1px dashed;
+ }
+
+ .addNextSteps
+ {
+
+ margin-bottom:10px;margin-top:10px;
+ }
+
+ .repeaterNextStep
+ {
+
+ margin-bottom:10px;
+ padding-left:10px;
+ padding-right:10px;
+ padding-left:10px;
+ padding-top:10px;
+ padding-bottom:10px;
+ border:1px solid;
+ border-color:#CCCCCC;
+ }
+
+ .padTop4
+ {
+ padding-top:4px;
+ }
+
+ .padTop10
+ {
+ padding-top:10px;
+ }
+
+ .padLeft0
+ {
+ padding-left:0px;
+ }
+
+ .add-header
+ {
+ .a_16_m;
+ }
+
+ .ice-wysiwyg {
+ height: 200px;
+ .wysiwyg-menu > div {
+ background-color: #f1f1f1;
+ padding: 2px;
+ }
+ }
+
+ .font-deco {
+ text-decoration-line: underline;
+ text-decoration-style: dashed;
+ }
+
+ .text-right
+ {
+ text-align:right;
+ }
+
+ .font_header
+ {
+ margin_top:0px;
+ .m_18_m;
+ }
+
+ .font_header_add_next
+ {
+ .a_24_m;
+ }
+
+ .font_header_chk_name
+ {
+ .m_18_r;
+ }
+
+ .margin_btm
+ {
+ margin-bottom:12px;
+ }
+
+ .ms
+ {
+ background-color:yellow;
+ }
+
+ multiselect > .btn-group
+ {
+ width:100%;
+ }
+ multiselect > .btn-group > .btn
+ {
+ width:100%;
+ }
+ multiselect > .btn-group > .dropdown-menu
+ {
+ width:100%;
+ }
+
+ form > .lineColor
+ {
+ background-color:#F6F3F3;
+ }
+
+ .add-icon {
+ .sprite;
+ .sprite.add;
+ display: inline-block;
+ }
+
+ .add-button {
+ margin-top: 8px;
+ display: block;
+ .add-text {
+ .a_16_m;
+ vertical-align: top;
+ margin-left: 6px;
+ }
+ }
+
+ .remove-icon {
+ cursor: pointer;
+ vertical-align: text-top;
+ //.sprite;
+ //.sprite.delete;//-circle;
+ .actions-sprite;
+ .actions-sprite.delete_large;
+
+ display:block;
+ position:relative;
+ top:11px;
+ }
+
+ .posRelative
+ {
+ position:relative;
+ }
+
+ .posAbsDelBtn
+ {
+ position:absolute;
+ top:10px;
+ right:20px;
+ z-index:40000;
+ }
+
+ #btn-submit {
+ width: 100%;
+ }
+
+ .btn-primary {
+ border: 1px solid #8799A3;
+ border-radius: 6px;
+ background: #1E79B0; /* For browsers that do not support gradients */
+ background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */
+ background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */
+ background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */
+ background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */
+ }
+
+
+
+ .datepickerdemoBasicUsage {
+ /** Demo styles for mdCalendar. */ }
+ .datepickerdemoBasicUsage md-content {
+ padding-bottom: 200px; }
+ .datepickerdemoBasicUsage .validation-messages {
+ font-size: 12px;
+ color: #dd2c00;
+ margin-left: 15px; }
+
+
+
+
+}
diff --git a/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.controller.js b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.controller.js
new file mode 100755
index 00000000..9b73e706
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.controller.js
@@ -0,0 +1,78 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('selectELModalController', ['$uibModalInstance', 'excludeUuids', 'selectedOption', 'usersService',
+ '_', '$log', selectELModalController]);
+
+ function selectELModalController($uibModalInstance, excludeUuids, selectedOption, usersService, _, $log) {
+ var vm = this;
+ vm.show_warning = false;
+ var init = function () {
+ usersService.getEngagementLeads()
+ .then(function(response) {
+ vm.engagementLeads = _.filter(response.data, function(el) {
+ return el.uuid;
+ });
+
+ vm.selectedUserUuid = _.find(vm.engagementLeads, ['uuid', selectedOption]);
+ })
+ .catch(function(error) {
+ $log.error(error);
+ vm.closeModal();
+ });
+ };
+
+ vm.closeModal = function () {
+ $uibModalInstance.dismiss();
+ };
+
+ vm.onUserSelect = function() {
+ if(vm.selectedUserUuid) {
+ $uibModalInstance.close(vm.selectedUserUuid);
+ }
+ };
+
+ init();
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.html b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.html
new file mode 100755
index 00000000..fa285a6d
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.html
@@ -0,0 +1,56 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="select-engagement-lead-modal">
+ <div class="modal-header row">
+ <button type="button" ng-click="vm.closeModal()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <div id="archive-engagement-title" class="select-engagement-lead-title"><span>Select Engagement Lead</span></div>
+ <span class="select-engagement-lead-description">Please select engagement lead from the list below.</span>
+ </div>
+ <div class="modal-body row">
+ <div class="form-group">
+ <select style="width:100%" name="selected-user" ng-model="vm.selectedUserUuid" ng-change="vm.onUserSelect()"
+ ng-options="el.uuid as el.full_name for el in vm.engagementLeads track by el.uuid" class="form-control">
+ </select>
+ </div>
+ <div class="modal-body">
+ Engagement lead cannot be both reviewer and peer reviewer.<br>
+ If you assign the same user to two roles, we will automatically switch the other users' role.
+ </div>
+ </div>
+</div>
diff --git a/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.less b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.less
new file mode 100755
index 00000000..6371cf7e
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.less
@@ -0,0 +1,54 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.select-engagement-lead-modal {
+ padding: 0px 15px 0px 15px;
+
+ .select-engagement-lead-title {
+ .a_24_m;;
+ }
+
+ .select-engagement-lead-description {
+ .m_16_r;
+ }
+
+ .modal-body {
+ top: 10px;
+ }
+}
+
diff --git a/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.controller.js b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.controller.js
new file mode 100755
index 00000000..3824870d
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.controller.js
@@ -0,0 +1,63 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('setEngStageModalController', ['$rootScope','$uibModalInstance','stage','eng_name','current_stage', setEngStageModalController]);
+
+ function setEngStageModalController($rootScope, $uibModalInstance,stage, eng_name, current_stage) {
+
+ var vm = this;
+ var init = function () {
+ vm.stage = stage;
+ vm.current_stage = current_stage;
+ vm.modalText = "Are you sure you want to set the Engagement's stage to "+vm.stage+"?";
+ vm.eng_name = eng_name;
+ }
+
+ vm.closeModal = function (bool) {
+ $uibModalInstance.close(bool);
+ };
+
+ init();
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.html b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.html
new file mode 100755
index 00000000..362eb93b
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.html
@@ -0,0 +1,49 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="modal-header row">
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <div class="set-stage-title"><span class="bold">Engagement:</span> {{vm.eng_name}}</div>
+</div>
+<div class="modal-body row">
+ <span class="set-stage-title"><span class="bold">Current stage:</span> {{vm.current_stage.replace('_',' ') | capitalize}}</span>
+ <div class="set-stage-modal-text-details" id="modal-message-{{vm.stage}}" ng-bind-html="vm.modalText"></div>
+ <button type="submit" class="col-md-5 btn btn-gradient-success" ng-click="vm.closeModal(true)">Approve</button>
+ <span class="col-md-2"></span>
+ <button type="submit" class="col-md-5 btn btn-gradient-danger" ng-click="vm.closeModal(false)">Cancel</button>
+</div>
diff --git a/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.less b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.less
new file mode 100755
index 00000000..af7d5ba1
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.less
@@ -0,0 +1,135 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.set-stage-modal-text-details {
+ .m_18_r;
+ padding: 3% 0% 3% 0%;
+}
+
+.set-stage-title {
+ .m_18_r;
+
+ .bold {
+ .a_18_m;
+ }
+
+}
+
+.btn-gradient-success {
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #41A02C;
+ *background-color: #41A02C;
+ background-image: -moz-linear-gradient(top, #A2E652, #41A02C);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#A2E652), to(#41A02C));
+ background-image: -webkit-linear-gradient(top, #A2E652, #41A02C);
+ background-image: -o-linear-gradient(top, #A2E652, #41A02C);
+ background-image: linear-gradient(to bottom, #A2E652, #41A02C);
+ background-repeat: repeat-x;
+ border-color: #41A02C;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+.btn-sample:hover,
+.btn-sample:focus,
+.btn-sample:active,
+.btn-sample.active,
+.btn-sample.disabled,
+.btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #41A02C;
+ *background-color: #003bb3;
+}
+
+.btn-gradient-danger {
+ font-weight: bold;
+ color: #FFFFFF;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #AE0020;
+ *background-color: #AE0020;
+ background-image: -moz-linear-gradient(top, #F74658, #AE0020);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F74658), to(#AE0020));
+ background-image: -webkit-linear-gradient(top, #F74658, #AE0020);
+ background-image: -o-linear-gradient(top, #F74658, #AE0020);
+ background-image: linear-gradient(to bottom, #F74658, #AE0020);
+ background-repeat: repeat-x;
+ border-color: #AE0020;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+.btn-sample:hover,
+.btn-sample:focus,
+.btn-sample:active,
+.btn-sample.active,
+.btn-sample.disabled,
+.btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #AE0020;
+ *background-color: #003bb3;
+}
+
+.btn-gradient-default {
+ font-weight: bold;
+ color: #B3B3B3;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #D0D0D0;
+ *background-color: #D0D0D0;
+ background-image: -moz-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#FCFCFC), to(#D0D0D0));
+ background-image: -webkit-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: -o-linear-gradient(top, #FCFCFC, #D0D0D0);
+ background-image: linear-gradient(to bottom, #FCFCFC, #D0D0D0);
+ background-repeat: repeat-x;
+ border-color: #D0D0D0;
+ border-color: #888;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#D0D0D0', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+.btn-sample:hover,
+.btn-sample:focus,
+.btn-sample:active,
+.btn-sample.active,
+.btn-sample.disabled,
+.btn-sample[disabled] {
+ color: #FFFFFF;
+ background-color: #D0D0D0;
+ *background-color: #003bb3;
+}
diff --git a/d2ice.att.io/app/main/modals/set-eng-stage/set_eng_stage_modal.html b/d2ice.att.io/app/main/modals/set-eng-stage/set_eng_stage_modal.html
new file mode 100755
index 00000000..adf81be3
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/set-eng-stage/set_eng_stage_modal.html
@@ -0,0 +1,58 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+
+<form name="approveOrRejectStage" id="approve-or-reject-stage" novalidate>
+ <div class="row modal-header ">
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <span class="state-title bold"><span class="bold">Engagement:</span> {{vm.engagement_name}}</span>
+ <div class="state-title-border"></div>
+ </div>
+
+
+ <div class = "row decision-modal-body">
+ <div class = "modal-title">Current stage: {{vm.stage.replace('_',' ') | capitalize}}</div>
+ <div class = "decision-comment" id="stage-{{vm.stage}}"><div ng-bind-html="vm.modalText"></div></div>
+ </div>
+ <div class = "row modal_buttons">
+ <button type="submit" class="col-md-5 btn btn-gradient-success" ng-click="vm.closeModal(true)">Approve</button>
+ <span class="col-md-2"></span>
+ <button type="submit" class="col-md-5 btn btn-gradient-danger" ng-click="vm.closeModal(false)">Reject</button>
+ </div>
+
+</form>
diff --git a/d2ice.att.io/app/main/modals/status/status.controller.js b/d2ice.att.io/app/main/modals/status/status.controller.js
new file mode 100755
index 00000000..9a90ec52
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/status/status.controller.js
@@ -0,0 +1,125 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('StatusModalController', ['$rootScope', '$uibModalInstance', 'statusService', 'engagement_uuid',
+ 'action', 'toastService', '$log', StatusModalController]);
+
+ function StatusModalController($rootScope, $uibModalInstance, statusService, engagement_uuid, action, toastService, $log) {
+ var vm = this;
+
+ var init = function() {
+ vm.engagement_uuid = engagement_uuid;
+ vm.action = action;
+ if (action == 'edit') {
+ statusService.get(engagement_uuid)
+ .then(function (response) {
+ if (response.status === 200)
+ {
+ vm.status = response.data;
+ vm.status_modal_description = vm.status.description;
+ vm.eng_status_uuid = vm.status.uuid;
+ } else
+ {
+ $log.error(response);
+ }
+ })
+ .catch(function (error) {
+ vm.status = false;
+ $log.error(error.message);
+ });
+ } else {
+ vm.status_modal_description = '';
+ }
+ };
+
+ init();
+
+ vm.submitForm = function ()
+ {
+ var jsonPost = {"description":vm.status_modal_description};
+ if (action == 'edit') {
+ jsonPost.eng_status_uuid = vm.eng_status_uuid;
+ statusService.update(vm.engagement_uuid, jsonPost)
+ .then(function (response) {
+ if (response.status === 200)
+ {
+ $uibModalInstance.close(response.data);
+ vm.closeModal();
+ }
+ else
+ {
+ toastService.setToast(response.error, 'danger');
+ $rootScope.ice.loader.show = false;
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message, 'danger');
+ $log.error(error.message);
+ });
+ } else {
+ statusService.add(vm.engagement_uuid, jsonPost)
+ .then(function (response) {
+ if (response.status === 200)
+ {
+
+ $uibModalInstance.close(response.data);
+ vm.closeModal();
+ }
+ else
+ {
+ toastService.setToast(response.error, 'danger');
+ $rootScope.ice.loader.show = false;
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.message, 'danger');
+ $log.error(error.message);
+ });
+ }
+ };
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/status/status.html b/d2ice.att.io/app/main/modals/status/status.html
new file mode 100755
index 00000000..83c50d2b
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/status/status.html
@@ -0,0 +1,59 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="modal-header">
+ <h3 class="modal-title" id="modal-title">{{vm.action == 'edit' && 'Current' || 'Add' }} Status</h3>
+ <button type="button" ng-click="vm.closeModal()" id="close-modal-button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+</div>
+<div class="modal-body status-modal-body">
+ <span>Use the form below to {{vm.action == 'edit' && 'update' || 'add' }} the current status of the engagement.</span>
+ <form name="statusForm" ng-submit="vm.submitForm()" novalidate class="status-modal-form">
+ <textarea class="col-sm-12 col-xs-12 col-md-12 status-modal-description" name="description" ng-maxlength="256" required ng-model="vm.status_modal_description" ng-pattern="/^[a-zA-Z0-9\&\,\.\ ]*$/"></textarea>
+ <div class="ice-form-error" data-ng-show="statusForm.description.$error">
+ <span ng-show="statusForm.description.$error.required && !statusForm.description.$pristine">Description is a required field.</span>
+ <span ng-show="statusForm.description.$error.maxlength">Description is too long.</span>
+ <span ng-show="statusForm.description.$error.pattern">Description should not include any special chars such as: *^-\%_"</span>
+ </div>
+
+ <div class="modal-footer">
+ <button type="submit" id="add-vfc-save-button" class="btn btn-primary" data-ng-disabled="!statusForm.$valid">{{vm.action == 'edit' && 'Update current' || 'Add' }} status</button>
+ </div>
+ </form>
+</div>
+
+
diff --git a/d2ice.att.io/app/main/modals/status/status.less b/d2ice.att.io/app/main/modals/status/status.less
new file mode 100755
index 00000000..ae5f7945
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/status/status.less
@@ -0,0 +1,44 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.status-modal-body {
+ .status-modal-description {
+ border-color: @main_color_q;
+ margin-bottom:15px;
+ }
+}
diff --git a/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.controller.js b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.controller.js
new file mode 100755
index 00000000..a300d3da
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.controller.js
@@ -0,0 +1,78 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('ChangeLabEntryDateModalController', ["$uibModalInstance", "targetLabDate", "engagementUuid", "vfService", "$rootScope", "toastService", changeLabEntryDateModalController]);
+
+ function changeLabEntryDateModalController($uibModalInstance, targetLabDate, engagementUuid, vfService, $rootScope, toastService) {
+
+ var vm = this;
+ //vm.completionDate = new Date(completionDate);
+ vm.targetLabDate = targetLabDate;
+ vm.dateOptions = {
+ minDate: new Date(),
+ showWeeks: true
+ };
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+
+ vm.myDate = new Date();
+ vm.minDate = moment(vm.myDate).format("YYYY-MM-DD")
+ vm.maxDate = moment(vm.myDate).add(2, 'years').format("YYYY-MM-DD");
+
+ vm.submitForm = function(){
+ var postData={"target_date": moment(vm.targetLabDate).format("YYYY-MM-DD")};
+ vfService.updateLabEntryDaysLeft(engagementUuid, postData)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(postData);
+ }
+ })
+ .catch(function (error) {
+ toastService.setToast(error.status + ': Error changing completion date!', 'danger');
+ });
+ };
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.html b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.html
new file mode 100755
index 00000000..cfd30f79
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.html
@@ -0,0 +1,55 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<form name="updateTargetLabDate" ng-submit="vm.submitForm()" novalidate class="update-target-lab-form">
+ <div class="modal-header">
+ <h3 class="modal-title" id="modal-title">Target Lab Entry</h3>
+ <button type="button" ng-click="vm.closeModal()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ </div>
+ <div class="modal-body">
+ <div class="form-group" ng-class="{ 'has-error' : updateTargetLabDate.date.$invalid && !updateTargetLabDate.date.$pristine }">
+ <md-datepicker id="lab-entry-date" md-min-date="vm.minDate" ng-click="ctrl.openCalendarPane($event)" ng-model-options="{timezone: 'gmt'}" class="btn btn-default datepicker_btn edit-target-lab-date-modal" ng-model="vm.targetLabDate" md-placeholder="Choose Lab Entry Date"></md-datepicker>
+ <input type="hidden" id="input-lab-entry-date" value="{{vm.targetLabDate }}"/>
+ <span ng-show="updateTargetLabDate.date.$error.required && !updateTargetLabDate.date.$pristine">Date is required field!</span>
+ </div>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <button type="submit" class="btn btn-primary" data-ng-disabled="!updateTargetLabDate.$valid">Save</button>
+ </div>
+</form>
diff --git a/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.less b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.less
new file mode 100755
index 00000000..8aa6f3be
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.less
@@ -0,0 +1,49 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ .edit-target-lab-date-modal {
+ .md-datepicker-input-container {
+ .md-datepicker-input {
+ width: 100%;
+ text-align: left;
+ line-height: 32px;
+ padding-left: 95px;
+ margin: 0px;
+ }
+ }
+ } \ No newline at end of file
diff --git a/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.controller.js b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.controller.js
new file mode 100755
index 00000000..f9afa320
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.controller.js
@@ -0,0 +1,73 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+(function () {
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('updateEngagementStatusModalController', ['$uibModalInstance', 'engagement', updateEngagementStatusModalController]);
+
+ function updateEngagementStatusModalController($uibModalInstance, engagement) {
+ var vm = this;
+ var init = function () {
+ vm.engagement = engagement;
+ formatDates();
+ };
+
+ vm.closeModal = function () {
+ $uibModalInstance.dismiss();
+ };
+
+ vm.updateEngagement = function() {
+ formatDates();
+ $uibModalInstance.close({"engagement": vm.engagement, "status": vm.status});
+ };
+
+ var formatDates = function() {
+ if(vm.engagement.target_completion_date){ vm.engagement.target_completion_date = new Date(vm.engagement.target_completion_date); }
+ if(vm.engagement.heat_validated_time){ vm.engagement.heat_validated_time = new Date(vm.engagement.heat_validated_time); }
+ if(vm.engagement.image_scan_time){ vm.engagement.image_scan_time = new Date(vm.engagement.image_scan_time); }
+ if(vm.engagement.aic_instantiation_time){ vm.engagement.aic_instantiation_time = new Date(vm.engagement.aic_instantiation_time); }
+ if(vm.engagement.asdc_onboarding_time){ vm.engagement.asdc_onboarding_time = new Date(vm.engagement.asdc_onboarding_time); }
+ };
+
+ init();
+ }
+})();
diff --git a/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.html b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.html
new file mode 100755
index 00000000..29abb24e
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.html
@@ -0,0 +1,97 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="update-engagement-status-modal">
+ <div class="modal-header row">
+ <button type="button" ng-click="vm.closeModal()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+ <div id="update-engagement-status-title" class="update-engagement-status-title"><span>Update Status</span></div>
+ <span class="update-engagement-status-description">Use the form below to update status details of the engagement.</span>
+ </div>
+ <div class="modal-body row">
+ <form name="updateEngagementStatusForm" ng-submit="vm.updateEngagement()" novalidate="" class="">
+ <div class="form-group" ng-class="{ 'has-error' : updateEngagementStatusForm.progress.$invalid && updateEngagementStatusForm.progress.$dirty }">
+ <span class="form-field-title">Progress in %</span>
+ <input type="number" name="progress" class="form-control" ng-model="vm.engagement.progress" required="" min="0" max="100"/>
+ <div class="ice-form-error" data-ng-show="updateEngagementStatusForm.progress.$error">
+ <span ng-show="updateEngagementStatusForm.progress.$error.required && updateEngagementStatusForm.progress.$dirty" class="help-block ng-hide" aria-hidden="true">Please enter progress</span>
+ </div>
+ </div>
+ <div class="form-group" ng-class="{ 'has-error' : updateEngagementStatusForm.targetCompletion.$invalid && updateEngagementStatusForm.targetCompletion.$dirty }">
+ <span class="form-field-title">Target Completion Date</span>
+ <md-datepicker ng-click="ctrl.openCalendarPane($event)" class="btn btn-default" ng-model="vm.engagement.target_completion_date"></md-datepicker>
+ <input type="hidden" name="targetCompletion" class="form-control" ng-model="vm.engagement.target_completion_date" required=""/>
+ <div class="ice-form-error" data-ng-show="updateEngagementStatusForm.targetCompletion.$error">
+ <span ng-show="updateEngagementStatusForm.targetCompletion.$error.date && updateEngagementStatusForm.targetCompletion.$dirty" class="help-block ng-hide" aria-hidden="true">Please enter target completion date</span>
+ </div>
+ </div>
+ <div class="panel panel-default">
+ <div class="panel-heading">Validation Criteria</div>
+ <div class="panel-body">
+ <div class="form-group">
+ <span class="form-field-title">HEAT Validated</span>
+ <md-datepicker ng-click="ctrl.openCalendarPane($event)" class="btn btn-default" ng-model="vm.engagement.heat_validated_time"></md-datepicker>
+ <input type="hidden" name="heatValidated" class="form-control" ng-model="vm.engagement.heat_validated_time"/>
+ </div>
+ <div class="form-group">
+ <span class="form-field-title">Image Scan</span>
+ <md-datepicker ng-click="ctrl.openCalendarPane($event)" class="btn btn-default" ng-model="vm.engagement.image_scan_time"></md-datepicker>
+ <input type="hidden" name="imageScan" class="form-control" ng-model="vm.engagement.image_scan_time"/>
+ </div>
+ <div class="form-group">
+ <span class="form-field-title">AIC Instantiation</span>
+ <md-datepicker ng-click="ctrl.openCalendarPane($event)" class="btn btn-default" ng-model="vm.engagement.aic_instantiation_time"></md-datepicker>
+ <input type="hidden" name="aicInstantiation" class="form-control" ng-model="vm.engagement.aic_instantiation_time"/>
+ </div>
+ <div class="form-group">
+ <span class="form-field-title">ASDC Onboarding</span>
+ <md-datepicker ng-click="ctrl.openCalendarPane($event)" class="btn btn-default" ng-model="vm.engagement.asdc_onboarding_time"></md-datepicker>
+ <input type="hidden" name="asdcOnboarding" class="form-control" ng-model="vm.engagement.asdc_onboarding_time"/>
+ </div>
+ </div>
+ </div>
+ <div class="form-group" ng-class="{ 'has-error' : updateEngagementStatusForm.status.$invalid && updateEngagementStatusForm.status.$dirty }">
+ <span class="form-field-title">Status</span>
+ <textarea type="text" name="status" class="form-control" ng-model="vm.status" required=""></textarea>
+ <div class="ice-form-error" data-ng-show="updateEngagementStatusForm.status.$error">
+ <span ng-show="updateEngagementStatusForm.status.$error.required && updateEngagementStatusForm.status.$dirty" class="help-block ng-hide" aria-hidden="true">Please enter status</span>
+ </div>
+ </div>
+ <button class="btn btn-primary col-md-12" data-ng-disabled="updateEngagementStatusForm.$invalid" type="submit">Submit</button>
+ </form>
+ </div>
+</div>
diff --git a/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.less b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.less
new file mode 100755
index 00000000..8bce9da3
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.less
@@ -0,0 +1,61 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+.update-engagement-status-modal {
+ padding: 0px 15px 0px 15px;
+
+ .update-engagement-status-title {
+ .a_24_m;;
+ }
+
+ .update-engagement-status-description {
+ .m_16_r;
+ }
+
+ .form-field-title{
+ .m_16_r;
+ }
+
+ .modal-body {
+ top: 10px;
+ }
+
+ .md-datepicker-input {
+ max-width: none;
+ }
+}
diff --git a/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.controller.js b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.controller.js
new file mode 100755
index 00000000..1370e367
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.controller.js
@@ -0,0 +1,202 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+(function () {
+
+
+ 'use strict';
+
+ angular
+ .module('ice.modals')
+ .controller('validationDetailsModalController', ["$rootScope", "$uibModalInstance", "vfcService", "vfService", "$stateParams", "toastService", "vf_uuid", "usersService", "$log", "_", validationDetailsModalController]);
+
+ function validationDetailsModalController($rootScope, $uibModalInstance, vfcService,vfService, $stateParams,toastService, vf_uuid, usersService,$log,_) {
+
+ var vm = this;
+ var init = function () {
+ if($stateParams.engagement) {
+ vm.engagement = $stateParams.engagement;
+ }
+ vm.me = usersService.getUserData();
+ vfService.getSingleEngagement(vm.me.uuid,vm.engagement.uuid)
+ .then(function (response) {
+ $rootScope.ice.loader.show = false;
+
+ if (response.status === 200 && response.data && response.data !== '') {
+ var vf_data = response.data;
+ vm.engagement_manual_id = vf_data.engagement.engagement_manual_id;
+ vm.vf_name = vf_data.name;
+ vm.vf_uuid = vf_data.uuid;
+ vm.ecomp_release = vf_data.ecomp_release;
+ vm.target_lab = new Date(vf_data.target_lab_entry_date);
+ vm.dtversion = vf_data.deployment_target;
+ vm.selected_dt_uuid = vm.dtversion.uuid;
+ vm.selected_ecomp_uuid = vm.ecomp_release.uuid;
+ vm.me = usersService.getUserData();
+ vm.name = vm.engagement.name;
+ vm.isEngagementEL = usersService.isEngagementEL(vf_data.engagement.engagement_team);
+ vm.isAdmin = usersService.isAdmin(vm.me);
+ vm.choices = [{TargetLab: '', TargetAic: ''}];
+ getDeployTargets();
+ getECOMPReleases();
+ getVFVersion();
+ }
+ })
+ .catch(function (error) {
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ });
+ };
+
+ vm.closeModal = function(){
+ $uibModalInstance.close();
+ };
+
+ vm.addNewChoice = function () {
+ var newItemNo = vm.choices.length + 1;
+ vm.choices.push({'id': newItemNo});
+ };
+
+ function getDeployTargets() {
+ vfService.getDeployTargets()
+ .then(function (response) {
+ $rootScope.ice.loader.show = false;
+ if (response.status === 200) {
+ vm.deployTargets = response.data;
+ if (_.filter(vm.deployTargets, {'uuid': vm.dtversion.uuid}).length === 0) {
+ vm.dtversion.disabled = true;
+ vm.deployTargets.push(vm.dtversion);
+ }
+ }
+ }).catch(function (error) {
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ });
+ }
+ function getECOMPReleases(){
+ vfService.getECOMPReleases()
+ .then(function (response) {
+ if (response.status === 200) {
+ vm.ECOMPReleases = response.data;
+ if (_.filter(vm.ECOMPReleases, {'uuid':vm.ecomp_release.uuid}).length === 0) {
+ vm.ecomp_release.disabled = true;
+ vm.ECOMPReleases.push(vm.ecomp_release);
+ }
+ }
+ }).catch(function (error) {
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ });
+ }
+ function getVFVersion(){
+ vfService.getVFVersion(vf_uuid)
+ .then(function (response) {
+ $rootScope.ice.loader.show = false;
+ if (response.status === 200) {
+ vm.VFVersion = response.data;
+ }
+ }).catch(function (error) {
+ $rootScope.ice.loader.show = false;
+ $log.debug(error);
+ });
+ }
+ vm.removeChoice = function (index) {
+ vm.choices.splice(index,1);
+ };
+
+ vm.submitForm = function(){
+ var validationDetailsSelection = {
+ "vf_uuid": vm.vf_uuid,
+ "version": vm.VFVersion,
+ "target_aic_uuid": vm.TargetAic,
+ "ecomp_release": vm.ECOMPRelease
+ };
+
+ vfService.updateVfs(validationDetailsSelection,vm.vf_uuid)
+ .then(function (response) {
+ if (response.status === 200) {
+ $uibModalInstance.close(response.status);
+ }
+ })
+ .catch(function (error) {
+ $log.error(error);
+ toastService.setToast(error.status + ': Error changing progress!', 'danger');
+ });
+ };
+
+ vm.update_deployment_target = function(){
+ if(vm.dtversion.uuid == vm.selected_dt_uuid){
+ return
+ }
+ angular.forEach(vm.dt_AIC_versions, function (value, key) {
+ if (value.uuid === vm.selected_dt_uuid) {
+ vm.dtversion = value;
+ };
+ });
+ vfService.updateDeployTargets(vm.engagement.uuid, vm.selected_dt_uuid)
+ .then(function (response) {
+ $rootScope.ice.loader.show = false;
+ }).catch(function (error) {
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ });
+ vm.set_edit_mode('aic');
+ };
+ vm.update_ECOMP_release = function(){
+ if( vm.ecomp_release.uuid == vm.selected_ecomp_uuid){
+ return;
+ }
+ _.each(vm.ECOMPReleases, function (value, key) {
+ if (value.uuid === vm.selected_ecomp_uuid) {
+ vm.ecomp_release = value;
+ };
+ });
+ vfService.updateECOMPReleases(vm.engagement.uuid, vm.selected_ecomp_uuid)
+ .then(function (response) {
+ $rootScope.ice.loader.show = false;
+ }).catch(function (error) {
+ $rootScope.ice.loader.show = false;
+ $log.error(error);
+ });
+ vm.set_edit_mode('ecomp');
+ };
+
+ init();
+ }
+
+})();
diff --git a/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.html b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.html
new file mode 100755
index 00000000..48e3fe2a
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.html
@@ -0,0 +1,101 @@
+<!--
+============LICENSE_START==========================================
+org.onap.vvp/portal
+===================================================================
+Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the “License”);
+you may not use this software except in compliance with the License.
+You may obtain a copy of the License at
+
+ http:www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Unless otherwise specified, all documentation contained herein is licensed
+under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+you may not use this documentation except in compliance with the License.
+You may obtain a copy of the License at
+
+ https:creativecommons.org/licenses/by/4.0/
+
+Unless required by applicable law or agreed to in writing, documentation
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+============LICENSE_END============================================
+
+ECOMP is a trademark and service mark of AT&T Intellectual Property.-->
+<div class="modal-header">
+ <h3 class="modal-title" id="modal-title">Validation Details (ECOMP, AIC, VF Version)</h3>
+ <button type="button" ng-click="vm.closeModal()"
+ id="close-modal-button" class="close" data-dismiss="modal"
+ aria-label="Close">
+ <span aria-hidden="true">&times;</span>
+ </button>
+</div>
+<div class="modal-body">
+
+ <form name="ValidationDetailsForm" id="validation-details-form" ng-submit="vm.submitForm()">
+
+ <ng-form name="vfcItemForm">
+ <div class="row">
+ <div class="col-md-12 field-title" id="vf-version">VF Version</div>
+ <div class="col-md-12">
+ <input type="text" name="VFversion" id="id-vf-version"
+ ng-model="vm.VFVersion" maxlength="32"
+ class="form-control" >
+ </div>
+ <div class="ice-form-error"
+ data-ng-show="vfItemForm.VFVersion.$error">
+ <span ng-show="vfItemForm.VFVersion.$error.pattern">VF
+ Version can be alphanumeric or/and Hyphen</span>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-12 field-title" id="target-aic-version-headline">Target AIC Version</div>
+ <div class="col-md-12">
+ <select id="aic-version-select" ng-model="vm.TargetAic"
+ class="form-control">
+ <option value="" selected disabled>AIC Version</option>
+ <option meta-order="{{$index}}"
+ ng-repeat="dt in vm.deployTargets"
+ id="aic_select_options_{{dt.version}}" value="{{dt.uuid}}"
+ ng-disabled="dt.disabled">{{dt.name}} {{dt.version}}
+ {{dt.disabled ? "- Deprecated" : ""}}</option>
+ </select>
+ </div>
+ </div>
+ <div class="row">
+ <div class="field-title col-md-12">ECOMP Release</div>
+ <div class="col-md-12">
+ <select id="ecomp-release-select" ng-model="vm.ECOMPRelease"
+ class="form-control">
+ <option value="" selected disabled>ECOMP Release</option>
+ <option meta-order="{{$index}}"
+ ng-repeat="dt in vm.ECOMPReleases"
+ id="ecomp-select-options-{{dt.name}}" value="{{dt.uuid}}"
+ ng-disabled="dt.disabled">{{dt.name}} {{dt.disabled ?
+ "- Deprecated" : ""}}</option>
+ </select>
+ </div>
+ </div>
+ </ng-form>
+ <div class="modal-footer">
+ <button type="submit" id="edit-validation-setails-save-button"
+ class="btn btn-primary" data-ng-disabled="!ValidationDetailsForm.$valid">Save
+ Validation Details</button>
+ </div>
+
+ </form>
+</div>
diff --git a/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.less b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.less
new file mode 100755
index 00000000..08fd5ea8
--- /dev/null
+++ b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.less
@@ -0,0 +1,49 @@
+//
+// ============LICENSE_START==========================================
+// org.onap.vvp/portal
+// ===================================================================
+// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+// ===================================================================
+//
+// Unless otherwise specified, all software contained herein is licensed
+// under the Apache License, Version 2.0 (the “License”);
+// you may not use this software except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+//
+// Unless otherwise specified, all documentation contained herein is licensed
+// under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+// you may not use this documentation except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https:creativecommons.org/licenses/by/4.0/
+//
+// Unless required by applicable law or agreed to in writing, documentation
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// ============LICENSE_END============================================
+//
+// ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#validation-details-form {
+ #edit-validation-setails-save-button {
+ margin-top: 15px;
+ }
+
+ .field-title {
+ .m_16_m;
+ margin-bottom: 2px;
+ margin-top: 5px;
+ }
+}