aboutsummaryrefslogtreecommitdiffstats
path: root/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates')
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/current-folder-breadcrumb.html34
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/item-context-menu.html102
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/item-toolbar.html25
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-icons.html43
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-table-modal.html66
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-table.html100
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main.html34
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/modals.html385
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/navbar.html127
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/sidebar.html34
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/spinner.html25
11 files changed, 975 insertions, 0 deletions
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/current-folder-breadcrumb.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/current-folder-breadcrumb.html
new file mode 100644
index 000000000..b2ea4e8cd
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/current-folder-breadcrumb.html
@@ -0,0 +1,34 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<ol class="breadcrumb mb0">
+ <li>
+ <a href="" ng-click="fileNavigator.goTo(-1)">
+ <i class="glyphicon glyphicon-folder-open mr2"></i>
+ </a>
+ </li>
+ <li ng-repeat="(key, dir) in fileNavigator.currentPath track by key" ng-class="{'active':$last}" class="animated fast fadeIn">
+ <a href="" ng-show="!$last" ng-click="fileNavigator.goTo(key)">
+ <i class="glyphicon glyphicon-folder-open mr2"></i> {{dir}}
+ </a>
+ <span ng-show="$last"><i class="glyphicon glyphicon-folder-open mr2"></i> {{dir}}</span>
+ </li>
+ <li><button class="btn btn-primary btn-xs" ng-click="fileNavigator.upDir()">&crarr;</button></li>
+</ol> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/item-context-menu.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/item-context-menu.html
new file mode 100644
index 000000000..1e93cf0a6
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/item-context-menu.html
@@ -0,0 +1,102 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<div id="context-menu" class="dropdown clearfix animated fast fadeIn">
+ <ul class="dropdown-menu dropdown-right-click" ng-hide="isDisabled" role="menu" aria-labelledby="dropdownMenu" style="">
+
+ <li ng-show="temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#addSubScope" ng-show="createScopeId" ng-click="temp.getScopeContent();">
+ <i class="glyphicon glyphicon-plus"></i>Add Sub Scope
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.createNewPolicy && temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#createNewPolicy" ng-show="createPolicyId">
+ <i class="glyphicon glyphicon-plus"></i>Create Policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.describePolicy && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#describePolicy" ng-show="describePolicyId" ng-click="temp.getDescribePolicyContent();">
+ <i class="glyphicon glyphicon-picture"></i>Describe Policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.viewPolicy && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#createNewPolicy" ng-show="viewPolicyId" ng-click="temp.getViewPolicyContent();">
+ <i class="glyphicon glyphicon-picture"></i> View Policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.rename && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#rename" ng-show="renameId">
+ <i class="glyphicon glyphicon-edit"></i> Rename Policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.rename && temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#move" ng-show="renameId">
+ <i class="glyphicon glyphicon-edit"></i> Move Scope
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.rename && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#move" ng-show="renameId">
+ <i class="glyphicon glyphicon-edit"></i> Move Policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.rename && temp.isFolder()" >
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#rename" ng-show="renameId">
+ <i class="glyphicon glyphicon-edit"></i> Rename Scope
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.copy && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#copy" ng-show="cloneId">
+ <i class="glyphicon glyphicon-log-out"></i> Clone policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.edit && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#createNewPolicy" ng-show="editPolicyId" ng-click="temp.getContent();">
+ <i class="glyphicon glyphicon-pencil"></i> Edit Policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.switchVersion && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#switchVersion" ng-show="switchVersionId" ng-click="temp.getSwitchVersionContent();">
+ <i class="glyphicon glyphicon-pencil"></i> Switch Version
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.removePolicy && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#deletePolicy" ng-show="deletePolicyId">
+ <i class="glyphicon glyphicon-trash"></i> Delete Policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.remove && temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#delete" ng-show="deleteScopeId">
+ <i class="glyphicon glyphicon-trash"></i> Delete Scope
+ </a>
+ </li>
+ </ul>
+ <ul class="dropdown-menu dropdown-right-click" ng-show="isDisabled" role="menu" aria-labelledby="dropdownMenu" style="">
+ <li ng-show="config.allowedActions.describePolicy && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#describePolicy" ng-show="describePolicyId" ng-click="temp.getDescribePolicyContent();">
+ <i class="glyphicon glyphicon-picture"></i>Describe Policy
+ </a>
+ </li>
+ <li ng-show="config.allowedActions.viewPolicy && !temp.isFolder()">
+ <a href="" tabindex="-1" data-toggle="modal" data-target="#createNewPolicy" ng-show="viewPolicyId" ng-click="temp.getViewPolicyContent();">
+ <i class="glyphicon glyphicon-picture"></i> View Policy
+ </a>
+ </li>
+ </ul>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/item-toolbar.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/item-toolbar.html
new file mode 100644
index 000000000..1b767e3a2
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/item-toolbar.html
@@ -0,0 +1,25 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<div ng-show="!item.inprocess">
+ <button class="btn btn-sm btn-default" data-toggle="modal" data-target="#watch" ng-click="watch(item)" title="Watch">
+ <i class="glyphicon glyphicon-eye-open"></i>
+ </button>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-icons.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-icons.html
new file mode 100644
index 000000000..8487d4838
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-icons.html
@@ -0,0 +1,43 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<div class="iconset clearfix">
+ <div class="col-120" ng-repeat="item in fileNavigator.fileList | filter: query | orderBy: orderProp" ng-show="!fileNavigator.requesting && !fileNavigator.error">
+ <a href="" class="thumbnail text-center" ng-click="smartClick(item)" ng-right-click="touch(item)" title="{{item.model.name}} ({{item.model.sizeKb()}}kb)">
+ <div class="item-icon">
+ <i class="glyphicon glyphicon-folder-open" ng-show="item.model.type === 'dir'"></i>
+ <i class="glyphicon glyphicon-file" ng-show="item.model.type === 'file'"></i>
+ </div>
+ {{item.model.name | strLimit : 11 }}
+ </a>
+ </div>
+
+ <div ng-show="fileNavigator.requesting">
+ <div ng-include="config.tplPath + '/spinner.html'"></div>
+ </div>
+
+ <div class="alert alert-warning" ng-show="!fileNavigator.requesting && fileNavigator.fileList.length < 1 && !fileNavigator.error">
+ {{"no_files_in_folder" | translate}}...
+ </div>
+
+ <div class="alert alert-danger" ng-show="!fileNavigator.requesting && fileNavigator.error">
+ {{ fileNavigator.error }}
+ </div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-table-modal.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-table-modal.html
new file mode 100644
index 000000000..12b2cf048
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-table-modal.html
@@ -0,0 +1,66 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<table class="table table-condensed table-modal-condensed mb0">
+ <thead>
+ <tr>
+ <th>
+ <a href="" ng-click="order('model.name')">
+ {{"name" | translate}}
+ <span class="sortorder" ng-show="predicate[1] === 'model.name'" ng-class="{reverse:reverse}"></span>
+ </a>
+ </th>
+ <th class="text-right"></th>
+ </tr>
+ </thead>
+ <tbody class="file-item">
+ <tr ng-show="fileNavigator.requesting">
+ <td colspan="2">
+ <div ng-include="config.tplPath + '/spinner.html'"></div>
+ </td>
+ </tr>
+ <tr ng-show="!fileNavigator.requesting && !fileNavigator.listHasFolders() && !fileNavigator.error">
+ <td colspan="2">
+ {{"no_folders_in_folder" | translate}}...
+ </td>
+ <td class="text-right">
+ <button class="btn btn-sm btn-default" ng-click="fileNavigator.upDir()">{{"go_back" | translate}}</button>
+ </td>
+ </tr>
+ <tr ng-show="!fileNavigator.requesting && fileNavigator.error">
+ <td colspan="2">
+ {{ fileNavigator.error }}
+ </td>
+ </tr>
+ <tr ng-repeat="item in fileNavigator.fileList | orderBy:predicate:reverse" ng-show="!fileNavigator.requesting && item.model.type === 'dir'">
+ <td>
+ <a href="" ng-click="fileNavigator.folderClick(item)" title="{{item.model.name}} ({{item.model.sizeKb()}}kb)">
+ <i class="glyphicon glyphicon-folder-close"></i>
+ {{item.model.name | strLimit : 32}}
+ </a>
+ </td>
+ <td class="text-right">
+ <button class="btn btn-sm btn-default" ng-click="select(item, temp)">
+ <i class="glyphicon glyphicon-hand-up"></i> {{"select_this" | translate}}
+ </button>
+ </td>
+ </tr>
+ </tbody>
+</table> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-table.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-table.html
new file mode 100644
index 000000000..6a576f2fb
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main-table.html
@@ -0,0 +1,100 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<table class="table mb0 table-files">
+ <thead>
+ <tr>
+ <th>
+ <a href="" ng-click="order('model.name')">
+ {{"name" | translate}}
+ <span class="sortorder" ng-show="predicate[1] === 'model.name'" ng-class="{reverse:reverse}"></span>
+ </a>
+ </th>
+ <th class="hidden-sm hidden-xs">
+ <a href="" ng-click="order('model.version')">
+ Version
+ <span class="sortorder" ng-show="predicate[1] === 'model.version'" ng-class="{reverse:reverse}"></span>
+ </a>
+ </th>
+ <th class="hidden-sm hidden-xs">
+ <a href="" ng-click="order('model.date')">
+ {{"date" | translate}}
+ <span class="sortorder" ng-show="predicate[1] === 'model.date'" ng-class="{reverse:reverse}"></span>
+ </a>
+ </th>
+ <th class="hidden-sm hidden-xs">
+ <a href="" ng-click="order('model.createdBy')">
+ Created By
+ <span class="sortorder" ng-show="predicate[1] === 'model.createdBy'" ng-class="{reverse:reverse}"></span>
+ </a>
+ </th>
+ <th class="hidden-sm hidden-xs">
+ <a href="" ng-click="order('model.modifiedBy')">
+ Modified By
+ <span class="sortorder" ng-show="predicate[1] === 'model.modifiedBy'" ng-class="{reverse:reverse}"></span>
+ </a>
+ </th>
+ <th class="hidden-sm hidden-xs">
+ <a href="">Watch Policy <span ng-class="{reverse:reverse}"></span></a>
+ </th>
+ </tr>
+ </thead>
+ <tbody class="file-item">
+ <tr ng-show="fileNavigator.requesting">
+ <td colspan="5">
+ <div ng-include="config.tplPath + '/spinner.html'"></div>
+ </td>
+ </tr>
+ <tr ng-show="!fileNavigator.requesting && fileNavigator.fileList.length < 1 && !fileNavigator.error">
+ <td colspan="5">
+ {{"no_files_in_folder" | translate}}...
+ </td>
+ </tr>
+ <tr ng-show="!fileNavigator.requesting && fileNavigator.error">
+ <td colspan="5">
+ {{ fileNavigator.error }}
+ </td>
+ </tr>
+ <tr ng-repeat="item in fileNavigator.fileList | filter: {model:{name: query}} | orderBy:predicate:reverse" ng-show="!fileNavigator.requesting">
+ <td ng-right-click="touch(item)">
+ <a href="" ng-click="smartClick(item)" title="{{item.model.name}} ({{item.model.sizeKb()}}kb)">
+ <i class="glyphicon glyphicon-folder-close" ng-show="item.model.type === 'dir'"></i>
+ <i class="glyphicon glyphicon-file" ng-show="item.model.type === 'file'"></i>
+ {{item.model.name | strLimit : 64}}
+ </a>
+ </td>
+ <td class="hidden-xs">
+ {{item.model.version}}
+ </td>
+ <td class="hidden-sm hidden-xs">
+ {{item.model.date | formatDate }}
+ </td>
+ <td class="hidden-sm hidden-xs">
+ {{item.model.createdBy}}
+ </td>
+ <td class="hidden-sm hidden-xs">
+ {{item.model.modifiedBy}}
+ </td>
+ <td class="hidden-sm hidden-xs">
+ <div ng-include="config.tplPath + '/item-toolbar.html'"></div>
+ </td>
+ </tr>
+ </tbody>
+</table> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main.html
new file mode 100644
index 000000000..6db7c8423
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/main.html
@@ -0,0 +1,34 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<div ng-app>
+ <div ng-include="config.tplPath + '/navbar.html'"></div>
+ <div class="container-fluid">
+ <div class="row">
+ <div ng-include="config.tplPath + '/current-folder-breadcrumb.html'" ng-show="config.breadcrumb"></div>
+ <div ng-include="config.tplPath + '/' + viewTemplate" class="main-navigation clearfix"></div>
+ </div>
+ </div>
+ <div ng-include="config.tplPath + '/modals.html'"></div>
+ <div ng-include="config.tplPath + '/item-context-menu.html'"></div>
+ <div ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/PolicyTypeTemplate.html'"></div>
+ <div ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/DescribePolicyTemplate.html'"></div>
+ <div ng-include="'app/policyApp/policy-models/Editor/PolicyTemplates/ExportPolicyTemplate.html'"></div>
+</div> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/modals.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/modals.html
new file mode 100644
index 000000000..0adb1c407
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/modals.html
@@ -0,0 +1,385 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<div class="modal animated fadeIn" id="imagepreview" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="remove(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">{{"preview" | translate}}</h4>
+ </div>
+ <div class="modal-body" ng-show="temp.getUrl().length > 10">
+ <div class="text-center">
+ <img id="imagepreview-target" class="preview" alt="{{temp.model.name}}" ng-class="{'loading': temp.inprocess}">
+ <span class="label label-warning" ng-show="temp.inprocess">{{'loading' | translate}} ...</span>
+ </div>
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"close" | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+
+
+<div class="modal animated fadeIn" id="delete" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="remove(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">{{"confirm" | translate}}</h4>
+ </div>
+ <div class="modal-body">
+ {{'sure_to_delete' | translate}} <b>{{temp.model.name}}</b> ?
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="temp.inprocess" autofocus="autofocus">{{"remove" | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="deletePolicy" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="removePolicy(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">{{"confirm" | translate}}</h4>
+ </div>
+ <div class="modal-body">{{'sure_to_delete' | translate}} <b>{{temp.model.name}}</b> ?
+ <div>
+ <p>
+ <input type = "radio" ng-model ="temp.model.versions" name = "radSize" id = "sizeSmall" value = "CURRENT" checked = "checked" /><label for = "sizeSmall">Are you sure you want to delete Current Version of Policy</label>
+ </br>
+ <input type = "radio" ng-model ="temp.model.versions" name = "radSize" id = "sizeMed" value = "ALL" /><label for = "sizeMed">Are you sure you want to delete All Versions of Policy</label>
+ </p>
+ </div>
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="temp.inprocess" autofocus="autofocus">{{"remove" | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="rename" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="rename(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">Rename</h4>
+ </div>
+ <div class="modal-body">
+ <label class="radio">{{'enter_new_name_for' | translate}} <b>{{temp.model.name}}</b></label>
+ <input class="form-control" ng-model="temp.tempModel.name" autofocus="autofocus">
+
+ <!-- <div ng-include data-src="'path-selector'" class="clearfix"></div> -->
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="temp.inprocess">{{'rename' | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="searchWindow" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form>
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">List of Policies</h4>
+ </div>
+ <div class="modal-body">
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="move" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="move(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">Move Policy</h4>
+ </div>
+ <div class="modal-body">
+ <div ng-include data-src="'path-selector'" class="clearfix"></div>
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="temp.inprocess">Move</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="switchVersion" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="switchVersion(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">Switch Version</h4>
+ </div>
+ <div class="modal-body">
+ <label class="radio">Highest Version <b></b></label>
+ <input class="form-control" ng-disabled="true" ng-model="temp.tempModel.content.highestVersion" autofocus="autofocus">
+ </div>
+ <div class="modal-body">
+ <label class="radio">Active Version <b></b></label>
+ <select class="form-control" ng-model="temp.tempModel.content.activeVersion" ng-options="option for option in temp.tempModel.content.availableVersions" autofocus="autofocus"></select>
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="temp.inprocess">Save</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="copy" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="copy(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">Clone Policy</h4>
+ </div>
+ <div class="modal-body">
+ <label class="radio">{{'enter_new_name_for' | translate}} <b>{{temp.model.name}}</b></label>
+ <input class="form-control" ng-model="temp.tempModel.name" autofocus="autofocus">
+
+ <!-- <div ng-include data-src="'path-selector'" class="clearfix"></div> -->
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="temp.inprocess">Clone</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+
+<div class="modal animated fadeIn" id="edit" ng-class="{'modal-fullscreen': fullscreen}" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog modal-lg">
+ <div class="modal-content">
+ <form ng-submit="edit(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <button type="button" class="close mr5" ng-click="fullscreen=!fullscreen">
+ <span>&loz;</span>
+ <span class="sr-only">{{'toggle_fullscreen' | translate}}</span>
+ </button>
+ <h4 class="modal-title">{{'edit_file' | translate}}</h4>
+ </div>
+ <div class="modal-body">
+ <label class="radio">{{'file_content' | translate}}</label>
+ <span class="label label-warning" ng-show="temp.inprocess">{{'loading' | translate}} ...</span>
+ <textarea class="form-control code" ng-model="temp.tempModel.content" ng-show="!temp.inprocess" autofocus="autofocus"></textarea>
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{'close' | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-show="config.allowedActions.edit" ng-disabled="temp.inprocess">{{'edit' | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="newfolder" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="createFolder(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">Add Scope</h4>
+ </div>
+ <div class="modal-body">
+ <label class="radio">Scope Name</label>
+ <input class="form-control" ng-model="temp.tempModel.name" autofocus="autofocus">
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <button id = "cancel" type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="temp.inprocess">{{'create' | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="addSubScope" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="subScopeFolder(temp)">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">Add Sub Scope</h4>
+ </div>
+ <div class="modal-body">
+ <label class="radio">Scope Name</label>
+ <input class="form-control" ng-model="temp.tempModel.subScopename" autofocus="autofocus">
+ <!-- <div ng-include data-src="'error-bar'" class="clearfix"></div> -->
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="temp.inprocess">{{'create' | translate}}</button>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="uploadfile" data-toggle="modal" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form ng-submit="uploadFiles()">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">{{"upload_file" | translate}}</h4>
+ </div>
+ <div class="modal-body">
+ <label class="radio">{{"files_will_uploaded_to" | translate}}</label>
+ <input type="file" class="form-control" ng-file="$parent.uploadFileList" autofocus="autofocus" multiple="multiple"/>
+ <div ng-include data-src="'error-bar'" class="clearfix"></div>
+ </div>
+ <div class="modal-footer">
+ <div ng-show="!fileUploader.requesting">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{"cancel" | translate}}</button>
+ <button type="submit" class="btn btn-primary" ng-disabled="!uploadFileList.length || fileUploader.requesting">{{'upload' | translate}}</button>
+ </div>
+ <div ng-show="fileUploader.requesting">
+ <span class="label label-warning">{{"uploading" | translate}} ...</span>
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+
+<div class="modal animated fadeIn" id="selector" ng-controller="ModalFileManagerCtrl">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">
+ <span aria-hidden="true">&times;</span>
+ <span class="sr-only">{{"close" | translate}}</span>
+ </button>
+ <h4 class="modal-title">{{"select_destination_folder" | translate}}</h4>
+ </div>
+ <div class="modal-body">
+ <div>
+ <div ng-include="config.tplPath + '/current-folder-breadcrumb.html'"></div>
+ <div ng-include="config.tplPath + '/main-table-modal.html'"></div>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="temp.inprocess">{{"close" | translate}}</button>
+ </div>
+ </div>
+ </div>
+</div>
+
+<script type="text/ng-template" id="path-selector">
+ <div class="panel panel-primary mt10 mb0">
+ <div class="panel-body">
+ <div class="detail-sources">
+ <code class="mr5"><b>{{"source" | translate}}:</b> {{temp.model.fullPath()}}</code>
+ </div>
+ <div class="detail-sources">
+ <code class="mr5"><b>{{"destination" | translate}}:</b>{{temp.tempModel.fullPath()}}</code>
+ <a href="" class="label label-primary" ng-click="openNavigator(temp)">{{'change' | translate}}</a>
+ </div>
+ </div>
+ </div>
+</script>
+
+<script type="text/ng-template" id="error-bar">
+ <div class="label label-danger error-msg pull-left animated fadeIn" ng-show="temp.error">
+ <i class="glyphicon glyphicon-remove-circle"></i>
+ <span>{{temp.error}}</span>
+ </div>
+</script> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/navbar.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/navbar.html
new file mode 100644
index 000000000..9bd272819
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/navbar.html
@@ -0,0 +1,127 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <a class="heading1" href="" ng-click="fileNavigator.goTo(-1)">{{config.appName}}</a>
+ <div ng-show ="isDisabled" class="ion-locked" style="clear: left; float: left">
+ </div>
+ </div>
+ <div id="navbar" class="navbar-collapse collapse">
+ <div class="navbar-form navbar-right" ng-hide="isDisabled">
+ <button class="btn btn-default btn-sm" ng-show="superAdminId" data-toggle="modal" data-target="#newfolder" ng-click="touch()">
+ <i class="glyphicon glyphicon-plus"></i> {{"create_folder" | translate}}
+ </button>
+ <button class="btn btn-default btn-sm" ng-show="importPolicyId" data-toggle="modal" data-target="#uploadfile" ng-show="config.allowedActions.upload" ng-click="touch()">
+ <i class="glyphicon glyphicon-upload"></i> {{"upload_file" | translate}}
+ </button>
+ <button class="btn btn-default btn-sm" ng-show="exportPolicyId" data-toggle="modal" data-target="#exportPolicy" ng-show="config.allowedActions.exportPolicy">
+ <i class="glyphicon glyphicon-download"></i> Export
+ </button>
+ <button type="button" class="btn btn-info" data-toggle="collapse" data-target="#demo">Search</button>
+ </div>
+ </div>
+ <div id="demo" class="collapse">
+ <div class="navbar-form navbar-left">
+ <input type="text" class="form-control input-lg" ng-disabled="isDisabled" style = "width:900px" placeholder="{{'search'}}..." ng-model="search.query"/>
+ <button type="button" class="btn btn-info" ng-click= "Search(search);"><span class="glyphicon glyphicon-search"></span> Search</button>
+ <button class="btn btn-default btn-sm" ng-click="search.query = null">Clear Search </button>
+ </div>
+ <br>
+ <div class="fn-ebz-container">
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Policy Type:</label><BR>
+ <select class="form-field" ng-model="search.policyType">
+ <option>action</option>
+ <option>config</option>
+ <option>closedLoop</option>
+ <option>decision</option>
+ <option>all</option>
+ </select>
+ </div>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Descriptive Type:</label><BR>
+ <select class="form-field" ng-model="search.descriptiveScope" ng-options="option for option in descriptiveScopeDictionaryDatas track by option"></select>
+ </div>
+ <div class="fn-ebz-container" ng-if="search.policyType == 'closedLoop'">
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">ClosedLoop Policy Type:</label><BR>
+ <select class="form-field" ng-model="search.closedLooppolicyType">
+ <option>Config_Fault</option>
+ <option>Config_PM</option>
+ </select>
+ </div>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Ecomp Name:</label><BR>
+ <select class="form-field" ng-model="search.ecompName" ng-options="option for option in ecompNameDictionaryDatas track by option"></select>
+ </div>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">D2 Service:</label><BR>
+ <select class="form-field" ng-model="search.d2Service">
+ <option>Hosted Voice(Trinity)</option>
+ <option>vUSP</option>
+ <option>MCR</option>
+ <option>Gamma</option>
+ <option>vDNS</option>
+ </select>
+ </div>
+ <div class="fn-ebz-container" ng-if="search.closedLooppolicyType == 'Config_Fault'">
+ <label class="fn-ebz-text-label">VNF Type:</label><BR>
+ <select class="form-field" ng-model="search.vnfType" ng-options="option for option in vnfTypeDictionaryDatas track by option"></select>
+ </div>
+ <div class="fn-ebz-container" ng-if="search.closedLooppolicyType == 'Config_Fault'">
+ <label class="fn-ebz-text-label">Policy Status:</label><BR>
+ <select class="form-field" ng-model="search.policyStatus">
+ <option>Active</option>
+ <option>InActive</option>
+ </select>
+ </div>
+ <div class="fn-ebz-container" ng-if="search.closedLooppolicyType == 'Config_Fault'">
+ <label class="fn-ebz-text-label">vPRO Action:</label><BR>
+ <select class="form-field" ng-model="search.vproAction" ng-options="option for option in vsclActionDictionaryDatas track by option"></select>
+ </div>
+ <div class="fn-ebz-container" ng-if="search.closedLooppolicyType == 'Config_PM'">
+ <label class="fn-ebz-text-label">Service Type:</label><BR>
+ <select class="form-field" ng-model="search.serviceType">
+ <option>Registration Failure(Trinity)</option>
+ <option>International Fraud(Trinity)</option>
+ <option>No Dial Tone(Trinity)</option>
+ <option>Call Storm(Trinity)</option>
+ <option>Registration Storm(Trinity)</option>
+ </select>
+ </div>
+ <div class="fn-ebz-container">
+ <label class="fn-ebz-text-label">Bind Text Search to:</label><BR>
+ <select class="form-field" ng-model="search.bindTextSearch">
+ <option>Email Address</option>
+ <option>Trigger Signature</option>
+ <option>Connect All Traps</option>
+ <option>Verification Signature</option>
+ <option>Connect All Faults</option>
+ <option>Onset Message</option>
+ <option>Policy Name</option>
+ <option>Abatement Message</option>
+ <option>Geo Link</option>
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/sidebar.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/sidebar.html
new file mode 100644
index 000000000..89c7b2f23
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/sidebar.html
@@ -0,0 +1,34 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<ul class="nav nav-sidebar file-tree-root">
+ <li ng-repeat="item in fileNavigator.history" ng-include="'folder-branch-item'" ng-class="{'active': item.name == fileNavigator.currentPath.join('/')}"></li>
+</ul>
+
+<script type="text/ng-template" id="folder-branch-item">
+ <a href="" ng-click="fileNavigator.folderClick(item.item)" class="animated fast fadeInDown">
+ <i class="glyphicon glyphicon-folder-close mr2" ng-hide="isInThisPath(item.name)"></i>
+ <i class="glyphicon glyphicon-folder-open mr2" ng-show="isInThisPath(item.name)"></i>
+ {{ (item.name.split('/').pop() || '/') | strLimit : 24 }}
+ </a>
+ <ul class="nav nav-sidebar">
+ <li ng-repeat="item in item.nodes" ng-include="'folder-branch-item'" ng-class="{'active': item.name == fileNavigator.currentPath.join('/')}"></li>
+ </ul>
+</script> \ No newline at end of file
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/spinner.html b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/spinner.html
new file mode 100644
index 000000000..16f682e87
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/templates/spinner.html
@@ -0,0 +1,25 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP Policy Engine
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<div class="spinner-wrapper col-xs-12">
+ <svg class="spinner-container" style="width:65px;height:65px" viewBox="0 0 44 44">
+ <circle class="path" cx="22" cy="22" r="20" fill="none" stroke-width="4"></circle>
+ </svg>
+</div> \ No newline at end of file