aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'account/resources.ftl')
-rw-r--r--account/resources.ftl399
1 files changed, 399 insertions, 0 deletions
diff --git a/account/resources.ftl b/account/resources.ftl
new file mode 100644
index 0000000..011e181
--- /dev/null
+++ b/account/resources.ftl
@@ -0,0 +1,399 @@
+<#import "template.ftl" as layout>
+<@layout.mainLayout active='authorization' bodyClass='authorization'; section>
+ <style>
+ .search-box,.close-icon,.search-wrapper {
+ position: relative;
+ }
+ .search-wrapper {
+ width: 500px;
+ margin: auto;
+ margin-top: 50px;
+ }
+ .search-box {
+ font-weight: 600;
+ color: white;
+ border: 1px solid #006e9c;
+ outline: 0;
+ border-radius: 15px;
+ background-color: #0085cf;
+ padding: 2px 5px;
+ }
+ .search-box:focus {
+ box-shadow: 0 0 15px 5px #b0e0ee;
+ border: 2px solid #bebede;
+ }
+ .close-icon {
+ border:1px solid transparent;
+ background-color: transparent;
+ display: inline-block;
+ float: right;
+ outline: 0;
+ cursor: pointer;
+ }
+ .close-icon:after {
+ display: block;
+ width: 15px;
+ height: 15px;
+ background-color: #FA9595;
+ z-index:1;
+ right: 35px;
+ top: 0;
+ bottom: 0;
+ margin: auto;
+ padding: 2px;
+ border-radius: 50%;
+ text-align: center;
+ color: white;
+ font-weight: normal;
+ font-size: 12px;
+ box-shadow: 0 0 2px #E50F0F;
+ cursor: pointer;
+ }
+ .search-box:not(:valid) ~ .close-icon {
+ display: none;
+ }
+ </style>
+ <script>
+ function showHideActions(elm) {
+ if (elm.style.display == 'none') {
+ elm.style.display = '';
+ } else {
+ elm.style.display = 'none';
+ }
+ }
+ function removeScopeElm(elm) {
+ var td = elm.parentNode;
+ var tr = td.parentNode;
+ var tbody = tr.parentNode;
+
+ td.removeChild(elm);
+
+ var childCount = td.childNodes.length - 1;
+
+ for (i = 0; i < td.childNodes.length; i++) {
+ if (!td.childNodes[i].tagName || td.childNodes[i].tagName.toUpperCase() != 'DIV') {
+ td.removeChild(td.childNodes[i]);
+ childCount--;
+ }
+ }
+
+ if (childCount <= 0) {
+ tbody.removeChild(tr);
+ }
+ }
+
+ function removeAllScopes(id) {
+ var scopesElm = document.getElementsByName('removeScope-' + id);
+
+ for (i = 0; i < scopesElm.length; i++) {
+ var td = scopesElm[i].parentNode.parentNode;
+ var tr = td.parentNode;
+ var tbody = tr.parentNode;
+ tbody.removeChild(tr);
+ }
+ }
+
+ function selectAllCheckBoxes(formName, elm, name) {
+ var shares = document.forms[formName].getElementsByTagName('input');
+
+ for (i = 0; i < shares.length; i++) {
+ if (shares[i].name == name) {
+ shares[i].checked = elm.checked;
+ }
+ }
+ }
+ </script>
+ <div class="row">
+ <div class="col-md-10">
+ <h2>
+ ${msg("myResources")}
+ </h2>
+ </div>
+ </div>
+
+ <#if authorization.resourcesWaitingApproval?size != 0>
+ <div class="row">
+ <div class="col-md-12">
+ <h3>
+ ${msg("needMyApproval")}
+ </h3>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-12">
+ <table class="table table-striped table-bordered">
+ <thead>
+ <tr>
+ <th>${msg("resource")}</th>
+ <th>${msg("requestor")}</th>
+ <th>${msg("permissionRequestion")}</th>
+ <th>${msg("action")}</th>
+ </tr>
+ </thead>
+ <tbody>
+ <#list authorization.resourcesWaitingApproval as resource>
+ <#list resource.permissions as permission>
+ <form action="${url.getResourceGrant(resource.id)}" name="approveForm-${resource.id}-${permission.requester.username}" method="post">
+ <input type="hidden" name="action" value="grant">
+ <input type="hidden" name="requester" value="${permission.requester.username}">
+ <input type="hidden" id="stateChecker" name="stateChecker" value="${stateChecker}">
+ <tr>
+ <td>
+ <#if resource.displayName??>${resource.displayName}<#else>${resource.name}</#if>
+ </td>
+ <td>
+ <#if permission.requester.email??>${permission.requester.email}<#else>${permission.requester.username}</#if>
+ </td>
+ <td>
+ <#list permission.scopes as scope>
+ <#if scope.scope??>
+ <div class="search-box">
+ <#if scope.scope.displayName??>
+ ${scope.scope.displayName}
+ <#else>
+ ${scope.scope.name}
+ </#if>
+ <button class="close-icon" type="button" id="grant-remove-scope-${resource.name}-${permission.requester.username}-${scope.scope.name}" name="removeScope-${resource.id}-${permission.requester.username}" onclick="removeScopeElm(this.parentNode);document.forms['approveForm-${resource.id}-${permission.requester.username}']['action'].value = 'deny';document.forms['approveForm-${resource.id}-${permission.requester.username}'].submit();"><i class="fa fa-times" aria-hidden="true"></i></button>
+ <input type="hidden" name="permission_id" value="${scope.id}"/>
+ </div>
+ <#else>
+ ${msg("anyPermission")}
+ </#if>
+ </#list>
+ </td>
+ <td width="20%" align="middle" style="vertical-align: middle">
+ <a href="#" id="grant-${resource.name}-${permission.requester.username}" onclick="document.forms['approveForm-${resource.id}-${permission.requester.username}']['action'].value = 'grant';document.forms['approveForm-${resource.id}-${permission.requester.username}'].submit();" type="submit" class="btn btn-primary">${msg("doApprove")}</a>
+ <a href="#" id="deny-${resource.name}-${permission.requester.username}" onclick="removeAllScopes('${resource.id}-${permission.requester.username}');document.forms['approveForm-${resource.id}-${permission.requester.username}']['action'].value = 'deny';document.forms['approveForm-${resource.id}-${permission.requester.username}'].submit();" type="submit" class="btn btn-danger">${msg("doDeny")}</a>
+ </td>
+ </tr>
+ </form>
+ </#list>
+ </#list>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </#if>
+
+ <div class="row">
+ <div class="col-md-12">
+ <h3>
+ ${msg("myResourcesSub")}
+ </h3>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-12">
+ <table class="table table-striped table-bordered">
+ <thead>
+ <tr>
+ <th>${msg("resource")}</th>
+ <th>${msg("application")}</th>
+ <th>${msg("peopleSharingThisResource")}</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <#if authorization.resources?size != 0>
+ <#list authorization.resources as resource>
+ <tr>
+ <td>
+ <a id="detail-${resource.name}" href="${url.getResourceDetailUrl(resource.id)}">
+ <#if resource.displayName??>${resource.displayName}<#else>${resource.name}</#if>
+ </a>
+ </td>
+ <td>
+ <#if resource.resourceServer.baseUri??>
+ <a href="${resource.resourceServer.baseUri}">${resource.resourceServer.name}</a>
+ <#else>
+ ${resource.resourceServer.name}
+ </#if>
+ </td>
+ <td>
+ <#if resource.shares?size != 0>
+ <a href="${url.getResourceDetailUrl(resource.id)}">${resource.shares?size} <i class="fa fa-users"></i></a>
+ <#else>
+ ${msg("notBeingShared")}
+ </#if>
+ </td>
+ </tr>
+ </#list>
+ <#else>
+ <tr>
+ <td colspan="4">${msg("notHaveAnyResource")}</td>
+ </tr>
+ </#if>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
+ <div class="row">
+ <div class="col-md-12">
+ <h3>
+ ${msg("resourcesSharedWithMe")}
+ </h3>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-12">
+ <form action="${url.resourceUrl}" name="shareForm" method="post">
+ <input type="hidden" name="action" value="cancel"/>
+ <input type="hidden" id="stateChecker" name="stateChecker" value="${stateChecker}">
+ <table class="table table-striped table-bordered">
+ <thead>
+ <tr>
+ <th width="5%"><input type="checkbox" onclick="selectAllCheckBoxes('shareForm', this, 'resource_id');" <#if authorization.sharedResources?size == 0>disabled="true"</#if></td>
+ <th>${msg("resource")}</th>
+ <th>${msg("owner")}</th>
+ <th>${msg("application")}</th>
+ <th>${msg("permission")}</th>
+ <th>${msg("date")}</th>
+ </tr>
+ </thead>
+ <tbody>
+ <#if authorization.sharedResources?size != 0>
+ <#list authorization.sharedResources as resource>
+ <tr>
+ <td>
+ <input type="checkbox" name="resource_id" value="${resource.id}"/>
+ </td>
+ <td>
+ <#if resource.displayName??>${resource.displayName}<#else>${resource.name}</#if>
+ </td>
+ <td>
+ <#if resource.owner.email??>${resource.owner.email}<#else>${resource.owner.username}</#if>
+ </td>
+ <td>
+ <a href="${resource.resourceServer.baseUri}">${resource.resourceServer.name}</a>
+ </td>
+ <td>
+ <#if resource.permissions?size != 0>
+ <ul>
+ <#list resource.permissions as permission>
+ <#list permission.scopes as scope>
+ <#if scope.granted && scope.scope??>
+ <li>
+ <#if scope.scope.displayName??>
+ ${scope.scope.displayName}
+ <#else>
+ ${scope.scope.name}
+ </#if>
+ </li>
+ <#else>
+ ${msg("anyPermission")}
+ </#if>
+ </#list>
+ </#list>
+ </ul>
+ <#else>
+ Any action
+ </#if>
+ </td>
+ <td>
+ ${resource.permissions[0].grantedDate?datetime}
+ </td>
+ </tr>
+ </#list>
+ <#else>
+ <tr>
+ <td colspan="6">${msg("noResourcesSharedWithYou")}</td>
+ </tr>
+ </#if>
+ </tbody>
+ </table>
+ </form>
+ </div>
+ <#if authorization.sharedResources?size != 0>
+ <div class="col-md-12">
+ <a href="#" onclick="document.forms['shareForm'].submit();" type="submit" class="btn btn-danger">${msg("doRemoveSharing")}</a>
+ </div>
+ </#if>
+ </div>
+
+ <#if authorization.resourcesWaitingOthersApproval?size != 0>
+ <br/>
+ <div class="row">
+ <div class="col-md-12">
+ <h3>
+ ${msg("requestsWaitingApproval")}
+ </h3>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-md-12">
+ <i class="pficon pficon-info"></i> ${msg("havePermissionRequestsWaitingForApproval",authorization.resourcesWaitingOthersApproval?size)}
+ <a href="#" onclick="document.getElementById('waitingApproval').style.display=''">${msg("clickHereForDetails")}</a>
+ <div class="row">
+ <div class="col-md-12"></div>
+ </div>
+ <div class="row">
+ <div class="col-md-12"></div>
+ </div>
+ <div class="row">
+ <div class="col-md-12"></div>
+ </div>
+ <div class="row" id="waitingApproval" style="display:none">
+ <div class="col-md-12">
+ <form action="${url.resourceUrl}" name="waitingApprovalForm" method="post">
+ <input type="hidden" name="action" value="cancelRequest"/>
+ <input type="hidden" id="stateChecker" name="stateChecker" value="${stateChecker}">
+ <table class="table table-striped table-bordered">
+ <thead>
+ <tr>
+ <th width="5%"><input type="checkbox" onclick="selectAllCheckBoxes('waitingApprovalForm', this, 'resource_id');" <#if authorization.resourcesWaitingOthersApproval?size == 0>disabled="true"</#if></th>
+ <th>${msg("resource")}</th>
+ <th>${msg("owner")}</th>
+ <th>${msg("action")}</th>
+ <th>${msg("date")}</th>
+ </tr>
+ </thead>
+ <tbody>
+ <#list authorization.resourcesWaitingOthersApproval as resource>
+ <tr>
+ <td>
+ <input type="checkbox" name="resource_id" value="${resource.id}"/>
+ </td>
+ <td>
+ <#if resource.displayName??>${resource.displayName}<#else>${resource.name}</#if>
+ </td>
+ <td>
+ <#if resource.owner.email??>${resource.owner.email}<#else>${resource.owner.username}</#if>
+ </td>
+ <td>
+ <ul>
+ <#list resource.permissions as permission>
+ <#list permission.scopes as scope>
+ <li>
+ <#if scope.scope??>
+ <#if scope.scope.displayName??>
+ ${scope.scope.displayName}
+ <#else>
+ ${scope.scope.name}
+ </#if>
+ <#else>
+ ${msg("anyPermission")}
+ </#if>
+ </li>
+ </#list>
+ </#list>
+ </ul>
+ </td>
+ <td>
+ ${resource.permissions[0].createdDate?datetime}
+ </td>
+ </tr>
+ </#list>
+ </tbody>
+ </table>
+ </form>
+ </div>
+ <div class="col-md-12">
+ <a href="#" onclick="document.forms['waitingApprovalForm'].submit();" type="submit" class="btn btn-danger">${msg("doRemoveRequest")}</a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </#if>
+
+</@layout.mainLayout> \ No newline at end of file