@girder/core 5.0.0-beta.1 → 5.0.0

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 (238) hide show
  1. package/dist-lib/Girder_Favicon.png +0 -0
  2. package/dist-lib/Girder_Mark.png +0 -0
  3. package/dist-lib/girder-core.css +2 -0
  4. package/dist-lib/girder-core.js +60421 -0
  5. package/dist-lib/girder-core.js.map +1 -0
  6. package/dist-lib/girder-core.umd.cjs +1484 -0
  7. package/dist-lib/girder-core.umd.cjs.map +1 -0
  8. package/dist-lib/index.d.ts +1 -0
  9. package/dist-lib/src/auth.js +112 -0
  10. package/dist-lib/src/collections/ApiKeyCollection.js +9 -0
  11. package/dist-lib/src/collections/AssetstoreCollection.js +10 -0
  12. package/dist-lib/src/collections/Collection.js +295 -0
  13. package/dist-lib/src/collections/CollectionCollection.js +9 -0
  14. package/dist-lib/src/collections/FileCollection.js +11 -0
  15. package/dist-lib/src/collections/FolderCollection.js +11 -0
  16. package/dist-lib/src/collections/GroupCollection.js +9 -0
  17. package/dist-lib/src/collections/ItemCollection.js +11 -0
  18. package/dist-lib/src/collections/UserCollection.js +24 -0
  19. package/dist-lib/src/collections/index.js +21 -0
  20. package/dist-lib/src/constants.js +32 -0
  21. package/dist-lib/src/dialog.js +128 -0
  22. package/dist-lib/src/events.js +6 -0
  23. package/dist-lib/src/index.ts +80 -0
  24. package/dist-lib/src/main.ts +61 -0
  25. package/dist-lib/src/misc.js +260 -0
  26. package/dist-lib/src/models/AccessControlledModel.js +76 -0
  27. package/dist-lib/src/models/ApiKeyModel.js +31 -0
  28. package/dist-lib/src/models/AssetstoreModel.js +43 -0
  29. package/dist-lib/src/models/CollectionCreationPolicyModel.js +20 -0
  30. package/dist-lib/src/models/CollectionModel.js +12 -0
  31. package/dist-lib/src/models/FileModel.js +310 -0
  32. package/dist-lib/src/models/FolderModel.js +33 -0
  33. package/dist-lib/src/models/GroupModel.js +197 -0
  34. package/dist-lib/src/models/ItemModel.js +72 -0
  35. package/dist-lib/src/models/MetadataMixin.js +88 -0
  36. package/dist-lib/src/models/Model.js +187 -0
  37. package/dist-lib/src/models/UserModel.js +189 -0
  38. package/dist-lib/src/models/index.js +25 -0
  39. package/dist-lib/src/pluginUtils.js +11 -0
  40. package/dist-lib/src/rest.js +221 -0
  41. package/dist-lib/src/router.js +58 -0
  42. package/dist-lib/src/routes.js +229 -0
  43. package/dist-lib/src/stylesheets/apidocs/apidocs.styl +50 -0
  44. package/dist-lib/src/stylesheets/body/adminConsole.styl +21 -0
  45. package/dist-lib/src/stylesheets/body/assetstores.styl +46 -0
  46. package/dist-lib/src/stylesheets/body/collectionList.styl +39 -0
  47. package/dist-lib/src/stylesheets/body/collectionPage.styl +6 -0
  48. package/dist-lib/src/stylesheets/body/frontPage.styl +48 -0
  49. package/dist-lib/src/stylesheets/body/groupList.styl +43 -0
  50. package/dist-lib/src/stylesheets/body/groupPage.styl +116 -0
  51. package/dist-lib/src/stylesheets/body/itemPage.styl +81 -0
  52. package/dist-lib/src/stylesheets/body/plugins.styl +61 -0
  53. package/dist-lib/src/stylesheets/body/searchResultsList.styl +51 -0
  54. package/dist-lib/src/stylesheets/body/systemConfig.styl +56 -0
  55. package/dist-lib/src/stylesheets/body/userAccount.styl +57 -0
  56. package/dist-lib/src/stylesheets/body/userList.styl +79 -0
  57. package/dist-lib/src/stylesheets/body/userPage.styl +6 -0
  58. package/dist-lib/src/stylesheets/layout/footer.styl +19 -0
  59. package/dist-lib/src/stylesheets/layout/global.styl +154 -0
  60. package/dist-lib/src/stylesheets/layout/globalNav.styl +89 -0
  61. package/dist-lib/src/stylesheets/layout/header.styl +29 -0
  62. package/dist-lib/src/stylesheets/layout/headerUser.styl +33 -0
  63. package/dist-lib/src/stylesheets/layout/layout.styl +75 -0
  64. package/dist-lib/src/stylesheets/layout/layoutVars.styl +9 -0
  65. package/dist-lib/src/stylesheets/layout/loading.styl +37 -0
  66. package/dist-lib/src/stylesheets/layout/progressArea.styl +17 -0
  67. package/dist-lib/src/stylesheets/widgets/accessWidget.styl +106 -0
  68. package/dist-lib/src/stylesheets/widgets/browserWidget.styl +9 -0
  69. package/dist-lib/src/stylesheets/widgets/hierarchyWidget.styl +188 -0
  70. package/dist-lib/src/stylesheets/widgets/markdownWidget.styl +92 -0
  71. package/dist-lib/src/stylesheets/widgets/metadataWidget.styl +92 -0
  72. package/dist-lib/src/stylesheets/widgets/searchFieldWidget.styl +70 -0
  73. package/dist-lib/src/stylesheets/widgets/taskProgress.styl +41 -0
  74. package/dist-lib/src/stylesheets/widgets/timelineWidget.styl +41 -0
  75. package/dist-lib/src/stylesheets/widgets/uploadWidget.styl +43 -0
  76. package/dist-lib/src/stylesheets/widgets/userOtpManagementWidget.styl +159 -0
  77. package/dist-lib/src/templates/body/adminConsole.pug +13 -0
  78. package/dist-lib/src/templates/body/assetstores.pug +83 -0
  79. package/dist-lib/src/templates/body/collectionList.pug +40 -0
  80. package/dist-lib/src/templates/body/collectionPage.pug +36 -0
  81. package/dist-lib/src/templates/body/filesystemImport.pug +41 -0
  82. package/dist-lib/src/templates/body/frontPage.pug +83 -0
  83. package/dist-lib/src/templates/body/groupList.pug +30 -0
  84. package/dist-lib/src/templates/body/groupPage.pug +116 -0
  85. package/dist-lib/src/templates/body/itemPage.pug +61 -0
  86. package/dist-lib/src/templates/body/plugins.pug +20 -0
  87. package/dist-lib/src/templates/body/s3Import.pug +35 -0
  88. package/dist-lib/src/templates/body/searchResults.pug +15 -0
  89. package/dist-lib/src/templates/body/searchResultsType.pug +13 -0
  90. package/dist-lib/src/templates/body/systemConfiguration.pug +215 -0
  91. package/dist-lib/src/templates/body/userAccount.pug +83 -0
  92. package/dist-lib/src/templates/body/userList.pug +43 -0
  93. package/dist-lib/src/templates/body/userPage.pug +40 -0
  94. package/dist-lib/src/templates/layout/alert.pug +5 -0
  95. package/dist-lib/src/templates/layout/layout.pug +12 -0
  96. package/dist-lib/src/templates/layout/layoutFooter.pug +11 -0
  97. package/dist-lib/src/templates/layout/layoutGlobalNav.pug +7 -0
  98. package/dist-lib/src/templates/layout/layoutHeader.pug +8 -0
  99. package/dist-lib/src/templates/layout/layoutHeaderUser.pug +26 -0
  100. package/dist-lib/src/templates/layout/layoutProgressArea.pug +1 -0
  101. package/dist-lib/src/templates/layout/loginDialog.pug +30 -0
  102. package/dist-lib/src/templates/layout/registerDialog.pug +35 -0
  103. package/dist-lib/src/templates/layout/resetPasswordDialog.pug +25 -0
  104. package/dist-lib/src/templates/widgets/accessEditor.pug +23 -0
  105. package/dist-lib/src/templates/widgets/accessEditorMixins.pug +57 -0
  106. package/dist-lib/src/templates/widgets/accessEditorNonModal.pug +11 -0
  107. package/dist-lib/src/templates/widgets/accessEntry.pug +32 -0
  108. package/dist-lib/src/templates/widgets/apiKeyList.pug +50 -0
  109. package/dist-lib/src/templates/widgets/browserWidget.pug +32 -0
  110. package/dist-lib/src/templates/widgets/checkedActionsMenu.pug +46 -0
  111. package/dist-lib/src/templates/widgets/collectionInfoDialog.pug +37 -0
  112. package/dist-lib/src/templates/widgets/confirmDialog.pug +14 -0
  113. package/dist-lib/src/templates/widgets/dateTimeRangeWidget.pug +20 -0
  114. package/dist-lib/src/templates/widgets/dateTimeWidget.pug +8 -0
  115. package/dist-lib/src/templates/widgets/editApiKeyWidget.pug +43 -0
  116. package/dist-lib/src/templates/widgets/editAssetstoreWidget.pug +70 -0
  117. package/dist-lib/src/templates/widgets/editCollectionWidget.pug +27 -0
  118. package/dist-lib/src/templates/widgets/editFileWidget.pug +21 -0
  119. package/dist-lib/src/templates/widgets/editFolderWidget.pug +27 -0
  120. package/dist-lib/src/templates/widgets/editGroupWidget.pug +54 -0
  121. package/dist-lib/src/templates/widgets/editItemWidget.pug +27 -0
  122. package/dist-lib/src/templates/widgets/fileInfoDialog.pug +33 -0
  123. package/dist-lib/src/templates/widgets/fileList.pug +33 -0
  124. package/dist-lib/src/templates/widgets/folderInfoDialog.pug +42 -0
  125. package/dist-lib/src/templates/widgets/folderList.pug +21 -0
  126. package/dist-lib/src/templates/widgets/groupAdminList.pug +33 -0
  127. package/dist-lib/src/templates/widgets/groupInviteDialog.pug +76 -0
  128. package/dist-lib/src/templates/widgets/groupInviteList.pug +14 -0
  129. package/dist-lib/src/templates/widgets/groupMemberList.pug +39 -0
  130. package/dist-lib/src/templates/widgets/groupModList.pug +23 -0
  131. package/dist-lib/src/templates/widgets/hierarchyBreadcrumb.pug +37 -0
  132. package/dist-lib/src/templates/widgets/hierarchyPaginated.pug +19 -0
  133. package/dist-lib/src/templates/widgets/hierarchyWidget.pug +96 -0
  134. package/dist-lib/src/templates/widgets/itemBreadcrumb.pug +16 -0
  135. package/dist-lib/src/templates/widgets/itemList.pug +27 -0
  136. package/dist-lib/src/templates/widgets/jsonMetadatumEditWidget.pug +13 -0
  137. package/dist-lib/src/templates/widgets/jsonMetadatumView.pug +6 -0
  138. package/dist-lib/src/templates/widgets/loadingAnimation.pug +4 -0
  139. package/dist-lib/src/templates/widgets/markdownWidget.pug +34 -0
  140. package/dist-lib/src/templates/widgets/metadataWidget.pug +16 -0
  141. package/dist-lib/src/templates/widgets/metadatumEditWidget.pug +15 -0
  142. package/dist-lib/src/templates/widgets/metadatumView.pug +5 -0
  143. package/dist-lib/src/templates/widgets/newAssetstore.pug +87 -0
  144. package/dist-lib/src/templates/widgets/paginateWidget.pug +7 -0
  145. package/dist-lib/src/templates/widgets/pluginConfigBreadcrumb.pug +13 -0
  146. package/dist-lib/src/templates/widgets/rootSelectorWidget.pug +13 -0
  147. package/dist-lib/src/templates/widgets/searchField.pug +10 -0
  148. package/dist-lib/src/templates/widgets/searchHelp.pug +12 -0
  149. package/dist-lib/src/templates/widgets/searchModeSelect.pug +9 -0
  150. package/dist-lib/src/templates/widgets/searchResults.pug +14 -0
  151. package/dist-lib/src/templates/widgets/sortCollectionWidget.pug +14 -0
  152. package/dist-lib/src/templates/widgets/taskProgress.pug +16 -0
  153. package/dist-lib/src/templates/widgets/timeline.pug +15 -0
  154. package/dist-lib/src/templates/widgets/uploadWidget.pug +15 -0
  155. package/dist-lib/src/templates/widgets/uploadWidgetMixins.pug +31 -0
  156. package/dist-lib/src/templates/widgets/uploadWidgetNonModal.pug +10 -0
  157. package/dist-lib/src/templates/widgets/userOtpBegin.pug +4 -0
  158. package/dist-lib/src/templates/widgets/userOtpDisable.pug +6 -0
  159. package/dist-lib/src/templates/widgets/userOtpEnable.pug +44 -0
  160. package/dist-lib/src/utilities/EventStream.js +119 -0
  161. package/dist-lib/src/utilities/PluginUtils.js +36 -0
  162. package/dist-lib/src/utilities/S3UploadHandler.js +263 -0
  163. package/dist-lib/src/utilities/index.js +9 -0
  164. package/dist-lib/src/utilities/jquery/girderEnable.js +19 -0
  165. package/dist-lib/src/utilities/jquery/girderModal.js +48 -0
  166. package/dist-lib/src/version.js +6 -0
  167. package/dist-lib/src/views/App.js +359 -0
  168. package/dist-lib/src/views/View.js +79 -0
  169. package/dist-lib/src/views/body/AdminView.js +29 -0
  170. package/dist-lib/src/views/body/AssetstoresView.js +233 -0
  171. package/dist-lib/src/views/body/CollectionView.js +188 -0
  172. package/dist-lib/src/views/body/CollectionsView.js +120 -0
  173. package/dist-lib/src/views/body/FilesystemImportView.js +83 -0
  174. package/dist-lib/src/views/body/FolderView.js +54 -0
  175. package/dist-lib/src/views/body/FrontPageView.js +47 -0
  176. package/dist-lib/src/views/body/GroupView.js +336 -0
  177. package/dist-lib/src/views/body/GroupsView.js +106 -0
  178. package/dist-lib/src/views/body/ItemView.js +177 -0
  179. package/dist-lib/src/views/body/PluginsView.js +73 -0
  180. package/dist-lib/src/views/body/S3ImportView.js +80 -0
  181. package/dist-lib/src/views/body/SearchResultsView.js +162 -0
  182. package/dist-lib/src/views/body/SystemConfigurationView.js +177 -0
  183. package/dist-lib/src/views/body/UserAccountView.js +179 -0
  184. package/dist-lib/src/views/body/UserView.js +165 -0
  185. package/dist-lib/src/views/body/UsersView.js +124 -0
  186. package/dist-lib/src/views/body/index.js +38 -0
  187. package/dist-lib/src/views/index.js +13 -0
  188. package/dist-lib/src/views/layout/FooterView.js +29 -0
  189. package/dist-lib/src/views/layout/GlobalNavView.js +103 -0
  190. package/dist-lib/src/views/layout/HeaderUserView.js +45 -0
  191. package/dist-lib/src/views/layout/HeaderView.js +83 -0
  192. package/dist-lib/src/views/layout/LoginView.js +100 -0
  193. package/dist-lib/src/views/layout/ProgressListView.js +70 -0
  194. package/dist-lib/src/views/layout/RegisterView.js +101 -0
  195. package/dist-lib/src/views/layout/ResetPasswordView.js +70 -0
  196. package/dist-lib/src/views/layout/index.js +19 -0
  197. package/dist-lib/src/views/widgets/AccessWidget.js +427 -0
  198. package/dist-lib/src/views/widgets/ApiKeyListWidget.js +140 -0
  199. package/dist-lib/src/views/widgets/BrowserWidget.js +317 -0
  200. package/dist-lib/src/views/widgets/CheckedMenuWidget.js +68 -0
  201. package/dist-lib/src/views/widgets/CollectionInfoWidget.js +40 -0
  202. package/dist-lib/src/views/widgets/DateTimeRangeWidget.js +180 -0
  203. package/dist-lib/src/views/widgets/DateTimeWidget.js +110 -0
  204. package/dist-lib/src/views/widgets/EditApiKeyWidget.js +124 -0
  205. package/dist-lib/src/views/widgets/EditAssetstoreWidget.js +136 -0
  206. package/dist-lib/src/views/widgets/EditCollectionWidget.js +93 -0
  207. package/dist-lib/src/views/widgets/EditFileWidget.js +56 -0
  208. package/dist-lib/src/views/widgets/EditFolderWidget.js +116 -0
  209. package/dist-lib/src/views/widgets/EditGroupWidget.js +125 -0
  210. package/dist-lib/src/views/widgets/EditItemWidget.js +110 -0
  211. package/dist-lib/src/views/widgets/FileInfoWidget.js +26 -0
  212. package/dist-lib/src/views/widgets/FileListWidget.js +151 -0
  213. package/dist-lib/src/views/widgets/FolderInfoWidget.js +39 -0
  214. package/dist-lib/src/views/widgets/FolderListWidget.js +106 -0
  215. package/dist-lib/src/views/widgets/GroupAdminsWidget.js +88 -0
  216. package/dist-lib/src/views/widgets/GroupInvitesWidget.js +56 -0
  217. package/dist-lib/src/views/widgets/GroupMembersWidget.js +185 -0
  218. package/dist-lib/src/views/widgets/GroupModsWidget.js +77 -0
  219. package/dist-lib/src/views/widgets/HierarchyWidget.js +1097 -0
  220. package/dist-lib/src/views/widgets/ItemBreadcrumbWidget.js +38 -0
  221. package/dist-lib/src/views/widgets/ItemListWidget.js +345 -0
  222. package/dist-lib/src/views/widgets/LoadingAnimation.js +17 -0
  223. package/dist-lib/src/views/widgets/MarkdownWidget.js +217 -0
  224. package/dist-lib/src/views/widgets/MetadataWidget.js +508 -0
  225. package/dist-lib/src/views/widgets/NewAssetstoreWidget.js +72 -0
  226. package/dist-lib/src/views/widgets/PaginateWidget.js +37 -0
  227. package/dist-lib/src/views/widgets/PluginConfigBreadcrumbWidget.js +33 -0
  228. package/dist-lib/src/views/widgets/RootSelectorWidget.js +192 -0
  229. package/dist-lib/src/views/widgets/SearchFieldWidget.js +365 -0
  230. package/dist-lib/src/views/widgets/SearchPaginateWidget.js +149 -0
  231. package/dist-lib/src/views/widgets/SortCollectionWidget.js +53 -0
  232. package/dist-lib/src/views/widgets/TaskProgressWidget.js +91 -0
  233. package/dist-lib/src/views/widgets/TimelineWidget.js +155 -0
  234. package/dist-lib/src/views/widgets/UploadWidget.js +340 -0
  235. package/dist-lib/src/views/widgets/UserOtpManagementWidget.js +105 -0
  236. package/dist-lib/src/views/widgets/index.js +81 -0
  237. package/dist-lib/src/vite-env.d.ts +5 -0
  238. package/package.json +17 -15
@@ -0,0 +1,33 @@
1
+ .g-group-admins-header.g-group-list-header(title="Group administrators can edit group properties and can add, invite, and remove group members, moderators, and administrators.")
2
+ i.icon-star
3
+ span Administrators
4
+
5
+ .g-group-admins-body
6
+ ul.g-group-admins
7
+ each userAccess in admins
8
+ li(userid=userAccess.id, username=userAccess.name)
9
+ a.g-member-name
10
+ i.icon-user
11
+ span #{userAccess.name} (#{userAccess.login})
12
+ .g-group-member-controls.pull-right
13
+ if level >= accessType.ADMIN
14
+ span.dropdown
15
+ a.g-group-admin-demote.dropdown-toggle(title="Demote user",
16
+ data-toggle="dropdown")
17
+ i.icon-down-big
18
+ i.icon-down-dir
19
+ ul.dropdown-menu.pull-right(role="menu")
20
+ li(role="presentation")
21
+ a.g-demote-moderator(role="menuitem")
22
+ i.icon-minus
23
+ span Demote to moderator
24
+ li(role="presentation")
25
+ a.g-demote-member(role="menuitem")
26
+ i.icon-minus
27
+ span Demote to member
28
+ a.g-group-admin-remove(title="Remove user from the group")
29
+ i.icon-block
30
+ if (!admins.length)
31
+ .g-member-list-empty
32
+ i.icon-info-circled
33
+ span There are no administrators in this group.
@@ -0,0 +1,76 @@
1
+ .modal-dialog
2
+ .modal-content
3
+ .modal-header
4
+ button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
5
+ h4.modal-title Invite user to group
6
+ .g-dialog-subtitle
7
+ i.icon-user
8
+ span #{user.text}
9
+ .modal-body
10
+ label.control-label Select a role for this user
11
+ #g-invite-role-container.panel-group
12
+ .panel.panel-default
13
+ .panel-heading(data-toggle="collapse",
14
+ data-parent="#g-invite-role-container",
15
+ data-target="#g-invite-role-member")
16
+ .panel-title
17
+ a Invite as member
18
+ #g-invite-role-member.panel-collapse.collapse.in
19
+ .panel-body
20
+ p.
21
+ Group members are able to gain all privileges granted to
22
+ the group itself on other resources. They are able to view the
23
+ group, but may not change properties of the group.
24
+ .g-invite-as-member.btn.btn-primary
25
+ i.icon-mail
26
+ span Invite as member
27
+ if mayAdd
28
+ .g-add-as-member.btn.btn-warning.g-add-user-button
29
+ i.icon-plus
30
+ span Add as member
31
+
32
+ if (level >= accessType.ADMIN)
33
+ .panel.panel-default
34
+ .panel-heading(data-toggle="collapse",
35
+ data-parent="#g-invite-role-container",
36
+ data-target="#g-invite-role-moderator")
37
+ .panel-title
38
+ a Invite as moderator
39
+ #g-invite-role-moderator.panel-collapse.collapse
40
+ .panel-body
41
+ p.
42
+ Group moderators are members of the group who are also
43
+ granted the power to add and remove users from the group.
44
+ .g-invite-as-moderator.btn.btn-primary
45
+ i.icon-mail
46
+ span Invite as moderator
47
+ if mayAdd
48
+ .g-add-as-moderator.btn.btn-warning.g-add-user-button
49
+ i.icon-plus
50
+ span Add as moderator
51
+
52
+ if (level >= accessType.ADMIN)
53
+ .panel.panel-default
54
+ .panel-heading(data-toggle="collapse",
55
+ data-parent="#g-invite-role-container",
56
+ data-target="#g-invite-role-admin")
57
+ .panel-title
58
+ a Invite as administrator
59
+ #g-invite-role-admin.panel-collapse.collapse
60
+ .panel-body
61
+ p.
62
+ Group administrators have all the power of group moderators,
63
+ and additionally can promote group members to moderators
64
+ or administrators. They also have the power to delete the
65
+ group entirely.
66
+ .g-invite-as-admin.btn.btn-primary
67
+ i.icon-mail
68
+ span Invite as administrator
69
+ if mayAdd
70
+ .g-add-as-admin.btn.btn-warning.g-add-user-button
71
+ i.icon-plus
72
+ span Add as administrator
73
+
74
+ .g-validation-failed-message
75
+ .modal-footer
76
+ a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
@@ -0,0 +1,14 @@
1
+ ul.g-group-invites
2
+ each user in invitees
3
+ li(cid=user.cid, username=user.name())
4
+ a.g-member-name
5
+ i.icon-user
6
+ span #{user.name()} (#{user.get('login')})
7
+ .g-group-member-controls.pull-right
8
+ if level >= accessType.WRITE
9
+ a.g-group-uninvite(title="Uninvite this user")
10
+ i.icon-block
11
+ if (!invitees.length)
12
+ .g-member-list-empty
13
+ i.icon-info-circled
14
+ span There are no pending invitations to this group.
@@ -0,0 +1,39 @@
1
+ .g-group-members-header.g-group-list-header
2
+ i.icon-users
3
+ span Members
4
+ if level >= accessType.WRITE
5
+ form.g-group-invite-form.form-inline(role="form")
6
+ span
7
+ i.icon-mail-alt
8
+ .form-group.g-group-invite-container
9
+ .g-member-pagination
10
+ .g-group-members-body
11
+ ul.g-group-members
12
+ each member in members
13
+ li(cid=member.cid)
14
+ a.g-member-name
15
+ i.icon-user
16
+ span #{member.name()} (#{member.get('login')})
17
+ .g-group-member-controls.pull-right
18
+ if level >= accessType.ADMIN
19
+ span.dropdown
20
+ a.g-group-member-promote.dropdown-toggle(
21
+ title="Promote user", data-toggle="dropdown")
22
+ i.icon-up-big
23
+ i.icon-down-dir
24
+ ul.dropdown-menu.pull-right(role="menu")
25
+ li(role="presentation")
26
+ a.g-promote-moderator(role="menuitem")
27
+ i.icon-plus
28
+ span Promote to moderator
29
+ li(role="presentation")
30
+ a.g-promote-admin(role="menuitem")
31
+ i.icon-plus
32
+ span Promote to administrator
33
+ if level >= accessType.WRITE
34
+ a.g-group-member-remove(title="Remove user from the group")
35
+ i.icon-block
36
+ if (!members.length)
37
+ .g-member-list-empty
38
+ i.icon-info-circled
39
+ span There are no members in this group.
@@ -0,0 +1,23 @@
1
+ .g-group-mods-header.g-group-list-header(title="Group moderators can invite and approve group members.")
2
+ i.icon-shield
3
+ span Moderators
4
+
5
+ .g-group-mods-body
6
+ ul.g-group-mods
7
+ each userAccess in moderators
8
+ li(userid=userAccess.id, username=userAccess.name)
9
+ a.g-member-name
10
+ i.icon-user
11
+ span #{userAccess.name} (#{userAccess.login})
12
+ .g-group-member-controls.pull-right
13
+ if level >= accessType.ADMIN
14
+ a.g-group-mod-promote(title="Promote to administrator")
15
+ i.icon-up-big
16
+ a.g-group-mod-demote(title="Demote to member")
17
+ i.icon-down-big
18
+ a.g-group-mod-remove(title="Remove user from the group")
19
+ i.icon-block
20
+ if (!moderators.length)
21
+ .g-member-list-empty
22
+ i.icon-info-circled
23
+ span There are no moderators in this group.
@@ -0,0 +1,37 @@
1
+ - var idx = 0
2
+ each obj in links
3
+ li
4
+ a.g-breadcrumb-link(g-index=idx)
5
+ if obj.resourceName === 'user'
6
+ i.icon-user
7
+ else if obj.resourceName === 'collection'
8
+ i.icon-sitemap
9
+ = obj.name()
10
+ - idx += 1
11
+
12
+ if current
13
+ li.active
14
+ if current.resourceName === 'user'
15
+ i.icon-user
16
+ else if current.resourceName === 'collection'
17
+ i.icon-sitemap
18
+ = current.name()
19
+
20
+ if descriptionText
21
+ a.g-description-preview= descriptionText
22
+
23
+ .pull-right
24
+ .g-child-count-container.hide
25
+ .g-subfolder-count-container(title='total folders')
26
+ i.icon-folder
27
+ .g-subfolder-count
28
+
29
+ if idx > 0
30
+ .g-item-count-container(title='total items')
31
+ i.icon-doc-text-inv
32
+ .g-item-count
33
+
34
+ if idx > 0
35
+ .g-level-up-button-container
36
+ a.g-hierarchy-level-up(title="Go up one level")
37
+ i.icon-level-up
@@ -0,0 +1,19 @@
1
+ .g-hierarchy-pages-header
2
+ .g-hierarchycenter
3
+ ul.pagination.pagination-sm
4
+ if (currentPage >1 && !disabled)
5
+ li.g-page-prev
6
+ a#g-previous-paginated « Prev
7
+ else
8
+ li.g-page-prev.disabled
9
+ a#g-previous-paginated « Prev
10
+ li
11
+ span Page:
12
+ input#g-page-selection-input(disabled=disabled, type='number', min=1, max=totalPages, value=currentPage)
13
+ span of #{totalPages}
14
+ if (currentPage+1<=totalPages && !disabled)
15
+ li.g-page-next
16
+ a#g-next-paginated Next »
17
+ else
18
+ li.g-page-next.disabled
19
+ a#g-next-paginated Next »
@@ -0,0 +1,96 @@
1
+ .g-hierarchy-widget
2
+ .g-hierarchy-breadcrumb-bar
3
+ ol.breadcrumb
4
+ if showActions
5
+ .g-hierarchy-actions-header
6
+ if checkboxes
7
+ input.g-select-all(type="checkbox", title="Select / Unselect all")
8
+
9
+ .btn-group
10
+ button.g-checked-actions-button.btn.btn-sm.btn-default.dropdown-toggle(
11
+ data-toggle="dropdown", disabled="disabled", title="Checked actions")
12
+ i.icon-check
13
+ i.icon-down-dir
14
+ ul.g-checked-actions-menu.dropdown-menu(role="menu")
15
+
16
+ .g-folder-header-buttons
17
+ if (type === 'folder')
18
+ button.g-folder-info-button.btn.btn-sm.btn-info(title="Show folder info")
19
+ i.icon-info
20
+ if (level >= AccessType.WRITE)
21
+ button.g-upload-here-button.btn.btn-sm.btn-success(title="Upload here")
22
+ i.icon-upload
23
+ if (level >= AccessType.ADMIN)
24
+ button.g-folder-access-button.g-edit-access.btn.btn-sm.btn-warning(title="Access control")
25
+ i.icon-lock
26
+ else if (type === 'collection')
27
+ button.g-collection-info-button.btn.btn-sm.btn-info(title="Show collection info")
28
+ i.icon-info
29
+ if (level >= AccessType.ADMIN)
30
+ button.g-edit-access.btn.btn-sm.btn-warning(title="Access control")
31
+ i.icon-lock
32
+ .btn-group
33
+ button.g-folder-actions-button.btn.btn-sm.btn-default.dropdown-toggle(
34
+ data-toggle="dropdown", title=`${capitalize(type)} actions`)
35
+ if type === 'collection'
36
+ i.icon-sitemap
37
+ else if type === 'user'
38
+ i.icon-user
39
+ else if type === 'folder'
40
+ i.icon-folder-open
41
+ i.icon-down-dir
42
+ ul.g-folder-actions-menu.dropdown-menu.pull-right(role="menu")
43
+ li.dropdown-header(role="presentation")
44
+ if type === 'collection'
45
+ i.icon-sitemap
46
+ else if type === 'user'
47
+ i.icon-user
48
+ else if type === 'folder'
49
+ i.icon-folder-open
50
+ | #{model.name()}
51
+ if type === 'folder' || type === 'collection'
52
+ li(role="presentation")
53
+ a.g-download-folder(role="menuitem", href=model.downloadUrl())
54
+ i.icon-download
55
+ | Download #{type}
56
+ if level >= AccessType.WRITE
57
+ li(role="presentation")
58
+ a.g-create-subfolder(role="menuitem")
59
+ i.icon-folder
60
+ | Create folder here
61
+ if type === 'folder' || type === 'collection'
62
+ if type === 'folder'
63
+ li(role="presentation")
64
+ a.g-create-item(role="menuitem")
65
+ i.icon-doc
66
+ | Create item here
67
+ li(role="presentation")
68
+ a.g-edit-folder(role="menuitem")
69
+ i.icon-edit
70
+ | Edit #{type}
71
+ if level >= AccessType.ADMIN && (type === 'folder' || type === 'collection')
72
+ li.divider(role="presentation")
73
+ li(role="presentation")
74
+ a.g-delete-folder(role="menuitem")
75
+ i.icon-trash
76
+ | Delete this #{type}
77
+ .g-clear-right
78
+ if onFolderSelect
79
+ .g-select-folder-container
80
+ ul.g-folder-list
81
+ li.g-folder-list-entry(public='true')
82
+ button.g-select-folder.btn.btn-sm.btn-info
83
+ i.icon-folder
84
+ | Select this #{type}.
85
+ i.icon-right-dir
86
+ .g-folder-list-container
87
+ .g-item-list-container
88
+ .g-empty-parent-message.g-info-message-container.hide
89
+ i.icon-info-circled
90
+ if itemFilter
91
+ | This folder has no suitable items.
92
+ else
93
+ | This folder is empty.
94
+ .g-hierarachy-paginated-bar
95
+ if showMetadata
96
+ .g-folder-metadata
@@ -0,0 +1,16 @@
1
+ ol.breadcrumb
2
+ each parent in parentChain
3
+ li
4
+ a.g-item-breadcrumb-link(data-id=parent.object._id, data-type=parent.type)
5
+ if (parent.type === "user")
6
+ i.icon-user
7
+ = parent.object.login
8
+ else if (parent.type === "collection")
9
+ i.icon-sitemap
10
+ = parent.object.name
11
+ else
12
+ = parent.object.name
13
+
14
+ .pull-right
15
+ a.g-hierarchy-level-up(title="Go to parent folder")
16
+ i.icon-level-up
@@ -0,0 +1,27 @@
1
+ ul.g-item-list
2
+ each item in items
3
+ li.g-item-list-entry(class=(highlightItem && item.id === selectedItemId ? 'g-selected' : ''), public=(isParentPublic ? 'true' : 'false'))
4
+ if checkboxes
5
+ input.g-list-checkbox(type="checkbox", g-item-cid=item.cid)
6
+ if downloadLinks || viewLinks
7
+ a.g-item-list-link.g-right-border(g-item-cid=item.cid, href=`#item/${item.id}`)
8
+ i.icon-doc-text-inv
9
+ = item.name()
10
+ else
11
+ a.g-item-list-link(g-item-cid=item.cid, href='#item/' + item.id)
12
+ i.icon-doc-text-inv
13
+ = item.name()
14
+ if downloadLinks
15
+ a(title="Download item", href=item.downloadUrl())
16
+ i.icon-download
17
+ if viewLinks
18
+ a.g-view-inline(title="View in browser", target="_blank", rel="noopener noreferrer",
19
+ href=item.downloadUrl({contentDisposition: 'inline'}))
20
+ i.icon-eye
21
+ if showSizes
22
+ .g-item-size= formatSize(item.get('size'))
23
+ if (hasMore && !paginated)
24
+ li.g-show-more
25
+ a.g-show-more-items
26
+ i.icon-level-down
27
+ | Show more items...
@@ -0,0 +1,13 @@
1
+ input.input-sm.form-control.g-widget-metadata-key-input(type="text", value=key, placeholder="Key")
2
+
3
+ .g-json-editor
4
+
5
+ button.btn.btn-sm.btn-warning.g-widget-metadata-cancel-button(title="Cancel")
6
+ i.icon-cancel
7
+ button.btn.btn-sm.btn-primary.g-widget-metadata-save-button(title="Accept")
8
+ i.icon-ok
9
+ if !newDatum
10
+ button.btn.btn-sm.btn-primary.g-widget-metadata-toggle-button(title="Convert to Simple")
11
+ i.icon-cog
12
+ button.btn.btn-sm.btn-danger.g-widget-metadata-delete-button(title="Delete")
13
+ i.icon-trash
@@ -0,0 +1,6 @@
1
+ if (accessLevel >= AccessType.WRITE)
2
+ button.btn.btn-sm.btn-default.g-widget-metadata-edit-button
3
+ i.icon-pencil
4
+ span.g-widget-metadata-key #{key}
5
+ span.g-widget-metadata-value
6
+ pre #{value}
@@ -0,0 +1,4 @@
1
+ #g-loading-animation
2
+ #g-loading-block-1.g-loading-block
3
+ #g-loading-block-2.g-loading-block
4
+ #g-loading-block-3.g-loading-block
@@ -0,0 +1,34 @@
1
+ .g-markdown-widget
2
+ .g-tabs-container
3
+ .g-markdown-tabs-top
4
+ ul.nav.nav-tabs
5
+ li.first.active(role="presentation")
6
+ a.g-write-link(data-target=`#${prefix}-write`, aria-controls="home",
7
+ role="tab", data-toggle="tab") Write
8
+ li(role="presentation")
9
+ a.g-preview-link(data-target=`#${prefix}-preview`, aria-controls="preview",
10
+ role="tab", data-toggle="tab") Preview
11
+ .g-markdown-explanation
12
+ | Supports
13
+ a(href="https://daringfireball.net/projects/markdown/syntax",
14
+ tabindex="-1", target="_blank") Markdown
15
+ .tab-content
16
+ .tab-pane.active(role="tabpanel", id=`${prefix}-write`)
17
+ .g-markdown-drop-zone
18
+ textarea.form-control.g-markdown-text(
19
+ upload-enabled=enableUploads ? "true" : null,
20
+ placeholder=placeholder)= text
21
+ if enableUploads
22
+ .g-upload-overlay.hide
23
+ .g-upload-progress-container
24
+ .g-markdown-upload-progress.progress.progress-striped
25
+ .progress-bar.progress-bar-info(role="progressbar")
26
+ .g-markdown-upload-progress-message Starting upload...
27
+ .g-upload-footer.
28
+ #[i.icon-picture] Add an image by #[a.g-browse clicking here], or drag
29
+ and drop one into the editor.
30
+ .hide
31
+ input.g-file-input(type="file")
32
+
33
+ .tab-pane(role="tabpanel", id=`${prefix}-preview`)
34
+ .g-markdown-preview
@@ -0,0 +1,16 @@
1
+ if (accessLevel >= AccessType.WRITE)
2
+ .btn-group.pull-right
3
+ button.g-widget-metadata-add-button.btn.btn-sm.btn-primary.btn-default.dropdown-toggle(data-toggle="dropdown", title="Add Metadata")
4
+ i.icon-plus
5
+ ul.dropdown-menu.pull-right(role="menu")
6
+ li(role="presentation")
7
+ a.g-add-simple-metadata(role="menuitem")
8
+ | Simple
9
+ li(role="presentation")
10
+ a.g-add-json-metadata
11
+ | JSON
12
+
13
+ .g-widget-metadata-header
14
+ i.icon-tags
15
+ | #{title}
16
+ .g-widget-metadata-container
@@ -0,0 +1,15 @@
1
+ input.input-sm.form-control.g-widget-metadata-key-input(type="text", value=key, placeholder="Key")
2
+
3
+ - var rows = value.length <= 40 ? 1 : (value.length <= 100 ? 3 : 5)
4
+ textarea.input-sm.form-control.g-widget-metadata-value-input(placeholder="Value", rows=rows)
5
+ = value
6
+
7
+ button.btn.btn-sm.btn-warning.g-widget-metadata-cancel-button(title="Cancel")
8
+ i.icon-cancel
9
+ button.btn.btn-sm.btn-primary.g-widget-metadata-save-button(title="Accept")
10
+ i.icon-ok
11
+ if !newDatum
12
+ button.btn.btn-sm.btn-primary.g-widget-metadata-toggle-button(title="Convert to JSON")
13
+ i.icon-cog
14
+ button.btn.btn-sm.btn-danger.g-widget-metadata-delete-button(title="Delete")
15
+ i.icon-trash
@@ -0,0 +1,5 @@
1
+ if (accessLevel >= AccessType.WRITE)
2
+ button.btn.btn-sm.btn-default.g-widget-metadata-edit-button
3
+ i.icon-pencil
4
+ span.g-widget-metadata-key #{key}
5
+ span.g-widget-metadata-value #{value}
@@ -0,0 +1,87 @@
1
+ #g-assetstore-accordion.panel-group
2
+ .panel.panel-default
3
+ .panel-heading(data-toggle="collapse",
4
+ data-parent="#g-assetstore-accordion",
5
+ data-target="#g-create-fs-tab")
6
+ .panel-title
7
+ a
8
+ i.icon-hdd
9
+ span Create new #[b Filesystem] assetstore
10
+ #g-create-fs-tab.panel-collapse.collapse
11
+ .panel-body
12
+ p.
13
+ This type of assetstore will store files in a directory on the
14
+ local filesystem, using content-addressed storage to ensure that
15
+ data is never duplicated on disk. Just specify the root directory
16
+ that files will be stored under.
17
+ p.
18
+ If the specified root directory does not already exist, the server
19
+ will attempt to create it.
20
+ form#g-new-fs-form(role="form")
21
+ .form-group
22
+ label.control-label(for="g-new-fs-name") Assetstore name
23
+ input#g-new-fs-name.input-sm.form-control(type="text", placeholder="Name")
24
+ .form-group
25
+ label.control-label(for="g-new-fs-root") Root directory
26
+ input#g-new-fs-root.input-sm.form-control(
27
+ type="text", placeholder="Root directory")
28
+ p#g-new-fs-error.g-validation-failed-message
29
+ input.g-new-assetstore-submit.btn.btn-sm.btn-primary(type="submit", value="Create")
30
+
31
+ .panel.panel-default
32
+ .panel-heading(data-toggle="collapse",
33
+ data-parent="#g-assetstore-accordion",
34
+ data-target="#g-create-s3-tab")
35
+ .panel-title
36
+ a
37
+ i.icon-upload-cloud
38
+ span Create new #[b Amazon S3] assetstore
39
+ #g-create-s3-tab.panel-collapse.collapse
40
+ .panel-body
41
+ p.
42
+ This type of assetstore keeps files in
43
+ an #[a(target="_blank", href="http://aws.amazon.com/s3/") Amazon S3]
44
+ bucket. The service defaults to s3.amazonaws.com. You can specify an
45
+ alternate service, including an optional protocol and port using the
46
+ form [http[s]://](service domain)[:(port)].
47
+ form#g-new-s3-form(role="form")
48
+ .form-group
49
+ label.control-label(for="g-new-s3-name") Assetstore name
50
+ input#g-new-s3-name.input-sm.form-control(type="text", placeholder="Name")
51
+ .form-group
52
+ label.control-label(for="g-new-s3-bucket") S3 bucket name
53
+ input#g-new-s3-bucket.input-sm.form-control(type="text", placeholder="Bucket")
54
+ .form-group
55
+ label.control-label(for="g-new-s3-prefix") Path prefix (optional)
56
+ input#g-new-s3-prefix.input-sm.form-control(type="text", placeholder="Prefix")
57
+ .form-group
58
+ label.control-label(for="g-new-s3-access-key-id") Access key ID
59
+ input#g-new-s3-access-key-id.input-sm.form-control(type="text", placeholder="Access key ID")
60
+ .form-group
61
+ label.control-label(for="g-new-s3-secret") Secret access key
62
+ input#g-new-s3-secret.input-sm.form-control(type="text", placeholder="Secret access key")
63
+ .form-group
64
+ label.control-label(for="g-new-s3-service") Service
65
+ input#g-new-s3-service.input-sm.form-control(type="text", placeholder="Service", title="The service if different from s3.amazonaws.com, such as storage.googleapis.com.")
66
+ .form-group
67
+ label.control-label(for="g-new-s3-region") Region
68
+ input#g-new-s3-region.input-sm.form-control(type="text", placeholder="Region")
69
+ .checkbox
70
+ label
71
+ input#g-new-s3-readonly(type="checkbox")
72
+ | Read only
73
+ .checkbox
74
+ label
75
+ input#g-new-s3-infercredentials(type="checkbox")
76
+ | Infer Credentials
77
+ .checkbox
78
+ label
79
+ input#g-new-s3-sse(type="checkbox")
80
+ | Server side encryption
81
+ .checkbox
82
+ label
83
+ input#g-new-s3-accelerated-endpoint(type="checkbox")
84
+ | Allow S3 accelerated endpoint
85
+
86
+ p#g-new-s3-error.g-validation-failed-message
87
+ input.g-new-assetstore-submit.btn.btn-sm.btn-primary(type="submit", value="Create")
@@ -0,0 +1,7 @@
1
+ ul.pagination.pagination-sm
2
+ li.g-page-prev.disabled
3
+ a &laquo; Prev
4
+ li.active
5
+ a.g-page-number Page #{collection.pageNum() + 1}
6
+ li.g-page-next.disabled
7
+ a Next &raquo;
@@ -0,0 +1,13 @@
1
+ .g-plugin-config-breadcrumbs
2
+ ol.breadcrumb
3
+ li
4
+ a.g-admin-console-link
5
+ i.icon-wrench
6
+ | Admin console
7
+ li
8
+ a.g-plugins-link
9
+ i.icon-puzzle
10
+ | Plugins
11
+ li.active
12
+ i.icon-cog
13
+ | #{pluginName}
@@ -0,0 +1,13 @@
1
+ - selected = selected || {id: ''};
2
+ select#g-root-selector.form-control(required)
3
+ if !selected.id
4
+ option(value="", disabled, selected, hidden) Select a root...
5
+ each groupName in display
6
+ if groupName === 'Home' && home
7
+ option(value=home.id, selected=selected.id === home.id) Home
8
+ else if groupName in groups
9
+ - var group = groups[groupName];
10
+ optgroup(label=groupName)
11
+ each model in group.models
12
+ if !home || model.id !== home.id
13
+ option(value=model.id, data-group=groupName, selected=model.id === selected.id)= format(model)
@@ -0,0 +1,10 @@
1
+ .g-search-wrapper
2
+ a.g-search-options-button.btn.btn-sm(title="Show search help")
3
+ i.g-search-state.icon-search
4
+ input.g-search-field.form-control.input-sm(
5
+ type="text", placeholder=placeholder, mode-select=(modes.length > 1 ? "on" : "off"))
6
+ .g-search-results.dropdown
7
+ ul.dropdown-menu(role="menu")
8
+ if modes.length > 1
9
+ a.g-search-mode-choose.btn.btn-sm(title="Search mode")
10
+ i.icon-down-dir
@@ -0,0 +1,12 @@
1
+ p.g-search-help-text= modeHelp
2
+ if mode === 'text'
3
+ ul.g-search-examples-list
4
+ li
5
+ code cat dog
6
+ | returns documents containing either "cat" or "dog".
7
+ li
8
+ code "cat" "dog"
9
+ | returns documents containing both "cat" and "dog".
10
+ li
11
+ code "cat dog"
12
+ | returns documents containing the phrase "cat dog".
@@ -0,0 +1,9 @@
1
+ p Choose search mode:
2
+
3
+ for mode in modes
4
+ .radio
5
+ label
6
+ input.g-search-mode-radio(
7
+ type="radio", name="search-mode", value=mode,
8
+ checked=(mode === currentMode ? 'checked' : undefined))
9
+ = getModeDescription(mode)