@girder/core 3.2.8 → 5.0.0-a7

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 -83
  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,221 +0,0 @@
1
- .g-body-title System configuration
2
- form.g-settings-form(role="form")
3
- .g-settings-form-container
4
- h4 Instance Branding
5
- .form-group
6
- label(for="g-core-brand-name") Brand Name
7
- input#g-core-brand-name.form-control.input-sm(
8
- type="text", value=settings['core.brand_name'] || '',
9
- title="The brand name of the application.")
10
- .form-group
11
- label(for="g-core-contact-email-address") Contact email address
12
- input#g-core-contact-email-address.form-control.input-sm(
13
- type="text", value=settings['core.contact_email_address'] || '',
14
- title="The contact email address for users to obtain support with this instance.")
15
- .form-group
16
- label(for="g-core-banner-color") Banner Color
17
- #g-core-banner-color-container
18
- input#g-core-banner-color.form-control.input-sm(
19
- type="color", value=settings['core.banner_color'],
20
- title="The banner color of the application.")
21
- button#g-core-banner-default-color.form-control.input-sm(
22
- type="button", title="Default color") default
23
- .form-group
24
- label(for="g-core-privacy-notice") Privacy Notice Link
25
- input#g-core-privacy-notice.form-control.input-sm(
26
- type="text", value=settings['core.privacy_notice'] || '',
27
- title="The privacy notice link.")
28
- .form-group
29
- label(for="g-core-cookie-lifetime") Cookie duration (days)
30
- input#g-core-cookie-lifetime.form-control.input-sm(
31
- type="text", value=settings['core.cookie_lifetime'] || '',
32
- title="How long users will stay logged in.")
33
- .g-settings-form-container
34
- h4 Administrative Policy
35
- .form-group
36
- label(for="g-core-registration-policy") Registration policy
37
- select#g-core-registration-policy.form-control.input-sm
38
- option(value="open",
39
- selected=(settings['core.registration_policy'] === "open")) Open registration
40
- option(value="closed",
41
- selected=(settings['core.registration_policy'] === "closed")) Closed registration
42
- option(value="approve",
43
- selected=(settings['core.registration_policy'] === "approve")) Admin approval required
44
- .form-group
45
- label(for="g-core-email-verification") Email verification
46
- select#g-core-email-verification.form-control.input-sm
47
- option(value="required",
48
- selected=(settings['core.email_verification'] === "required")) Required
49
- option(value="optional",
50
- selected=(settings['core.email_verification'] === "optional")) Optional
51
- option(value="disabled",
52
- selected=(settings['core.email_verification'] === "disabled")) Disabled
53
- .form-group
54
- label(for="g-core-add-to-group-policy") Allow members to be directly added to groups
55
- select#g-core-add-to-group-policy.form-control.input-sm
56
- option(value="never",
57
- selected=(settings['core.add_to_group_policy'] === "never"))
58
- | No, members must be invited and accept invitations
59
- option(value="noadmin",
60
- selected=(settings['core.add_to_group_policy'] === "noadmin"))
61
- | No, except for group administrators when enabled per group
62
- option(value="nomod",
63
- selected=(settings['core.add_to_group_policy'] === "nomod"))
64
- | No, except for group administrators and moderators when enabled per group
65
- option(value="yesadmin",
66
- selected=(settings['core.add_to_group_policy'] === "yesadmin"))
67
- | Yes, by group administrators unless disabled per group
68
- option(value="yesmod",
69
- selected=(settings['core.add_to_group_policy'] === "yesmod"))
70
- | Yes, by group administrators and moderators unless disabled per group
71
- .g-collection-create-policy-container
72
- label Collection creation policy
73
- p.
74
- Allow additional users and groups to create collections.
75
- input.g-setting-switch(type="checkbox",
76
- checked="checked", data-size="mini", data-on-color="primary")
77
- .access-widget-container
78
- textarea#g-core-collection-create-policy.hide
79
- = JSON.stringify(settings['core.collection_create_policy'])
80
- .form-group
81
- label(for="g-core-user-default-folders") Create default folders for new users
82
- select#g-core-user-default-folders.form-control.input-sm
83
- option(value="none",
84
- selected=(settings['core.user_default_folders'] === "none")) No
85
- option(value="public_private",
86
- selected=(settings['core.user_default_folders'] === "public_private")) Yes, "Public" and "Private"
87
- .form-group
88
- .checkbox
89
- label(for="g-core-api-keys")
90
- input#g-core-api-keys(type="checkbox", checked=settings['core.api_keys'])
91
- | Enable API keys
92
- .form-group
93
- .checkbox
94
- label(for="g-core-enable-password-login")
95
- input#g-core-enable-password-login(
96
- type="checkbox", checked=settings['core.enable_password_login'])
97
- | Enable password login
98
- .g-settings-form-container
99
- h4 Email Creation
100
- .form-group
101
- label(for="g-core-email-from-address") Email from address
102
- input#g-core-email-from-address.form-control.input-sm(
103
- type="text", value=settings['core.email_from_address'] || '',
104
- title="The email address the system will use when sending emails.")
105
- .form-group
106
- label(for="g-core-email-host") Email host
107
- input#g-core-email-host.form-control.input-sm(
108
- type="text", value=settings['core.email_host'] || '',
109
- title="The host email server that is shown as a link in the footer of emails.")
110
- .g-settings-form-container
111
- h4 Email Delivery
112
- .form-group
113
- label(for="g-core-smtp-host") SMTP host
114
- input#g-core-smtp-host.form-control.input-sm(
115
- type="text", value=settings['core.smtp_host'] || '',
116
- title="The hostname of the SMTP server used to send emails.")
117
- .form-group
118
- label(for="g-core-smtp-port") SMTP port
119
- input#g-core-smtp-port.form-control.input-sm(
120
- type="text", value=settings['core.smtp.port'] || '',
121
- title="The port number of the SMTP server used to send emails.")
122
- .form-group
123
- label(for="g-core-smtp-encryption") SMTP encryption
124
- select#g-core-smtp-encryption.form-control.input-sm
125
- option(value="none",
126
- selected=(settings['core.smtp.encryption'] === "none")) None
127
- option(value="starttls",
128
- selected=(settings['core.smtp.encryption'] === "starttls")) Use STARTTLS
129
- option(value="ssl",
130
- selected=(settings['core.smtp.encryption'] === "ssl")) Use SSL/TLS
131
- .form-group
132
- label(for="g-core-smtp-username") SMTP username
133
- input#g-core-smtp-username.form-control.input-sm(
134
- type="text", value=settings['core.smtp.username'] || '',
135
- title="The username, if any, used to authenticate to the SMTP server used to send emails.")
136
- .form-group
137
- label(for="g-core-smtp-password") SMTP password
138
- input#g-core-smtp-password.form-control.input-sm(
139
- type="password", value=settings['core.smtp.password'] || '',
140
- title="The password, if any, used to authenticate to the SMTP server used to send emails.")
141
-
142
- .g-settings-form-container
143
- h4 Routing
144
- p.
145
- Altering routes requires a restart of the Girder server to take effect.
146
- .g-settings-form-container
147
- h5 Core Routes
148
- label core_girder
149
- input.g-core-route-table.form-control.input-sm(
150
- type="text",
151
- value=routes['core_girder'] || '',
152
- data-webroot-name="core_girder",
153
- title="The path to place core_girder.")
154
- if routeKeys.length > 2
155
- .form-group
156
- h5 Other Routes
157
- each name in routeKeys.slice(2)
158
- label= name
159
- input.g-core-route-table.form-control.input-sm(
160
- type="text",
161
- value=routes[name] || '',
162
- data-webroot-name=name,
163
- title="The path to place ${name}.")
164
- #g-configuration-accordion.panel-group
165
- .panel.panel-default
166
- .panel-heading(data-toggle="collapse",
167
- data-parent="#g-configuration-accordion",
168
- data-target="#g-advanced-settings-tab")
169
- .panel-title
170
- a
171
- b Advanced Settings
172
- #g-advanced-settings-tab.panel-collapse.collapse
173
- .panel-body
174
- p These settings should only be changed if you are certain of what you are doing.
175
- .form-group
176
- label(for="g-core-server-root") Server root URL
177
- input#g-core-server-root.form-control.input-sm(
178
- type="text", value=settings['core.server_root'] || '',
179
- placeholder='Detect automatically')
180
- .form-group
181
- label(for="g-core-upload-minimum-chunk-size") Upload minimum chunk size (bytes)
182
- br
183
- span This applies to Filesystem and GridFS assetstores.
184
- input#g-core-upload-minimum-chunk-size.form-control.input-sm(
185
- type="text", value=settings['core.upload_minimum_chunk_size'] || '',
186
- title="For large files, the minimum size of all but the last chunk.")
187
- .form-group
188
- label Server Notification Stream
189
- br
190
- span Disabling this may improve server performance with many concurrent web client users.
191
- .checkbox
192
- label(for="g-core-enable-notification-stream")
193
- input#g-core-enable-notification-stream(
194
- type="checkbox", checked=(settings['core.enable_notification_stream']))
195
- | Enabled
196
- .g-settings-form-container
197
- h4 CORS
198
- p.
199
- CORS (Cross-origin resource sharing) allows access from other websites.
200
- These settings are described in
201
- detail #[a(href="http://girder.readthedocs.org/en/latest/security.html#cors-cross-origin-resource-sharing", target="_blank") here].
202
- .form-group
203
- label(for="g-core-cors-allow-origin") CORS Allowed Origins
204
- input#g-core-cors-allow-origin.form-control.input-sm(
205
- type="text", value=settings['core.cors.allow_origin'] || '',
206
- title="A comma-separated list of allowed base URLs that can make cross-site requests. This may include *.")
207
- .form-group
208
- label(for="g-core-cors-allow-methods") CORS Allowed Methods
209
- input#g-core-cors-allow-methods.form-control.input-sm(
210
- type="text", value=settings['core.cors.allow_methods'] || '',
211
- placeholder="Default: allow all methods",
212
- title="A comma-separated list of allowed methods")
213
- .form-group
214
- label(for="g-core-cors-allow-headers") CORS Allowed Headers
215
- input#g-core-cors-allow-headers.form-control.input-sm(
216
- type="text", value=settings['core.cors.allow_headers'] || '',
217
- title="A comma-separated list of allowed headers.")
218
- p
219
- .form-group
220
- button.g-submit-settings.btn.btn-default.btn-sm #[i.icon-ok] Save
221
- #g-settings-error-message.g-validation-failed-message
@@ -1,83 +0,0 @@
1
- .g-account-header
2
- .g-user-name.g-body-title= user.name()
3
- .g-user-description.g-body-subtitle= user.get('login')
4
-
5
- ul.g-account-tabs.nav.nav-tabs
6
- li.active
7
- a(href="#g-account-tab-info", data-toggle="tab", name="info")
8
- i.icon-info-circled
9
- | Profile
10
- li
11
- a(href="#g-account-tab-password", data-toggle="tab", name="password")
12
- i.icon-lock
13
- | Password
14
- li
15
- a(href="#g-account-tab-api-keys", data-toggle="tab", name="apikeys")
16
- i.icon-key-inv
17
- | API keys
18
- li
19
- a(href="#g-account-tab-otp", data-toggle="tab", name="otp")
20
- i.icon-mobile
21
- | Two-factor authentication
22
-
23
- .tab-content
24
- #g-account-tab-info.tab-pane.active
25
- .g-user-info-container.g-user-settings-container
26
- form#g-user-info-form(role="form")
27
- .form-group
28
- label(for="g-login") Login
29
- p.form-control-static= user.get('login')
30
- .form-group
31
- label(for="g-email") Email
32
- input#g-email.input-sm.form-control(type="text", value=user.get('email'))
33
- .form-group
34
- label(for="g-firstName") First name
35
- input#g-firstName.input-sm.form-control(type="text", value=user.get('firstName'))
36
- .form-group
37
- label(for="g-lastName") Last name
38
- input#g-lastName.input-sm.form-control(type="text", value=user.get('lastName'))
39
- if getCurrentUser().get('admin')
40
- .form-group
41
- label(for="g-admin") User is site admin
42
- input#g-admin.input-sm-form-control(type="checkbox", checked=user.get('admin'))
43
- button.btn.btn-default.btn-sm(type="submit")
44
- i.icon-edit
45
- | Save
46
- #g-user-info-error-msg.g-validation-failed-message
47
-
48
- #g-account-tab-password.tab-pane
49
- .g-password-change-container.g-user-settings-container
50
- form#g-password-change-form(role="form")
51
- if temporaryToken
52
- input#g-password-old.input-sm.form-control(type="hidden", value=temporaryToken)
53
- else if isCurrentUser
54
- .form-group
55
- label(for="g-password-old") Current password
56
- input#g-password-old.input-sm.form-control(type="password", placeholder="Enter current password")
57
- .form-group
58
- label(for="g-password-new") New password
59
- input#g-password-new.input-sm.form-control(type="password", placeholder="Enter new password")
60
- .form-group
61
- label(for="g-password-retype") Retype new password
62
- input#g-password-retype.input-sm.form-control(type="password", placeholder="Retype new password")
63
- button.btn.btn-default.btn-sm(type="submit")
64
- i.icon-lock
65
- | Change
66
- #g-password-change-error-msg.g-validation-failed-message
67
- #g-account-tab-api-keys.tab-pane
68
- .g-api-keys-container.g-user-settings-container
69
- .g-api-keys-info-text.
70
- API keys can be used to grant limited or total access to client applications on your behalf.
71
- Clients can use these keys to create tokens that can be used for authenticated access. You may
72
- limit the tokens created with a given key to certain authorization scopes, or allow the tokens
73
- complete access to everything your user can do. You may also choose the maximum time that
74
- tokens created with a given key will last before expiration. If you do not specify a duration,
75
- the default expiration for user login sessions will be used.
76
-
77
- .g-api-keys-list-container
78
- #g-account-tab-otp.tab-pane
79
- .g-user-settings-container
80
- .g-account-otp-info-text.
81
- Two-factor authentication adds another level of authentication to your account log-in.
82
-
83
- .g-account-otp-container
@@ -1,43 +0,0 @@
1
- - const isAdmin = currentUser && currentUser.get('admin');
2
- - const userTooltip = usersCount === 1 ? `${usersCount} total user` : `${usersCount} total users`;
3
- .g-user-list-header
4
- .g-user-pagination
5
- if currentUser
6
- .g-user-count-container(title=userTooltip)
7
- i.icon-user
8
- span.g-user-count= usersCount
9
-
10
- .g-user-sort
11
- form.g-user-search-form.form-inline(role="form")
12
- .form-group.g-users-search-container
13
- if isAdmin
14
- button.g-user-create-button.btn.btn-sm.btn-default
15
- i.icon-plus-squared
16
- | Create user
17
-
18
- each user in users
19
- .g-user-list-entry
20
- .g-user-right-column
21
- .g-user-joined
22
- i.icon-clock
23
- | Joined on
24
- span.g-user-joined-date #{formatDate(user.get('created'), DATE_DAY)}
25
- if user.get('size') !== undefined
26
- .g-space-used
27
- i.icon-floppy
28
- | Currently using
29
- span.g-user-space-used #{formatSize(user.get('size'))}
30
- if user.get('status') === 'disabled'
31
- .g-user-status
32
- i.icon-cancel-circled
33
- | Account disabled
34
- else if user.get('status') === 'pending'
35
- .g-user-status
36
- i.icon-attention-circled
37
- | Account pending approval
38
- .g-user-title
39
- a.g-user-link(g-user-cid=user.cid)
40
- b= user.name()
41
- .g-user-subtitle
42
- span.g-user-login #{user.get('login')}
43
- .g-clear-right
@@ -1,40 +0,0 @@
1
- .g-user-header
2
-
3
- if user.getAccessLevel() >= AccessType.WRITE
4
- .btn-group.pull-right
5
- button.g-user-actions-button.btn.btn-default.dropdown-toggle(
6
- data-toggle="dropdown", title="Item actions")
7
- i.icon-user
8
- | Actions
9
- i.icon-down-dir
10
- ul.g-item-actions-menu.dropdown-menu.pull-right(role="menu")
11
- li(role="presentation")
12
- a.g-edit-user(role="menuitem")
13
- i.icon-edit
14
- | Edit user
15
- if user.getAccessLevel() >= AccessType.ADMIN
16
- li.divider(role="presentation")
17
- if user.get('status') === 'pending'
18
- li(role="presentation")
19
- a.g-approve-user(role="menuitem")
20
- i.icon-ok-squared
21
- | Approve account
22
- else if user.get('status') === 'enabled'
23
- li(role="presentation")
24
- a.g-disable-user(role="menuitem")
25
- i.icon-cancel
26
- | Disable account
27
- else if user.get('status') === 'disabled'
28
- li(role="presentation")
29
- a.g-enable-user(role="menuitem")
30
- i.icon-ok
31
- | Enable account
32
- li(role="presentation")
33
- a.g-delete-user(role="menuitem")
34
- i.icon-trash
35
- | Delete user
36
-
37
- .g-user-name.g-body-title #{user.get('firstName')} #{user.get('lastName')}
38
- .g-user-login.g-body-subtitle #{user.get('login')}
39
-
40
- .g-user-hierarchy-container
@@ -1,5 +0,0 @@
1
- .alert.alert-dismissable(class=`alert-${type}`)
2
- button.close(type="button", data-dismiss="alert", aria-hidden="true") ×
3
- if icon
4
- i(class=`icon-${icon}`)
5
- | #{text}
@@ -1,12 +0,0 @@
1
- #g-app-header-container
2
- #g-global-nav-container
3
- #g-app-body-container.g-default-layout
4
- #g-app-footer-container
5
-
6
- #g-app-progress-container
7
-
8
- //- Set tabindex on modal element to allow closing modal by pressing Escape. See:
9
- //- - http://getbootstrap.com/javascript/#modals-examples
10
- //- - http://stackoverflow.com/questions/12630156/
11
- #g-dialog-container.modal.fade(tabindex="-1")
12
- #g-alerts-container
@@ -1,11 +0,0 @@
1
- .g-footer-links
2
- a#g-about-link(href="http://girder.readthedocs.org/en/latest/user-guide.html") About
3
- if contactHref
4
- a#g-contact-link(href=contactHref) Contact
5
- a(href=apiRoot) Web API
6
- a#g-bug-link(href="https://github.com/girder/girder/issues/new") Report a bug
7
- if privacyNoticeLink
8
- a#g-privacy-notice-link(href=privacyNoticeLink) Privacy Notice
9
-
10
- .g-footer-info
11
- | © Kitware, Inc.
@@ -1,7 +0,0 @@
1
- .g-global-nav-main
2
- ul.g-global-nav
3
- each navItem in navItems
4
- li.g-global-nav-li
5
- a.g-nav-link(g-target=navItem.target, g-name=navItem.name, href=`#${navItem.target}`)
6
- i(class=navItem.icon)
7
- span= navItem.name
@@ -1,8 +0,0 @@
1
- .g-header-wrapper(style=`background-color: ${bannerColor}; color: ${textColor}`)
2
- .g-app-title #{brandName}
3
-
4
- form.g-quick-search-form(role="form")
5
- .form-group.g-quick-search-container
6
-
7
- .g-current-user-wrapper
8
- .g-clear-both
@@ -1,26 +0,0 @@
1
- .g-user-text
2
- if user
3
- a.g-user-dropdown-link(data-toggle="dropdown", data-target="#g-user-action-menu")
4
- | #[i.icon-user] #{user.get('login')}
5
- i.icon-down-open
6
- #g-user-action-menu.dropdown
7
- ul.dropdown-menu(role="menu")
8
- li(role="presentation")
9
- a.g-my-folders(href=`#user/${user.id}`)
10
- i.icon-folder
11
- | My folders
12
- li(role="presentation")
13
- a.g-my-settings(href=`#useraccount/${user.id}/info`)
14
- i.icon-cog
15
- | My account
16
- li.divider(role="presentation")
17
- li(role="presentation")
18
- a.g-logout
19
- i.icon-logout
20
- | Log out
21
- else
22
- if registrationPolicy !== 'closed'
23
- a.g-register Register
24
- .g-or-text or
25
- a.g-login Log In
26
- i.icon-login
@@ -1 +0,0 @@
1
- .g-progress-list-container
@@ -1,30 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-login-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title Log in
7
- .modal-body
8
- if enablePasswordLogin
9
- .form-group
10
- label.control-label(for="g-login") Login or email
11
- input#g-login.input-sm.form-control(type="text", placeholder="Enter login")
12
- .form-group
13
- label.control-label(for="g-password") Password
14
- input#g-password.input-sm.form-control(type="password", placeholder="Enter password")
15
- #g-login-otp-group.form-group.hidden
16
- label.control-label(for="g-login-otp") Two-factor code
17
- input#g-login-otp.input-sm.form-control(
18
- type='text', minlength=6, maxlength=6, placeholder="Your 6-digit two-factor authentication code, if enabled")
19
- .g-validation-failed-message
20
- .g-bottom-message
21
- if registrationPolicy !== 'closed'
22
- | Don't have an account yet?
23
- a.g-register-link Register here.
24
- | |
25
- a.g-forgot-password Forgot your password?
26
- .modal-footer
27
- a.btn.btn-default(data-dismiss="modal") Close
28
- button#g-login-button.btn.btn-primary(type="submit")
29
- i.icon-login
30
- | Login
@@ -1,35 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-register-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title= title
7
- .modal-body
8
- #g-group-login.form-group
9
- label.control-label(for="g-login") Choose a login name
10
- input#g-login.input-sm.form-control(type="text", placeholder="Login")
11
- #g-group-email.form-group
12
- label.control-label(for="g-email") Enter email address
13
- input#g-email.input-sm.form-control(type="text", placeholder="Email")
14
- #g-group-firstName.form-group
15
- label.control-label(for="g-firstName") Enter first name
16
- input#g-firstName.input-sm.form-control(type="text", placeholder="First name")
17
- #g-group-lastName.form-group
18
- label.control-label(for="g-lastName") Enter last name
19
- input#g-lastName.input-sm.form-control(type="text", placeholder="Last name")
20
- #g-group-password.form-group
21
- label.control-label(for="g-password") Choose a password
22
- input#g-password.input-sm.form-control(type="password", placeholder="Password")
23
- #g-group-password2.form-group
24
- label.control-label(for="g-password2") Retype password
25
- input#g-password2.input-sm.form-control(type="password", placeholder="Password")
26
- .g-validation-failed-message
27
- if !currentUser
28
- .g-bottom-message
29
- | Already have an account?
30
- a.g-login-link Log in here.
31
- .modal-footer
32
- a.btn.btn-default(data-dismiss="modal") Close
33
- button#g-register-button.btn.btn-primary(type="submit")
34
- i.icon-plus-circled
35
- | Register
@@ -1,25 +0,0 @@
1
- .modal-dialog
2
- .modal-content
3
- form#g-reset-password-form.modal-form(role="form")
4
- .modal-header
5
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
6
- h4.modal-title Forgotten password
7
- .modal-body
8
- .g-password-reset-explanation
9
- | If you have forgotten your password, enter your email address here.
10
- | You will be sent an email with a temporary access link, from
11
- | which you can reset your password.
12
- .form-group
13
- label.control-label(for="g-email") Email
14
- input#g-email.input-sm.form-control(type="text", placeholder="Enter your email")
15
- .g-validation-failed-message
16
- .g-bottom-message
17
- if registrationPolicy !== 'closed'
18
- a.g-register-link Register
19
- | |
20
- a.g-login-link Login
21
- .modal-footer
22
- a.btn.btn-default(data-dismiss="modal") Close
23
- button#g-reset-password-button.btn.btn-primary(type="submit")
24
- i.icon-mail
25
- | Submit
@@ -1,23 +0,0 @@
1
- include accessEditorMixins
2
-
3
- .modal-dialog
4
- .modal-content
5
- .modal-header
6
- button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
7
- h4.modal-title Access control
8
- .g-dialog-subtitle
9
- if (modelType === 'folder')
10
- i.icon-folder
11
- else if (modelType === 'collection')
12
- i.icon-sitemap
13
- = model.name()
14
- .modal-body.g-access-modal-body
15
- if !hidePrivacyEditor
16
- +privacyEditor(modelType)
17
- +permissionsEditor
18
- if !hideRecurseOption
19
- +recurseOption(modelType)
20
-
21
- .modal-footer
22
- a.btn.btn-small.btn-default(data-dismiss="modal") Close
23
- +saveAccessButton
@@ -1,57 +0,0 @@
1
- mixin privacyEditor(typeName)
2
- .g-public-container
3
- .radio
4
- label
5
- input#g-access-private(type="radio", name="privacy",
6
- checked=(publicFlag ? undefined : "checked"))
7
- i.icon-lock
8
- | #[b Private] — Access is required to view this #{typeName}
9
- .radio
10
- label
11
- input#g-access-public(type="radio", name="privacy",
12
- checked=(publicFlag ? "checked" : undefined))
13
- i.icon-globe
14
- | #[b Public] — Anyone can view this #{typeName}
15
-
16
- if _.keys(flagList).length
17
- a.g-action-manage-public-flags.hide(title="Public access flags")
18
- i.g-flag-icon.icon-flag
19
- - var flagLen = (publicFlags && publicFlags.length) || 0
20
- .g-flag-count-indicator(class=(flagLen ? null : "hide"))= flagLen
21
- | Manage public access flags...
22
- .g-public-flags-popover-container.hide
23
- each flag, key in flagList
24
- - var checked = _.contains(publicFlags, key) ? 'checked' : null;
25
- - var disabled = (!isAdmin && flag.admin) ? 'disabled' : null;
26
- .checkbox(class=disabled)
27
- label.g-flag-label(title=flag.description)
28
- input.g-public-flag-checkbox(flag=key, type="checkbox", checked=checked, disabled=disabled)
29
- span= flag.name
30
- button.g-close-public-flags-popover.btn.btn-xs.btn-default Close
31
-
32
- mixin permissionsEditor
33
- .g-permissions-editor
34
- .g-ac-list-title #[i.icon-key-1] Permissions
35
- .g-ac-list
36
- #g-ac-list-groups
37
- #g-ac-list-users
38
-
39
- .g-grant-access-container
40
- form(role="form")
41
- .form-group
42
- label(for="addAccess") Grant access to another group or user
43
- .g-search-field-container
44
-
45
- mixin recurseOption(typeName)
46
- .g-recursive-container
47
- .radio
48
- label
49
- input#g-apply-nonrecursive(type="radio", name="recurse", checked="checked")
50
- | Apply permissions only to this #{typeName}, not its subfolders
51
- .radio
52
- label
53
- input#g-apply-recursive(type="radio", name="recurse")
54
- | Also set permissions on all subfolders to match this #{typeName}'s permissions
55
-
56
- mixin saveAccessButton
57
- button.g-save-access-list.btn.btn-small.btn-primary #[i.icon-ok] Save
@@ -1,11 +0,0 @@
1
- include accessEditorMixins
2
-
3
- if !hidePrivacyEditor
4
- +privacyEditor(modelType)
5
- +permissionsEditor
6
-
7
- if !hideRecurseOption
8
- +recurseOption(modelType)
9
-
10
- if !hideSaveButton
11
- +saveAccessButton