Add link to old UI to edit project access
If a user is an admin, show them the GWT link. If not an admin, don't display. Bug: Issue 7309 Change-Id: I63ce2e0ab22c68ebc6dbf0744fab06e9299329f3
This commit is contained in:
@@ -127,7 +127,9 @@ limitations under the License.
|
|||||||
</template>
|
</template>
|
||||||
<template is="dom-if" if="[[_showProjectAccess]]" restamp="true">
|
<template is="dom-if" if="[[_showProjectAccess]]" restamp="true">
|
||||||
<main class="table">
|
<main class="table">
|
||||||
<gr-project-access project="[[params.project]]"></gr-project-access>
|
<gr-project-access
|
||||||
|
path="[[path]]"
|
||||||
|
project="[[params.project]]"></gr-project-access>
|
||||||
</main>
|
</main>
|
||||||
</template>
|
</template>
|
||||||
<template is="dom-if" if="[[params.placeholder]]" restamp="true">
|
<template is="dom-if" if="[[params.placeholder]]" restamp="true">
|
||||||
|
|||||||
@@ -29,9 +29,22 @@ limitations under the License.
|
|||||||
|
|
||||||
<dom-module id="gr-project-access">
|
<dom-module id="gr-project-access">
|
||||||
<template>
|
<template>
|
||||||
<style include="shared-styles"></style>
|
<style include="shared-styles">
|
||||||
|
.gwtLink {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.gwtLink {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.admin .gwtLink {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<style include="gr-menu-page-styles"></style>
|
<style include="gr-menu-page-styles"></style>
|
||||||
<main>
|
<main class$="[[_computeAdminClass(_isAdmin)]]">
|
||||||
|
<div class="gwtLink">This is currently in read only mode. To modify content, go to the
|
||||||
|
<a href$="[[computeGwtUrl(path)]]" rel="external">Old UI</a>
|
||||||
|
</div>
|
||||||
<template is="dom-if" if="[[_inheritsFrom]]">
|
<template is="dom-if" if="[[_inheritsFrom]]">
|
||||||
<h3 id="inheritsFrom">Rights Inherit From
|
<h3 id="inheritsFrom">Rights Inherit From
|
||||||
<a href$="[[_computeParentHref(_inheritsFrom.name)]]" rel="noopener">
|
<a href$="[[_computeParentHref(_inheritsFrom.name)]]" rel="noopener">
|
||||||
|
|||||||
@@ -22,7 +22,13 @@
|
|||||||
type: String,
|
type: String,
|
||||||
observer: '_projectChanged',
|
observer: '_projectChanged',
|
||||||
},
|
},
|
||||||
|
// The current path
|
||||||
|
path: String,
|
||||||
|
|
||||||
|
_isAdmin: {
|
||||||
|
type: Boolean,
|
||||||
|
value: false,
|
||||||
|
},
|
||||||
_capabilities: Object,
|
_capabilities: Object,
|
||||||
_groups: Object,
|
_groups: Object,
|
||||||
/** @type {?} */
|
/** @type {?} */
|
||||||
@@ -67,6 +73,10 @@
|
|||||||
return res.labels;
|
return res.labels;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
promises.push(this.$.restAPI.getIsAdmin().then(isAdmin => {
|
||||||
|
this._isAdmin = isAdmin;
|
||||||
|
}));
|
||||||
|
|
||||||
return Promise.all(promises).then(value => {
|
return Promise.all(promises).then(value => {
|
||||||
this._capabilities = value[1];
|
this._capabilities = value[1];
|
||||||
this._labels = value[2];
|
this._labels = value[2];
|
||||||
@@ -79,6 +89,10 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_computeAdminClass(isAdmin) {
|
||||||
|
return isAdmin ? 'admin' : '';
|
||||||
|
},
|
||||||
|
|
||||||
_computeParentHref(projectName) {
|
_computeParentHref(projectName) {
|
||||||
return this.getBaseUrl() +
|
return this.getBaseUrl() +
|
||||||
`/admin/projects/${this.encodeURL(projectName, true)},access`;
|
`/admin/projects/${this.encodeURL(projectName, true)},access`;
|
||||||
|
|||||||
@@ -83,11 +83,14 @@ limitations under the License.
|
|||||||
'getCapabilities').returns(Promise.resolve(capabilitiesRes));
|
'getCapabilities').returns(Promise.resolve(capabilitiesRes));
|
||||||
const projectStub = sandbox.stub(element.$.restAPI, 'getProject').returns(
|
const projectStub = sandbox.stub(element.$.restAPI, 'getProject').returns(
|
||||||
Promise.resolve(projectRes));
|
Promise.resolve(projectRes));
|
||||||
|
const adminStub = sandbox.stub(element.$.restAPI, 'getIsAdmin').returns(
|
||||||
|
Promise.resolve(true));
|
||||||
|
|
||||||
element._projectChanged('New Project').then(() => {
|
element._projectChanged('New Project').then(() => {
|
||||||
assert.isTrue(accessStub.called);
|
assert.isTrue(accessStub.called);
|
||||||
assert.isTrue(capabilitiesStub.called);
|
assert.isTrue(capabilitiesStub.called);
|
||||||
assert.isTrue(projectStub.called);
|
assert.isTrue(projectStub.called);
|
||||||
|
assert.isTrue(adminStub.called);
|
||||||
assert.isNotOk(element._inheritsFrom);
|
assert.isNotOk(element._inheritsFrom);
|
||||||
assert.deepEqual(element._local, accessRes.local);
|
assert.deepEqual(element._local, accessRes.local);
|
||||||
assert.deepEqual(element._sections,
|
assert.deepEqual(element._sections,
|
||||||
@@ -143,6 +146,13 @@ limitations under the License.
|
|||||||
'/admin/projects/test-project,access');
|
'/admin/projects/test-project,access');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('_computeAdminClass', () => {
|
||||||
|
let isAdmin = true;
|
||||||
|
assert.equal(element._computeAdminClass(isAdmin), 'admin');
|
||||||
|
isAdmin = false;
|
||||||
|
assert.equal(element._computeAdminClass(isAdmin), '');
|
||||||
|
});
|
||||||
|
|
||||||
test('inherit section', () => {
|
test('inherit section', () => {
|
||||||
sandbox.stub(element, '_computeParentHref');
|
sandbox.stub(element, '_computeParentHref');
|
||||||
assert.isNotOk(Polymer.dom(element.root).querySelector('#inheritsFrom'));
|
assert.isNotOk(Polymer.dom(element.root).querySelector('#inheritsFrom'));
|
||||||
|
|||||||
Reference in New Issue
Block a user