aboutsummaryrefslogtreecommitdiffstats
path: root/moonv4/moon_gui/delivery/html
diff options
context:
space:
mode:
authorWuKong <rebirthmonkey@gmail.com>2017-04-22 13:25:07 +0200
committerWuKong <rebirthmonkey@gmail.com>2017-04-22 13:25:07 +0200
commitd182202fc6001983541504ed323d68479086317e (patch)
tree11d4c10cdd3e995f519c3e0e324968fdaf175114 /moonv4/moon_gui/delivery/html
parent83c1c966baf73329fab8ddcfad19ad7fe0c41c2a (diff)
add moonv4
Change-Id: I247af788d0b0fb961fbc85416486b241eb1d807c Signed-off-by: WuKong <rebirthmonkey@gmail.com>
Diffstat (limited to 'moonv4/moon_gui/delivery/html')
-rw-r--r--moonv4/moon_gui/delivery/html/authentication/authentication.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/common/404/404.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/common/compatibility/compatibility.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/common/footer/footer.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/common/header/header.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/common/loader/loader.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/common/waiting/waiting.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/dashboard/dashboard.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/logs/logs.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/action/model-add.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/action/model-delete.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/action/model-view.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/metadata/metadata-edit.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/metadata/metadata-list.tpl.html82
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-add.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-map.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-unmap.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/metarules/action/metarules-edit-basic.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/metarules/action/metarules-edit.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/metarules/metarules-list.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/model-edit-basic.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/model/edit/model-edit.tpl.html4
-rw-r--r--moonv4/moon_gui/delivery/html/model/model-list.tpl.html6
-rw-r--r--moonv4/moon_gui/delivery/html/pdp/action/pdp-add.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/pdp/action/pdp-delete.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/pdp/edit/pdp-edit-basic.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/pdp/edit/pdp-edit.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/pdp/pdp-list.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/action/mapping/policy-map.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/action/mapping/policy-unmap.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/action/policy-add.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/action/policy-delete.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/edit/parameter/assignments/assignments-list.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/edit/parameter/data/data-list.tpl.html113
-rw-r--r--moonv4/moon_gui/delivery/html/policy/edit/parameter/perimeter/perimeter-list.tpl.html114
-rw-r--r--moonv4/moon_gui/delivery/html/policy/edit/parameter/rules/rules-list.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/edit/policy-edit-basic.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/edit/policy-edit.tpl.html13
-rw-r--r--moonv4/moon_gui/delivery/html/policy/policy-list.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/policy/policy-mapped-list.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/project/action/mapping/project-map.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/project/action/mapping/project-unmap.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/project/action/project-add.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/project/action/project-delete.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/project/action/project-view.tpl.html1
-rw-r--r--moonv4/moon_gui/delivery/html/project/project-list.tpl.html1
46 files changed, 372 insertions, 0 deletions
diff --git a/moonv4/moon_gui/delivery/html/authentication/authentication.tpl.html b/moonv4/moon_gui/delivery/html/authentication/authentication.tpl.html
new file mode 100644
index 00000000..d942d8e8
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/authentication/authentication.tpl.html
@@ -0,0 +1 @@
+<div class="col-md-6 col-md-offset-3"><h2 data-translate="moon.login.titlePage">Login</h2><form name="form" ng-submit="form.$valid && auth.login()" novalidate><div class="form-group" ng-class="{ 'has-error': form.$submitted && form.username.$invalid }"><label for="username" data-translate="moon.login.username">Username</label><input type="text" id="username" name="username" class="form-control" ng-model="auth.credentials.username" required><div ng-messages="form.$submitted && form.username.$error" class="help-block"><div ng-message="required" data-translate="moon.login.check.username.required">Username is required</div></div></div><div class="form-group" ng-class="{ 'has-error': form.$submitted && form.password.$invalid }"><label for="password" data-translate="moon.login.password">Password</label><input type="password" id="password" name="password" class="form-control" ng-model="auth.credentials.password" required><div ng-messages="form.$submitted && form.password.$error" class="help-block"><div ng-message="required" data-translate="moon.login.check.password.required">Password is required</div></div></div><div class="form-group"><button ng-disabled="auth.loading" class="btn btn-primary" data-translate="moon.login.login">Login</button> <img ng-if="auth.loading" src="assets/img/ajax-loader.gif"></div></form></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/common/404/404.tpl.html b/moonv4/moon_gui/delivery/html/common/404/404.tpl.html
new file mode 100644
index 00000000..f03a2e98
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/common/404/404.tpl.html
@@ -0,0 +1 @@
+<div data-translate="moon.global.404">Not found!</div><div>Go <a href="" ui-sref="moon.project.list">Projects ?</a></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/common/compatibility/compatibility.tpl.html b/moonv4/moon_gui/delivery/html/common/compatibility/compatibility.tpl.html
new file mode 100644
index 00000000..7a39554e
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/common/compatibility/compatibility.tpl.html
@@ -0,0 +1 @@
+<div class="modal" tabindex="-1" data-role="modalCompatibility"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.compatibility.title"></h4></div><div class="modal-body"><span data-translate="moon.compatibility.content"></span></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><button ng-click="$hide()" class="btn btn-default" data-translate="moon.compatibility.close">Close</button></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/common/footer/footer.tpl.html b/moonv4/moon_gui/delivery/html/common/footer/footer.tpl.html
new file mode 100644
index 00000000..6c01bd92
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/common/footer/footer.tpl.html
@@ -0,0 +1 @@
+<div class="container footer" ng-controller="FooterController as footer"><div class="row"><div class="pull-right"><span>v<span ng-bind="footer.version"></span></span> - <a href="" ng-click="footer.showBrowsersCompliance()" data-translate="moon.compatibility.label">browser compatibility</a></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/common/header/header.tpl.html b/moonv4/moon_gui/delivery/html/common/header/header.tpl.html
new file mode 100644
index 00000000..ecfc522e
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/common/header/header.tpl.html
@@ -0,0 +1 @@
+<div class="container banner" ng-controller="HeaderController as header"><div class="row"><div class="col-md-3 sub-banner"><a ui-sref="moon.dashboard"><img src="assets/img/logo-orange.gif" alt="Orange"> </a><img src="assets/img/logo-openstack.png" alt="OpenStack"></div><div class="col-md-6 center-block"><h1 data-translate="moon.global.applicationName">Moon UI</h1></div><div class="col-md-3"><span class="pull-right"><a href="" ng-click="header.changeLocale('fr', $event)"><img src="assets/img/arrow-link.gif" alt="fr_">fr</a> <a href="" ng-click="header.changeLocale('en', $event)"><img src="assets/img/arrow-link.gif" alt="en_">en</a> <a href="" ng-if="connected" ng-click="header.logout()" class="left30"><span class="glyphicon glyphicon-log-out"></span> <span data-translate="moon.logout.title">Logout</span>(<span ng-bind="header.getUser().token.user.name"></span>) </a><a href="" ng-if="!connected" class="left30"><span class="glyphicon glyphicon-log-in"></span> <span data-translate="moon.login.title">Login</span></a></span></div></div><div class="row"><toaster-container toaster-options="{'position-class': 'toast-top-right', 'close-button': true}"></toaster-container></div><div class="row" ng-if="connected"><ul class="nav nav-tabs"><li ng-class="{active: header.isProjectTabActive()}"><a ui-sref="moon.project.list" data-translate="moon.menu.project">Projects</a></li><li ng-class="{active: header.isModelTabActive()}"><a ui-sref="moon.model.list" data-translate="moon.menu.model">Models</a></li><li ng-class="{active: header.isPolicyTabActive()}"><a ui-sref="moon.policy.list" data-translate="moon.menu.policy">Policy</a></li><li ng-class="{active: header.isPDPTabActive()}"><a ui-sref="moon.pdp.list" data-translate="moon.menu.pdp">PDP</a></li><!--<li ng-class="{active: header.isLogsTabActive()}"><a ui-sref="moon.logs" data-translate="moon.menu.logs">Logs</a></li>--></ul></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/common/loader/loader.tpl.html b/moonv4/moon_gui/delivery/html/common/loader/loader.tpl.html
new file mode 100644
index 00000000..dc52e911
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/common/loader/loader.tpl.html
@@ -0,0 +1 @@
+<img src="assets/img/ajax-loader.gif"> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/common/waiting/waiting.tpl.html b/moonv4/moon_gui/delivery/html/common/waiting/waiting.tpl.html
new file mode 100644
index 00000000..eca2ae9e
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/common/waiting/waiting.tpl.html
@@ -0,0 +1 @@
+<div class="modal" tabindex="-1" data-role="modalWaiting"><div class="modal-dialog"><div class="modal-content"><div class="modal-body centered"><img src="assets/img/ajax-waiting.gif"></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/dashboard/dashboard.tpl.html b/moonv4/moon_gui/delivery/html/dashboard/dashboard.tpl.html
new file mode 100644
index 00000000..995c8910
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/dashboard/dashboard.tpl.html
@@ -0,0 +1 @@
+<div class="container"><div class="row"><h1 data-translate="moon.dashboard.content">Moon:Software-Defined Security Framework</h1></div><div class="row"><img src="assets/img/et.jpg" alt="ET" class="img-responsive img-center"></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/logs/logs.tpl.html b/moonv4/moon_gui/delivery/html/logs/logs.tpl.html
new file mode 100644
index 00000000..bb6dd686
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/logs/logs.tpl.html
@@ -0,0 +1 @@
+<div class="container">Logs</div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/action/model-add.tpl.html b/moonv4/moon_gui/delivery/html/model/action/model-add.tpl.html
new file mode 100644
index 00000000..5741b537
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/action/model-add.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="ModelAddController as add" class="modal" tabindex="-1" data-role="modalAddModel"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.model.add.title"></h4></div><div class="modal-body"><form class="form-horizontal" role="form" name="add.form"><div class="form-group" ng-class="{'has-error': add.form.name.$invalid && add.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.model.add.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="add.model.name" required><div class="help-block" ng-show="add.form.name.$dirty && add.form.name.$invalid"><small class="error" ng-show="add.form.name.$error.required" data-translate="moon.model.add.check.name.required">Name is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.model.add.form.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="add.model.description"></textarea></div></div></form></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.model.add.action.cancel">Cancel</span> </a><a href="" ng-disabled="add.loading" ng-click="add.create()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.model.add.action.create">Create Model</span></a><moon-loader ng-if="add.loading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/action/model-delete.tpl.html b/moonv4/moon_gui/delivery/html/model/action/model-delete.tpl.html
new file mode 100644
index 00000000..79e4aa0d
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/action/model-delete.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="ModelDeleteController as del" class="modal" tabindex="-1" data-role="modalDeleteModel"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.model.remove.title"></h4></div><div class="modal-body"><p><span data-translate="moon.model.remove.content.query" data-translate-values="{ modelName: del.model.name }"></span></p></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.model.remove.action.cancel">Cancel</span> </a><a href="" ng-disabled="del.loading" ng-click="del.remove()" class="btn btn-warning"><span class="glyphicon glyphicon-trash"></span> <span data-translate="moon.model.remove.action.delete">Delete</span></a><moon-loader ng-if="del.loading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/action/model-view.tpl.html b/moonv4/moon_gui/delivery/html/model/action/model-view.tpl.html
new file mode 100644
index 00000000..46673c0a
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/action/model-view.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="ModelViewController as view" class="modal" tabindex="-1" data-role="modalViewProject"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.model.view.title" data-translate-values="{modelName: view.model.name}"></h4></div><div class="modal-body"><dl class="dl-horizontal"><dt data-translate="moon.model.view.id">Id</dt><dd ng-bind="view.model.id"></dd><dt data-translate="moon.model.view.name">Name</dt><dd ng-bind="view.model.name"></dd><dt data-translate="moon.model.view.description">Description</dt><dd ng-bind="view.model.description"></dd></dl><div ng-if="view.meta_rules_values"><moon-meta-rules-list mapped-model="view.model" edit-mode="false"></moon-meta-rules-list></div><div ng-if="!view.meta_rules_values"><moon-loader></moon-loader></div></div><div class="modal-footer top10"><div class="btn-toolbar" style="float: right"><button ng-click="$hide()" class="btn btn-default" data-translate="moon.model.view.action.close">Close</button></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/metadata/metadata-edit.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/metadata/metadata-edit.tpl.html
new file mode 100644
index 00000000..7d53a991
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/metadata/metadata-edit.tpl.html
@@ -0,0 +1 @@
+<div><div class="col-md-4 col-sm-4 col-xs-4"><a class="btn btn-primary" type="button" style="white-space: normal" ng-click="edit.fromList = !edit.fromList"><span ng-if="!edit.fromList" data-translate="moon.model.metadata.edit.action.list">Add from the list</span> <span ng-if="edit.fromList" data-translate="moon.model.metadata.edit.action.new">Add a new Category</span></a></div><div class="col-md-8 col-sm-8 col-xs-8"><form name="selectMetaData" ng-if="edit.fromList" class="form-horizontal" role="form"><div class="form-group"><ui-select ng-model="edit.selectedMetaData" name="object"><ui-select-match placeholder="(None)" ng-bind="$select.selected.name"></ui-select-match><ui-select-choices repeat="ametaData in edit.list"><div ng-value="ametaData" ng-bind="ametaData.name"></div></ui-select-choices></ui-select></div><div class="form-group"><div class="pull-left col-md-4 col-sm-4 col-xs-4"><a href="" ng-disabled="edit.loading || !edit.selectedMetaData" ng-click="edit.deleteMetaData()" class="btn btn-warning"><span class="glyphicon glyphicon-trash"></span> <span data-translate="moon.model.metadata.edit.action.delete">Delete</span></a></div><div class="pull-right col-md-7 col-md-offset-1 col-sm-7 col-sm-offset-1 col-xs-7 col-xs-offset-1"><a href="" ng-disabled="edit.loading || !edit.selectedMetaData" ng-click="edit.addToMetaRule()" class="btn btn-warning" style="white-space: normal"><span class="glyphicon glyphicon-link"></span> <span data-translate="moon.model.metadata.edit.action.add">Add the selected Category</span></a></div></div><moon-loader ng-if="edit.loading"></moon-loader></form><form ng-if="!edit.fromList" class="form-horizontal" role="form" name="edit.form"><div class="form-group" ng-class="{'has-error': edit.form.name.$invalid && edit.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.model.metadata.edit.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="edit.metaData.name" required><div class="help-block" ng-show="edit.form.name.$dirty && edit.form.name.$invalid"><small class="error" ng-show="edit.form.name.$error.required" data-translate="moon.model.metadata.edit.check.name.required">Name is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.model.metadata.edit.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="edit.metaData.description"></textarea></div></div><div class="form-group"><div class="pull-right"><a href="" ng-disabled="edit.loading" ng-click="edit.create()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.model.metadata.edit.action.create">Create</span></a><moon-loader ng-if="edit.loading"></moon-loader></div></div></form></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/metadata/metadata-list.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/metadata/metadata-list.tpl.html
new file mode 100644
index 00000000..c1d7e242
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/metadata/metadata-list.tpl.html
@@ -0,0 +1,82 @@
+<div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.model.metadata.subject.title">List of associated Subject Categories</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.model.metadata.table.id">Id</th><th data-translate="moon.model.metadata.table.name">Name</th><th data-translate="moon.model.metadata.table.description">Description</th><th ng-if="list.editMode" data-translate="moon.model.metadata.table.action.title"></th></tr></thead><moon-loader ng-if="list.loadingCatSub"></moon-loader><tbody ng-if="!list.loadingCatSub && list.getSubjectCategories().length > 0"><tr ng-repeat="(key, value) in list.catSub"><td ng-bind="value.id"></td><td ng-bind="value.name"></td><td ng-bind="value.description"></td><td ng-if="list.editMode"><a href="" ng-if="!value.loader" ng-click="list.unMapSub(value)"><span class="glyphicon glyphicon-transfer"></span> <span class="control-label" data-translate="moon.model.metadata.action.remove">Remove</span> </a><!--<div ng-if="!value.loader" class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.model.metadata.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapSub(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metadata.action.remove">Remove</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteSub(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.model.metadata.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>--><div ng-if="value.loader"><moon-loader></moon-loader></div></td></tr></tbody><tbody ng-if="!list.loadingCatSub && list.catSub.length === 0"><tr><td data-translate="moon.model.metadata.subject.notFound">There is no Subjects</td><td></td><td></td><td ng-if="list.editMode"></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.model.metadata.subject.add.title">Add a Subject Category</h4></div><div class="panel-body"><moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfSubject"></moon-meta-data-edit></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.model.metadata.object.title">List associated of Object Categories</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.model.metadata.table.id">Id</th><th data-translate="moon.model.metadata.table.name">Name</th><th data-translate="moon.model.metadata.table.description">Description</th><th ng-if="list.editMode" data-translate="moon.model.metadata.table.action.title"></th></tr></thead><moon-loader ng-if="list.loadingCatObj"></moon-loader><tbody ng-if="!list.loadingCatObj && list.catObj.length > 0"><tr ng-repeat="(key, value) in list.catObj"><td ng-bind="value.id"></td><td ng-bind="value.name"></td><td ng-bind="value.description"></td><td ng-if="list.editMode"><a href="" ng-if="!value.loader" ng-click="list.unMapObj(value)"><span class="glyphicon glyphicon-transfer"></span> <span class="control-label" data-translate="moon.model.metadata.action.remove">Remove</span> </a><!--<div ng-if="!value.loader" class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.model.metadata.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapObj(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metadata.action.remove">Remove</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteObj(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.model.metadata.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>--><div ng-if="value.loader"><moon-loader></moon-loader></div></td></tr></tbody><tbody ng-if="!list.loadingCatObj && list.catObj.length === 0"><tr><td data-translate="moon.model.metadata.object.notFound">There is no Objects</td><td></td><td></td><td ng-if="list.editMode"></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.model.metadata.object.add.title">Add an Object Category</h4></div><div class="panel-body"><moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfObject"></moon-meta-data-edit></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.model.metadata.action.title">List associated of Action Categories</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.model.metadata.table.id">Id</th><th data-translate="moon.model.metadata.table.name">Name</th><th data-translate="moon.model.metadata.table.description">Description</th><th ng-if="list.editMode" data-translate="moon.model.metadata.table.action.title"></th></tr></thead><moon-loader ng-if="list.loadingCatAct"></moon-loader><tbody ng-if="!list.loadingCatAct && list.catAct.length > 0"><tr ng-repeat="(key, value) in list.catAct"><td ng-bind="value.id"></td><td ng-bind="value.name"></td><td ng-bind="value.description"></td><td ng-if="list.editMode"><a href="" ng-if="!value.loader" ng-click="list.unMapAct(value)"><span class="glyphicon glyphicon-transfer"></span> <span class="control-label" data-translate="moon.model.metadata.action.remove">Remove</span> </a><!--<div ng-if="!value.loader" class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.model.metadata.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapAct(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metadata.action.remove">Remove</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteAct(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.model.metadata.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>--><div ng-if="value.loader"><moon-loader></moon-loader></div></td></tr></tbody><tbody ng-if="!list.loadingCatAct && list.catAct.length === 0"><tr><td data-translate="moon.model.metadata.action.notFound">There is no Actions</td><td></td><td></td><td ng-if="list.editMode"></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.model.metadata.action.add.title">Add an Action Category</h4></div><div class="panel-body">.<moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfAction"></moon-meta-data-edit></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-add.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-add.tpl.html
new file mode 100644
index 00000000..8593236d
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-add.tpl.html
@@ -0,0 +1 @@
+<div class="row"><form class="form-horizontal" role="form" name="add.form"><div class="form-group" ng-class="{'has-error': add.form.name.$invalid && add.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.model.metarules.add.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="add.metaRule.name" required><div class="help-block" ng-show="add.form.name.$dirty && add.form.name.$invalid"><small class="error" ng-show="add.form.name.$error.required" data-translate="moon.model.metarules.add.check.name.required">Name is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.model.metarules.add.form.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="add.metaRule.description"></textarea></div></div><div class="form-group"><div class="col-sm-8"><div class="pull-right"><a href="" ng-disabled="add.loading" ng-click="add.create()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.model.metarules.add.action.create">Create</span></a><moon-loader ng-if="add.loading"></moon-loader></div></div></div></form></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-map.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-map.tpl.html
new file mode 100644
index 00000000..0170fc2e
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-map.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="moonMetaRulesMapController as map" class="modal" tabindex="-1" data-role="MapMetaRules"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.model.metarules.map.title"></h4></div><div class="modal-body"><div class="row"><div class="col-sm-3"><button class="btn btn-primary" style="white-space: normal" ng-click="map.addMetaRuleToList = !map.addMetaRuleToList"><span ng-if="!map.addMetaRuleToList" data-translate="moon.model.metarules.map.action.new">Add a new Meta Rule</span> <span ng-if="map.addMetaRuleToList" data-translate="moon.model.metarules.map.action.list">List of Meta Rules</span></button></div><div class="col-sm-9"><form class="form-horizontal" role="form" name="map.form"><div class="form-group" ng-if="!map.addMetaRuleToList"><label class="col-sm-3 control-label" data-translate="moon.model.metarules.map.form.list">List of Meta Rule</label><div class="col-sm-9"><ui-select ng-model="map.selectedMetaRule" name="object"><ui-select-match placeholder="(None)" ng-bind="$select.selected.name"></ui-select-match><ui-select-choices repeat="ametaRule in map.metaRules"><div ng-value="ametaRule" ng-bind="ametaRule.name"></div></ui-select-choices></ui-select></div></div><div class="form-group" ng-if="!map.addMetaRuleToList"><moon-loader ng-if="map.metaRulesLoading || map.mappingLoading"></moon-loader><div class="col-sm-5"><a href="" ng-disabled="map.metaRulesLoading || map.mappingLoading || !map.selectedMetaRule" ng-click="map.deleteMetaRule()" class="btn btn-warning" style="white-space: normal"><span class="glyphicon glyphicon-trash"></span> <span data-translate="moon.model.metarules.map.action.delete">Delete the selected Meta Rule</span></a></div><div class="col-sm-5 col-sm-offset-2"><a href="" ng-disabled="map.metaRulesLoading || map.mappingLoading || !map.selectedMetaRule" ng-click="map.mapToModel()" class="btn btn-warning" style="white-space: normal"><span class="glyphicon glyphicon-link"></span> <span data-translate="moon.model.metarules.map.action.add">Add the selected Meta Rule</span></a></div></div><div class="form-group" ng-if="map.addMetaRuleToList"><moon-meta-rules-add></moon-meta-rules-add></div></form></div></div></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.model.metarules.add.action.cancel">Cancel</span></a></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-unmap.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-unmap.tpl.html
new file mode 100644
index 00000000..76e1e486
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/mapping/metarules-unmap.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="MetaRulesUnMapController as unmap" class="modal" tabindex="-1" data-role="modalUnMapMetaRule"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.model.metarules.unmap.title"></h4></div><div class="modal-body"><span data-translate="moon.model.metarules.unmap.content" data-translate-values="{ modelName: unmap.model.name, metaRuleName: unmap.metaRule.name }"></span></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.model.metarules.unmap.action.cancel">Cancel</span> </a><a href="" ng-disabled="unmap.unMappingLoading" ng-click="unmap.unmap()" class="btn btn-warning"><span class="glyphicon glyphicon-transfer"></span> <span data-translate="moon.model.metarules.unmap.action.unmap">Unmap</span></a><moon-loader ng-if="unmap.unMappingLoading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/metarules/action/metarules-edit-basic.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/metarules-edit-basic.tpl.html
new file mode 100644
index 00000000..3a171600
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/metarules-edit-basic.tpl.html
@@ -0,0 +1 @@
+<div class="row"><form class="form-horizontal" role="form" name="edit.form"><div class="form-group"><label for="id" class="col-sm-3 control-label" data-translate="moon.model.metarules.edit.basic.form.id">Id</label><div class="col-sm-6"><input name="id" id="id" disabled="disabled" class="form-control" type="text" data-ng-model="edit.metaRuleToEdit.id" required></div></div><div class="form-group" ng-class="{'has-error': edit.form.name.$invalid && edit.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.model.metarules.edit.basic.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="edit.metaRuleToEdit.name" required><div class="help-block" ng-show="edit.form.name.$dirty && edit.form.name.$invalid"><small class="error" ng-show="edit.form.name.$error.required" data-translate="moon.model.metarules.edit.basic.check.name.required">Name is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.model.metarules.edit.basic.form.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="edit.metaRuleToEdit.description"></textarea></div></div><div class="form-group"><div class="col-sm-2 col-sm-offset-3"><a href="" ng-disabled="edit.loading" ng-click="edit.init()" class="btn btn-default"><span data-translate="moon.model.metarules.edit.basic.action.init">Init</span></a></div><div class="col-sm-4 col-sm-offset-2"><a href="" ng-disabled="edit.loading" ng-click="edit.editMetaRule()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.model.metarules.edit.basic.action.update">Update</span></a><moon-loader ng-if="edit.loading"></moon-loader></div></div></form></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/metarules/action/metarules-edit.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/metarules-edit.tpl.html
new file mode 100644
index 00000000..fe37cc90
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/metarules/action/metarules-edit.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="MetaRulesEditController as edit" class="modal" tabindex="-1" data-role="modalViewProject"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.model.metarules.edit.title" data-translate-values="{metaRuleName: edit.metaRule.name}"></h4></div><div class="modal-body"><div class="panel panel-default"><div class="panel-heading"><h4><span data-translate="moon.model.edit.basic.title">Basic Information</span> <a href="" ng-click="edit.editBasic = !edit.editBasic"><span data-translate="moon.model.metarules.edit.update">Update</span> <span class="glyphicon glyphicon-cog"></span></a></h4></div><div class="panel-body"><div ng-if="edit.editBasic"><moon-meta-rules-edit-basic meta-rule="edit.metaRule"></moon-meta-rules-edit-basic></div><div ng-if="!edit.editBasic"><dl class="dl-horizontal"><dt>Id</dt><dd ng-bind="edit.metaRule.id"></dd><dt>Name</dt><dd ng-bind="edit.metaRule.name"></dd><dt>Description</dt><dd ng-bind="edit.metaRule.description"></dd></dl></div></div></div><moon-meta-data-list edit-mode="true" meta-rule="edit.metaRule"></moon-meta-data-list></div><div class="modal-footer top10"><div class="btn-toolbar" style="float: right"><button ng-click="$hide()" class="btn btn-default" data-translate="moon.model.view.action.close">Close</button></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/metarules/metarules-list.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/metarules/metarules-list.tpl.html
new file mode 100644
index 00000000..37d77cc3
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/metarules/metarules-list.tpl.html
@@ -0,0 +1 @@
+<div><div class="row"><div><h4 data-translate="moon.model.metarules.title">List of Meta Rules</h4></div></div><div class="row"><div class="table-responsive" data-role="table"><table class="table table-striped table-hover" ng-table="list.table"><colgroup><col class="col-md-2"><col class="col-md-2"><col class="col-md-1"><col class="col-md-1"><col class="col-md-1"><col class="col-md-2"></colgroup><thead><tr><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('name', 'asc'), 'sort-desc': list.table.isSortBy('name', 'desc') }" ng-click="list.table.sorting('name', list.table.isSortBy('name', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.model.metarules.table.name">Name</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('description', 'asc'), 'sort-desc': list.table.isSortBy('description', 'desc') }" ng-click="list.table.sorting('description', list.table.isSortBy('description', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.model.metarules.table.description">Description</div></th><th class="customTables sortable"><div data-translate="moon.model.metarules.table.metadata.subject.number">Number of Subjects</div></th><th class="customTables sortable"><div data-translate="moon.model.metarules.table.metadata.object.number">Number of Subjects</div></th><th class="customTables sortable"><div data-translate="moon.model.metarules.table.metadata.action.number">Number of Actions</div></th><th class="customTables"><div data-translate="moon.model.metarules.action.title">Actions</div></th></tr></thead><tbody ng-if="!list.hasMetaRules()"><tr><td colspan="2"><span data-translate="moon.model.metarules.table.notFound">There is no Meta Rules</span></td></tr></tbody><tbody ng-if="list.hasMetaRules()"><tr ng-repeat="aMetaRules in $data | filter:list.search.find | orderBy:sort:reverse"><td ng-bind="aMetaRules.name"></td><td ng-bind="aMetaRules.description"></td><td ng-bind="aMetaRules.subject_categories.length"></td><td ng-bind="aMetaRules.object_categories.length"></td><td ng-bind="aMetaRules.action_categories.length"></td><td><div ng-if="list.editMode"><div ng-if="!value.loader" class="dropdown"><button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"><span data-translate="moon.model.metadata.table.action.title">Actions</span> <span class="caret"></span></button><ul class="dropdown-menu"><li><a href="" ng-click="list.unmap.showModal(aMetaRules)"><span class="glyphicon glyphicon-transfer"></span> <span class="control-label" data-translate="moon.model.metarules.action.remove">Remove</span></a></li><li><a href="" ng-click="list.edit.showModal(aMetaRules)"><span class="glyphicon glyphicon-cog"></span> <span class="control-label" data-translate="moon.model.metarules.action.edit">Edit</span></a></li></ul></div></div><div ng-if="!list.editMode"><a href="" ng-click="list.showDetail(aMetaRules)"><span ng-if="aMetaRules.id !== list.getShowDetailValue().id"><span class="glyphicon glyphicon-eye-open"></span> <span class="control-label" data-translate="moon.model.metarules.action.detail.open">Consult</span> </span><span ng-if="aMetaRules.id === list.getShowDetailValue().id"><span class="glyphicon glyphicon-eye-close"></span> <span class="control-label" data-translate="moon.model.metarules.action.detail.close">Close</span></span></a></div></td></tr></tbody></table><div ng-if="list.showDetailValue"><moon-meta-data-list edit-mode="list.editMode" meta-rule="list.getShowDetailValue()"></moon-meta-data-list></div></div></div><div class="row" ng-if="list.editMode"><div class="form-group"><a href="" ng-click="list.map.showModal()" class="btn btn-default"><span class="glyphicon glyphicon-link"></span> <span data-translate="moon.model.metarules.action.settings">Settings</span></a></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/model-edit-basic.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/model-edit-basic.tpl.html
new file mode 100644
index 00000000..a645b1ee
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/model-edit-basic.tpl.html
@@ -0,0 +1 @@
+<div class="row"><form class="form-horizontal" role="form" name="edit.form"><div class="form-group"><label for="id" class="col-sm-3 control-label" data-translate="moon.model.edit.basic.form.id">Id</label><div class="col-sm-6"><input name="id" id="id" disabled="disabled" class="form-control" type="text" data-ng-model="edit.modelToEdit.id" required></div></div><div class="form-group" ng-class="{'has-error': edit.form.name.$invalid && edit.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.model.edit.basic.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="edit.modelToEdit.name" required><div class="help-block" ng-show="edit.form.name.$dirty && edit.form.name.$invalid"><small class="error" ng-show="edit.form.name.$error.required" data-translate="moon.model.edit.basic.check.name.required">Name is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.model.edit.basic.form.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="edit.modelToEdit.description"></textarea></div></div><div class="form-group"><div class="col-sm-2 col-sm-offset-3"><a href="" ng-disabled="edit.loading" ng-click="edit.init()" class="btn btn-default"><span data-translate="moon.model.edit.basic.action.init">Init</span></a></div><div class="col-sm-4 col-sm-offset-2"><a href="" ng-disabled="edit.loading" ng-click="edit.editModel()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.model.edit.basic.action.update">Update</span></a><moon-loader ng-if="edit.loading"></moon-loader></div></div></form></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/edit/model-edit.tpl.html b/moonv4/moon_gui/delivery/html/model/edit/model-edit.tpl.html
new file mode 100644
index 00000000..448871d3
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/edit/model-edit.tpl.html
@@ -0,0 +1,4 @@
+<div class="container"><div class="row"><h3 class="pull-left" data-translate="moon.model.edit.title" data-translate-values="{ modelName: edit.model.name }">Edit</h3></div><div class="panel panel-default"><div class="panel-heading"><span data-translate="moon.model.edit.basic.title">Basic Information</span> <a href="" ng-click="edit.editBasic = !edit.editBasic"><span data-translate="moon.model.edit.update">Update</span> <span class="glyphicon glyphicon-cog"></span></a></div><div class="panel-body"><div ng-if="edit.editBasic"><moon-model-edit-basic model="edit.model"></moon-model-edit-basic></div><div ng-if="!edit.editBasic"><dl class="dl-horizontal"><dt data-translate="moon.model.edit.basic.form.id">Id</dt><dd ng-bind="edit.model.id"></dd><dt data-translate="moon.model.edit.basic.form.name">Name</dt><dd ng-bind="edit.model.name"></dd><dt data-translate="moon.model.edit.basic.form.description">Description</dt><dd ng-bind="edit.model.description"></dd></dl></div></div></div><div class="panel panel-default"><div class="panel-heading"><span data-translate="moon.model.edit.metarules.title">Meta Rule</span><!--<a href="" ng-click="edit.editMetaRules = !edit.editMetaRules">
+ <span data-translate="moon.model.edit.update">Update</span>
+ <span class="glyphicon glyphicon-cog"></span>
+ </a>--></div><div class="panel-body" ng-if="edit.model.meta_rules_values"><moon-meta-rules-list mapped-model="edit.model" edit-mode="edit.editMetaRules"></moon-meta-rules-list></div><div class="panel-body" ng-if="!edit.model.meta_rules_values"><moon-loader></moon-loader></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/model/model-list.tpl.html b/moonv4/moon_gui/delivery/html/model/model-list.tpl.html
new file mode 100644
index 00000000..138a66b7
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/model/model-list.tpl.html
@@ -0,0 +1,6 @@
+<div class="container"><div><form class="form-inline pull-right"><div class="form-group"><div><input id="searchProject" data-ng-model="list.search.query" type="text" class="form-control" placeholder="{{'moon.model.list.search.placeholder' | translate}}"></div></div><div class="form-group"><div><button type="submit" class="btn btn-danger" data-ng-click="list.search.reset()" data-translate="moon.model.list.search.reset">Reset</button></div></div></form></div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div class="row"><div class="table-responsive" data-role="table"><table class="table table-striped table-hover" ng-table="list.table"><thead><tr><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('name', 'asc'), 'sort-desc': list.table.isSortBy('name', 'desc') }" ng-click="list.table.sorting('name', list.table.isSortBy('name', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.model.list.table.name">Name</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('description', 'asc'), 'sort-desc': list.table.isSortBy('description', 'desc') }" ng-click="list.table.sorting('description', list.table.isSortBy('description', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.model.list.table.description">Description</div></th><th class="customTables sortable"><div data-translate="moon.model.list.table.metaRules.number">Number of Meta Rules</div></th><th class="customTables"><div data-translate="moon.model.list.action.title">Actions</div></th></tr></thead><tbody ng-if="!list.hasModels()"><tr><td colspan="2"><span data-translate="moon.model.list.table.notFound">There is no Models</span></td></tr></tbody><tbody ng-if="list.hasModels()"><tr ng-repeat="aModel in $data | filter:list.search.find | orderBy:sort:reverse"><td ng-bind="aModel.name"></td><td ng-bind="aModel.description"></td><td ng-bind="aModel.meta_rules.length"></td><td><div class="dropdown"><button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"><span data-translate="moon.model.list.action.title">Actions</span> <span class="caret"></span></button><ul class="dropdown-menu"><!-- <li>
+ <a href="" ng-click="list.view.showModal(aModel)">
+ <span class="glyphicon glyphicon-eye-open"></span>
+ <span class="control-label" data-translate="moon.model.list.action.detail">Detail</span>
+ </a>
+ </li>--><li><a href="" ui-sref="moon.model.edit({id: aModel.id})"><span class="glyphicon glyphicon-cog"></span> <span class="control-label" data-translate="moon.model.list.action.edit">Edit</span></a></li><li class="divider"></li><li><a href="" ng-click="list.del.showModal(aModel)"><span class="glyphicon glyphicon-trash"></span> <span class="control-label" data-translate="moon.model.list.action.delete">Delete</span></a></li></ul></div></td></tr></tbody></table></div><div class="container"><div class="form-inline form-group"><a href="" ng-click="list.add.showModal()" class="btn btn-default"><span class="glyphicon glyphicon-plus-sign"></span> <span data-translate="moon.model.list.action.add">Add Model</span></a></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/pdp/action/pdp-add.tpl.html b/moonv4/moon_gui/delivery/html/pdp/action/pdp-add.tpl.html
new file mode 100644
index 00000000..e372a8c3
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/pdp/action/pdp-add.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="PDPAddController as add" class="modal" tabindex="-1" data-role="modalAddPDP"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.pdp.add.title"></h4></div><div class="modal-body"><form class="form-horizontal" role="form" name="add.form"><div class="form-group" ng-class="{'has-error': add.form.name.$invalid && add.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.pdp.add.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="add.pdp.name" required><div class="help-block" ng-show="add.form.name.$dirty && add.form.name.$invalid"><small class="error" ng-show="add.form.name.$error.required" data-translate="moon.pdp.add.check.name.required">Name is required</small></div></div></div><div class="form-group" ng-class="{'has-error': add.form.policy.$dirty && (add.form.policy.$invalid || !add.selectedPolicy)}"><label class="col-sm-3 control-label" data-translate="moon.pdp.add.form.policy">Policy</label><div class="col-sm-6" ng-if="!add.loadingPolicies"><ui-select ng-model="add.selectedPolicy" name="policy" required><ui-select-match placeholder="(None)">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="policy in add.policies"><div ng-value="policy">{{policy.name}}</div></ui-select-choices></ui-select><div class="help-block" ng-show="add.form.policy.$dirty && (add.form.policy.$invalid || !add.selectedPolicy)"><small class="error" ng-show="add.form.policy.$error.required" data-translate="moon.pdp.add.check.policy.required">Policy is required</small></div></div><div class="col-sm-6" ng-if="add.loadingPolicies"><moon-loader ng-if="add.loadingPolicies"></moon-loader></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.pdp.add.form.description">Description</label><div class="col-sm-6"><textarea name="description" id="description" class="form-control" ng-model="add.pdp.description"></textarea></div></div></form></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.pdp.add.action.cancel">Cancel</span> </a><a href="" ng-disabled="add.loading" ng-click="add.create(add.pdp)" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.pdp.add.action.create">Create</span></a><moon-loader ng-if="add.loading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/pdp/action/pdp-delete.tpl.html b/moonv4/moon_gui/delivery/html/pdp/action/pdp-delete.tpl.html
new file mode 100644
index 00000000..2c8a5f34
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/pdp/action/pdp-delete.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="PDPDeleteController as del" class="modal" tabindex="-1" data-role="modalDeletePDP"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.pdp.remove.title"></h4></div><div class="modal-body"><span data-translate="moon.pdp.remove.content" data-translate-values="{ pdpName: del.pdp.name}"></span></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.pdp.remove.action.cancel">Cancel</span> </a><a href="" ng-disabled="del.loading" ng-click="del.remove()" class="btn btn-warning"><span class="glyphicon glyphicon-trash"></span> <span data-translate="moon.pdp.remove.action.delete">Delete</span></a><moon-loader ng-if="del.loading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/pdp/edit/pdp-edit-basic.tpl.html b/moonv4/moon_gui/delivery/html/pdp/edit/pdp-edit-basic.tpl.html
new file mode 100644
index 00000000..e15e27e0
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/pdp/edit/pdp-edit-basic.tpl.html
@@ -0,0 +1 @@
+<div class="row"><form class="form-horizontal" role="form" name="edit.form"><div class="form-group"><label for="id" class="col-sm-3 control-label" data-translate="moon.pdp.edit.basic.form.id">Id</label><div class="col-sm-6"><input name="id" id="id" disabled="disabled" class="form-control" type="text" data-ng-model="edit.pdpToEdit.id" required></div></div><div class="form-group" ng-class="{'has-error': edit.form.name.$invalid && edit.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.pdp.edit.basic.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="edit.pdpToEdit.name" required><div class="help-block" ng-show="edit.form.name.$dirty && edit.form.name.$invalid"><small class="error" ng-show="edit.form.name.$error.required" data-translate="moon.pdp.edit.basic.check.name.required">Name is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.pdp.edit.basic.form.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="edit.pdpToEdit.description"></textarea></div></div><div class="form-group"><div class="col-sm-2 col-sm-offset-3"><a href="" ng-disabled="edit.loading" ng-click="edit.init()" class="btn btn-default"><span data-translate="moon.pdp.edit.basic.action.init">Init</span></a></div><div class="col-sm-4 col-sm-offset-2"><a href="" ng-disabled="edit.loading" ng-click="edit.editPdp()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.pdp.edit.basic.action.update">Update</span></a><moon-loader ng-if="edit.loading"></moon-loader></div></div></form></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/pdp/edit/pdp-edit.tpl.html b/moonv4/moon_gui/delivery/html/pdp/edit/pdp-edit.tpl.html
new file mode 100644
index 00000000..b231c0d5
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/pdp/edit/pdp-edit.tpl.html
@@ -0,0 +1 @@
+<div class="container"><div class="row"><h3 class="pull-left" data-translate="moon.pdp.edit.title" data-translate-values="{ pdpName: edit.pdp.name }">Edit</h3></div><div class="row"><div class="panel panel-default"><div class="panel-heading"><h4><span data-translate="moon.pdp.edit.basic.title">Basic Information</span> <a href="" ng-click="edit.editBasic = !edit.editBasic"><span data-translate="moon.pdp.edit.update">Update</span> <span class="glyphicon glyphicon-cog"></span></a></h4></div><div class="panel-body"><div ng-if="edit.editBasic"><moon-p-d-p-edit-basic pdp="edit.pdp"></moon-p-d-p-edit-basic></div><div ng-if="!edit.editBasic"><dl class="dl-horizontal"><dt>Id</dt><dd ng-bind="edit.pdp.id"></dd><dt>Name</dt><dd ng-bind="edit.pdp.name"></dd><dt>Description</dt><dd ng-bind="edit.pdp.description"></dd></dl></div></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.pdp.edit.policy.title">Policies</h4></div><moon-policy-mapped-list pdp="edit.pdp"></moon-policy-mapped-list></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/pdp/pdp-list.tpl.html b/moonv4/moon_gui/delivery/html/pdp/pdp-list.tpl.html
new file mode 100644
index 00000000..31d1aae0
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/pdp/pdp-list.tpl.html
@@ -0,0 +1 @@
+<div class="container"><div><form class="form-inline pull-right"><div class="form-group"><div><input id="searchPDP" data-ng-model="list.search.query" type="text" class="form-control" placeholder="{{'moon.pdp.list.search.placeholder' | translate}}"></div></div><div class="form-group"><div><button type="submit" class="btn btn-danger" data-ng-click="list.search.reset()" data-translate="moon.pdp.list.search.reset">Reset</button></div></div></form></div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div class="row"><div class="table-responsive" data-role="table"><table class="table table-striped table-hover" ng-table="list.table"><thead><tr><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('name', 'asc'), 'sort-desc': list.table.isSortBy('name', 'desc') }" ng-click="list.table.sorting('name', list.table.isSortBy('name', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.pdp.list.table.name">Name</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('security_pipeline', 'asc'), 'sort-desc': list.table.isSortBy('security_pipeline', 'desc') }" ng-click="list.table.sorting('security_pipeline', list.table.isSortBy('policy', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.pdp.list.table.security_pipeline.number">Number of Securities</div></th><th class="customTables" ng-class="{ 'sort-asc': list.table.isSortBy('project', 'asc'), 'sort-desc': list.table.isSortBy('project', 'desc') }" ng-click="list.table.sorting('project', list.table.isSortBy('project', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.pdp.list.table.project">Project</div></th><th class="customTables"><div data-translate="moon.pdp.list.action.title">Actions</div></th></tr></thead><tbody ng-if="!list.hasPDPs()"><tr><td colspan="12"><span data-translate="moon.pdp.list.table.notFound">There is no PDP</span></td></tr></tbody><tbody ng-if="list.hasPDPs()"><tr ng-repeat="pdp in $data | filter:list.search.find | orderBy:sort:reverse"><td ng-bind="list.getPDPName(pdp)"></td><td ng-bind="list.getSecPipelineFromPdp(pdp).length"></td><td><div ng-if="list.isMapped(pdp)"><div ng-if="!list.getProjectFromPDP(pdp)"><moon-loader ng-if="!list.getProjectFromPDP(pdp)"></moon-loader><em data-translate="moon.pdp.list.table.loading.project">Loading Project</em></div><div ng-if="list.getProjectFromPDP(pdp)"><span ng-bind="pdp.project.name"></span></div></div><div ng-if="!list.isMapped(pdp)"><span data-translate="moon.pdp.list.table.mapping.map">Is not mapped</span></div></td><td><div class="dropdown"><button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"><span data-translate="moon.pdp.list.action.title">Actions</span> <span class="caret"></span></button><ul class="dropdown-menu"><li><a href="" ui-sref="moon.pdp.edit({id: pdp.id})"><span class="glyphicon glyphicon-cog"></span> <span class="control-label" data-translate="moon.pdp.list.action.edit">Edit</span></a></li><li class="divider"></li><li><a href="" ng-click="list.del.showModal(pdp)"><span class="glyphicon glyphicon-trash"></span> <span class="control-label" data-translate="moon.pdp.list.action.delete">Delete</span></a></li></ul></div></td></tr></tbody></table></div><div class="container"><div class="form-inline form-group"><a href="" ng-click="list.add.showModal()" class="btn btn-default"><span class="glyphicon glyphicon-plus-sign"></span> <span data-translate="moon.pdp.list.action.add">Add PDP</span></a></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/action/mapping/policy-map.tpl.html b/moonv4/moon_gui/delivery/html/policy/action/mapping/policy-map.tpl.html
new file mode 100644
index 00000000..9d115c18
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/action/mapping/policy-map.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="PolicyMapController as map" class="modal" tabindex="-1" data-role="modalMappingPolicy"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.policy.map.title" data-translate-values="{ pdpName: map.pdp.name}"></h4></div><div class="modal-body"><form class="form-horizontal" role="form" name="map.form"><div class="form-group" ng-class="{'has-error': map.form.policy.$dirty && (map.form.policy.$invalid || !map.selectedPolicy)}"><label class="col-sm-3 control-label" data-translate="moon.policy.map.form.list">List of Policies</label><div class="col-sm-6"><ui-select ng-model="map.selectedPolicy" name="policy" required><ui-select-match placeholder="(None)" ng-bind="$select.selected.name"></ui-select-match><ui-select-choices repeat="policy in map.policies"><div ng-bind="policy.name" ng-value="policy"></div></ui-select-choices></ui-select><moon-loader ng-if="map.policiesLoading"></moon-loader><div class="help-block" ng-show="map.form.policy.$dirty && (map.form.policy.$invalid || !map.selectedPolicy)"><small class="error" ng-show="map.form.policy.$error.required" data-translate="moon.policy.map.check.policy.required">Policy is required</small></div></div></div></form></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.policy.map.action.cancel">Cancel</span> </a><a href="" ng-disabled="map.mappingLoading" ng-click="map.map()" class="btn btn-warning"><span class="glyphicon glyphicon-link"></span> <span data-translate="moon.policy.map.action.map">Map</span></a><moon-loader ng-if="map.mappingLoading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/action/mapping/policy-unmap.tpl.html b/moonv4/moon_gui/delivery/html/policy/action/mapping/policy-unmap.tpl.html
new file mode 100644
index 00000000..3892782d
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/action/mapping/policy-unmap.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="PolicyUnMapController as unmap" class="modal" tabindex="-1" data-role="modalUnmapPolicy"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.policy.unmap.title"></h4></div><div class="modal-body"><span data-translate="moon.policy.unmap.content" data-translate-values="{ policyName: unmap.policy.name, pdpName: unmap.pdp.name }"></span></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.policy.unmap.action.cancel">Cancel</span> </a><a href="" ng-disabled="unmap.unMappingLoading" ng-click="unmap.unmap()" class="btn btn-warning"><span class="glyphicon glyphicon-transfer"></span> <span data-translate="moon.policy.unmap.action.unmap">Unmap</span></a><moon-loader ng-if="unmap.unMappingLoading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/action/policy-add.tpl.html b/moonv4/moon_gui/delivery/html/policy/action/policy-add.tpl.html
new file mode 100644
index 00000000..e1220479
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/action/policy-add.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="PolicyAddController as add" class="modal" tabindex="-1" data-role="modalAddPolicy"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.policy.add.title"></h4></div><div class="modal-body"><form class="form-horizontal" role="form" name="add.form"><div class="form-group" ng-class="{'has-error': add.form.name.$invalid && add.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.policy.add.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="add.policy.name" required><div class="help-block" ng-show="add.form.name.$dirty && add.form.name.$invalid"><small class="error" ng-show="add.form.name.$error.required" data-translate="moon.policy.add.check.name.required">Name is required</small></div></div></div><div class="form-group" ng-class="{'has-error': add.form.genre.$dirty && (add.form.genre.$invalid || !add.selectedGenre)}"><label class="col-sm-3 control-label" data-translate="moon.policy.add.form.genre">Genre</label><div class="col-sm-6"><ui-select ng-model="add.selectedGenre" name="genre" required><ui-select-match placeholder="(None)">{{$select.selected}}</ui-select-match><ui-select-choices repeat="genre in add.genres"><div ng-value="genre">{{genre}}</div></ui-select-choices></ui-select><div class="help-block" ng-show="add.form.genre.$dirty && (add.form.genre.$invalid || !add.selectedPolicy)"><small class="error" ng-show="add.form.genre.$error.required" data-translate="moon.policy.add.check.genre.required">Genre is required</small></div></div></div><div class="form-group" ng-class="{'has-error': add.form.model.$dirty && (add.form.model.$invalid || !add.selectedModel)}"><label class="col-sm-3 control-label" data-translate="moon.policy.add.form.model">Models</label><div class="col-sm-6"><ui-select ng-model="add.selectedModel" name="model" required><ui-select-match placeholder="(None)">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="model in add.models"><div ng-value="model">{{model.name}}</div></ui-select-choices></ui-select><moon-loader ng-if="add.modelsLoading"></moon-loader><div class="help-block" ng-show="add.form.model.$dirty && (add.form.model.$invalid || !add.selectedModel)"><small class="error" ng-show="add.form.model.$error.required" data-translate="moon.policy.add.check.model.required">Model is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.policy.add.form.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="add.policy.description"></textarea></div></div></form></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.policy.add.action.cancel">Cancel</span> </a><a href="" ng-disabled="add.loading" ng-click="add.create()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.policy.add.action.create">Create Policy</span></a><moon-loader ng-if="add.loading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/action/policy-delete.tpl.html b/moonv4/moon_gui/delivery/html/policy/action/policy-delete.tpl.html
new file mode 100644
index 00000000..d2c679e3
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/action/policy-delete.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="PolicyDeleteController as del" class="modal" tabindex="-1" data-role="modalDeletePolicy"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.policy.remove.title"></h4></div><div class="modal-body"><p><span data-translate="moon.policy.remove.content.query" data-translate-values="{ policyName: del.policy.name }"></span></p></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.policy.remove.action.cancel">Cancel</span> </a><a href="" ng-disabled="del.loading" ng-click="del.remove()" class="btn btn-warning"><span class="glyphicon glyphicon-trash"></span> <span data-translate="moon.policy.remove.action.delete">Delete</span></a><moon-loader ng-if="del.loading"></moon-loader></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/edit/parameter/assignments/assignments-list.tpl.html b/moonv4/moon_gui/delivery/html/policy/edit/parameter/assignments/assignments-list.tpl.html
new file mode 100644
index 00000000..66fcaf73
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/edit/parameter/assignments/assignments-list.tpl.html
@@ -0,0 +1 @@
+<div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.assignments.subject.title">List of associated Subjects</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.assignments.table.perimeter.name">Perimeter name</th><th data-translate="moon.policy.assignments.table.category.name">Category name</th><th data-translate="moon.policy.assignments.table.data.name">Data name</th><!--<th data-translate="moon.policy.assignments.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingSub"></moon-loader><tbody ng-if="!list.loadingSub && list.getSubjects().length > 0"><tr ng-repeat="(key, value) in list.subjects"><td><div ng-if="!list.getPerimeterFromAssignment(value, list.typeOfSubject)"><moon-loader ng-if="!list.getPerimeterFromAssignment(value)"></moon-loader><em data-translate="moon.policy.assignments.table.loading.perimeter">Loading</em></div><div ng-if="list.getPerimeterFromAssignment(value)"><span ng-bind="value.category.name"></span></div></td><td><div ng-if="!list.getCategoryFromAssignment(value, list.typeOfSubject)"><moon-loader ng-if="!list.getCategoryFromAssignment(value)"></moon-loader><em data-translate="moon.policy.assignments.table.loading.category">Loading</em></div><div ng-if="list.getCategoryFromAssignment(value)"><span ng-bind="value.category.name"></span></div></td><td><span ng-repeat="(index, id) in value.assignments"><span ng-if="!list.getDataFromAssignmentsIndex(index, value, list.typeOfSubject)"><moon-loader ng-if="!list.getDataFromAssignmentsIndex(index, value, list.typeOfSubject)"></moon-loader></span><span ng-if="list.getDataFromAssignmentsIndex(index, value, list.typeOfSubject)"><span ng-bind="value.assignments_value[index].data.name"></span> <span ng-if="index < value.assignments.length-1">,</span></span></span></td></tr></tbody><tbody ng-if="!list.loadingSub && list.getSubjects().length === 0"><tr><td data-translate="moon.policy.assignments.subject.notFound">There is no Subjects</td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.assignments.subject.add.title">Add a Subject Category</h4></div><div class="panel-body"><moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfSubject"></moon-meta-data-edit></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.assignments.object.title">List associated of Objects</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.assignments.table.perimeter.name">Perimeter name</th><th data-translate="moon.policy.assignments.table.category.name">Category name</th><th data-translate="moon.policy.assignments.table.data.name">Data name</th><!--<th data-translate="moon.policy.assignments.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingObj"></moon-loader><tbody ng-if="!list.loadingObj && list.getObjects().length > 0"><tr ng-repeat="(key, value) in list.objects"><td><div ng-if="!list.getPerimeterFromAssignment(value, list.typeOfObject)"><moon-loader ng-if="!list.getPerimeterFromAssignment(value)"></moon-loader><em data-translate="moon.policy.assignments.table.loading.perimeter">Loading</em></div><div ng-if="list.getPerimeterFromAssignment(value)"><span ng-bind="value.category.name"></span></div></td><td><div ng-if="!list.getCategoryFromAssignment(value, list.typeOfObject)"><moon-loader ng-if="!list.getCategoryFromAssignment(value)"></moon-loader><em data-translate="moon.policy.assignments.table.loading.category">Loading</em></div><div ng-if="list.getCategoryFromAssignment(value)"><span ng-bind="value.category.name"></span></div></td><td><span ng-repeat="(index, id) in value.assignments"><span ng-if="!list.getDataFromAssignmentsIndex(index, value, list.typeOfObject)"><moon-loader ng-if="!list.getDataFromAssignmentsIndex(index, value, list.typeOfObject)"></moon-loader></span><span ng-if="list.getDataFromAssignmentsIndex(index, value, list.typeOfObject)"><span ng-if="value.assignments_value[index].data.name" ng-bind="value.assignments_value[index].data.name"></span> <span ng-if="value.assignments_value[index].data.value.name" ng-bind="value.assignments_value[index].data.value.name"></span> <span ng-if="index < value.assignments.length-1">,</span></span></span></td></tr></tbody><tbody ng-if="!list.loadingObj && list.getObjects().length === 0"><tr><td data-translate="moon.policy.assignments.object.notFound">There is no Objects</td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.assignments.object.add.title">Add an Object Category</h4></div><div class="panel-body"><moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfObject"></moon-meta-data-edit></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.assignments.action.title">List associated of Actions</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.assignments.table.perimeter.name">Perimeter name</th><th data-translate="moon.policy.assignments.table.category.name">Category name</th><th data-translate="moon.policy.assignments.table.data.name">Data name</th><!--<th data-translate="moon.policy.assignments.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingAct"></moon-loader><tbody ng-if="!list.loadingAct && list.getActions().length > 0"><tr ng-repeat="(key, value) in list.actions"><td><div ng-if="!list.getPerimeterFromAssignment(value, list.typeOfAction)"><moon-loader ng-if="!list.getPerimeterFromAssignment(value)"></moon-loader><em data-translate="moon.policy.assignments.table.loading.perimeter">Loading</em></div><div ng-if="list.getPerimeterFromAssignment(value)"><span ng-bind="value.perimeter.name"></span></div></td><td><div ng-if="!list.getCategoryFromAssignment(value, list.typeOfAction)"><moon-loader ng-if="!list.getCategoryFromAssignment(value)"></moon-loader><em data-translate="moon.policy.assignments.table.loading.category">Loading</em></div><div ng-if="list.getCategoryFromAssignment(value)"><span ng-bind="value.category.name"></span></div></td><td><span ng-repeat="(index, id) in value.assignments"><span ng-if="!list.getDataFromAssignmentsIndex(index, value, list.typeOfAction)"><moon-loader ng-if="!list.getDataFromAssignmentsIndex(index, value, list.typeOfAction)"></moon-loader></span><span ng-if="list.getDataFromAssignmentsIndex(index, value, list.typeOfAction)"><span ng-if="value.assignments_value[index].data.name" ng-bind="value.assignments_value[index].data.name"></span> <span ng-if="value.assignments_value[index].data.value.name" ng-bind="value.assignments_value[index].data.value.name"></span> <span ng-if="index < value.assignments.length-1">,</span></span></span></td></tr></tbody><tbody ng-if="!list.loadingAct && list.getActions().length === 0"><tr><td data-translate="moon.policy.assignments.action.notFound">There is no Actions</td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.assignments.action.add.title">Add an Action Category</h4></div><div class="panel-body">.<moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfAction"></moon-meta-data-edit></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/edit/parameter/data/data-list.tpl.html b/moonv4/moon_gui/delivery/html/policy/edit/parameter/data/data-list.tpl.html
new file mode 100644
index 00000000..a4619f2a
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/edit/parameter/data/data-list.tpl.html
@@ -0,0 +1,113 @@
+<div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.data.subject.title">List of associated Subjects</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.data.table.name">Name</th><th data-translate="moon.policy.data.table.description">Description</th><th data-translate="moon.policy.data.table.category.name">Category</th><!--<th data-translate="moon.policy.data.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingSub"></moon-loader><tbody ng-if="!list.loadingSub && list.getSubjects().length > 0"><tr ng-repeat="(key, value) in list.subjects"><td ng-bind="value.name"></td><td ng-bind="value.description"></td><td><div ng-if="!list.getCategoryFromData(value, list.typeOfSubject)"><moon-loader ng-if="!list.getCategoryFromData(value)"></moon-loader><em data-translate="moon.policy.list.table.loading.category">Loading</em></div><div ng-if="list.getCategoryFromData(value)"><span ng-bind="value.category.name"></span></div></td><!--<td>
+
+ <div class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.policy.data.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapSub(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metarules.action.unmap">Unmap</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteSub(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.policy.data.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>
+
+ <div ng-if="value.loader">
+
+ <moon-loader></moon-loader>
+
+ </div>
+
+ </td>--></tr></tbody><tbody ng-if="!list.loadingSub && list.getSubjects().length === 0"><tr><td data-translate="moon.policy.data.subject.notFound">There is no Subjects</td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.data.subject.add.title">Add a Subject Category</h4></div><div class="panel-body"><moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfSubject"></moon-meta-data-edit></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.data.object.title">List associated of Objects</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.data.table.name">Name</th><th data-translate="moon.policy.data.table.description">Description</th><th data-translate="moon.policy.data.table.category.name">Category</th><!--<th data-translate="moon.policy.data.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingObj"></moon-loader><tbody ng-if="!list.loadingObj && list.getObjects().length > 0"><tr ng-repeat="(key, value) in list.objects"><td ng-bind="value.value.name"></td><td ng-bind="value.value.description"></td><td><div ng-if="!list.getCategoryFromData(value, list.typeOfObject)"><moon-loader ng-if="!list.getCategoryFromData(value)"></moon-loader><em data-translate="moon.policy.list.table.loading.category">Loading</em></div><div ng-if="list.getCategoryFromData(value)"><span ng-bind="value.category.name"></span></div></td><!--<td>
+
+ <div class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.policy.data.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapObj(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metarules.action.unmap">Unmap</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteObj(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.policy.data.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>
+
+ <div ng-if="value.loader">
+
+ <moon-loader></moon-loader>
+
+ </div>
+
+ </td>
+ </tr>--></tr></tbody><tbody ng-if="!list.loadingObj && list.getObjects().length === 0"><tr><td data-translate="moon.policy.data.object.notFound">There is no Objects</td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.data.object.add.title">Add an Object Category</h4></div><div class="panel-body"><moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfObject"></moon-meta-data-edit></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.data.action.title">List associated of Actions</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.data.table.name">Name</th><th data-translate="moon.policy.data.table.description">Description</th><th data-translate="moon.policy.data.table.category.name">Category</th><!--<th data-translate="moon.policy.data.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingAct"></moon-loader><tbody ng-if="!list.loadingAct && list.getActions().length > 0"><tr ng-repeat="(key, value) in list.actions"><td ng-bind="value.value.name"></td><td ng-bind="value.value.description"></td><td><div ng-if="!list.getCategoryFromData(value, list.typeOfAction)"><moon-loader ng-if="!list.getCategoryFromData(value)"></moon-loader><em data-translate="moon.policy.list.table.loading.category">Loading</em></div><div ng-if="list.getCategoryFromData(value)"><span ng-bind="value.category.name"></span></div></td><!--<td>
+
+ <div class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.policy.data.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapAct(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metarules.action.unmap">Unmap</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteAct(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.policy.data.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>
+
+ <div ng-if="value.loader">
+
+ <moon-loader></moon-loader>
+
+ </div>
+
+ </td>--></tr></tbody><tbody ng-if="!list.loadingAct && list.getActions().length === 0"><tr><td data-translate="moon.policy.data.action.notFound">There is no Actions</td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.data.action.add.title">Add an Action Category</h4></div><div class="panel-body">.<moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfAction"></moon-meta-data-edit></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/edit/parameter/perimeter/perimeter-list.tpl.html b/moonv4/moon_gui/delivery/html/policy/edit/parameter/perimeter/perimeter-list.tpl.html
new file mode 100644
index 00000000..a137685a
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/edit/parameter/perimeter/perimeter-list.tpl.html
@@ -0,0 +1,114 @@
+<div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.perimeter.subject.title">List of associated Subjects</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.perimeter.table.partner.id">Id</th><th data-translate="moon.policy.perimeter.table.name">Name</th><th data-translate="moon.policy.perimeter.table.description">Description</th><th data-translate="moon.policy.perimeter.table.email">Email</th><!--<th data-translate="moon.policy.perimeter.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingSub"></moon-loader><tbody ng-if="!list.loadingSub && list.getSubjects().length > 0"><tr ng-repeat="(key, value) in list.subjects"><td ng-bind="value.partner_id"></td><td ng-bind="value.name"></td><td ng-bind="value.description"></td><td ng-bind="value.email"></td><!--<td>
+
+ <div class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.policy.perimeter.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapSub(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metarules.action.unmap">Unmap</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteSub(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.policy.perimeter.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>
+
+ <div ng-if="value.loader">
+
+ <moon-loader></moon-loader>
+
+ </div>
+
+ </td>--></tr></tbody><tbody ng-if="!list.loadingSub && list.getSubjects().length === 0"><tr><td data-translate="moon.policy.perimeter.subject.notFound">There is no Subjects</td><td></td><td></td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.perimeter.subject.add.title">Add a Subject Category</h4></div><div class="panel-body"><moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfSubject"></moon-meta-data-edit></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.perimeter.object.title">List associated of Objects</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.perimeter.table.partner.id">Id</th><th data-translate="moon.policy.perimeter.table.name">Name</th><th data-translate="moon.policy.perimeter.table.description">Description</th><!--<th data-translate="moon.policy.perimeter.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingObj"></moon-loader><tbody ng-if="!list.loadingObj && list.getObjects().length > 0"><tr ng-repeat="(key, value) in list.objects"><td ng-bind="value.partner_id"></td><td ng-bind="value.name"></td><td ng-bind="value.description"></td><!--<td>
+
+ <div class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.policy.perimeter.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapObj(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metarules.action.unmap">Unmap</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteObj(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.policy.perimeter.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>
+
+ <div ng-if="value.loader">
+
+ <moon-loader></moon-loader>
+
+ </div>
+
+ </td>
+ </tr>--></tr></tbody><tbody ng-if="!list.loadingObj && list.getObjects().length === 0"><tr><td data-translate="moon.policy.perimeter.object.notFound">There is no Objects</td><td></td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.perimeter.object.add.title">Add an Object Category</h4></div><div class="panel-body"><moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfObject"></moon-meta-data-edit></div></div><div class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.perimeter.action.title">List associated of Actions</h4></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped"><thead><tr><th data-translate="moon.policy.perimeter.table.partner.id">Id</th><th data-translate="moon.policy.perimeter.table.name">Name</th><th data-translate="moon.policy.perimeter.table.description">Description</th><!--<th data-translate="moon.policy.perimeter.table.action.title"></th>--></tr></thead><moon-loader ng-if="list.loadingAct"></moon-loader><tbody ng-if="!list.loadingAct && list.getActions().length > 0"><tr ng-repeat="(key, value) in list.actions"><td ng-bind="value.partner_id"></td><td ng-bind="value.name"></td><td ng-bind="value.description"></td><!--<td>
+
+ <div class="dropdown">
+
+ <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
+ <span data-translate="moon.policy.perimeter.table.action.title">Actions</span>
+ <span class="caret"></span>
+ </button>
+
+ <ul class="dropdown-menu">
+
+ <li>
+ <a href="" ng-click="list.unMapAct(value)" >
+ <span class="glyphicon glyphicon-transfer"></span>
+ <span class="control-label" data-translate="moon.model.metarules.action.unmap">Unmap</span>
+ </a>
+ </li>
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="" ng-click="list.deleteAct(value)">
+ <span class="glyphicon glyphicon-trash"></span>
+ <span class="control-label" data-translate="moon.policy.perimeter.table.action.delete">Delete</span>
+ </a>
+ </li>
+
+ </ul>
+
+ </div>
+
+ <div ng-if="value.loader">
+
+ <moon-loader></moon-loader>
+
+ </div>
+
+ </td>
+ </tr>--></tr></tbody><tbody ng-if="!list.loadingAct && list.getActions().length === 0"><tr><td data-translate="moon.policy.perimeter.action.notFound">There is no Actions</td><td></td><td></td><td></td></tr></tbody></table></div></div></div><div ng-if="list.editMode" class="panel panel-default"><div class="panel-heading"><h4 data-translate="moon.policy.perimeter.action.add.title">Add an Action Category</h4></div><div class="panel-body">.<moon-meta-data-edit meta-rule="list.metaRule" meta-data-type="list.typeOfAction"></moon-meta-data-edit></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/edit/parameter/rules/rules-list.tpl.html b/moonv4/moon_gui/delivery/html/policy/edit/parameter/rules/rules-list.tpl.html
new file mode 100644
index 00000000..b4f8da0a
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/edit/parameter/rules/rules-list.tpl.html
@@ -0,0 +1 @@
+<div><div class="row"><div class="table-responsive" data-role="table"><table class="table table-striped table-hover" ng-table="list.table"><thead><tr><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('name', 'asc'), 'sort-desc': list.table.isSortBy('name', 'desc') }" ng-click="list.table.sorting('name', list.table.isSortBy('name', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.rules.list.table.id">Id</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('description', 'asc'), 'sort-desc': list.table.isSortBy('description', 'desc') }" ng-click="list.table.sorting('description', list.table.isSortBy('description', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.rules.list.table.metaRule">Meta Rule</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('enabled', 'asc'), 'sort-desc': list.table.isSortBy('enabled', 'desc') }" ng-click="list.table.sorting('enabled', list.table.isSortBy('enabled', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.rules.list.table.enabled">Enabled</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('enabled', 'asc'), 'sort-desc': list.table.isSortBy('enabled', 'desc') }" ng-click="list.table.sorting('enabled', list.table.isSortBy('enabled', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.rules.list.table.rule">Rule</div></th></tr></thead><moon-loader ng-if="list.loadingRules"></moon-loader><tbody ng-if="!list.loadingRules && !list.hasRules()"><tr><td colspan="2"><span data-translate="moon.policy.rules.list.table.notFound">There is no Rules</span></td></tr></tbody><tbody ng-if="!list.loadingRules && list.hasRules()"><tr ng-repeat="aRule in $data | filter:list.search.find | orderBy:sort:reverse"><td ng-bind="aRule.id"></td><td><span ng-if="!list.getMetaRuleFromRule(aRule)"><moon-loader ng-if="!list.getMetaRuleFromRule(aRule)"></moon-loader><em data-translate="moon.policy.rules.list.table.loading.metaRule">Loading </em></span><span ng-if="list.getMetaRuleFromRule(aRule)"><span ng-bind="aRule.meta_rule.name"></span></span></td><td><span ng-if="aRule.enabled" class="glyphicon glyphicon-ok"></span> <span ng-if="!aRule.enabled" class="glyphicon glyphicon-remove"></span></td><td><span ng-if="!list.getMetaRuleFromRule(aRule)"><moon-loader ng-if="!list.getMetaRuleFromRule(aRule)"></moon-loader><em data-translate="moon.policy.rules.list.table.loading.metaRule">Loading </em></span><span ng-if="list.getMetaRuleFromRule(aRule)" ng-repeat="(key, value) in aRule.rule"><span ng-if="!list.getCategoryFromRuleIndex(key, aRule)"><moon-loader ng-if="!list.getCategoryFromRuleIndex(key, aRule)"></moon-loader></span><span ng-if="list.getCategoryFromRuleIndex(key, aRule)"><span ng-if="aRule.rule_value[key].category.name" ng-bind="aRule.rule_value[key].category.name"></span> <span ng-if="aRule.rule_value[key].category.value.name" ng-bind="aRule.rule_value[key].category.value.name"></span> <span ng-if="key < aRule.rule.length-1">,</span></span></span></td></tr></tbody></table></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/edit/policy-edit-basic.tpl.html b/moonv4/moon_gui/delivery/html/policy/edit/policy-edit-basic.tpl.html
new file mode 100644
index 00000000..23f760d4
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/edit/policy-edit-basic.tpl.html
@@ -0,0 +1 @@
+<div class="row"><form class="form-horizontal" role="form" name="edit.form"><div class="form-group"><label for="id" class="col-sm-3 control-label" data-translate="moon.policy.edit.basic.form.id">Id</label><div class="col-sm-6"><input name="id" id="id" disabled="disabled" class="form-control" type="text" data-ng-model="edit.policyToEdit.id" required></div></div><div class="form-group" ng-class="{'has-error': edit.form.name.$invalid && edit.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.policy.edit.basic.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="edit.policyToEdit.name" required><div class="help-block" ng-show="edit.form.name.$dirty && edit.form.name.$invalid"><small class="error" ng-show="edit.form.name.$error.required" data-translate="moon.policy.edit.basic.check.name.required">Name is required</small></div></div></div><div class="form-group" ng-class="{'has-error': edit.form.model.$dirty && (edit.form.model.$invalid || !edit.selectedModel)}"><label class="col-sm-3 control-label" data-translate="moon.policy.edit.basic.form.model">Models</label><div class="col-sm-6"><ui-select ng-model="edit.selectedModel" name="model" required><ui-select-match placeholder="(None)">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="model in edit.models"><div ng-value="model">{{model.name}}</div></ui-select-choices></ui-select><moon-loader ng-if="edit.modelsLoading"></moon-loader><div class="help-block" ng-show="edit.form.model.$dirty && (edit.form.model.$invalid || !edit.selectedModel)"><small class="error" ng-show="edit.form.model.$error.required" data-translate="moon.policy.edit.basic.check.model.required">Model is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.policy.edit.basic.form.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="edit.policyToEdit.description"></textarea></div></div><div class="form-group"><div class="col-sm-2 col-sm-offset-3"><a href="" ng-disabled="edit.loading" ng-click="edit.init()" class="btn btn-default"><span data-translate="moon.policy.edit.basic.action.init">Init</span></a></div><div class="col-sm-4 col-sm-offset-2"><a href="" ng-disabled="edit.loading" ng-click="edit.editPolicy()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.policy.edit.basic.action.update">Update</span></a><moon-loader ng-if="edit.loading"></moon-loader></div></div></form></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/edit/policy-edit.tpl.html b/moonv4/moon_gui/delivery/html/policy/edit/policy-edit.tpl.html
new file mode 100644
index 00000000..38b308b0
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/edit/policy-edit.tpl.html
@@ -0,0 +1,13 @@
+<div class="container"><div class="row"><h3 class="pull-left" data-translate="moon.policy.edit.title" data-translate-values="{ policyName: edit.policy.name }">Edit</h3></div><div class="panel panel-default"><div class="panel-heading"><span data-translate="moon.policy.edit.basic.title">Basic Information</span> <a href="" ng-click="edit.editBasic = !edit.editBasic"><span data-translate="moon.policy.edit.update">Update</span> <span class="glyphicon glyphicon-cog"></span></a></div><div class="panel-body"><div ng-if="edit.editBasic"><moon-policy-edit-basic policy="edit.policy"></moon-policy-edit-basic></div><div ng-if="!edit.editBasic"><dl class="dl-horizontal"><dt data-translate="moon.policy.edit.basic.form.id">Id</dt><dd ng-bind="edit.policy.id"></dd><dt data-translate="moon.policy.edit.basic.form.name">Name</dt><dd ng-bind="edit.policy.name"></dd><dt data-translate="moon.policy.edit.basic.form.genre">Genre</dt><dd ng-bind="edit.policy.genre"></dd><dt data-translate="moon.policy.edit.basic.form.model">Model</dt><dd><span ng-if="edit.loadingModel"><moon-loader ng-if="edit.loadingModel"></moon-loader></span><span ng-if="!edit.loadingModel"><span ng-bind="edit.policy.model.name"></span></span></dd><dt data-translate="moon.policy.edit.basic.form.description">Description</dt><dd ng-bind="edit.policy.description"></dd></dl></div></div></div><div class="panel panel-default"><div class="panel-heading"><span data-translate="moon.policy.edit.perimeter.title">Perimeters</span> <a href="" ng-click="edit.showPerimeters = !edit.showPerimeters"><span ng-if="!edit.showPerimeters"><span data-translate="moon.policy.edit.show.open">Show</span> <span class="glyphicon glyphicon-eye-open"></span> </span><span ng-if="edit.showPerimeters"><span data-translate="moon.policy.edit.show.close">Show</span> <span class="glyphicon glyphicon-eye-close"></span> </span></a><!--<a href="" ng-if="edit.showPerimeters">
+ <span data-translate="moon.policy.edit.update">Update</span>
+ <span class="glyphicon glyphicon-cog"></span>
+ </a>--></div><div class="panel-body" ng-if="edit.showPerimeters"><moon-perimeter-list edit-mode="false" policy="edit.policy"></moon-perimeter-list></div></div><div class="panel panel-default"><div class="panel-heading"><span data-translate="moon.policy.edit.data.title">Data</span> <a href="" ng-click="edit.showData = !edit.showData"><span ng-if="!edit.showData"><span data-translate="moon.policy.edit.show.open">Show</span> <span class="glyphicon glyphicon-eye-open"></span> </span><span ng-if="edit.showData"><span data-translate="moon.policy.edit.show.close">Show</span> <span class="glyphicon glyphicon-eye-close"></span> </span></a><!--<a href="" ng-if="edit.showData">
+ <span data-translate="moon.policy.edit.update">Update</span>
+ <span class="glyphicon glyphicon-cog"></span>
+ </a>--></div><div class="panel-body" ng-if="edit.showData"><moon-data-list edit-mode="false" policy="edit.policy"></moon-data-list></div></div><div class="panel panel-default"><div class="panel-heading"><span data-translate="moon.policy.edit.rules.title">Rules</span> <a href="" ng-click="edit.showRules = !edit.showRules"><span ng-if="!edit.showRules"><span data-translate="moon.policy.edit.show.open">Show</span> <span class="glyphicon glyphicon-eye-open"></span> </span><span ng-if="edit.showRules"><span data-showrules="moon.policy.edit.show.close">Close</span> <span class="glyphicon glyphicon-eye-close"></span> </span></a><!--<a href="" ng-if="edit.showRules">
+ <span data-translate="moon.policy.edit.update">Update</span>
+ <span class="glyphicon glyphicon-cog"></span>
+ </a>--></div><div class="panel-body" ng-if="edit.showRules"><moon-rules-list edit-mode="false" policy="edit.policy"></moon-rules-list></div></div><div class="panel panel-default"><div class="panel-heading"><span data-translate="moon.policy.edit.assignments.title">Assignments</span> <a href="" ng-click="edit.showAssignments = !edit.showAssignments"><span ng-if="!edit.showAssignments"><span data-translate="moon.policy.edit.show.open">Show</span> <span class="glyphicon glyphicon-eye-open"></span> </span><span ng-if="edit.showAssignments"><span data-showrules="moon.policy.edit.show.close">Close</span> <span class="glyphicon glyphicon-eye-close"></span> </span></a><!--<a href="" ng-if="edit.showRules">
+ <span data-translate="moon.policy.edit.update">Update</span>
+ <span class="glyphicon glyphicon-cog"></span>
+ </a>--></div><div class="panel-body" ng-if="edit.showAssignments"><moon-assignments-list edit-mode="false" policy="edit.policy"></moon-assignments-list></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/policy-list.tpl.html b/moonv4/moon_gui/delivery/html/policy/policy-list.tpl.html
new file mode 100644
index 00000000..2e8a981c
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/policy-list.tpl.html
@@ -0,0 +1 @@
+<div class="container"><div><form class="form-inline pull-right"><div class="form-group"><div><input id="searcPolicy" data-ng-model="list.search.query" type="text" class="form-control" placeholder="{{'moon.policy.list.search.placeholder' | translate}}"></div></div><div class="form-group"><div><button type="submit" class="btn btn-danger" data-ng-click="list.search.reset()" data-translate="moon.policy.list.search.reset">Reset</button></div></div></form></div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div class="row"><div class="table-responsive" data-role="table"><table class="table table-striped table-hover" ng-table="list.table"><colgroup><col class="col-md-4"><col class="col-md-2"><col class="col-md-2"><col class="col-md-1"></colgroup><thead><tr><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('name', 'asc'), 'sort-desc': list.table.isSortBy('name', 'desc') }" ng-click="list.table.sorting('name', list.table.isSortBy('name', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.list.table.name">Name</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('genre', 'asc'), 'sort-desc': list.table.isSortBy('genre', 'desc') }" ng-click="list.table.sorting('genre', list.table.isSortBy('genre', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.list.table.genre">Genre</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('description', 'asc'), 'sort-desc': list.table.isSortBy('description', 'desc') }" ng-click="list.table.sorting('description', list.table.isSortBy('description', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.list.table.description">Description</div></th><th class="customTables sortable"><div data-translate="moon.policy.list.action.title">Actions</div></th></tr></thead><tbody ng-if="!list.hasPolicies()"><tr><td colspan="12"><span data-translate="moon.policy.list.table.notFound">There is no policy</span></td></tr></tbody><tbody ng-if="list.hasPolicies()"><tr ng-repeat="policy in $data | filter:list.search.find | orderBy:sort:reverse"><td ng-bind="policy.name"></td><td ng-bind="policy.genre"></td><td ng-bind="policy.description"></td><td><div class="dropdown"><button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"><span data-translate="moon.policy.list.action.title">Actions</span> <span class="caret"></span></button><ul class="dropdown-menu"><li><a href="" ui-sref="moon.policy.edit({id: policy.id})"><span class="glyphicon glyphicon-cog"></span> <span class="control-label" data-translate="moon.policy.list.action.edit">Edit</span></a></li><li class="divider"></li><li><a href="" ng-click="list.del.showModal(policy)"><span class="glyphicon glyphicon-trash"></span> <span class="control-label" data-translate="moon.policy.list.action.delete">Delete</span></a></li></ul></div></td></tr></tbody></table></div><div class="container"><div class="form-inline form-group"><a href="" ng-click="list.add.showModal()" class="btn btn-default"><span class="glyphicon glyphicon-plus-sign"></span> <span data-translate="moon.policy.list.action.add">Add Model</span></a></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/policy/policy-mapped-list.tpl.html b/moonv4/moon_gui/delivery/html/policy/policy-mapped-list.tpl.html
new file mode 100644
index 00000000..2e18a1b5
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/policy/policy-mapped-list.tpl.html
@@ -0,0 +1 @@
+<div class="container"><div class="row" ng-if="list.loadingPolicies"><moon-loader ng-if="list.loadingPolicies"></moon-loader></div><div class="row" ng-if="!list.loadingPolicies"><div class="table-responsive" data-role="table"><table class="table table-striped table-hover" ng-table="list.table"><colgroup><col class="col-md-4"><col class="col-md-2"><col class="col-md-2"><col class="col-md-1"></colgroup><thead><tr><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('name', 'asc'), 'sort-desc': list.table.isSortBy('name', 'desc') }" ng-click="list.table.sorting('name', list.table.isSortBy('name', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.list.table.name">Name</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('genre', 'asc'), 'sort-desc': list.table.isSortBy('genre', 'desc') }" ng-click="list.table.sorting('genre', list.table.isSortBy('genre', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.list.table.genre">Genre</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('description', 'asc'), 'sort-desc': list.table.isSortBy('description', 'desc') }" ng-click="list.table.sorting('description', list.table.isSortBy('description', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.policy.list.table.description">Description</div></th><th class="customTables sortable"><div data-translate="moon.policy.list.action.title">Actions</div></th></tr></thead><tbody ng-if="!list.hasPolicies()"><tr><td colspan="12"><span data-translate="moon.policy.list.table.notFound">There is no policy</span></td></tr></tbody><tbody ng-if="list.hasPolicies()"><tr ng-repeat="policy in $data | filter:list.search.find | orderBy:sort:reverse"><td ng-bind="policy.name"></td><td ng-bind="policy.genre"></td><td ng-bind="policy.description"></td><td><a href="" ng-click="list.unmap.showModal(policy)"><span class="glyphicon glyphicon-transfer"></span> <em data-translate="moon.policy.list.action.unmap">Unmap</em></a></td></tr></tbody></table></div><div class="container"><div class="form-inline form-group"><a href="" ng-click="list.map.showModal()" class="btn btn-default"><span class="glyphicon glyphicon-link"></span> <em data-translate="moon.policy.list.action.map">Map a Policy to PDP</em></a></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/project/action/mapping/project-map.tpl.html b/moonv4/moon_gui/delivery/html/project/action/mapping/project-map.tpl.html
new file mode 100644
index 00000000..dd47853f
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/project/action/mapping/project-map.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="ProjectMapController as map" class="modal" tabindex="-1" data-role="modalMappingProject"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.project.map.title" data-translate-values="{projectName: map.project.name}"></h4></div><div class="modal-body"><form class="form-horizontal" role="form" name="map.form"><div class="form-group" ng-class="{'has-error': map.form.pdp.$dirty && (map.form.pdp.$invalid || !map.selectedPDP)}"><label class="col-sm-3 control-label" data-translate="moon.project.map.form.pdp">PDP</label><div class="col-sm-6"><ui-select ng-model="map.selectedPDP" name="pdp" required><ui-select-match placeholder="(None)" ng-bind="$select.selected.name"></ui-select-match><ui-select-choices repeat="pdp in map.pdps"><div ng-bind="pdp.name" ng-value="pdp"></div></ui-select-choices></ui-select><img ng-if="map.pdpsLoading" src="assets/img/ajax-loader.gif"><div class="help-block" ng-show="map.form.pdp.$dirty && (map.form.pdp.$invalid || !map.selectedPDP)"><small class="error" ng-show="map.form.pdp.$error.required" data-translate="moon.project.map.check.pdp.required">PDP is required</small></div></div></div></form></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.project.map.action.cancel">Cancel</span> </a><a href="" ng-disabled="map.mappingLoading" ng-click="map.map()" class="btn btn-warning"><span class="glyphicon glyphicon-link"></span> <span data-translate="moon.project.map.action.map">Map</span> </a><img ng-if="map.mappingLoading" src="assets/img/ajax-loader.gif"></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/project/action/mapping/project-unmap.tpl.html b/moonv4/moon_gui/delivery/html/project/action/mapping/project-unmap.tpl.html
new file mode 100644
index 00000000..bde6982e
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/project/action/mapping/project-unmap.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="ProjectUnMapController as unmap" class="modal" tabindex="-1" data-role="modalUnmapProject"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.project.unmap.title"></h4></div><div class="modal-body"><span data-translate="moon.project.unmap.content" data-translate-values="{ projectName: unmap.project.name, pdpName: unmap.project.mapping.authz.pdp.name }"></span></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.project.unmap.action.cancel">Cancel</span> </a><a href="" ng-disabled="unmap.unMappingLoading" ng-click="unmap.unmap()" class="btn btn-warning"><span class="glyphicon glyphicon-transfer"></span> <span data-translate="moon.project.unmap.action.unmap">Unmap</span> </a><img ng-if="unmap.unMappingLoading" src="assets/img/ajax-loader.gif"></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/project/action/project-add.tpl.html b/moonv4/moon_gui/delivery/html/project/action/project-add.tpl.html
new file mode 100644
index 00000000..612aa9b5
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/project/action/project-add.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="ProjectAddController as add" class="modal" tabindex="-1" data-role="modalAddProject"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.project.add.title"></h4></div><div class="modal-body"><form class="form-horizontal" role="form" name="add.form"><div class="form-group" ng-class="{'has-error': add.form.name.$invalid && add.form.name.$dirty}"><label for="name" class="col-sm-3 control-label" data-translate="moon.project.add.form.name">Name</label><div class="col-sm-6"><input name="name" id="name" class="form-control" type="text" data-ng-model="add.project.project.name" required><div class="help-block" ng-show="add.form.name.$dirty && add.form.name.$invalid"><small class="error" ng-show="add.form.name.$error.required" data-translate="moon.project.add.check.name.required">Name is required</small></div></div></div><div class="form-group"><label for="description" class="col-sm-3 control-label" data-translate="moon.project.add.form.description">Description</label><div class="col-sm-6"><textarea id="description" name="description" class="form-control" data-ng-model="add.project.project.description"></textarea></div></div><div class="form-group"><label for="enabled" class="col-sm-3 control-label" data-translate="moon.project.add.form.enabled">Enabled</label><div class="col-sm-6"><div class="radio"><input type="checkbox" id="enabled" name="enabled" class="js-switch" data-ng-model="add.project.project.enabled" ui-switch></div></div></div><div class="form-group" ng-class="{'has-error': add.form.domain.$invalid && add.form.domain.$dirty}"><label for="domain" class="col-sm-3 control-label" data-translate="moon.project.add.form.domain">Domain</label><div class="col-sm-6"><input name="domain" id="domain" type="text" class="form-control" data-ng-model="add.project.project.domain" required><div class="help-block" ng-show="add.form.domain.$dirty && add.form.domain.$invalid"><small class="error" ng-show="add.form.domain.$error.required" data-translate="moon.project.add.check.domain.required">Domain is required</small></div></div></div></form></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.project.add.action.cancel">Cancel</span> </a><a href="" ng-disabled="add.loading" ng-click="add.create()" class="btn btn-warning"><span class="glyphicon glyphicon-save"></span> <span data-translate="moon.project.add.action.create">Create</span> </a><img ng-if="add.loading" src="assets/img/ajax-loader.gif"></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/project/action/project-delete.tpl.html b/moonv4/moon_gui/delivery/html/project/action/project-delete.tpl.html
new file mode 100644
index 00000000..a3a2d3e4
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/project/action/project-delete.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="ProjectDeleteController as del" class="modal" tabindex="-1" data-role="modalDeleteProject"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.project.remove.title"></h4></div><div class="modal-body"><p><span data-translate="moon.project.remove.content.query" data-translate-values="{ projectName: del.project.name }"></span></p><p ng-if="del.loadingPDP"><img src="assets/img/ajax-loader.gif"></p><div ng-if="!del.loadingPDP"><p ng-if="!del.isProjectMapped()"><span data-translate="moon.project.remove.content.isNotMapped">This Project is not map with any PDP</span></p><p ng-if="del.isProjectMapped()"><span data-translate="moon.project.remove.content.isMapped" data-translate-values="{ pdpName: del.project.pdp.name }"></span></p></div></div><div class="modal-footer"><div class="btn-toolbar" style="float: right"><a href="" ng-click="$hide()" class="btn btn-default"><span data-translate="moon.project.remove.action.cancel">Cancel</span> </a><a href="" ng-disabled="del.loading || del.loadingPDP" ng-click="del.remove()" class="btn btn-warning"><span class="glyphicon glyphicon-trash"></span> <span data-translate="moon.project.remove.action.delete">Delete</span> </a><img ng-if="del.loading" src="assets/img/ajax-loader.gif"></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/project/action/project-view.tpl.html b/moonv4/moon_gui/delivery/html/project/action/project-view.tpl.html
new file mode 100644
index 00000000..b2bd975b
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/project/action/project-view.tpl.html
@@ -0,0 +1 @@
+<div ng-controller="ProjectViewController as view" class="modal" tabindex="-1" data-role="modalViewProject"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" ng-click="$hide()">&times;</button><h4 class="modal-title" data-translate="moon.project.view.title" data-translate-values="{projectName: view.project.name}"></h4></div><div class="modal-body"><dl class="dl-horizontal"><dt>Id</dt><dd ng-bind="view.project.id"></dd><dt>Name</dt><dd ng-bind="view.project.name"></dd><dt>Is_domain</dt><dd ng-bind="view.project.is_domain"></dd><dt>Link</dt><dd ng-bind="view.project.links.self"></dd><dt>enabled</dt><dd ng-bind="view.project.enabled"></dd><dt>Parent id</dt><dd ng-bind="view.project.parent_id"></dd><dt>Domain id</dt><dd ng-bind="view.project.domain_id"></dd><dt>Description</dt><dd ng-bind="view.project.description"></dd></dl></div><!--<div class="modal-body">--><!----><!--&lt;!&ndash; objects &ndash;&gt;--><!----><!--<div class="row">--><!--<div class="col-md-12">--><!--<h1 class="pull-left" data-translate="moon.project.view.object.title">Objects</h1>--><!--</div>--><!--</div>--><!----><!--<div class="row top05">--><!--<div class="col-md-3"><label data-translate="moon.project.view.object.name">Name</label></div>--><!--<div class="col-md-7"><label data-translate="moon.project.view.object.description">Description</label></div>--><!--<div class="col-md-2"><label data-translate="moon.project.view.object.enabled">Enabled</label></div>--><!--</div>--><!----><!--<div class="row" ng-if="view.objectsLoading">--><!--<div class="col-md-12"><img src="assets/img/ajax-loader.gif" /> <em data-translate="moon.project.view.object.loading">Loading Objects</em></div>--><!--</div>--><!----><!--<div class="row" ng-if="!view.objectsLoading && !view.hasObjects()">--><!--<div class="col-md-12" data-translate="moon.project.view.object.notFound">Objects not found</div>--><!--</div>--><!----><!--<div class="row" ng-if="!view.objectsLoading && view.hasObjects()" ng-repeat="object in view.objects">--><!--<div class="col-md-3">{{object.name}}</div> --><!--<div class="col-md-7">{{object.description}}</div>--><!--<div class="col-md-2">--><!--<span ng-if="object.enabled" class="glyphicon glyphicon-ok"></span>--><!--</div>--><!--</div>--><!----><!--&lt;!&ndash; subjects &ndash;&gt;--><!----><!--<div class="row top10">--><!--<div class="col-md-12">--><!--<h1 class="pull-left" data-translate="moon.project.view.subject.title">Subjects</h1>--><!--</div>--><!--</div>--><!----><!--<div class="row top05">--><!--<div class="col-md-3"><label data-translate="moon.project.view.subject.name">Name</label></div>--><!--<div class="col-md-3"><label data-translate="moon.project.view.subject.domain">Domain</label></div>--><!--<div class="col-md-4"><label data-translate="moon.project.view.subject.mail">Mail</label></div>--><!--<div class="col-md-2"><label data-translate="moon.project.view.subject.enabled">Enabled</label></div>--><!--</div>--><!----><!--<div class="row">--><!--<div class="col-md-3">--><!--<ui-select ng-model="view.selectedSubject" on-select="view.resolveRoles($item); view.resolveGroups($item)">--><!--<ui-select-match placeholder="(None)">{{$select.selected.name}}</ui-select-match>--><!--<ui-select-choices repeat="subject in view.subjects">--><!--<div ng-value="subject">{{subject.name}}</div>--><!--</ui-select-choices>--><!--</ui-select>--><!--<img ng-if="view.subjectsLoading" src="assets/img/ajax-loader.gif" />--><!--</div> --><!--<div class="col-md-3">{{view.selectedSubject.domain}}</div>--><!--<div class="col-md-4">{{view.selectedSubject.mail}}</div>--><!--<div class="col-md-2">--><!--<div ng-if="view.selectedSubject != null">--><!--<span ng-if="view.selectedSubject.enabled" class="glyphicon glyphicon-ok"></span>--><!--</div>--><!--</div>--><!--</div>--><!----><!--&lt;!&ndash; roles &ndash;&gt;--><!----><!--<div ng-if="view.hasSelectedSubject()">--><!----><!--<div class="row top10">--><!--<div class="col-md-12">--><!--<h1 class="pull-left" data-translate="moon.project.view.role.title">Roles</h1>--><!--</div>--><!--</div>--><!----><!--<div class="row top05">--><!----><!--<div class="col-md-3"><label data-translate="moon.project.view.role.value">Value</label></div>--><!--<div class="col-md-5"><label data-translate="moon.project.view.role.description">Description</label></div>--><!--<div class="col-md-2"><label data-translate="moon.project.view.role.assigned">Assigned</label></div>--><!--<div class="col-md-2"><label data-translate="moon.project.view.role.enabled">Enabled</label></div>--><!----><!--</div>--><!----><!--<div class="row" ng-if="view.rolesLoading">--><!--<div class="col-md-12"><img src="assets/img/ajax-loader.gif" /> <em data-translate="moon.project.view.role.loading">Loading Roles</em></div>--><!--</div>--><!----><!--<div class="row" ng-if="!view.rolesLoading && !view.hasRoles()">--><!--<div class="col-md-12" data-translate="moon.project.view.role.notFound">Roles not found</div>--><!--</div>--><!----><!--<div class="row" ng-if="!view.rolesLoading && view.hasRoles()" ng-repeat="role in view.roles">--><!----><!--<div class="col-md-3" ng-bind="role.value"></div>--><!--<div class="col-md-5" ng-bind="role.description"></div>--><!--<div class="col-md-2">--><!--<span ng-if="view.isRoleAssigned(role)" class="glyphicon glyphicon-ok"></span>--><!--</div>--><!--<div class="col-md-2">--><!--<span ng-if="role.enabled" class="glyphicon glyphicon-ok"></span>--><!--</div>--><!----><!--</div>--><!----><!--</div>--><!----><!--&lt;!&ndash; groups &ndash;&gt;--><!----><!--<div ng-if="view.hasSelectedSubject()">--><!----><!--<div class="row top10">--><!--<div class="col-md-12">--><!--<h1 class="pull-left" data-translate="moon.project.view.group.title">Groups</h1>--><!--</div>--><!--</div>--><!----><!--<div class="row top05">--><!----><!--<div class="col-md-3"><label data-translate="moon.project.view.group.value">Value</label></div>--><!--<div class="col-md-5"><label data-translate="moon.project.view.group.description">Description</label></div>--><!--<div class="col-md-2"><label data-translate="moon.project.view.group.assigned">Assigned</label></div>--><!--<div class="col-md-2"><label data-translate="moon.project.view.group.enabled">Enabled</label></div>--><!----><!--</div>--><!----><!--<div class="row" ng-if="view.groupsLoading">--><!--<div class="col-md-12"><img src="assets/img/ajax-loader.gif" /> <em data-translate="moon.project.view.group.loading">Loading Groups</em></div>--><!--</div>--><!----><!--<div class="row" ng-if="!view.groupsLoading && !view.hasGroups()">--><!--<div class="col-md-12" data-translate="moon.project.view.group.notFound">Groups not found</div>--><!--</div>--><!----><!--<div class="row" ng-if="!view.groupsLoading && view.hasGroups()" ng-repeat="group in view.groups">--><!----><!--<div class="col-md-3">{{group.value}}</div>--><!--<div class="col-md-5">{{group.description}}</div>--><!--<div class="col-md-2">--><!--<span ng-if="view.isGroupAssigned(group)" class="glyphicon glyphicon-ok"></span>--><!--</div>--><!--<div class="col-md-2">--><!--<span ng-if="group.enabled" class="glyphicon glyphicon-ok"></span>--><!--</div>--><!----><!--</div>--><!----><!--</div>--><!----><!--</div>--><!----><div class="modal-footer top10"><div class="btn-toolbar" style="float: right"><button ng-click="$hide()" class="btn btn-default" data-translate="moon.project.view.action.close">Close</button></div></div></div></div></div> \ No newline at end of file
diff --git a/moonv4/moon_gui/delivery/html/project/project-list.tpl.html b/moonv4/moon_gui/delivery/html/project/project-list.tpl.html
new file mode 100644
index 00000000..d0ab8886
--- /dev/null
+++ b/moonv4/moon_gui/delivery/html/project/project-list.tpl.html
@@ -0,0 +1 @@
+<div class="container"><div><form class="form-inline pull-right"><div class="form-group"><div><input id="searchProject" data-ng-model="list.search.query" type="text" class="form-control" placeholder="{{'moon.project.list.search.placeholder' | translate}}"></div></div><div class="form-group"><div><button type="submit" class="btn btn-danger" data-ng-click="list.search.reset()" data-translate="moon.project.list.search.reset">Reset</button></div></div></form></div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div class="row"><div class="table-responsive" data-role="table"><table class="table table-striped table-hover" ng-table="list.table"><colgroup><col class="col-md-2"><col class="col-md-2"><col class="col-md-1"><col class="col-md-1"><col class="col-md-2"><col class="col-md-1"></colgroup><thead><tr><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('name', 'asc'), 'sort-desc': list.table.isSortBy('name', 'desc') }" ng-click="list.table.sorting('name', list.table.isSortBy('name', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.project.list.table.name">Name</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('domain', 'asc'), 'sort-desc': list.table.isSortBy('domain', 'desc') }" ng-click="list.table.sorting('domain', list.table.isSortBy('domain', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.project.list.table.domain">Domain</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('enabled', 'asc'), 'sort-desc': list.table.isSortBy('enabled', 'desc') }" ng-click="list.table.sorting('enabled', list.table.isSortBy('enabled', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.project.list.table.enabled">Enabled</div></th><th class="customTables sortable" ng-class="{ 'sort-asc': list.table.isSortBy('description', 'asc'), 'sort-desc': list.table.isSortBy('description', 'desc') }" ng-click="list.table.sorting('description', list.table.isSortBy('description', 'asc') ? 'desc' : 'asc')"><div data-translate="moon.project.list.table.description">Description</div></th><th class="customTables"><div data-translate="moon.project.list.table.mapping">Mapping</div></th><th class="customTables"><div data-translate="moon.project.list.action.title">Actions</div></th></tr></thead><tbody ng-if="!list.hasProjects()"><tr><td colspan="2"><span data-translate="moon.project.list.table.notFound">There is no Projects</span></td></tr></tbody><tbody ng-if="list.hasProjects()"><tr ng-repeat="aProject in $data | filter:list.search.find | orderBy:sort:reverse"><td ng-bind="aProject.name"></td><td ng-bind="aProject.domain_id"></td><td><span ng-if="aProject.enabled" class="glyphicon glyphicon-ok"></span></td><td ng-bind="aProject.description"></td><td><div ng-if="list.loadingPDPs"><img src="assets/img/ajax-loader.gif"> <em data-translate="moon.project.list.table.loading.pdp">Loading PDP</em></div><div ng-if="!list.loadingPDPs"><a href="" ng-if="!list.isProjectMapped(aProject)" ng-click="list.map.showModal(aProject)"><span class="glyphicon glyphicon-link"></span> <em data-translate="moon.project.list.action.map">Map to a PDP</em></a><div ng-if="list.isProjectMapped(aProject)"><span ng-bind="list.getMappedPDPName(aProject)"></span> (<a href="" ng-click="list.unmap.showModal(aProject)"> <span class="glyphicon glyphicon-transfer"></span> <em data-translate="moon.project.list.action.unmap">Unmap to a PDP</em> </a>)</div></div></td><td><div class="dropdown"><button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"><span data-translate="moon.project.list.action.title">Actions</span> <span class="caret"></span></button><ul class="dropdown-menu"><li><a href="" ng-click="list.view.showModal(aProject)"><span class="glyphicon glyphicon-eye-open"></span> <span class="control-label" data-translate="moon.project.list.action.detail">Detail</span></a></li><li><a href="" ng-click="list.del.showModal(aProject)"><span class="glyphicon glyphicon-trash"></span> <span class="control-label" data-translate="moon.project.list.action.delete">Delete</span></a></li></ul></div></td></tr></tbody></table></div><div class="container"><div class="form-inline form-group"><a href="" ng-click="list.add.showModal()" class="btn btn-default"><span class="glyphicon glyphicon-plus-sign"></span> <span data-translate="moon.project.list.action.add">Add Project</span></a></div></div></div></div> \ No newline at end of file