477 lines
31 KiB
HTML
477 lines
31 KiB
HTML
|
|
<script type="text/javascript">
|
||
|
|
RED.nodes.registerType('collectives', {
|
||
|
|
category: 'nextcloud',
|
||
|
|
color: '#0082C9',
|
||
|
|
defaults: {
|
||
|
|
name: { value: "" },
|
||
|
|
nextcloud: { type: "nextcloud-config", required: true },
|
||
|
|
operation: { value: "collective:list" },
|
||
|
|
// Path params
|
||
|
|
collectiveId: { value: "" },
|
||
|
|
pageId: { value: "" },
|
||
|
|
token: { value: "" },
|
||
|
|
parentId: { value: "" },
|
||
|
|
tagId: { value: "" },
|
||
|
|
attachmentId: { value: "" },
|
||
|
|
newCollectiveId: { value: "" },
|
||
|
|
itemId: { value: "" },
|
||
|
|
settingKey: { value: "" },
|
||
|
|
// Body fields
|
||
|
|
bodyName: { value: "" },
|
||
|
|
bodyEmoji: { value: "" },
|
||
|
|
bodyColor: { value: "" },
|
||
|
|
bodyLevel: { value: "" },
|
||
|
|
bodyMode: { value: "" },
|
||
|
|
bodyTitle: { value: "" },
|
||
|
|
bodyEditable: { value: "" },
|
||
|
|
bodyPassword: { value: "" },
|
||
|
|
bodyFullWidth: { value: "" },
|
||
|
|
bodyTemplateId: { value: "" },
|
||
|
|
bodyPageOrder: { value: "" },
|
||
|
|
bodyShowMembers: { value: "" },
|
||
|
|
bodyShowRecentPages: { value: "" },
|
||
|
|
bodyFavoritePages: { value: "" },
|
||
|
|
bodyIndex: { value: "" },
|
||
|
|
bodyCopy: { value: "" },
|
||
|
|
bodySubpageOrder: { value: "" },
|
||
|
|
bodyParentId: { value: "" },
|
||
|
|
bodyCircle: { value: "" },
|
||
|
|
bodySearchString: { value: "" },
|
||
|
|
bodyQuery: { value: "" },
|
||
|
|
bodyLimit: { value: "" },
|
||
|
|
bodyKey: { value: "" },
|
||
|
|
bodyValue: { value: "" },
|
||
|
|
bodySessionToken: { value: "" }
|
||
|
|
},
|
||
|
|
inputs: 1,
|
||
|
|
outputs: 1,
|
||
|
|
icon: "collectives.svg",
|
||
|
|
label: function() { return this.name || "Collectives"; },
|
||
|
|
oneditprepare: function() {
|
||
|
|
var node = this;
|
||
|
|
|
||
|
|
// Which path params and body fields are needed per operation
|
||
|
|
var opMeta = {
|
||
|
|
'collective:list': { method: 'GET', pathParams: [], bodyFields: [] },
|
||
|
|
'collective:create': { method: 'POST', pathParams: [], bodyFields: ['name','emoji'] },
|
||
|
|
'collective:update': { method: 'PUT', pathParams: ['id'], bodyFields: ['emoji'] },
|
||
|
|
'collective:trash': { method: 'DELETE', pathParams: ['id'], bodyFields: [] },
|
||
|
|
'collective:editLevel': { method: 'PUT', pathParams: ['id'], bodyFields: ['level'] },
|
||
|
|
'collective:shareLevel': { method: 'PUT', pathParams: ['id'], bodyFields: ['level'] },
|
||
|
|
'collective:pageMode': { method: 'PUT', pathParams: ['id'], bodyFields: ['mode'] },
|
||
|
|
'trash:list': { method: 'GET', pathParams: [], bodyFields: [] },
|
||
|
|
'trash:restore': { method: 'PATCH', pathParams: ['id'], bodyFields: [] },
|
||
|
|
'trash:delete': { method: 'DELETE', pathParams: ['id'], bodyFields: ['circle'] },
|
||
|
|
'share:listCollectiveShares': { method: 'GET', pathParams: ['collectiveId'], bodyFields: [] },
|
||
|
|
'share:createCollectiveShare': { method: 'POST', pathParams: ['collectiveId'], bodyFields: ['password'] },
|
||
|
|
'share:updateCollectiveShare': { method: 'PUT', pathParams: ['collectiveId','token'], bodyFields: ['editable','password'] },
|
||
|
|
'share:deleteCollectiveShare': { method: 'DELETE', pathParams: ['collectiveId','token'], bodyFields: [] },
|
||
|
|
'share:createPageShare': { method: 'POST', pathParams: ['collectiveId','pageId'], bodyFields: ['password'] },
|
||
|
|
'share:updatePageShare': { method: 'PUT', pathParams: ['collectiveId','pageId','token'], bodyFields: ['editable','password'] },
|
||
|
|
'share:deletePageShare': { method: 'DELETE', pathParams: ['collectiveId','pageId','token'], bodyFields: [] },
|
||
|
|
'search:recentPages': { method: 'GET', pathParams: [], bodyFields: ['query','limit'] },
|
||
|
|
'search:content': { method: 'GET', pathParams: ['collectiveId'], bodyFields: ['searchString'] },
|
||
|
|
'page:list': { method: 'GET', pathParams: ['collectiveId'], bodyFields: [] },
|
||
|
|
'page:get': { method: 'GET', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'page:create': { method: 'POST', pathParams: ['collectiveId','parentId'], bodyFields: ['title','templateId'] },
|
||
|
|
'page:moveOrCopy': { method: 'PUT', pathParams: ['collectiveId','id'], bodyFields: ['parentId','title','index','copy'] },
|
||
|
|
'page:trash': { method: 'DELETE', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'page:touch': { method: 'GET', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'page:fullWidth': { method: 'PUT', pathParams: ['collectiveId','id'], bodyFields: ['fullWidth'] },
|
||
|
|
'page:emoji': { method: 'PUT', pathParams: ['collectiveId','id'], bodyFields: ['emoji'] },
|
||
|
|
'page:subpageOrder': { method: 'PUT', pathParams: ['collectiveId','id'], bodyFields: ['subpageOrder'] },
|
||
|
|
'page:moveToCollective': { method: 'PUT', pathParams: ['collectiveId','id','newCollectiveId'], bodyFields: ['parentId','index','copy'] },
|
||
|
|
'page:addTag': { method: 'PUT', pathParams: ['collectiveId','id','tagId'], bodyFields: [] },
|
||
|
|
'page:removeTag': { method: 'DELETE', pathParams: ['collectiveId','id','tagId'], bodyFields: [] },
|
||
|
|
'page:listAttachments': { method: 'GET', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'page:uploadAttachment': { method: 'POST', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'page:renameAttachment': { method: 'PUT', pathParams: ['collectiveId','id','attachmentId'], bodyFields: ['name'] },
|
||
|
|
'page:deleteAttachment': { method: 'DELETE', pathParams: ['collectiveId','id','attachmentId'], bodyFields: [] },
|
||
|
|
'page:restoreAttachment': { method: 'PATCH', pathParams: ['collectiveId','id','attachmentId'], bodyFields: [] },
|
||
|
|
'page_trash:list': { method: 'GET', pathParams: ['collectiveId'], bodyFields: [] },
|
||
|
|
'page_trash:restore': { method: 'PATCH', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'page_trash:delete': { method: 'DELETE', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'template:list': { method: 'GET', pathParams: ['collectiveId'], bodyFields: [] },
|
||
|
|
'template:create': { method: 'POST', pathParams: ['collectiveId','id'], bodyFields: ['title','parentId'] },
|
||
|
|
'template:rename': { method: 'PUT', pathParams: ['collectiveId','id'], bodyFields: ['title'] },
|
||
|
|
'template:delete': { method: 'DELETE', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'template:emoji': { method: 'PUT', pathParams: ['collectiveId','id'], bodyFields: ['emoji'] },
|
||
|
|
'tag:list': { method: 'GET', pathParams: ['collectiveId'], bodyFields: [] },
|
||
|
|
'tag:create': { method: 'POST', pathParams: ['collectiveId'], bodyFields: ['name','color'] },
|
||
|
|
'tag:update': { method: 'PUT', pathParams: ['collectiveId','id'], bodyFields: ['name','color'] },
|
||
|
|
'tag:delete': { method: 'DELETE', pathParams: ['collectiveId','id'], bodyFields: [] },
|
||
|
|
'userSettings:pageOrder': { method: 'PUT', pathParams: ['collectiveId'], bodyFields: ['pageOrder'] },
|
||
|
|
'userSettings:showMembers': { method: 'PUT', pathParams: ['collectiveId'], bodyFields: ['showMembers'] },
|
||
|
|
'userSettings:showRecentPages':{ method: 'PUT', pathParams: ['collectiveId'], bodyFields: ['showRecentPages'] },
|
||
|
|
'userSettings:favoritePages': { method: 'PUT', pathParams: ['collectiveId'], bodyFields: ['favoritePages'] },
|
||
|
|
'session:create': { method: 'POST', pathParams: ['collectiveId'], bodyFields: [] },
|
||
|
|
'session:sync': { method: 'PUT', pathParams: ['collectiveId'], bodyFields: ['token'] },
|
||
|
|
'session:close': { method: 'DELETE', pathParams: ['collectiveId'], bodyFields: ['token'] },
|
||
|
|
'settings:get': { method: 'GET', pathParams: ['settingKey'], bodyFields: [] },
|
||
|
|
'settings:set': { method: 'POST', pathParams: [], bodyFields: ['key','value'] },
|
||
|
|
'public:getCollective': { method: 'GET', pathParams: ['token'], bodyFields: [] },
|
||
|
|
'public:listPages': { method: 'GET', pathParams: ['token'], bodyFields: [] },
|
||
|
|
'public:getPage': { method: 'GET', pathParams: ['token','id'], bodyFields: [] },
|
||
|
|
'public:createPage': { method: 'POST', pathParams: ['token','parentId'], bodyFields: ['title','templateId'] },
|
||
|
|
'public:moveOrCopyPage': { method: 'PUT', pathParams: ['token','id'], bodyFields: ['parentId','title','index','copy'] },
|
||
|
|
'public:trashPage': { method: 'DELETE', pathParams: ['token','id'], bodyFields: [] },
|
||
|
|
'public:touchPage': { method: 'GET', pathParams: ['token','id'], bodyFields: [] },
|
||
|
|
'public:fullWidth': { method: 'PUT', pathParams: ['token','id'], bodyFields: ['fullWidth'] },
|
||
|
|
'public:emoji': { method: 'PUT', pathParams: ['token','id'], bodyFields: ['emoji'] },
|
||
|
|
'public:subpageOrder': { method: 'PUT', pathParams: ['token','id'], bodyFields: ['subpageOrder'] },
|
||
|
|
'public:addTag': { method: 'PUT', pathParams: ['token','id','tagId'], bodyFields: [] },
|
||
|
|
'public:removeTag': { method: 'DELETE', pathParams: ['token','id','tagId'], bodyFields: [] },
|
||
|
|
'public:listAttachments': { method: 'GET', pathParams: ['token','id'], bodyFields: [] },
|
||
|
|
'public:uploadAttachment': { method: 'POST', pathParams: ['token','id'], bodyFields: [] },
|
||
|
|
'public:renameAttachment': { method: 'PUT', pathParams: ['token','id','attachmentId'], bodyFields: ['name'] },
|
||
|
|
'public:deleteAttachment': { method: 'DELETE', pathParams: ['token','id','attachmentId'], bodyFields: [] },
|
||
|
|
'public:restoreAttachment': { method: 'PATCH', pathParams: ['token','id','attachmentId'], bodyFields: [] },
|
||
|
|
'public:searchContent': { method: 'GET', pathParams: ['token'], bodyFields: ['searchString'] },
|
||
|
|
'public:listTrash': { method: 'GET', pathParams: ['token'], bodyFields: [] },
|
||
|
|
'public:restoreTrash': { method: 'PATCH', pathParams: ['token','id'], bodyFields: [] },
|
||
|
|
'public:deleteTrash': { method: 'DELETE', pathParams: ['token','id'], bodyFields: [] },
|
||
|
|
'public:listTemplates': { method: 'GET', pathParams: ['token'], bodyFields: [] },
|
||
|
|
'public:listTags': { method: 'GET', pathParams: ['token'], bodyFields: [] },
|
||
|
|
'public:createTag': { method: 'POST', pathParams: ['token'], bodyFields: ['name','color'] },
|
||
|
|
'public:updateTag': { method: 'PUT', pathParams: ['token','id'], bodyFields: ['name','color'] },
|
||
|
|
'public:deleteTag': { method: 'DELETE', pathParams: ['token','id'], bodyFields: [] }
|
||
|
|
};
|
||
|
|
|
||
|
|
// All path param IDs mapped to labels
|
||
|
|
var pathFields = {
|
||
|
|
'id': { label: 'ID', field: '#node-input-itemId' },
|
||
|
|
'collectiveId': { label: 'Collective ID', field: '#node-input-collectiveId' },
|
||
|
|
'pageId': { label: 'Page ID', field: '#node-input-pageId' },
|
||
|
|
'parentId': { label: 'Parent ID', field: '#node-input-parentId' },
|
||
|
|
'token': { label: 'Token', field: '#node-input-token' },
|
||
|
|
'tagId': { label: 'Tag ID', field: '#node-input-tagId' },
|
||
|
|
'attachmentId': { label: 'Attachment ID', field: '#node-input-attachmentId' },
|
||
|
|
'newCollectiveId': { label: 'New Collective ID', field: '#node-input-newCollectiveId' },
|
||
|
|
'settingKey': { label: 'Settings Key', field: '#node-input-settingKey' }
|
||
|
|
};
|
||
|
|
|
||
|
|
// All body field IDs
|
||
|
|
var bodyFields = {
|
||
|
|
'name': '#body-name-row',
|
||
|
|
'emoji': '#body-emoji-row',
|
||
|
|
'color': '#body-color-row',
|
||
|
|
'level': '#body-level-row',
|
||
|
|
'mode': '#body-mode-row',
|
||
|
|
'title': '#body-title-row',
|
||
|
|
'editable': '#body-editable-row',
|
||
|
|
'password': '#body-password-row',
|
||
|
|
'fullWidth': '#body-fullWidth-row',
|
||
|
|
'templateId': '#body-templateId-row',
|
||
|
|
'pageOrder': '#body-pageOrder-row',
|
||
|
|
'showMembers': '#body-showMembers-row',
|
||
|
|
'showRecentPages': '#body-showRecentPages-row',
|
||
|
|
'favoritePages': '#body-favoritePages-row',
|
||
|
|
'index': '#body-index-row',
|
||
|
|
'copy': '#body-copy-row',
|
||
|
|
'subpageOrder': '#body-subpageOrder-row',
|
||
|
|
'parentId': '#body-parentId-row',
|
||
|
|
'circle': '#body-circle-row',
|
||
|
|
'searchString': '#body-searchString-row',
|
||
|
|
'query': '#body-query-row',
|
||
|
|
'limit': '#body-limit-row',
|
||
|
|
'key': '#body-key-row',
|
||
|
|
'value': '#body-value-row',
|
||
|
|
'token': '#body-sessionToken-row'
|
||
|
|
};
|
||
|
|
|
||
|
|
function updateFields() {
|
||
|
|
var op = $('#node-input-operation').val();
|
||
|
|
var meta = opMeta[op] || { pathParams: [], bodyFields: [] };
|
||
|
|
|
||
|
|
// Show/hide path param fields
|
||
|
|
Object.keys(pathFields).forEach(function(key) {
|
||
|
|
var visible = meta.pathParams.indexOf(key) !== -1;
|
||
|
|
$(pathFields[key].field).closest('.form-row').toggle(visible);
|
||
|
|
});
|
||
|
|
|
||
|
|
// Show/hide body fields
|
||
|
|
Object.keys(bodyFields).forEach(function(key) {
|
||
|
|
var visible = meta.bodyFields.indexOf(key) !== -1;
|
||
|
|
$(bodyFields[key]).toggle(visible);
|
||
|
|
});
|
||
|
|
|
||
|
|
// Update method badge
|
||
|
|
$('#op-method').text(meta.method || 'GET');
|
||
|
|
}
|
||
|
|
|
||
|
|
$('#node-input-operation').change(updateFields);
|
||
|
|
setTimeout(updateFields, 100);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
</script>
|
||
|
|
|
||
|
|
<script type="text/html" data-template-name="collectives">
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
||
|
|
<input type="text" id="node-input-name" placeholder="Collectives">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-nextcloud"><i class="fa fa-cloud"></i> Nextcloud Config</label>
|
||
|
|
<input type="text" id="node-input-nextcloud" placeholder="Select config node">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-operation"><i class="fa fa-cog"></i> Operation</label>
|
||
|
|
<select id="node-input-operation" style="width:100%;">
|
||
|
|
<optgroup label="— Collectives —">
|
||
|
|
<option value="collective:list">List All Collectives</option>
|
||
|
|
<option value="collective:create">Create Collective</option>
|
||
|
|
<option value="collective:update">Update Collective</option>
|
||
|
|
<option value="collective:trash">Trash Collective</option>
|
||
|
|
<option value="collective:editLevel">Set Edit Level</option>
|
||
|
|
<option value="collective:shareLevel">Set Share Level</option>
|
||
|
|
<option value="collective:pageMode">Set Page Mode</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Trash —">
|
||
|
|
<option value="trash:list">List Trashed Collectives</option>
|
||
|
|
<option value="trash:restore">Restore Collective</option>
|
||
|
|
<option value="trash:delete">Delete Collective Permanently</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Shares —">
|
||
|
|
<option value="share:listCollectiveShares">List Collective Shares</option>
|
||
|
|
<option value="share:createCollectiveShare">Create Collective Share</option>
|
||
|
|
<option value="share:updateCollectiveShare">Update Collective Share</option>
|
||
|
|
<option value="share:deleteCollectiveShare">Delete Collective Share</option>
|
||
|
|
<option value="share:createPageShare">Create Page Share</option>
|
||
|
|
<option value="share:updatePageShare">Update Page Share</option>
|
||
|
|
<option value="share:deletePageShare">Delete Page Share</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Search —">
|
||
|
|
<option value="search:recentPages">Search Recent Pages</option>
|
||
|
|
<option value="search:content">Search Page Content</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Pages —">
|
||
|
|
<option value="page:list">List Pages</option>
|
||
|
|
<option value="page:get">Get Page</option>
|
||
|
|
<option value="page:create">Create Page</option>
|
||
|
|
<option value="page:moveOrCopy">Move/Copy Page</option>
|
||
|
|
<option value="page:trash">Trash Page</option>
|
||
|
|
<option value="page:touch">Touch Page</option>
|
||
|
|
<option value="page:fullWidth">Set Full Width</option>
|
||
|
|
<option value="page:emoji">Set Emoji</option>
|
||
|
|
<option value="page:subpageOrder">Set Subpage Order</option>
|
||
|
|
<option value="page:moveToCollective">Move to Collective</option>
|
||
|
|
<option value="page:addTag">Add Tag</option>
|
||
|
|
<option value="page:removeTag">Remove Tag</option>
|
||
|
|
<option value="page:listAttachments">List Attachments</option>
|
||
|
|
<option value="page:uploadAttachment">Upload Attachment</option>
|
||
|
|
<option value="page:renameAttachment">Rename Attachment</option>
|
||
|
|
<option value="page:deleteAttachment">Delete Attachment</option>
|
||
|
|
<option value="page:restoreAttachment">Restore Attachment</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Page Trash —">
|
||
|
|
<option value="page_trash:list">List Trashed Pages</option>
|
||
|
|
<option value="page_trash:restore">Restore Page</option>
|
||
|
|
<option value="page_trash:delete">Delete Page Permanently</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Templates —">
|
||
|
|
<option value="template:list">List Templates</option>
|
||
|
|
<option value="template:create">Create Template</option>
|
||
|
|
<option value="template:rename">Rename Template</option>
|
||
|
|
<option value="template:delete">Delete Template</option>
|
||
|
|
<option value="template:emoji">Set Template Emoji</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Tags —">
|
||
|
|
<option value="tag:list">List Tags</option>
|
||
|
|
<option value="tag:create">Create Tag</option>
|
||
|
|
<option value="tag:update">Update Tag</option>
|
||
|
|
<option value="tag:delete">Delete Tag</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— User Settings —">
|
||
|
|
<option value="userSettings:pageOrder">Set Page Order</option>
|
||
|
|
<option value="userSettings:showMembers">Set Show Members</option>
|
||
|
|
<option value="userSettings:showRecentPages">Set Show Recent Pages</option>
|
||
|
|
<option value="userSettings:favoritePages">Set Favorite Pages</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Sessions —">
|
||
|
|
<option value="session:create">Create Session</option>
|
||
|
|
<option value="session:sync">Sync Session</option>
|
||
|
|
<option value="session:close">Close Session</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Settings —">
|
||
|
|
<option value="settings:get">Get User Setting</option>
|
||
|
|
<option value="settings:set">Set User Setting</option>
|
||
|
|
</optgroup>
|
||
|
|
<optgroup label="— Public (Share Token) —">
|
||
|
|
<option value="public:getCollective">Get Public Collective</option>
|
||
|
|
<option value="public:listPages">Public: List Pages</option>
|
||
|
|
<option value="public:getPage">Public: Get Page</option>
|
||
|
|
<option value="public:createPage">Public: Create Page</option>
|
||
|
|
<option value="public:moveOrCopyPage">Public: Move/Copy Page</option>
|
||
|
|
<option value="public:trashPage">Public: Trash Page</option>
|
||
|
|
<option value="public:touchPage">Public: Touch Page</option>
|
||
|
|
<option value="public:fullWidth">Public: Set Full Width</option>
|
||
|
|
<option value="public:emoji">Public: Set Emoji</option>
|
||
|
|
<option value="public:subpageOrder">Public: Set Subpage Order</option>
|
||
|
|
<option value="public:addTag">Public: Add Tag</option>
|
||
|
|
<option value="public:removeTag">Public: Remove Tag</option>
|
||
|
|
<option value="public:listAttachments">Public: List Attachments</option>
|
||
|
|
<option value="public:uploadAttachment">Public: Upload Attachment</option>
|
||
|
|
<option value="public:renameAttachment">Public: Rename Attachment</option>
|
||
|
|
<option value="public:deleteAttachment">Public: Delete Attachment</option>
|
||
|
|
<option value="public:restoreAttachment">Public: Restore Attachment</option>
|
||
|
|
<option value="public:searchContent">Public: Search Content</option>
|
||
|
|
<option value="public:listTrash">Public: List Trash</option>
|
||
|
|
<option value="public:restoreTrash">Public: Restore Trash</option>
|
||
|
|
<option value="public:deleteTrash">Public: Delete Trash</option>
|
||
|
|
<option value="public:listTemplates">Public: List Templates</option>
|
||
|
|
<option value="public:listTags">Public: List Tags</option>
|
||
|
|
<option value="public:createTag">Public: Create Tag</option>
|
||
|
|
<option value="public:updateTag">Public: Update Tag</option>
|
||
|
|
<option value="public:deleteTag">Public: Delete Tag</option>
|
||
|
|
</optgroup>
|
||
|
|
</select>
|
||
|
|
<span id="op-method" style="margin-left:8px; color:#888; font-size:0.85em;">GET</span>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<hr style="margin:10px 0; border:none; border-top:1px solid #ccc;">
|
||
|
|
<div style="font-weight:bold; margin-bottom:6px;">Path Parameters (shown based on operation)</div>
|
||
|
|
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-collectiveId">Collective ID</label>
|
||
|
|
<input type="text" id="node-input-collectiveId" placeholder="Overridable via msg.collectiveId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-pageId">Page ID</label>
|
||
|
|
<input type="text" id="node-input-pageId" placeholder="Overridable via msg.pageId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-itemId">ID</label>
|
||
|
|
<input type="text" id="node-input-itemId" placeholder="Overridable via msg.itemId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-parentId">Parent ID</label>
|
||
|
|
<input type="text" id="node-input-parentId" placeholder="Overridable via msg.parentId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-token">Token</label>
|
||
|
|
<input type="text" id="node-input-token" placeholder="Overridable via msg.token">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-tagId">Tag ID</label>
|
||
|
|
<input type="text" id="node-input-tagId" placeholder="Overridable via msg.tagId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-attachmentId">Attachment ID</label>
|
||
|
|
<input type="text" id="node-input-attachmentId" placeholder="Overridable via msg.attachmentId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-newCollectiveId">New Collective ID</label>
|
||
|
|
<input type="text" id="node-input-newCollectiveId" placeholder="Overridable via msg.newCollectiveId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row">
|
||
|
|
<label for="node-input-settingKey">Settings Key</label>
|
||
|
|
<input type="text" id="node-input-settingKey" placeholder="Overridable via msg.settingKey">
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<hr style="margin:10px 0; border:none; border-top:1px solid #ccc;">
|
||
|
|
<div style="font-weight:bold; margin-bottom:6px;">Request Body Fields (shown based on operation)</div>
|
||
|
|
|
||
|
|
<div class="form-row" id="body-name-row">
|
||
|
|
<label for="node-input-bodyName">Name</label>
|
||
|
|
<input type="text" id="node-input-bodyName" placeholder="Overridable via msg.name">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-emoji-row">
|
||
|
|
<label for="node-input-bodyEmoji">Emoji</label>
|
||
|
|
<input type="text" id="node-input-bodyEmoji" placeholder="Overridable via msg.emoji">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-color-row">
|
||
|
|
<label for="node-input-bodyColor">Color</label>
|
||
|
|
<input type="text" id="node-input-bodyColor" placeholder="Overridable via msg.color">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-level-row">
|
||
|
|
<label for="node-input-bodyLevel">Level</label>
|
||
|
|
<input type="number" id="node-input-bodyLevel" placeholder="Overridable via msg.level">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-mode-row">
|
||
|
|
<label for="node-input-bodyMode">Mode</label>
|
||
|
|
<input type="number" id="node-input-bodyMode" placeholder="Overridable via msg.mode">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-title-row">
|
||
|
|
<label for="node-input-bodyTitle">Title</label>
|
||
|
|
<input type="text" id="node-input-bodyTitle" placeholder="Overridable via msg.title">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-editable-row">
|
||
|
|
<label for="node-input-bodyEditable">Editable (true/false)</label>
|
||
|
|
<input type="text" id="node-input-bodyEditable" placeholder="Overridable via msg.editable">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-password-row">
|
||
|
|
<label for="node-input-bodyPassword">Password</label>
|
||
|
|
<input type="text" id="node-input-bodyPassword" placeholder="Overridable via msg.password">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-fullWidth-row">
|
||
|
|
<label for="node-input-bodyFullWidth">Full Width (true/false)</label>
|
||
|
|
<input type="text" id="node-input-bodyFullWidth" placeholder="Overridable via msg.fullWidth">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-templateId-row">
|
||
|
|
<label for="node-input-bodyTemplateId">Template ID</label>
|
||
|
|
<input type="number" id="node-input-bodyTemplateId" placeholder="Overridable via msg.templateId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-pageOrder-row">
|
||
|
|
<label for="node-input-bodyPageOrder">Page Order</label>
|
||
|
|
<input type="number" id="node-input-bodyPageOrder" placeholder="Overridable via msg.pageOrder">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-showMembers-row">
|
||
|
|
<label for="node-input-bodyShowMembers">Show Members (true/false)</label>
|
||
|
|
<input type="text" id="node-input-bodyShowMembers" placeholder="Overridable via msg.showMembers">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-showRecentPages-row">
|
||
|
|
<label for="node-input-bodyShowRecentPages">Show Recent Pages (true/false)</label>
|
||
|
|
<input type="text" id="node-input-bodyShowRecentPages" placeholder="Overridable via msg.showRecentPages">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-favoritePages-row">
|
||
|
|
<label for="node-input-bodyFavoritePages">Favorite Pages (JSON array)</label>
|
||
|
|
<input type="text" id="node-input-bodyFavoritePages" placeholder="Overridable via msg.favoritePages">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-index-row">
|
||
|
|
<label for="node-input-bodyIndex">Index</label>
|
||
|
|
<input type="number" id="node-input-bodyIndex" placeholder="Overridable via msg.index">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-copy-row">
|
||
|
|
<label for="node-input-bodyCopy">Copy (true/false)</label>
|
||
|
|
<input type="text" id="node-input-bodyCopy" placeholder="Overridable via msg.copy">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-subpageOrder-row">
|
||
|
|
<label for="node-input-bodySubpageOrder">Subpage Order (JSON array)</label>
|
||
|
|
<input type="text" id="node-input-bodySubpageOrder" placeholder="Overridable via msg.subpageOrder">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-parentId-row">
|
||
|
|
<label for="node-input-bodyParentId">Target Parent ID</label>
|
||
|
|
<input type="number" id="node-input-bodyParentId" placeholder="Overridable via msg.parentId">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-circle-row">
|
||
|
|
<label for="node-input-bodyCircle">Delete Circle (true/false)</label>
|
||
|
|
<input type="text" id="node-input-bodyCircle" placeholder="Overridable via msg.circle">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-searchString-row">
|
||
|
|
<label for="node-input-bodySearchString">Search String</label>
|
||
|
|
<input type="text" id="node-input-bodySearchString" placeholder="Overridable via msg.searchString">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-query-row">
|
||
|
|
<label for="node-input-bodyQuery">Query</label>
|
||
|
|
<input type="text" id="node-input-bodyQuery" placeholder="Overridable via msg.query">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-limit-row">
|
||
|
|
<label for="node-input-bodyLimit">Limit</label>
|
||
|
|
<input type="number" id="node-input-bodyLimit" placeholder="Overridable via msg.limit">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-key-row">
|
||
|
|
<label for="node-input-bodyKey">Key</label>
|
||
|
|
<input type="text" id="node-input-bodyKey" placeholder="Overridable via msg.key">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-value-row">
|
||
|
|
<label for="node-input-bodyValue">Value</label>
|
||
|
|
<input type="text" id="node-input-bodyValue" placeholder="Overridable via msg.value">
|
||
|
|
</div>
|
||
|
|
<div class="form-row" id="body-sessionToken-row">
|
||
|
|
<label for="node-input-bodySessionToken">Session Token</label>
|
||
|
|
<input type="text" id="node-input-bodySessionToken" placeholder="Overridable via msg.token">
|
||
|
|
</div>
|
||
|
|
<div class="form-tips">
|
||
|
|
<p>All path params and body fields can be overridden via <code>msg</code> properties at runtime.</p>
|
||
|
|
</div>
|
||
|
|
</script>
|