123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477 |
- template(name="setting")
- .setting-content
- unless currentUser.isAdmin
- | {{_ 'error-notAuthorized'}}
- else
- .content-title.ext-box
- if isGeneralSetting
- span
- | 🔑
- | {{_ 'registration'}}
- else if isEmailSetting
- span
- | ✉️
- | {{_ 'email'}}
- else if isAccountSetting
- span
- | 👥
- | {{_ 'accounts'}}
- else if isTableVisibilityModeSetting
- span
- | 👁️
- | {{_ 'tableVisibilityMode'}}
- else if isAnnouncementSetting
- span
- | 📢
- | {{_ 'admin-announcement'}}
- else if isAccessibilitySetting
- span
- | ♿
- | {{_ 'accessibility'}}
- else if isLayoutSetting
- span
- | 🔗
- | {{_ 'layout'}}
- else if isWebhookSetting
- span
- | 🌐
- | {{_ 'global-webhook'}}
- else if isAttachmentSettings
- span
- | 📎
- | {{_ 'attachments'}}
- else if isCronSettings
- span
- | ⏰
- | {{_ 'cron'}}
- .content-body
- .side-menu
- ul
- li(class="{{#if isGeneralSetting}}active{{/if}}")
- a.js-setting-menu(data-id="registration-setting")
- | 🔑
- | {{_ 'registration'}}
- unless isSandstorm
- li(class="{{#if isEmailSetting}}active{{/if}}")
- a.js-setting-menu(data-id="email-setting")
- | ✉️
- | {{_ 'email'}}
- li(class="{{#if isAccountSetting}}active{{/if}}")
- a.js-setting-menu(data-id="account-setting")
- | 👥
- | {{_ 'accounts'}}
- li(class="{{#if isTableVisibilityModeSetting}}active{{/if}}")
- a.js-setting-menu(data-id="tableVisibilityMode-setting")
- | 👁️
- | {{_ 'tableVisibilityMode'}}
- li(class="{{#if isAnnouncementSetting}}active{{/if}}")
- a.js-setting-menu(data-id="announcement-setting")
- | 📢
- | {{_ 'admin-announcement'}}
- li(class="{{#if isAccessibilitySetting}}active{{/if}}")
- a.js-setting-menu(data-id="accessibility-setting")
- | ♿
- | {{_ 'accessibility'}}
- li(class="{{#if isLayoutSetting}}active{{/if}}")
- a.js-setting-menu(data-id="layout-setting")
- | 🔗
- | {{_ 'layout'}}
- li(class="{{#if isWebhookSetting}}active{{/if}}")
- a.js-setting-menu(data-id="webhook-setting")
- | 🌐
- | {{_ 'global-webhook'}}
- li(class="{{#if isAttachmentSettings}}active{{/if}}")
- a.js-setting-menu(data-id="attachment-settings")
- | 📎
- | {{_ 'attachments'}}
- li(class="{{#if isCronSettings}}active{{/if}}")
- a.js-setting-menu(data-id="cron-settings")
- | ⏰
- | {{_ 'cron'}}
- .main-body
- if isLoading
- +spinner
- else if isAttachmentSettings
- ul#attachment-setting.setting-detail
- li
- h3 {{_ 'attachment-storage-configuration'}}
- .form-group
- label {{_ 'writable-path'}}
- input.wekan-form-control#filesystem-path(type="text" value="{{filesystemPath}}" readonly)
- small.form-text.text-muted {{_ 'filesystem-path-description'}}
-
- .form-group
- label {{_ 'attachments-path'}}
- input.wekan-form-control#attachments-path(type="text" value="{{attachmentsPath}}" readonly)
- small.form-text.text-muted {{_ 'attachments-path-description'}}
-
- .form-group
- label {{_ 'avatars-path'}}
- input.wekan-form-control#avatars-path(type="text" value="{{avatarsPath}}" readonly)
- small.form-text.text-muted {{_ 'avatars-path-description'}}
- li
- h3 {{_ 'mongodb-gridfs-storage'}}
- .form-group
- label {{_ 'gridfs-enabled'}}
- input.wekan-form-control#gridfs-enabled(type="checkbox" checked="{{gridfsEnabled}}" disabled)
- small.form-text.text-muted {{_ 'gridfs-enabled-description'}}
- li
- h3 {{_ 's3-minio-storage'}}
- .form-group
- label {{_ 's3-enabled'}}
- input.wekan-form-control#s3-enabled(type="checkbox" checked="{{s3Enabled}}" disabled)
- small.form-text.text-muted {{_ 's3-enabled-description'}}
-
- .form-group
- label {{_ 's3-endpoint'}}
- input.wekan-form-control#s3-endpoint(type="text" value="{{s3Endpoint}}" readonly)
- small.form-text.text-muted {{_ 's3-endpoint-description'}}
-
- .form-group
- label {{_ 's3-bucket'}}
- input.wekan-form-control#s3-bucket(type="text" value="{{s3Bucket}}" readonly)
- small.form-text.text-muted {{_ 's3-bucket-description'}}
-
- .form-group
- label {{_ 's3-region'}}
- input.wekan-form-control#s3-region(type="text" value="{{s3Region}}" readonly)
- small.form-text.text-muted {{_ 's3-region-description'}}
-
- .form-group
- label {{_ 's3-access-key'}}
- input.wekan-form-control#s3-access-key(type="text" placeholder="{{_ 's3-access-key-placeholder'}}" readonly)
- small.form-text.text-muted {{_ 's3-access-key-description'}}
-
- .form-group
- label {{_ 's3-secret-key'}}
- input.wekan-form-control#s3-secret-key(type="password" placeholder="{{_ 's3-secret-key-placeholder'}}")
- small.form-text.text-muted {{_ 's3-secret-key-description'}}
-
- .form-group
- label {{_ 's3-ssl-enabled'}}
- input.wekan-form-control#s3-ssl-enabled(type="checkbox" checked="{{s3SslEnabled}}" disabled)
- small.form-text.text-muted {{_ 's3-ssl-enabled-description'}}
-
- .form-group
- label {{_ 's3-port'}}
- input.wekan-form-control#s3-port(type="number" value="{{s3Port}}" readonly)
- small.form-text.text-muted {{_ 's3-port-description'}}
-
- .form-group
- button.js-test-s3-connection.btn.btn-secondary {{_ 'test-s3-connection'}}
- button.js-save-s3-settings.btn.btn-primary {{_ 'save-s3-settings'}}
- else if isCronSettings
- ul#cron-setting.setting-detail
- li
- h3 {{_ 'cron-migrations'}}
- .form-group
- label {{_ 'migration-status'}}
- .status-indicator
- span.status-label {{_ 'status'}}:
- span.status-value {{migrationStatus}}
- .progress-section
- .progress
- .progress-bar(role="progressbar" style="width: {{migrationProgress}}%" aria-valuenow="{{migrationProgress}}" aria-valuemin="0" aria-valuemax="100")
- | {{migrationProgress}}%
- .progress-text
- | {{migrationProgress}}% {{_ 'complete'}}
-
- .form-group
- button.js-start-all-migrations.btn.btn-primary {{_ 'start-all-migrations'}}
- button.js-pause-all-migrations.btn.btn-warning {{_ 'pause-all-migrations'}}
- button.js-stop-all-migrations.btn.btn-danger {{_ 'stop-all-migrations'}}
-
- li
- h3 {{_ 'board-operations'}}
- .form-group
- label {{_ 'scheduled-board-operations'}}
- button.js-schedule-board-cleanup.btn.btn-primary {{_ 'schedule-board-cleanup'}}
- button.js-schedule-board-archive.btn.btn-warning {{_ 'schedule-board-archive'}}
- button.js-schedule-board-backup.btn.btn-info {{_ 'schedule-board-backup'}}
-
- li
- h3 {{_ 'cron-jobs'}}
- .form-group
- label {{_ 'active-cron-jobs'}}
- each cronJobs
- .job-item
- .job-info
- .job-name {{name}}
- .job-schedule {{schedule}}
- .job-description {{description}}
- .job-actions
- button.js-pause-job.btn.btn-sm.btn-warning(data-job-id="{{_id}}") {{_ 'pause'}}
- button.js-delete-job.btn.btn-sm.btn-danger(data-job-id="{{_id}}") {{_ 'delete'}}
- .add-job-section
- button.js-add-cron-job.btn.btn-success {{_ 'add-cron-job'}}
- else if isGeneralSetting
- +general
- else if isEmailSetting
- unless isSandstorm
- +email
- else if isAccountSetting
- +accountSettings
- else if isTableVisibilityModeSetting
- +tableVisibilityModeSettings
- else if isAnnouncementSetting
- +announcementSettings
- else if isAccessibilitySetting
- +accessibilitySettings
- else if isLayoutSetting
- +layoutSettings
- else if isWebhookSetting
- +webhookSettings
- template(name="webhookSettings")
- span
- +outgoingWebhooksPopup
- template(name="general")
- ul#registration-setting.setting-detail
- li
- a.flex.js-toggle-forgot-password
- .materialCheckBox(class="{{#if currentSetting.disableForgotPassword}}is-checked{{/if}}")
- span {{_ 'disable-forgot-password'}}
- li
- a.flex.js-toggle-registration
- .materialCheckBox(class="{{#if currentSetting.disableRegistration}}is-checked{{/if}}")
- span {{_ 'disable-self-registration'}}
- li
- .invite-people(class="{{#if currentSetting.disableRegistration}}{{else}}hide{{/if}}")
- ul
- li
- .title {{_ 'invite-people'}}
- textarea#email-to-invite.wekan-form-control(rows='5', placeholder="{{_ 'email-addresses'}}")
- li
- .title {{_ 'to-boards'}}
- .bg-white
- each boards
- a.option.flex.js-toggle-board-choose(id= _id)
- .materialCheckBox(data-id= _id)
- span= title
- li
- button.js-email-invite.primary {{_ 'invite'}}
- template(name='email')
- ul#email-setting.setting-detail
- //if isSandstorm
- // li.smtp-form
- // .title {{_ 'smtp-host'}}
- // .description {{_ 'smtp-host-description'}}
- // .form-group
- // input.wekan-form-control#mail-server-host(type="text", placeholder="smtp.domain.com" value="{{currentSetting.mailServer.host}}")
- // li.smtp-form
- // .title {{_ 'smtp-port'}}
- // .description {{_ 'smtp-port-description'}}
- // .form-group
- // input.wekan-form-control#mail-server-port(type="text", placeholder="25" value="{{currentSetting.mailServer.port}}")
- // li.smtp-form
- // .title {{_ 'smtp-username'}}
- // .form-group
- // input.wekan-form-control#mail-server-u"accounts-allowUserNameChange": "Allow Username Change",sername(type="text", placeholder="{{_ 'username'}}" value="{{currentSetting.mailServer.username}}")
- // li.smtp-form
- // .title {{_ 'smtp-password'}}
- // .form-group
- // input.wekan-form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="")
- // li.smtp-form
- // .title {{_ 'smtp-tls'}}
- // .form-group
- // a.flex.js-toggle-tls
- // .materialCheckBox#mail-server-tls(class="{{#if currentSetting.mailServer.enableTLS}}is-checked{{/if}}")
- //
- // span {{_ 'smtp-tls-description'}}
- //
- // li.smtp-form
- // .title {{_ 'send-from'}}
- // .form-group
- // input.wekan-form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
- //
- // li
- // button.js-save.primary {{_ 'save'}}
- li
- button.js-send-smtp-test-email.primary {{_ 'send-smtp-test'}}
- template(name='tableVisibilityModeSettings')
- ul#tableVisibilityMode-setting.setting-detail
- li.tableVisibilityMode-form
- .title {{_ 'tableVisibilityMode-allowPrivateOnly'}}
- .form-group.flex
- input.wekan-form-control#accounts-allowPrivateOnly(type="radio" name="allowPrivateOnly" value="true" checked="{{#if allowPrivateOnly}}checked{{/if}}")
- label {{_ 'yes'}}
- input.wekan-form-control#accounts-allowPrivateOnly(type="radio" name="allowPrivateOnly" value="false" checked="{{#unless allowPrivateOnly}}checked{{/unless}}")
- label {{_ 'no'}}
- button.js-tableVisibilityMode-save.primary {{_ 'save'}}
- template(name='accountSettings')
- ul#account-setting.setting-detail
- li.accounts-form
- .title {{_ 'accounts-allowEmailChange'}}
- .form-group.flex
- input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="true" checked="{{#if allowEmailChange}}checked{{/if}}")
- label {{_ 'yes'}}
- input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="false" checked="{{#unless allowEmailChange}}checked{{/unless}}")
- label {{_ 'no'}}
- .title {{_ 'accounts-allowUserNameChange'}}
- .form-group.flex
- input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="true" checked="{{#if allowUserNameChange}}checked{{/if}}")
- label {{_ 'yes'}}
- input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="false" checked="{{#unless allowUserNameChange}}checked{{/unless}}")
- label {{_ 'no'}}
- .title {{_ 'accounts-allowUserDelete'}}
- .form-group.flex
- input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="true" checked="{{#if allowUserDelete}}checked{{/if}}")
- label {{_ 'yes'}}
- input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="false" checked="{{#unless allowUserDelete}}checked{{/unless}}")
- label {{_ 'no'}}
- button.js-accounts-save.primary {{_ 'save'}}
- // Brute force lockout settings moved to People/Locked Users section
- template(name='announcementSettings')
- ul#announcement-setting.setting-detail
- li
- a.flex.js-toggle-activemessage
- .materialCheckBox(class="{{#if currentAnnouncements.enabled}}is-checked{{/if}}")
- span {{_ 'admin-announcement-active'}}
- li
- .admin-announcement(class="{{#if currentAnnouncements.enabled}}{{else}}hide{{/if}}")
- ul
- li
- .title {{_ 'admin-announcement-title'}}
- textarea#admin-announcement.wekan-form-control= currentAnnouncements.body
- li
- button.js-announcement-save.primary {{_ 'save'}}
- template(name='accessibilitySettings')
- ul#accessibility-setting.setting-detail
- li
- a(href="/accessibility" style="text-decoration: underline; color: blue;") {{_ 'accessibility'}}
- li
- a.flex.js-toggle-accessibility
- .materialCheckBox(class="{{#if currentAccessibility.enabled}}is-checked{{/if}}")
- span {{_ 'accessibility-page-enabled'}}
- li
- .accessibility-content(class="{{#if currentAccessibility.enabled}}{{else}}hide{{/if}}")
- ul
- li
- .title {{_ 'accessibility-title'}}
- textarea#admin-accessibility-title.wekan-form-control= currentAccessibility.title
- li
- .title {{_ 'accessibility-content'}}
- textarea#admin-accessibility-content.wekan-form-control= currentAccessibility.body
- li
- button.js-accessibility-save.primary {{_ 'save'}}
- template(name='layoutSettings')
- ul#layout-setting.setting-detail
- li
- button.js-all-boards-hide-activities.primary {{_ 'hide-activities-of-all-boards'}}
- li.layout-form
- .title {{_ 'oidc-button-text'}}
- .form-group
- input.wekan-form-control#oidcBtnTextvalue(type="text", placeholder="" value="{{currentSetting.oidcBtnText}}")
- li.layout-form
- .title {{_ 'can-invite-if-same-mailDomainName'}}
- .form-group
- input.wekan-form-control#mailDomainNamevalue(type="text", placeholder="" value="{{currentSetting.mailDomainName}}")
- li.layout-form
- .title {{_ 'custom-legal-notice-link-url'}}
- .form-group
- input.wekan-form-control#legalNoticevalue(type="text", placeholder="" value="{{currentSetting.legalNotice}}")
- li.layout-form
- .title {{_ 'display-authentication-method'}}
- .form-group.flex
- input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="true" checked="{{#if currentSetting.displayAuthenticationMethod}}checked{{/if}}")
- label {{_ 'yes'}}
- input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="false" checked="{{#unless currentSetting.displayAuthenticationMethod}}checked{{/unless}}")
- label {{_ 'no'}}
- li.layout-form
- .title {{_ 'default-authentication-method'}}
- +selectAuthenticationMethod(authenticationMethod=currentSetting.defaultAuthenticationMethod)
- li.layout-form
- .title {{_ 'wait-spinner'}}
- +selectSpinnerName(spinnerName=currentSetting.spinnerName)
- li.layout-form
- .title {{_ 'custom-product-name'}}
- .form-group
- input.wekan-form-control#product-name(type="text", placeholder="" value="{{currentSetting.productName}}")
- li.layout-form
- .title {{_ 'hide-logo'}}
- .form-group.flex
- input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="true" checked="{{#if currentSetting.hideLogo}}checked{{/if}}")
- label {{_ 'yes'}}
- input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}")
- label {{_ 'no'}}
- li.layout-form
- .title {{_ 'custom-login-logo-image-url'}}
- .form-group
- input.wekan-form-control#custom-login-logo-image-url(type="text", placeholder="" value="{{currentSetting.customLoginLogoImageUrl}}")
- li.layout-form
- .title {{_ 'custom-login-logo-link-url'}}
- .form-group
- input.wekan-form-control#custom-login-logo-link-url(type="text", placeholder="" value="{{currentSetting.customLoginLogoLinkUrl}}")
- li.layout-form
- .title {{_ 'custom-help-link-url'}}
- .form-group
- input.wekan-form-control#custom-help-link-url(type="text", placeholder="" value="{{currentSetting.customHelpLinkUrl}}")
- li.layout-form
- .title {{_ 'text-below-custom-login-logo'}}
- .form-group
- textarea#text-below-custom-login-logo.wekan-form-control= currentSetting.textBelowCustomLoginLogo
- li.layout-form
- .title {{_ 'custom-top-left-corner-logo-image-url'}}
- .form-group
- input.wekan-form-control#custom-top-left-corner-logo-image-url(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoImageUrl}}")
- li.layout-form
- .title {{_ 'custom-top-left-corner-logo-link-url'}}
- .form-group
- input.wekan-form-control#custom-top-left-corner-logo-link-url(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoLinkUrl}}")
- li.layout-form
- .title {{_ 'custom-top-left-corner-logo-height'}}
- .form-group
- input.wekan-form-control#custom-top-left-corner-logo-height(type="text", placeholder="" value="{{currentSetting.customTopLeftCornerLogoHeight}}")
- li.layout-form
- .title {{_ 'automatic-linked-url-schemes'}}
- .form-group
- textarea#automatic-linked-url-schemes.wekan-form-control= currentSetting.automaticLinkedUrlSchemes
- li.layout-form
- .title {{_ 'hide-card-counter-list'}}
- .form-group.flex
- input.wekan-form-control#hide-card-counter-list(type="radio" name="hideCardCounterList" value="true" checked="{{#if currentSetting.hideCardCounterList}}checked{{/if}}")
- label {{_ 'yes'}}
- input.wekan-form-control#hide-card-counter-list(type="radio" name="hideCardCounterList" value="false" checked="{{#unless currentSetting.hideCardCounterList}}checked{{/unless}}")
- label {{_ 'no'}}
- li.layout-form
- .title {{_ 'hide-board-member-list'}}
- .form-group.flex
- input.wekan-form-control#hide-board-member-list(type="radio" name="hideBoardMemberList" value="true" checked="{{#if currentSetting.hideBoardMemberList}}checked{{/if}}")
- label {{_ 'yes'}}
- input.wekan-form-control#hide-board-member-list(type="radio" name="hideBoardMemberList" value="false" checked="{{#unless currentSetting.hideBoardMemberList}}checked{{/unless}}")
- label {{_ 'no'}}
- li
- button.js-save-layout.primary {{_ 'save'}}
- template(name='selectAuthenticationMethod')
- select#defaultAuthenticationMethod
- each authentications
- if isSelected value
- option(value="{{value}}" selected) {{_ value}}
- else
- option(value="{{value}}") {{_ value}}
- template(name='selectSpinnerName')
- select#spinnerName
- each spinner in spinners
- if isSelected spinner
- option(value="{{spinner}}" selected) {{_ spinner}}
- else
- option(value="{{spinner}}") {{_ spinner}}
|