Skip to content

Commit 6ce4b43

Browse files
authored
feat: add option in view manager header to hide public checkbox (#1197)
1 parent c9d7420 commit 6ce4b43

File tree

3 files changed

+40
-18
lines changed

3 files changed

+40
-18
lines changed

src/src/header/components/roc-views.js

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -347,25 +347,40 @@ define([
347347
rightAccordion.append('<h3>Metadata</h3>');
348348
this.$metaBox = $('<div>').appendTo(rightAccordion);
349349

350-
this.$publicCheckbox = $('<input type="checkbox" />').on('click', (e) => {
350+
this.$publicCheckbox = $(
351+
'<input id="viewManager_publicCheckbox" type="checkbox" />',
352+
).on('click', (e) => {
351353
e.preventDefault();
352354
this.togglePublic();
353355
});
356+
354357
var checkboxContainer = $('<div>')
358+
.css({
359+
display: this.options.hidePublicToggle ? 'none' : 'flex',
360+
alignItems: 'center',
361+
gap: '2px',
362+
})
355363
.append(this.$publicCheckbox)
356-
.append('Public');
364+
.append('<label for="viewManager_publicCheckbox">Public</label>');
365+
366+
this.$ownersList = $('<div>');
367+
this.$groupList = $('<div>');
357368

358-
var ownersList = $('<div>').css({
359-
marginTop: '5px',
360-
marginBottom: '5px',
361-
});
362-
this.$ownersList = ownersList;
363-
var addOwnerButton = $('<button>Add owner</button>').on('click', () =>
364-
this.addOwner(),
365-
);
366369
var ownersContainer = $('<div>')
367-
.append(ownersList)
368-
.append(addOwnerButton);
370+
.css({
371+
display: 'flex',
372+
alignItems: 'start',
373+
flexDirection: 'column',
374+
gap: '5px',
375+
marginTop: '5px',
376+
})
377+
.append(this.$ownersList)
378+
.append(this.$groupList)
379+
.append(
380+
$('<button>Add owner / group</button>').on('click', () =>
381+
this.addOwner(),
382+
),
383+
);
369384

370385
this.$permissionsContainer = $('<div>');
371386
this.$permissionsBox.html(this.$permissionsContainer);
@@ -914,7 +929,12 @@ define([
914929
this.reloadRevisions(node);
915930
this.$permissionsContainer.show();
916931
this.$publicCheckbox.prop('checked', view.public);
917-
this.$ownersList.html(`Owners: ${view.owners.join(', ')}`);
932+
this.$ownersList.html(
933+
`<strong>Owners</strong>: ${view.owners.join(', ')}`,
934+
);
935+
this.$groupList.html(
936+
`<strong>Groups</strong>: ${view.groups.join(', ')}`,
937+
);
918938
}
919939

920940
async reloadRevisions(node, force) {
@@ -1317,17 +1337,14 @@ define([
13171337

13181338
addOwner() {
13191339
if (!this.activeView) return;
1320-
var div = $('<div>User email address: </div>');
1340+
var div = $('<div>User email address or group name: </div>');
13211341
var input = $('<input type="text" />')
13221342
.appendTo(div)
13231343
.on('keypress', (evt) => {
13241344
if (evt.keyCode === 13) Add();
13251345
});
13261346
const Add = () => {
13271347
var value = input.val();
1328-
if (!Util.isEmail(value)) {
1329-
return UI.showNotification('Invalid email', 'error');
1330-
}
13311348
this.showHide(true);
13321349
this.activeView.data.view.addGroup(value).then((ok) => {
13331350
if (!ok) {

src/src/util/roc-view.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ define(['./util'], function (Util) {
4242
return this.view.$owners.slice(1).filter(Util.isEmail);
4343
}
4444

45+
get groups() {
46+
return this.view.$owners.slice(1).filter((owner) => !Util.isEmail(owner));
47+
}
48+
4549
get revid() {
4650
return this.view._rev;
4751
}

src/usr/config/default.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@
102102
"type": "roc-views",
103103
"label": "View manager",
104104
"database": "visualizer",
105-
"url": "http://localhost:3000"
105+
"url": "http://localhost:3000",
106+
"hidePublicToggle": false
106107
}
107108
]
108109
}

0 commit comments

Comments
 (0)