diff options
Diffstat (limited to 'd2ice.att.io/app/main/dashboard/overview/overview.html')
-rwxr-xr-x | d2ice.att.io/app/main/dashboard/overview/overview.html | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/d2ice.att.io/app/main/dashboard/overview/overview.html b/d2ice.att.io/app/main/dashboard/overview/overview.html new file mode 100755 index 00000000..d1b3fc40 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/overview/overview.html @@ -0,0 +1,212 @@ +<!-- +============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="no-display-text" ng-if="vm.engagement == undefined"></div> + +<div ng-class="vm.engagement == undefined ? 'no-display' : 'overview main-wrapper'"> + <ice-loader selector=".steps"></ice-loader> + <ice-loader selector=".activity-log"></ice-loader> + <div class="row"> + <div class="col-md-6"> + <span id="star-engagement-action" class="sprite starred" ng-class="vm.starred == true ? 'is_starred' : 'not_starred'" ng-click="vm.starEngagement()"></span> + <h1 id="engagement-title"> + <span class="manual-id" id="title-id-{{vm.manual_id}}: {{vm.name}}">{{vm.manual_id}}: </span>{{vm.name}} + </h1> + <span ng-show="vm.isEngagementEL || vm.isAdmin" uib-dropdown uib-dropdown-toggle on-toggle="toggled(open)" id="admin-actions-dropdown" class="admin-actions-dropdown sprite"> + <ul class="dropdown-menu" uib-dropdown-menu role="menu"> + <li role="menuitem" ng-show="vm.isAdmin"><a data-ng-click="vm.archiveEngagement()">Archive</a></li> + <li class="divider" ng-show="vm.isAdmin"></li> + <li role="menuitem" ng-show="vm.isAdmin"><a data-ng-click="vm.changeReviewer()">Change Reviewer</a></li> + <li class="divider" ng-show="vm.isAdmin"></li> + <li role="menuitem" ng-show="vm.isAdmin"><a data-ng-click="vm.changePeerReviewer()">Change Peer Reviewer</a></li> + <li class="divider" ng-show="vm.isAdmin" ></li> + <li role="menuitem" ng-show="vm.isEngagementEL || vm.isAdmin" ><a data-ng-click="vm.updateEngagementStatus()">Update Status</a></li> + </ul> + </span> + </div> + <div class="col-md-6 row"> + <span class="col-md-12 git-repo-url" ng-if="vm.git_repo_url && vm.stage!=vm.stages.intake" id="git-url"><B>GIT:</B> {{vm.git_repo_url}}</span> + <span class="col-md-11 line-separator" ng-if="vm.git_repo_url && vm.stage!=vm.stages.intake"></span> + <span class="col-md-12 storage-bucket-url" ng-if="vm.stage!=vm.stages.intake" id="bucket-url"><B>STORAGE BUCKET:</B> {{vm.storage_bucket_url}}</span> + </div> + </div> + <step-stages-directive stage="vm.stage" eng-name="{{vm.vf_name}}" team="vm.team" stage-num="vm.stage_num" eng-uuid="{{vm.uuid}}"></step-stages-directive> + <div data-ng-if="vm.stage!=vm.stages.intake"> + <progress-directive + progress="{{vm.progress}}" + callback="vm.updateProgress" + data="vm.progress_needed_data"> + </progress-directive> + </div> + + <div class="row main-section"> + <div class="col-md-8 steps"> + <div class="row steps-header"> + <h2 class="col-md-6">Next Steps<span data-ng-if="vm.isEngagementEL || vm.isAdmin" id="add-next-step-button" class="add-step fa fa-plus-circle" data-ng-click="vm.addStep()"></span></h2> + <span class="col-md-6 filter-wrapper row"> + <span >Files<multiselect id="selected-file-filter-dropdown" class="state-filter" ng-model="vm.chosen_files_filter" options="item for item in vm.files_filter_options" data-multiple="true" scroll-after-rows="5" filter-after-rows="5" ng-change="vm.is_all_files()" ms-header="Select files" tabindex="-1"> + </multiselect></span> + <span >States<multiselect class="state-filter" ng-model="vm.selected_state_filter" options="item for item in vm.states_select" id="selected-state-filter-dropdown" data-multiple="true" scroll-after-rows="5" filter-after-rows="5" ng-change="vm.update_next_steps_choice()" ms-header="Select states" tabindex="-1"> + </multiselect></span> + </span> + </div> + <ul class="step-indication" ui-sortable="vm.sortableOptions" ng-model="vm.steps" > + <li class="step" data-ng-repeat="step in sorted_results=( vm.steps | filter:is_match_both_filters()) track by step.uuid" > + <!-- ng-if="vm.is_match_both_filters(step)" --> + <div class="step-wrapper row" id="step-{{step.uuid}}" data-ng-class="{'completed': vm.states.completed==step.state && !vm.isEngagementEL, 'confirmed': vm.states.confirmed==step.state}"> + <aside class="next-step-actions" data-ng-show="vm.isEngagementEL || vm.isAdmin"> + <span class="order-nextstep fa fa-bars"></span> + <span ng-show="step.engagement" class="edit-next-step fa fa-pencil-square-o" ng-click="vm.editStep(step)"></span> + <span class="moveto-delete fa fa-minus-circle" + title="Delete" + data-ng-if="vm.states.confirmed != step.state" + data-ng-click="vm.deleteStep(step.uuid)" id="delete-{{step.uuid}}"></span> + </aside> + <div class="description col-xs-8 col-sm-8 col-md-8"> + <div class="last-action-details"> + <span class="name" id="{{step.last_updater.full_name}}_{{step.last_update_type}}"> + <!--When the nex step is not related to engagement that's means it ssh key next step and we will display 'System Next Step' as tha last updater--> + {{step.engagement ? (step.last_updater && step.last_updater.full_name || step.creator.full_name) : "System Next Step"}} + {{step.last_update_type}}: + </span> + <span class="time">{{(step.last_update_time) | date2: 'EEEE MMMM doo yyyy'}} at {{(step.last_update_time) | date: 'hh:mm' : timeGapLocal }} {{ampm}} {{mom}}</span> + </div> + <div id={{step.uuid}} class="step-state {{step.state | lowercase}} fa" ng-class="{'fa-check-circle': step.state == 'Completed', 'fa-check-circle-o': step.state == 'Incomplete'}" data-ng-click="(step.state==vm.states.incomplete || step.state==vm.states.completed) && vm.toggleCompleted(step.uuid)"></div> + <div id="step-description-{{$index}}" class="step-text" ng-bind-html="step.description | htmlspecialchars"></div> + </div> + <div class="details col-xs-4 col-sm-4 col-md-4"> + <span class="next-step-due-date" ng-if="step['due_date'].length >0"><span class="icon fa fa-clock-o"></span>{{(step['due_date']) | date2: 'EEEE MMMM doo yyyy'}}</span> + <ul class="next-step-team-mates"> + <li data-ng-repeat="member in step['assignees'] track by member.uuid" + data-ng-class="{'me': member.uuid == vm.me.uuid}" + class="fa fa-user-circle-o" + title="{{member.full_name}} ({{member.email}})"> + </li> + </ul> + <span uib-popover-template="'myPopoverTemplate.html'" + popover-title="Associated Files" + popover-trigger="outsideClick" + popover-html='true' + popover-placement="bottom" + class="associated-files" + id="associated-files">Associated Files <span class="fa fa-caret-square-o-down"></span></span> + <script type="text/ng-template" id="myPopoverTemplate.html"> + <span id="associated-files-empty-msg" ng-if="!step.files || step.files.length === 0">There are no files for this next step</span> + <ul> + <li id="file{{$index}}" ng-repeat="file in step.files track by $index">- {{file}}</li> + </ul> + </script> + </div> + </div> + </li> + <h4 ng-show="!sorted_results || sorted_results.length === 0">No next steps matching filtered results.</h4> + </ul> + </div> + <div class="col-md-4 team-and-logs"> + <div id="engagement-target-completion"> + <div id="target-completion-header"> + <span>Target Completion</span> + <i class="edit-target-completion fa fa-pencil-square-o" ng-show="vm.isEngagementEL || vm.isAdmin" data-ng-click="vm.changeTargetCompletion()" aria-hidden="true"></i> + </div> + <div id="target-completion-content"> + <h4 class="target-completion-content">{{vm.completion_date | date:'shortDate'}}</h4> + </div> + </div> + <div id="engagement-status"> + <div id="engagement-status-header"> + <span>Current Status</span> + <i class="add-engagement-status fa fa-plus-circle" ng-show="vm.isEngagementEL || vm.isAdmin" ng-click="vm.addStatus()" aria-hidden="true"></i> + </div> + <div id="engagement-status-content"> + <h4 class="engagement-status-content"> + <i class="edit-engagement-status fa fa-pencil-square-o pull-right" ng-show="(vm.isEngagementEL || vm.isAdmin) && vm.status" ng-click="vm.editStatus()" aria-hidden="true"></i> + <span id="status-update-details" ng-if="vm.status"> + Last updated {{(vm.status.update_time) | date2: 'EEEE MMMM doo yyyy'}} at {{(vm.status.update_time) | date: 'hh:mm' : timeGapLocal }} {{ampm}} {{mom}} + by {{vm.status.creator.full_name}} + </span> + <p id="status-description">{{vm.status.description == undefined && 'No status update has been provided yet.' || vm.status.description }}</p> + </h4> + </div> + </div> + <div id="engagement-team"> + <div id="engagement-team-header"> + <span>Team Members</span> + <i class="add-team-member fa fa-plus-circle" id="team-members-plus-button-id" ng-show="vm.name.length > 0" data-ng-click="vm.addPeople()" aria-hidden="true"></i> + </div> + <div class="engagement-team-content"> + <ul class="team-avatars"> + <li id="team-member-{{member.full_name}}" + data-ng-repeat="member in vm.team track by member.uuid" + data-ng-class="{'me': member.uuid == vm.me.uuid}" + uib-popover-template="'myClTeamMembersPopoverTemplate.html'" + popover-trigger='outsideClick' + popover-html='true' + class="team-member-avatar fa fa-user-circle-o" + popover-placement='bottom'> + <script type="text/ng-template" id="myClTeamMembersPopoverTemplate.html"> + <span class="row"> + <span id="team-member-title" class="popover-title-name col-md-12"> + {{member.full_name}} + <span ng-show="member.company && member.company.name" class="popover-title-company"> - {{member.company.name}}</span> + <span class="popover-role-title ">{{vm.engagement.reviewer_uuid == member.uuid ? 'Reviewer' : ''}}{{vm.engagement.peer_reviewer_uuid == member.uuid ? 'Peer Reviewer' : ''}}</span> + </span> + <span class="popover-details"> + <span class="popover-details-topic col-md-4">Email:</span><span id="team-member-email" class="popover-details-detail col-md-8">{{member.email}}</span> + <span ng-show="member.phone_number" class="popover-details-topic col-md-4">Phone:</span><span id="team-member-phone" class="popover-details-detail col-md-8">{{member.phone_number}}</span> + </span> + <span id="remove-member" ng-if="vm.is_able_to_delete(member)" class="remove-user-from-eng" ng-click="vm.remove_user_from_eng(member)"> + <span>Remove</span><span class="remove-icon"></span> + </span> + </span> + </script> + </li> + </ul> + </div> + </div> + + <div class="activity-log"> + <div id="activity-log-header">Activity Log</div> + <ul class="activity-log-details"> + <li data-ng-repeat="activity in vm.activities track by activity.uuid"> + <notifications id="activity-log-{{$index}}" activity="activity"></notifications> + </li> + </ul> + </div> + </div> + </div> +</div> |