Update conditions of disabling gr-access-section
Updates the conditions of gr-access-section to be disabled if can_upload is false AND also not an owner of the section. This is needed for the direct save option. Bug: Issue 8298 Change-Id: I0c13159aaf2c52649bc9ed7c568c8b315911b1db
This commit is contained in:
@@ -87,7 +87,7 @@ limitations under the License.
|
|||||||
</style>
|
</style>
|
||||||
<style include="gr-form-styles"></style>
|
<style include="gr-form-styles"></style>
|
||||||
<fieldset id="section"
|
<fieldset id="section"
|
||||||
class$="gr-form-styles [[_computeSectionClass(editing, _editingRef, _deleted)]]">
|
class$="gr-form-styles [[_computeSectionClass(editing, canUpload, ownerOf, _editingRef, _deleted)]]">
|
||||||
<div id="mainContainer">
|
<div id="mainContainer">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="name">
|
<div class="name">
|
||||||
|
@@ -54,6 +54,8 @@
|
|||||||
value: false,
|
value: false,
|
||||||
observer: '_handleEditingChanged',
|
observer: '_handleEditingChanged',
|
||||||
},
|
},
|
||||||
|
canUpload: Boolean,
|
||||||
|
ownerOf: Array,
|
||||||
_originalId: String,
|
_originalId: String,
|
||||||
_editingRef: {
|
_editingRef: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@@ -214,9 +216,13 @@
|
|||||||
this.$.editRefInput.focus();
|
this.$.editRefInput.focus();
|
||||||
},
|
},
|
||||||
|
|
||||||
_computeSectionClass(editing, editingRef, deleted) {
|
_isEditEnabled(canUpload, ownerOf, sectionId) {
|
||||||
|
return canUpload || ownerOf.indexOf(sectionId) >= 0;
|
||||||
|
},
|
||||||
|
|
||||||
|
_computeSectionClass(editing, canUpload, ownerOf, editingRef, deleted) {
|
||||||
const classList = [];
|
const classList = [];
|
||||||
if (editing) {
|
if (editing && this._isEditEnabled(canUpload, ownerOf, this.section.id)) {
|
||||||
classList.push('editing');
|
classList.push('editing');
|
||||||
}
|
}
|
||||||
if (editingRef) {
|
if (editingRef) {
|
||||||
|
@@ -272,26 +272,37 @@ limitations under the License.
|
|||||||
|
|
||||||
test('_computeSectionClass', () => {
|
test('_computeSectionClass', () => {
|
||||||
let editingRef = false;
|
let editingRef = false;
|
||||||
|
let canUpload = false;
|
||||||
|
let ownerOf = [];
|
||||||
let editing = false;
|
let editing = false;
|
||||||
let deleted = false;
|
let deleted = false;
|
||||||
assert.equal(element._computeSectionClass(editing, editingRef, deleted),
|
assert.equal(element._computeSectionClass(editing, canUpload, ownerOf,
|
||||||
'');
|
editingRef, deleted), '');
|
||||||
|
|
||||||
editing = true;
|
editing = true;
|
||||||
assert.equal(element._computeSectionClass(editing, editingRef, deleted),
|
assert.equal(element._computeSectionClass(editing, canUpload, ownerOf,
|
||||||
'editing');
|
editingRef, deleted), '');
|
||||||
|
|
||||||
|
ownerOf = ['refs/*'];
|
||||||
|
assert.equal(element._computeSectionClass(editing, canUpload, ownerOf,
|
||||||
|
editingRef, deleted), 'editing');
|
||||||
|
|
||||||
|
ownerOf = [];
|
||||||
|
canUpload = true;
|
||||||
|
assert.equal(element._computeSectionClass(editing, canUpload, ownerOf,
|
||||||
|
editingRef, deleted), 'editing');
|
||||||
|
|
||||||
editingRef = true;
|
editingRef = true;
|
||||||
assert.equal(element._computeSectionClass(editing, editingRef, deleted),
|
assert.equal(element._computeSectionClass(editing, canUpload, ownerOf,
|
||||||
'editing editingRef');
|
editingRef, deleted), 'editing editingRef');
|
||||||
|
|
||||||
deleted = true;
|
deleted = true;
|
||||||
assert.equal(element._computeSectionClass(editing, editingRef, deleted),
|
assert.equal(element._computeSectionClass(editing, canUpload, ownerOf,
|
||||||
'editing editingRef deleted');
|
editingRef, deleted), 'editing editingRef deleted');
|
||||||
|
|
||||||
editingRef = false;
|
editingRef = false;
|
||||||
assert.equal(element._computeSectionClass(editing, editingRef, deleted),
|
assert.equal(element._computeSectionClass(editing, canUpload, ownerOf,
|
||||||
'editing deleted');
|
editingRef, deleted), 'editing deleted');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('_computeEditBtnClass', () => {
|
test('_computeEditBtnClass', () => {
|
||||||
@@ -356,6 +367,8 @@ limitations under the License.
|
|||||||
assert.isFalse(element.$.section.classList.contains('deleted'));
|
assert.isFalse(element.$.section.classList.contains('deleted'));
|
||||||
assert.isTrue(element.$.editBtn.classList.contains('global'));
|
assert.isTrue(element.$.editBtn.classList.contains('global'));
|
||||||
element.editing = true;
|
element.editing = true;
|
||||||
|
element.canUpload = true;
|
||||||
|
element.ownerOf = [];
|
||||||
assert.equal(getComputedStyle(element.$.editBtn).display, 'none');
|
assert.equal(getComputedStyle(element.$.editBtn).display, 'none');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -382,6 +395,9 @@ limitations under the License.
|
|||||||
assert.isFalse(element.$.section.classList.contains('deleted'));
|
assert.isFalse(element.$.section.classList.contains('deleted'));
|
||||||
assert.isFalse(element.$.editBtn.classList.contains('global'));
|
assert.isFalse(element.$.editBtn.classList.contains('global'));
|
||||||
element.editing = true;
|
element.editing = true;
|
||||||
|
element.canUpload = true;
|
||||||
|
element.ownerOf = [];
|
||||||
|
flushAsynchronousOperations();
|
||||||
assert.notEqual(getComputedStyle(element.$.editBtn).display, 'none');
|
assert.notEqual(getComputedStyle(element.$.editBtn).display, 'none');
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -440,6 +456,8 @@ limitations under the License.
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('edit section reference', () => {
|
test('edit section reference', () => {
|
||||||
|
element.canUpload = true;
|
||||||
|
element.ownerOf = [];
|
||||||
element.section = {id: 'refs/for/bar', value: {permissions: {}}};
|
element.section = {id: 'refs/for/bar', value: {permissions: {}}};
|
||||||
assert.isFalse(element.$.section.classList.contains('editing'));
|
assert.isFalse(element.$.section.classList.contains('editing'));
|
||||||
element.editing = true;
|
element.editing = true;
|
||||||
@@ -486,6 +504,8 @@ limitations under the License.
|
|||||||
|
|
||||||
test('remove section', () => {
|
test('remove section', () => {
|
||||||
element.editing = true;
|
element.editing = true;
|
||||||
|
element.canUpload = true;
|
||||||
|
element.ownerOf = [];
|
||||||
assert.isFalse(element._deleted);
|
assert.isFalse(element._deleted);
|
||||||
assert.isNotOk(element.section.value.deleted);
|
assert.isNotOk(element.section.value.deleted);
|
||||||
MockInteractions.tap(element.$.deleteBtn);
|
MockInteractions.tap(element.$.deleteBtn);
|
||||||
|
@@ -110,7 +110,9 @@ limitations under the License.
|
|||||||
capabilities="[[_capabilities]]"
|
capabilities="[[_capabilities]]"
|
||||||
section="{{section}}"
|
section="{{section}}"
|
||||||
labels="[[_labels]]"
|
labels="[[_labels]]"
|
||||||
|
can-upload="[[_canUpload]]"
|
||||||
editing="[[_editing]]"
|
editing="[[_editing]]"
|
||||||
|
owner-of="[[_ownerOf]]"
|
||||||
groups="[[_groups]]"
|
groups="[[_groups]]"
|
||||||
on-added-section-removed="_handleAddedSectionRemoved"></gr-access-section>
|
on-added-section-removed="_handleAddedSectionRemoved"></gr-access-section>
|
||||||
</template>
|
</template>
|
||||||
|
Reference in New Issue
Block a user