@girder/core 3.2.3 → 5.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/README.md +61 -0
  2. package/package.json +79 -31
  3. package/assets/Girder_Mark.png +0 -0
  4. package/auth.js +0 -152
  5. package/collections/ApiKeyCollection.js +0 -9
  6. package/collections/AssetstoreCollection.js +0 -9
  7. package/collections/Collection.js +0 -295
  8. package/collections/CollectionCollection.js +0 -9
  9. package/collections/FileCollection.js +0 -11
  10. package/collections/FolderCollection.js +0 -11
  11. package/collections/GroupCollection.js +0 -9
  12. package/collections/ItemCollection.js +0 -11
  13. package/collections/UserCollection.js +0 -24
  14. package/collections/index.js +0 -21
  15. package/constants.js +0 -33
  16. package/dialog.js +0 -128
  17. package/events.js +0 -6
  18. package/index.js +0 -31
  19. package/main.js +0 -21
  20. package/misc.js +0 -260
  21. package/models/AccessControlledModel.js +0 -76
  22. package/models/ApiKeyModel.js +0 -31
  23. package/models/AssetstoreModel.js +0 -43
  24. package/models/CollectionCreationPolicyModel.js +0 -20
  25. package/models/CollectionModel.js +0 -12
  26. package/models/FileModel.js +0 -310
  27. package/models/FolderModel.js +0 -33
  28. package/models/GroupModel.js +0 -197
  29. package/models/ItemModel.js +0 -72
  30. package/models/MetadataMixin.js +0 -88
  31. package/models/Model.js +0 -187
  32. package/models/UserModel.js +0 -189
  33. package/models/index.js +0 -25
  34. package/pluginUtils.js +0 -11
  35. package/rest.js +0 -216
  36. package/router.js +0 -58
  37. package/routes.js +0 -231
  38. package/stylesheets/apidocs/apidocs.styl +0 -50
  39. package/stylesheets/body/adminConsole.styl +0 -21
  40. package/stylesheets/body/assetstores.styl +0 -46
  41. package/stylesheets/body/collectionList.styl +0 -39
  42. package/stylesheets/body/collectionPage.styl +0 -6
  43. package/stylesheets/body/frontPage.styl +0 -48
  44. package/stylesheets/body/groupList.styl +0 -43
  45. package/stylesheets/body/groupPage.styl +0 -116
  46. package/stylesheets/body/itemPage.styl +0 -81
  47. package/stylesheets/body/plugins.styl +0 -61
  48. package/stylesheets/body/searchResultsList.styl +0 -51
  49. package/stylesheets/body/systemConfig.styl +0 -56
  50. package/stylesheets/body/userAccount.styl +0 -57
  51. package/stylesheets/body/userList.styl +0 -79
  52. package/stylesheets/body/userPage.styl +0 -6
  53. package/stylesheets/layout/footer.styl +0 -19
  54. package/stylesheets/layout/global.styl +0 -154
  55. package/stylesheets/layout/globalNav.styl +0 -89
  56. package/stylesheets/layout/header.styl +0 -29
  57. package/stylesheets/layout/headerUser.styl +0 -33
  58. package/stylesheets/layout/layout.styl +0 -75
  59. package/stylesheets/layout/layoutVars.styl +0 -9
  60. package/stylesheets/layout/loading.styl +0 -37
  61. package/stylesheets/layout/progressArea.styl +0 -17
  62. package/stylesheets/widgets/accessWidget.styl +0 -106
  63. package/stylesheets/widgets/browserWidget.styl +0 -9
  64. package/stylesheets/widgets/hierarchyWidget.styl +0 -188
  65. package/stylesheets/widgets/markdownWidget.styl +0 -92
  66. package/stylesheets/widgets/metadataWidget.styl +0 -92
  67. package/stylesheets/widgets/searchFieldWidget.styl +0 -70
  68. package/stylesheets/widgets/taskProgress.styl +0 -41
  69. package/stylesheets/widgets/timelineWidget.styl +0 -41
  70. package/stylesheets/widgets/uploadWidget.styl +0 -43
  71. package/stylesheets/widgets/userOtpManagementWidget.styl +0 -159
  72. package/templates/body/adminConsole.pug +0 -13
  73. package/templates/body/assetstores.pug +0 -98
  74. package/templates/body/collectionList.pug +0 -40
  75. package/templates/body/collectionPage.pug +0 -36
  76. package/templates/body/filesystemImport.pug +0 -41
  77. package/templates/body/frontPage.pug +0 -84
  78. package/templates/body/groupList.pug +0 -30
  79. package/templates/body/groupPage.pug +0 -116
  80. package/templates/body/itemPage.pug +0 -61
  81. package/templates/body/plugins.pug +0 -20
  82. package/templates/body/s3Import.pug +0 -35
  83. package/templates/body/searchResults.pug +0 -15
  84. package/templates/body/searchResultsType.pug +0 -13
  85. package/templates/body/systemConfiguration.pug +0 -221
  86. package/templates/body/userAccount.pug +0 -83
  87. package/templates/body/userList.pug +0 -43
  88. package/templates/body/userPage.pug +0 -40
  89. package/templates/layout/alert.pug +0 -5
  90. package/templates/layout/layout.pug +0 -12
  91. package/templates/layout/layoutFooter.pug +0 -11
  92. package/templates/layout/layoutGlobalNav.pug +0 -7
  93. package/templates/layout/layoutHeader.pug +0 -8
  94. package/templates/layout/layoutHeaderUser.pug +0 -26
  95. package/templates/layout/layoutProgressArea.pug +0 -1
  96. package/templates/layout/loginDialog.pug +0 -30
  97. package/templates/layout/registerDialog.pug +0 -35
  98. package/templates/layout/resetPasswordDialog.pug +0 -25
  99. package/templates/widgets/accessEditor.pug +0 -23
  100. package/templates/widgets/accessEditorMixins.pug +0 -57
  101. package/templates/widgets/accessEditorNonModal.pug +0 -11
  102. package/templates/widgets/accessEntry.pug +0 -32
  103. package/templates/widgets/apiKeyList.pug +0 -50
  104. package/templates/widgets/browserWidget.pug +0 -32
  105. package/templates/widgets/checkedActionsMenu.pug +0 -46
  106. package/templates/widgets/collectionInfoDialog.pug +0 -37
  107. package/templates/widgets/confirmDialog.pug +0 -14
  108. package/templates/widgets/dateTimeRangeWidget.pug +0 -20
  109. package/templates/widgets/dateTimeWidget.pug +0 -8
  110. package/templates/widgets/editApiKeyWidget.pug +0 -43
  111. package/templates/widgets/editAssetstoreWidget.pug +0 -78
  112. package/templates/widgets/editCollectionWidget.pug +0 -27
  113. package/templates/widgets/editFileWidget.pug +0 -21
  114. package/templates/widgets/editFolderWidget.pug +0 -27
  115. package/templates/widgets/editGroupWidget.pug +0 -54
  116. package/templates/widgets/editItemWidget.pug +0 -27
  117. package/templates/widgets/fileInfoDialog.pug +0 -33
  118. package/templates/widgets/fileList.pug +0 -33
  119. package/templates/widgets/folderInfoDialog.pug +0 -42
  120. package/templates/widgets/folderList.pug +0 -21
  121. package/templates/widgets/groupAdminList.pug +0 -33
  122. package/templates/widgets/groupInviteDialog.pug +0 -76
  123. package/templates/widgets/groupInviteList.pug +0 -14
  124. package/templates/widgets/groupMemberList.pug +0 -39
  125. package/templates/widgets/groupModList.pug +0 -23
  126. package/templates/widgets/hierarchyBreadcrumb.pug +0 -37
  127. package/templates/widgets/hierarchyPaginated.pug +0 -19
  128. package/templates/widgets/hierarchyWidget.pug +0 -96
  129. package/templates/widgets/itemBreadcrumb.pug +0 -16
  130. package/templates/widgets/itemList.pug +0 -27
  131. package/templates/widgets/jsonMetadatumEditWidget.pug +0 -13
  132. package/templates/widgets/jsonMetadatumView.pug +0 -6
  133. package/templates/widgets/loadingAnimation.pug +0 -4
  134. package/templates/widgets/markdownWidget.pug +0 -34
  135. package/templates/widgets/metadataWidget.pug +0 -16
  136. package/templates/widgets/metadatumEditWidget.pug +0 -15
  137. package/templates/widgets/metadatumView.pug +0 -5
  138. package/templates/widgets/newAssetstore.pug +0 -118
  139. package/templates/widgets/paginateWidget.pug +0 -7
  140. package/templates/widgets/pluginConfigBreadcrumb.pug +0 -13
  141. package/templates/widgets/rootSelectorWidget.pug +0 -13
  142. package/templates/widgets/searchField.pug +0 -10
  143. package/templates/widgets/searchHelp.pug +0 -12
  144. package/templates/widgets/searchModeSelect.pug +0 -9
  145. package/templates/widgets/searchResults.pug +0 -14
  146. package/templates/widgets/sortCollectionWidget.pug +0 -14
  147. package/templates/widgets/taskProgress.pug +0 -16
  148. package/templates/widgets/timeline.pug +0 -15
  149. package/templates/widgets/uploadWidget.pug +0 -15
  150. package/templates/widgets/uploadWidgetMixins.pug +0 -31
  151. package/templates/widgets/uploadWidgetNonModal.pug +0 -10
  152. package/templates/widgets/userOtpBegin.pug +0 -4
  153. package/templates/widgets/userOtpDisable.pug +0 -6
  154. package/templates/widgets/userOtpEnable.pug +0 -44
  155. package/utilities/EventStream.js +0 -177
  156. package/utilities/PluginUtils.js +0 -36
  157. package/utilities/S3UploadHandler.js +0 -303
  158. package/utilities/index.js +0 -9
  159. package/utilities/jquery/girderEnable.js +0 -19
  160. package/utilities/jquery/girderModal.js +0 -48
  161. package/version.js +0 -10
  162. package/views/App.js +0 -359
  163. package/views/View.js +0 -78
  164. package/views/body/AdminView.js +0 -29
  165. package/views/body/AssetstoresView.js +0 -235
  166. package/views/body/CollectionView.js +0 -188
  167. package/views/body/CollectionsView.js +0 -120
  168. package/views/body/FilesystemImportView.js +0 -83
  169. package/views/body/FolderView.js +0 -54
  170. package/views/body/FrontPageView.js +0 -47
  171. package/views/body/GroupView.js +0 -336
  172. package/views/body/GroupsView.js +0 -106
  173. package/views/body/ItemView.js +0 -177
  174. package/views/body/PluginsView.js +0 -73
  175. package/views/body/S3ImportView.js +0 -80
  176. package/views/body/SearchResultsView.js +0 -162
  177. package/views/body/SystemConfigurationView.js +0 -196
  178. package/views/body/UserAccountView.js +0 -179
  179. package/views/body/UserView.js +0 -165
  180. package/views/body/UsersView.js +0 -124
  181. package/views/body/index.js +0 -37
  182. package/views/index.js +0 -13
  183. package/views/layout/FooterView.js +0 -29
  184. package/views/layout/GlobalNavView.js +0 -103
  185. package/views/layout/HeaderUserView.js +0 -45
  186. package/views/layout/HeaderView.js +0 -83
  187. package/views/layout/LoginView.js +0 -100
  188. package/views/layout/ProgressListView.js +0 -70
  189. package/views/layout/RegisterView.js +0 -101
  190. package/views/layout/ResetPasswordView.js +0 -70
  191. package/views/layout/index.js +0 -19
  192. package/views/widgets/AccessWidget.js +0 -427
  193. package/views/widgets/ApiKeyListWidget.js +0 -140
  194. package/views/widgets/BrowserWidget.js +0 -317
  195. package/views/widgets/CheckedMenuWidget.js +0 -68
  196. package/views/widgets/CollectionInfoWidget.js +0 -40
  197. package/views/widgets/DateTimeRangeWidget.js +0 -179
  198. package/views/widgets/DateTimeWidget.js +0 -109
  199. package/views/widgets/EditApiKeyWidget.js +0 -122
  200. package/views/widgets/EditAssetstoreWidget.js +0 -148
  201. package/views/widgets/EditCollectionWidget.js +0 -93
  202. package/views/widgets/EditFileWidget.js +0 -56
  203. package/views/widgets/EditFolderWidget.js +0 -116
  204. package/views/widgets/EditGroupWidget.js +0 -125
  205. package/views/widgets/EditItemWidget.js +0 -110
  206. package/views/widgets/FileInfoWidget.js +0 -26
  207. package/views/widgets/FileListWidget.js +0 -151
  208. package/views/widgets/FolderInfoWidget.js +0 -39
  209. package/views/widgets/FolderListWidget.js +0 -106
  210. package/views/widgets/GroupAdminsWidget.js +0 -88
  211. package/views/widgets/GroupInvitesWidget.js +0 -56
  212. package/views/widgets/GroupMembersWidget.js +0 -185
  213. package/views/widgets/GroupModsWidget.js +0 -77
  214. package/views/widgets/HierarchyWidget.js +0 -1097
  215. package/views/widgets/ItemBreadcrumbWidget.js +0 -38
  216. package/views/widgets/ItemListWidget.js +0 -345
  217. package/views/widgets/LoadingAnimation.js +0 -17
  218. package/views/widgets/MarkdownWidget.js +0 -217
  219. package/views/widgets/MetadataWidget.js +0 -504
  220. package/views/widgets/NewAssetstoreWidget.js +0 -81
  221. package/views/widgets/PaginateWidget.js +0 -37
  222. package/views/widgets/PluginConfigBreadcrumbWidget.js +0 -33
  223. package/views/widgets/RootSelectorWidget.js +0 -192
  224. package/views/widgets/SearchFieldWidget.js +0 -365
  225. package/views/widgets/SearchPaginateWidget.js +0 -149
  226. package/views/widgets/SortCollectionWidget.js +0 -53
  227. package/views/widgets/TaskProgressWidget.js +0 -91
  228. package/views/widgets/TimelineWidget.js +0 -155
  229. package/views/widgets/UploadWidget.js +0 -340
  230. package/views/widgets/UserOtpManagementWidget.js +0 -105
  231. package/views/widgets/index.js +0 -75
@@ -1,32 +0,0 @@
1
- div(class=`g-${type}-access-entry`, resourceid=entry.id)
2
- .g-access-col-left
3
- - var icon = type === 'group' ? 'users' : 'user';
4
- .g-access-icon
5
- i(class=`icon-${icon}`)
6
- .g-access-desc
7
- .g-desc-title= entry.title
8
- .g-desc-subtitle= entry.subtitle
9
- .g-access-col-right
10
- if !hideAccessType
11
- select.form-control.input-sm
12
- option(value=accessTypes.READ, selected=(entry.level === accessTypes.READ ? 'selected' : null)) Can view
13
- option(value=accessTypes.WRITE, selected=(entry.level === accessTypes.WRITE ? 'selected' : null)) Can edit
14
- option(value=accessTypes.ADMIN, selected=(entry.level === accessTypes.ADMIN ? 'selected' : null)) Is owner
15
- .g-access-action-container
16
- if !noAccessFlag && _.keys(flagList).length
17
- a.g-action-manage-flags(title="Access flags")
18
- i.g-flag-icon.icon-flag
19
- .g-flag-count-indicator(class=(entry.flags && entry.flags.length ? null : "hide"))= (entry.flags || []).length
20
- .g-flags-popover-container.hide(resourcetype=type, resourceid=entry.id, title="Access flags")
21
- each flag, key in flagList
22
- - var checked = _.contains(entry.flags, key) ? 'checked' : null;
23
- - var disabled = (!isAdmin && flag.admin) ? 'disabled' : null;
24
- .checkbox(class=disabled)
25
- label.g-flag-label(title=flag.description)
26
- input.g-flag-checkbox(resourcetype=type, resourceid=entry.id, flag=key, type="checkbox",
27
- checked=checked, disabled=disabled)
28
- span= flag.name
29
- button.g-close-flags-popover.btn.btn-xs.btn-default Close
30
-
31
- a.g-action-remove-access(title="Remove access")
32
- i.icon-cancel
@@ -1,50 +0,0 @@
1
- if apiKeys.length === 0
2
- .g-api-keys-empty-message You have no existing API keys. Click the button below to create one.
3
- else
4
- .g-api-key-list-header Your API keys
5
- table.g-api-key-table
6
- thead: tr
7
- th(col="name") Name
8
- th(col="key") Key
9
- th(col="scope") Scope
10
- th(col="active") Active
11
- th(col="tokenDuration") Token duration
12
- th(col="lastUse") Last used
13
- th(col="actions") Actions
14
- tbody
15
- each apiKey in apiKeys
16
- tr.g-api-key-container(api-key-id=apiKey.id, cid=apiKey.cid)
17
- td(col="name")= apiKey.get('name')
18
- td(col="key"): a.g-show-api-key(data-toggle="popover", data-content=apiKey.get('key')) show
19
- td(col="scope")
20
- if apiKey.get('scope')
21
- span Custom scopes
22
- else
23
- span Full access
24
- td(col="active")= apiKey.get('active') ? 'Yes' : 'No'
25
- td(col="tokenDuration")
26
- if apiKey.get('tokenDuration')
27
- span #{apiKey.get('tokenDuration')} days
28
- else
29
- span Default
30
- td(col="lastUse")
31
- if apiKey.get('lastUse')
32
- - var lastUse = moment(apiKey.get('lastUse'))
33
- span(title=lastUse)= lastUse.fromNow()
34
- else
35
- span Never
36
- td(col="actions")
37
- button.btn.btn-sm.btn-primary.g-api-key-edit(title="Edit")
38
- i.icon-edit
39
- if apiKey.get('active')
40
- button.btn.btn-sm.btn-warning.g-api-key-toggle-active(title="Deactivate")
41
- i.icon-minus-circled
42
- else
43
- button.btn.btn-sm.btn-success.g-api-key-toggle-active(title="Activate")
44
- i.icon-plus-circled
45
- button.btn.btn-sm.btn-danger.g-api-key-delete(title="Delete key")
46
- i.icon-cancel
47
-
48
- .g-paginate-container
49
- .g-api-key-list-bottom-buttons
50
- button.btn.btn-default.g-api-key-new Create new key
@@ -1,32 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- .modal-header
4
- button.close(data-dismiss='modal', aria-hidden='true', type='button') ×
5
- h4.modal-title
6
- = title
7
-
8
- .modal-body.g-browser-widget
9
- .g-hierarchy-root-container.form-group
10
- .g-hierarchy-widget-container.g-wait-for-root.form-group.hidden
11
-
12
- if input
13
- .g-input-element.form-group
14
- label.control-label(for='g-input-element') #{input.label}
15
- input#g-input-element.form-control(
16
- type='text', placeholder=input.placeholder, value=input.default)
17
-
18
- .help-block.g-wait-for-root.hidden
19
- = help
20
-
21
- if preview
22
- .g-selected-model.g-wait-for-root.form-group.hidden
23
- label.control-label(for='g-selected-model') Selected #{selectItem ? 'item' : 'folder'}
24
- input#g-selected-model.form-control(type='text', readonly, value=defaultSelectedResource)
25
-
26
- .g-validation-failed-message.hidden
27
-
28
- .modal-footer
29
- a.btn.btn-small.btn-default(data-dismiss='modal') Cancel
30
- button.g-submit-button.btn.btn-small.btn-primary(type='submit')
31
- i.icon-edit
32
- = submit
@@ -1,46 +0,0 @@
1
- li.g-checked-menu-header.dropdown-header(role="presentation")
2
- if folderCount
3
- i.icon-folder
4
- span.g-checked-folder-count #{folderCount}
5
- if itemCount
6
- i.icon-doc-text-inv
7
- span.g-checked-item-count #{itemCount}
8
- if pickedCount
9
- i.icon-plus-circled
10
- span.g-checked-picked-count #{pickedCount}
11
- if folderCount || itemCount
12
- li
13
- a.g-download-checked
14
- i.icon-download
15
- | Download checked resources
16
- li
17
- a.g-pick-checked
18
- i.icon-plus-circled
19
- | Pick checked resources for Move or Copy
20
-
21
- if HierarchyWidget.getPickedResources()
22
- li.g-admin.divider
23
- if pickedMoveAllowed
24
- li
25
- a.g-move-picked
26
- i.icon-move
27
- | Move picked resources here
28
- if pickedCopyAllowed
29
- li
30
- a.g-copy-picked
31
- i.icon-paste
32
- | Copy picked resources here
33
- li
34
- a.g-clear-picked
35
- i.icon-minus-circled
36
- | Clear picked resources
37
- if pickedDesc
38
- | (#{pickedDesc})
39
-
40
- if folderCount || itemCount
41
- if (minFolderLevel >= AccessType.ADMIN && minItemLevel >= AccessType.WRITE)
42
- li.g-admin.divider
43
- li.g-admin
44
- a.g-delete-checked
45
- i.icon-trash
46
- | Delete checked resources
@@ -1,37 +0,0 @@
1
- mixin dateInfo(intro, property)
2
- .g-collection-info-line(property=property)
3
- i.icon-clock
4
- span= intro
5
- span.g-bold-part= formatDate(collection.get(property), DATE_SECOND)
6
-
7
- .modal-dialog
8
- .modal-content
9
- .modal-header
10
- button.close(data-dismiss="modal", aria-hidden="true") ×
11
- h4.modal-title Collection information
12
- .g-dialog-subtitle
13
- i.icon-sitemap
14
- span= collection.name()
15
- .modal-body
16
- if collection.get('description')
17
- .g-info-dialog-description!= renderMarkdown(collection.get('description'))
18
-
19
- .g-collection-info-lines
20
- +dateInfo('Created ', 'created')
21
- if collection.get('created') !== collection.get('updated')
22
- +dateInfo('Last updated ', 'updated')
23
-
24
- .g-collection-info-line(property="size")
25
- i.icon-floppy
26
- | Total size: #[span.g-bold-part= formatSize(collection.get('size'))]
27
-
28
- .g-collection-info-line(property="nFolders")
29
- i.icon-folder
30
- | Contains #[span.g-bold-part= collection.get('nFolders')] subfolders
31
-
32
- .g-collection-info-line(property="id")
33
- i.icon-share
34
- | Unique ID: #[span.g-bold-part= collection.id]
35
-
36
- .modal-footer
37
- a.btn.btn-small.btn-default(data-dismiss="modal") Close
@@ -1,14 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- .modal-body
4
- p
5
- if params.msgConfirmation
6
- p.g-additional-text
7
- p.g-additional-instruction
8
- | You need to enter '#{params.yesText.toUpperCase()} #{params.name}'
9
- | and then click on the "#{params.yesText}" button
10
- input#g-confirm-text.input-sm.form-control(type='text', name='confirmMsg')
11
- spam.g-msg-error
12
- .modal-footer
13
- a.btn.btn-small.btn-default(data-dismiss="modal")= params.noText
14
- a#g-confirm-button.btn.btn-small(class=params.yesClass)= params.yesText
@@ -1,20 +0,0 @@
1
- .form-group
2
- label.control-label= fromLabel
3
- if showIcon
4
- .input-group.date.g-datetime-widget-from
5
- input.input-sm.form-control(type="text")
6
- .input-group-addon
7
- span.icon-calendar
8
- else
9
- .input-group.date
10
- input.input-sm.form-control.g-datetime-widget-from(type="text")
11
- .form-group
12
- label.control-label= toLabel
13
- if showIcon
14
- .input-group.date.g-datetime-widget-to
15
- input.input-sm.form-control(type="text")
16
- .input-group-addon
17
- span.icon-calendar
18
- else
19
- .input-group.date
20
- input.input-sm.form-control.g-datetime-widget-to(type="text")
@@ -1,8 +0,0 @@
1
- if showIcon
2
- .input-group.date.g-datetime-widget
3
- input.input-sm.form-control(type="text")
4
- span.input-group-addon
5
- span.icon-calendar
6
- else
7
- .input-group
8
- input.input-sm.form-control.g-datetime-widget(type="text")
@@ -1,43 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-api-key-edit-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title
7
- if apiKey
8
- | Edit API key
9
- else
10
- | Create new API key
11
- .modal-body
12
- .form-group
13
- label.control-label(for="g-api-key-name") Name
14
- input#g-api-key-name.input-sm.form-control(type="text", placeholder="Enter a name for this API key")
15
- .form-group
16
- label.control-label(for="g-api-key-token-duration") Token duration in days (optional)
17
- input#g-api-key-token-duration.input-sm.form-control(placeholder="Enter number of days")
18
-
19
- label.control-label Permission scope for this key
20
- .g-scope-selection-container
21
- .radio
22
- label
23
- input#g-scope-mode-full(type="radio", name="scopeType", value="full", checked)
24
- | Allow all actions on behalf of my user
25
- .radio
26
- label
27
- input#g-scope-mode-custom(type="radio", name="scopeType", value="custom")
28
- | Only allow specific permissions for this key:
29
- each tokenScope in tokenScopes
30
- .checkbox.disabled
31
- label.g-custom-scope-description(title=tokenScope.description)
32
- input.g-custom-scope-checkbox(type="checkbox", value=tokenScope.id, disabled)
33
- span= tokenScope.name
34
- .g-validation-failed-message
35
- .modal-footer
36
- a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
37
- button.g-save-api-key.btn.btn-small.btn-primary(type="submit")
38
- if apiKey
39
- i.icon-edit
40
- | Save
41
- else
42
- i.icon-plus-squared
43
- | Create
@@ -1,78 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-assetstore-edit-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title
7
- | Edit assetstore
8
- .modal-body
9
- .g-assetstore-form-fields
10
- .form-group
11
- label.control-label(for="g-edit-name") Assetstore Name
12
- input#g-edit-name.input-sm.form-control(type="text", placeholder="Name")
13
- if assetstore.get('type') === types.FILESYSTEM
14
- .form-group
15
- label.control-label(for="g-edit-fs-root") Root directory
16
- input#g-edit-fs-root.input-sm.form-control(type="text", placeholder="Root directory")
17
- .form-group
18
- label.control-label(for="g-edit-fs-perms") File creation permissions (octal)
19
- input#g-edit-fs-perms.input-sm.form-control(type="text", placeholder="600")
20
- if assetstore.get('type') === types.GRIDFS
21
- .form-group
22
- label.control-label(for="g-edit-gridfs-db") Database name
23
- input#g-edit-gridfs-db.input-sm.form-control(type="text", placeholder="Database name")
24
- .form-group
25
- label.control-label(for="g-edit-gridfs-mongohost") Mongo Host URI
26
- input#g-edit-gridfs-mongohost.input-sm.form-control(
27
- type="text", placeholder="Mongo host uri (defaults to the main Girder database)",
28
- title="The URI is of the form mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]")
29
- .form-group
30
- label.control-label(for="g-edit-gridfs-replicaset") Replica Set
31
- input#g-edit-gridfs-replicaset.input-sm.form-control(type="text", placeholder="Replica set name (blank if not using a replica set)")
32
- if assetstore.get('type') === types.S3
33
- .form-group
34
- label.control-label(for="g-edit-s3-bucket") S3 bucket name
35
- input#g-edit-s3-bucket.input-sm.form-control(type="text", placeholder="Bucket")
36
- .form-group
37
- label.control-label(for="g-edit-s3-prefix") Path prefix (optional)
38
- input#g-edit-s3-prefix.input-sm.form-control(type="text", placeholder="Prefix")
39
- .form-group
40
- label.control-label(for="g-edit-s3-access-key-id") Access key ID
41
- input#g-edit-s3-access-key-id.input-sm.form-control(type="text", placeholder="Access key ID")
42
- .form-group
43
- label.control-label(for="g-edit-s3-secret") Secret access key
44
- input#g-edit-s3-secret.input-sm.form-control(type="text", placeholder="Secret access key")
45
- .form-group
46
- label.control-label(for="g-edit-s3-service") Service
47
- input#g-edit-s3-service.input-sm.form-control(type="text", placeholder="Service", title="The service if different from s3.amazonaws.com, such as storage.googleapis.com.")
48
- .form-group
49
- label.control-label(for="g-edit-s3-region") Region
50
- input#g-edit-s3-region.input-sm.form-control(type="text", placeholder="Region")
51
- .checkbox
52
- label
53
- input#g-edit-s3-infercredentials(type="checkbox")
54
- | Infer Credentials
55
- .checkbox
56
- label
57
- input#g-edit-s3-readonly(type="checkbox")
58
- | Read only
59
- .checkbox
60
- label
61
- input#g-edit-s3-sse(type="checkbox")
62
- | Server side encryption
63
- if assetstore.get('hasFiles')
64
- div
65
- i.icon-attention
66
- | #[b Warning:] This assetstore contains files. If you edit where the assetstore is located or how it is reached, those files may become unreachable.
67
- .g-validation-failed-message
68
- .modal-footer
69
- a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
70
- if !assetstore.get('hasFiles')
71
- button.g-save-assetstore.btn.btn-small.btn-primary(type="submit")
72
- i.icon-edit
73
- | Save
74
- else
75
- button.g-save-assetstore.btn.btn-small.btn-primary.btn-danger(type="submit")
76
- i.icon-edit
77
- | Save
78
- i.icon-attention
@@ -1,27 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-collection-edit-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title
7
- if (create)
8
- | Create collection
9
- else
10
- | Edit collection
11
- .modal-body
12
- .form-group
13
- label.control-label(for="g-name") Name
14
- input#g-name.input-sm.form-control(type="text", placeholder="Enter collection name")
15
- .form-group
16
- label.control-label Description (optional)
17
- .g-description-editor-container
18
- .g-validation-failed-message
19
- .modal-footer
20
- a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
21
- button.g-save-collection.btn.btn-small.btn-primary(type="submit")
22
- if (create)
23
- i.icon-plus-squared
24
- | Create
25
- else
26
- i.icon-edit
27
- | Save
@@ -1,21 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-file-edit-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title Edit file
7
- .modal-body
8
- .form-group
9
- label.control-label(for="g-name") Name
10
- input#g-name.input-sm.form-control(
11
- type="text", placeholder="Enter file name", value=file.name())
12
- .form-group
13
- label.control-label(for="g-mimetype") MIME type
14
- input#g-mimetype.input-sm.form-control(
15
- type="text", placeholder="Enter MIME type", value=file.get('mimeType'))
16
- .g-validation-failed-message
17
- .modal-footer
18
- a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
19
- button.g-save-file.btn.btn-small.btn-primary(type="submit")
20
- i.icon-edit
21
- | Save
@@ -1,27 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-folder-edit-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title
7
- if (folder)
8
- | Edit folder
9
- else
10
- | Create folder
11
- .modal-body
12
- .form-group
13
- label.control-label(for="g-name") Name
14
- input#g-name.input-sm.form-control(type="text", placeholder="Enter folder name")
15
- .form-group
16
- label.control-label Description (optional)
17
- .g-description-editor-container
18
- .g-validation-failed-message
19
- .modal-footer
20
- a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
21
- button.g-save-folder.btn.btn-small.btn-primary(type="submit")
22
- if (folder)
23
- i.icon-edit
24
- | Save
25
- else
26
- i.icon-plus-squared
27
- | Create
@@ -1,54 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-group-edit-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title
7
- if (group)
8
- | Edit group
9
- else
10
- | Create group
11
- .modal-body
12
- .g-public-container
13
- .radio
14
- label
15
- input#g-access-private(type="radio", name="privacy",
16
- checked=(publicFlag ? undefined : "checked"))
17
- i.icon-lock
18
- | Private — Only members can see this group
19
- .radio
20
- label
21
- input#g-access-public(type="radio", name="privacy",
22
- checked=(publicFlag ? "checked" : undefined))
23
- i.icon-globe
24
- | Public — Anyone can see this group
25
- .form-group
26
- label.control-label(for="g-name") Name
27
- input#g-name.input-sm.form-control(type="text", placeholder="Enter group name")
28
- .form-group
29
- label.control-label(for="g-description") Description (optional)
30
- textarea#g-description.input-sm.form-control(placeholder="Enter group description")
31
- if groupAddAllowed
32
- .form-group
33
- label.control-label(for="g-add-to-group") Allow members to be directly added to this group
34
- select#g-add-to-group.form-control.input-sm
35
- if addToGroupPolicy === 'yesadmin'
36
- option(value='default', selected=(addAllowed === 'default')) Default - Yes, allow group administrators to add members
37
- else if addToGroupPolicy === 'yesmod'
38
- option(value='default', selected=(addAllowed === 'default')) Default - Yes, allow group administrators and moderators to add members
39
- else
40
- option(value='default', selected=(addAllowed === 'default')) Default - No
41
- option(value='no', selected=(addAllowed === 'no')) No - members must be invited and accept invitations
42
- if groupAddAllowed === 'mod'
43
- option(value='yesmod', selected=(addAllowed === 'yesmod')) Yes - allow group administrators and moderators to directly add members
44
- option(value='yesadmin', selected=(addAllowed === 'yesadmin')) Yes - allow group administrators to directly add members
45
- .g-validation-failed-message
46
- .modal-footer
47
- a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
48
- button.g-save-group.btn.btn-small.btn-primary(type="submit")
49
- if (group)
50
- i.icon-edit
51
- | Save
52
- else
53
- i.icon-plus-squared
54
- | Create
@@ -1,27 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-item-edit-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title
7
- if (item)
8
- | Edit item
9
- else
10
- | Create item
11
- .modal-body
12
- .form-group
13
- label.control-label(for="g-name") Name
14
- input#g-name.input-sm.form-control(type="text", placeholder="Enter item name")
15
- .form-group
16
- label.control-label Description (optional)
17
- .g-description-editor-container
18
- .g-validation-failed-message
19
- .modal-footer
20
- a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
21
- button.g-save-item.btn.btn-small.btn-primary(type="submit")
22
- if (item)
23
- i.icon-edit
24
- | Save
25
- else
26
- i.icon-plus-squared
27
- | Create
@@ -1,33 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- .modal-header
4
- button.close(data-dismiss="modal", aria-hidden="true") ×
5
- h4.modal-title File information
6
- .g-dialog-subtitle
7
- i.icon-doc-inv
8
- span= file.name()
9
- .modal-body
10
- .g-file-info-lines
11
- .g-file-info-line(property="created")
12
- i.icon-clock
13
- span= 'Created '
14
- span.g-bold-part= formatDate(file.get('created'), DATE_SECOND)
15
-
16
- .g-file-info-line(property="mimeType")
17
- i.icon-info
18
- span MIME type:
19
- span.g-bold-part #{file.get('mimeType') || 'unknown'}
20
-
21
- if file.has('size')
22
- .g-file-info-line(property="size")
23
- i.icon-hdd
24
- span Size:
25
- span.g-bold-part #{file.get('size')} bytes
26
-
27
- .g-file-info-line(property="id")
28
- i.icon-share
29
- span Unique ID:
30
- span.g-bold-part #{file.id}
31
-
32
- .modal-footer
33
- a.btn.btn-small.btn-default(data-dismiss="modal") Close
@@ -1,33 +0,0 @@
1
- ul.g-file-list
2
- each file in files
3
- li.g-file-list-entry
4
- a.g-file-list-link(cid=file.cid, title="Download file",
5
- target=file.get('linkUrl') ? '_blank' : '_self', href=file.downloadUrl(),
6
- rel="noopener noreferrer")
7
- if file.get('linkUrl')
8
- i.icon-link
9
- span.g-file-name= file.name()
10
- i.icon-link-ext
11
- else
12
- i.icon-doc-inv
13
- = file.name()
14
- a.g-view-inline(title="View in browser", target="_blank", rel="noopener noreferrer",
15
- href=file.downloadUrl({contentDisposition: 'inline'}))
16
- i.icon-eye
17
- a.g-show-info(file-cid=file.cid, title="Show info")
18
- i.icon-info
19
- if file.has('size')
20
- .g-file-size= formatSize(file.get('size'))
21
- .g-file-actions-container(file-cid=file.cid)
22
- if parentItem && parentItem.get('_accessLevel') >= AccessType.WRITE
23
- a.g-update-info(title="Edit file info")
24
- i.icon-edit
25
- a.g-update-contents(title="Replace file contents")
26
- i.icon-upload
27
- a.g-delete-file(title="Delete file")
28
- i.icon-cancel
29
- if hasMore
30
- li.g-show-more
31
- a.g-show-more-files
32
- i.icon-level-down
33
- | Show more files...
@@ -1,42 +0,0 @@
1
- mixin dateInfo(intro, property)
2
- .g-folder-info-line(property=property)
3
- i.icon-clock
4
- span= intro
5
- span.g-bold-part= formatDate(folder.get(property), DATE_SECOND)
6
-
7
- .modal-dialog
8
- .modal-content
9
- .modal-header
10
- button.close(data-dismiss="modal", aria-hidden="true") ×
11
- h4.modal-title Folder information
12
- .g-dialog-subtitle
13
- i.icon-folder
14
- span= folder.name()
15
- .modal-body
16
- if folder.get('description')
17
- .g-info-dialog-description.g-folder-description!= renderMarkdown(folder.get('description'))
18
-
19
- .g-folder-info-lines
20
- +dateInfo('Created ', 'created')
21
- if folder.get('created') !== folder.get('updated')
22
- +dateInfo('Last updated ', 'updated')
23
-
24
- .g-folder-info-line(property="nItems")
25
- i.icon-doc-text-inv
26
- span Contains
27
- span.g-bold-part #{folder.get('nItems')} items
28
- span totaling
29
- span.g-bold-part #{formatSize(folder.get('size'))}
30
-
31
- .g-folder-info-line(property="nFolders")
32
- i.icon-folder
33
- span Contains
34
- span.g-bold-part #{folder.get('nFolders')} subfolders
35
-
36
- .g-folder-info-line(property="id")
37
- i.icon-share
38
- span Unique ID:
39
- span.g-bold-part #{folder.id}
40
-
41
- .modal-footer
42
- a.btn.btn-small.btn-default(data-dismiss="modal") Close
@@ -1,21 +0,0 @@
1
- ul.g-folder-list
2
- each folder in folders
3
- li.g-folder-list-entry(public=(folder.get('public') ? 'true' : 'false'))
4
- if checkboxes
5
- input.g-list-checkbox(type="checkbox", g-folder-cid=folder.cid)
6
- a.g-folder-list-link(g-folder-cid=folder.cid, href=`#folder/${folder.id}`)
7
- i.icon-folder
8
- = folder.get('name')
9
- i.icon-right-dir
10
- .g-folder-privacy
11
- if folder.get('public')
12
- i.icon-globe
13
- | Public
14
- else
15
- i.icon-lock
16
- | Private
17
- if hasMore
18
- li.g-show-more
19
- a.g-show-more-folders
20
- i.icon-level-down
21
- | Show more folders...