From b66b277dc44bcd2122dc21965dab209c30636214 Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX <j.jaffeux@gmail.com> Date: Mon, 13 Apr 2020 17:17:20 +0200 Subject: [PATCH] DEV: enforces block-indentation of ember-template-lint rules (#9408) --- .template-lintrc.js | 2 +- .../javascripts/admin/templates/admin.hbs | 55 ++- .../admin/templates/api-keys-index.hbs | 118 +++--- .../admin/templates/api-keys-show.hbs | 8 +- .../admin/templates/backups-index.hbs | 104 ++--- .../components/admin-report-inline-table.hbs | 2 +- .../templates/components/admin-report.hbs | 372 +++++++++--------- .../components/admin-theme-editor.hbs | 94 +++-- .../templates/components/embeddable-host.hbs | 4 +- .../templates/components/silence-details.hbs | 11 +- .../templates/components/site-setting.hbs | 8 +- .../admin/templates/customize-colors-show.hbs | 98 ++--- .../templates/customize-themes-index.hbs | 2 +- .../admin/templates/dashboard_reports.hbs | 18 +- .../admin/templates/email-advanced-test.hbs | 30 +- .../admin/templates/email-preview-digest.hbs | 7 +- .../javascripts/admin/templates/embedding.hbs | 6 +- .../admin/templates/logs/screened-emails.hbs | 30 +- .../templates/logs/screened-ip-addresses.hbs | 138 +++---- .../admin/templates/logs/screened-urls.hbs | 22 +- .../templates/logs/staff-action-logs.hbs | 59 ++- .../templates/modal/admin-add-upload.hbs | 20 +- .../modal/admin-watched-word-test.hbs | 28 +- .../modal/site-setting-default-categories.hbs | 2 +- .../admin/templates/plugins-index.hbs | 6 +- .../javascripts/admin/templates/plugins.hbs | 20 +- .../admin/templates/search-logs-index.hbs | 22 +- .../admin/templates/search-logs-term.hbs | 72 ++-- .../admin/templates/user-badges.hbs | 42 +- .../admin/templates/user-index.hbs | 112 +++--- .../admin/templates/user-tl3-requirements.hbs | 39 +- .../admin/templates/web-hooks-show-events.hbs | 52 +-- .../javascripts/admin/templates/web-hooks.hbs | 56 +-- .../javascripts/discourse/templates/about.hbs | 4 +- .../discourse/templates/badges/show.hbs | 24 +- .../templates/components/avatar-uploader.hbs | 5 +- .../templates/components/basic-topic-list.hbs | 41 +- .../categories-boxes-with-topics.hbs | 29 +- .../templates/components/categories-boxes.hbs | 89 ++--- .../templates/components/categories-only.hbs | 108 ++--- .../templates/components/choose-message.hbs | 2 +- .../components/composer-user-selector.hbs | 24 +- .../components/edit-category-settings.hbs | 141 ++++--- .../components/future-date-input.hbs | 34 +- .../components/group-card-contents.hbs | 25 +- .../components/group-manage-save-button.hbs | 8 +- .../templates/components/group-post.hbs | 33 +- .../templates/components/invite-panel.hbs | 9 +- .../templates/components/navigation-bar.hbs | 2 +- .../templates/components/navigation-item.hbs | 8 +- .../components/reviewable-flagged-post.hbs | 2 +- .../components/reviewable-histories.hbs | 40 +- .../components/reviewable-scores.hbs | 8 +- .../components/search-advanced-options.hbs | 4 +- .../templates/components/topic-progress.hbs | 8 +- .../components/user-card-contents.hbs | 6 +- .../components/user-fields/dropdown.hbs | 7 +- .../templates/components/user-stream-item.hbs | 10 +- .../discourse/templates/full-page-search.hbs | 4 +- .../discourse/templates/group-index.hbs | 147 +++---- .../discourse/templates/group-requests.hbs | 98 ++--- .../javascripts/discourse/templates/group.hbs | 17 +- .../discourse/templates/group/activity.hbs | 4 +- .../discourse/templates/group/manage.hbs | 2 +- .../discourse/templates/group/messages.hbs | 5 +- .../discourse/templates/groups/index.hbs | 16 +- .../discourse/templates/invites/show.hbs | 20 +- .../mobile/components/basic-topic-list.hbs | 96 ++--- .../mobile/components/categories-only.hbs | 109 ++--- .../templates/mobile/group-index.hbs | 103 ++--- .../discourse/templates/modal/bookmark.hbs | 144 +++---- .../templates/modal/create-account.hbs | 196 ++++----- .../discourse/templates/modal/flag.hbs | 30 +- .../templates/modal/insert-hyperlink.hbs | 70 ++-- .../modal/keyboard-shortcuts-help.hbs | 30 +- .../templates/modal/reorder-categories.hbs | 32 +- .../modal/second-factor-add-totp.hbs | 8 +- .../modal/second-factor-backup-edit.hbs | 82 ++-- .../modal/second-factor-edit-security-key.hbs | 15 +- .../templates/modal/second-factor-edit.hbs | 15 +- .../discourse/templates/password-reset.hbs | 3 +- .../templates/preferences-second-factor.hbs | 293 +++++++------- .../templates/preferences/account.hbs | 81 ++-- .../discourse/templates/preferences/apps.hbs | 44 +-- .../templates/preferences/emails.hbs | 2 +- .../templates/preferences/interface.hbs | 26 +- .../templates/preferences/notifications.hbs | 2 +- .../templates/preferences/profile.hbs | 14 +- .../discourse/templates/preferences/tags.hbs | 113 +++--- .../discourse/templates/review-topics.hbs | 46 +-- .../discourse/templates/tags/show.hbs | 96 ++--- .../discourse/templates/user-invited-show.hbs | 4 +- .../javascripts/discourse/templates/user.hbs | 276 +++++++------ .../discourse/templates/user/activity.hbs | 33 +- .../discourse/templates/user/bookmarks.hbs | 68 ++-- .../discourse/templates/user/messages.hbs | 9 +- .../templates/user/notifications.hbs | 20 +- .../discourse/templates/user/summary.hbs | 298 +++++++------- .../templates/components/multi-select.hbs | 10 +- .../templates/components/single-select.hbs | 10 +- .../components/wizard-field-checkbox.hbs | 11 +- 101 files changed, 2543 insertions(+), 2489 deletions(-) diff --git a/.template-lintrc.js b/.template-lintrc.js index 232c2549ca6..f5ff55a03d5 100644 --- a/.template-lintrc.js +++ b/.template-lintrc.js @@ -6,7 +6,7 @@ module.exports = { // "eol-last": "always", rules: { - "block-indentation": false, + "block-indentation": true, "deprecated-render-helper": true, "img-alt-attributes": false, "linebreak-style": true, diff --git a/app/assets/javascripts/admin/templates/admin.hbs b/app/assets/javascripts/admin/templates/admin.hbs index 2396114db65..dacf526c53d 100644 --- a/app/assets/javascripts/admin/templates/admin.hbs +++ b/app/assets/javascripts/admin/templates/admin.hbs @@ -1,35 +1,33 @@ {{#admin-wrapper class="container"}} <div class="row"> <div class="full-width"> - <div class="admin-main-nav"> - - <ul class="nav nav-pills"> - - {{nav-item route='admin.dashboard' label='admin.dashboard.title'}} - {{#if currentUser.admin}} - {{nav-item route='adminSiteSettings' label='admin.site_settings.title'}} - {{/if}} - {{nav-item route='adminUsersList' label='admin.users.title'}} - {{#if showGroups}} - {{nav-item route='groups' label='admin.groups.title'}} - {{/if}} - {{#if showBadges}} - {{nav-item route='adminBadges' label='admin.badges.title'}} - {{/if}} - {{#if currentUser.admin}} - {{nav-item route='adminEmail' label='admin.email.title'}} - {{/if}} - {{nav-item route='adminLogs' label='admin.logs.title'}} - {{#if currentUser.admin}} - {{nav-item route='adminCustomize' label='admin.customize.title'}} - {{nav-item route='adminApi' label='admin.api.title'}} - {{#if siteSettings.enable_backups}} - {{nav-item route='admin.backups' label='admin.backups.title'}} + <div class="admin-main-nav"> + <ul class="nav nav-pills"> + {{nav-item route='admin.dashboard' label='admin.dashboard.title'}} + {{#if currentUser.admin}} + {{nav-item route='adminSiteSettings' label='admin.site_settings.title'}} {{/if}} - {{/if}} - {{nav-item route='adminPlugins' label='admin.plugins.title'}} - {{plugin-outlet name="admin-menu" connectorTagName="" tagName=""}} - </ul> + {{nav-item route='adminUsersList' label='admin.users.title'}} + {{#if showGroups}} + {{nav-item route='groups' label='admin.groups.title'}} + {{/if}} + {{#if showBadges}} + {{nav-item route='adminBadges' label='admin.badges.title'}} + {{/if}} + {{#if currentUser.admin}} + {{nav-item route='adminEmail' label='admin.email.title'}} + {{/if}} + {{nav-item route='adminLogs' label='admin.logs.title'}} + {{#if currentUser.admin}} + {{nav-item route='adminCustomize' label='admin.customize.title'}} + {{nav-item route='adminApi' label='admin.api.title'}} + {{#if siteSettings.enable_backups}} + {{nav-item route='admin.backups' label='admin.backups.title'}} + {{/if}} + {{/if}} + {{nav-item route='adminPlugins' label='admin.plugins.title'}} + {{plugin-outlet name="admin-menu" connectorTagName="" tagName=""}} + </ul> </div> <div class='boxed white admin-content'> @@ -37,7 +35,6 @@ {{outlet}} </div> </div> - </div> </div> {{/admin-wrapper}} diff --git a/app/assets/javascripts/admin/templates/api-keys-index.hbs b/app/assets/javascripts/admin/templates/api-keys-index.hbs index bd91228055a..0672b99f4fe 100644 --- a/app/assets/javascripts/admin/templates/api-keys-index.hbs +++ b/app/assets/javascripts/admin/templates/api-keys-index.hbs @@ -6,65 +6,65 @@ {{#if model}} <table class="api-keys grid"> - <thead> - <th>{{i18n "admin.api.key"}}</th> - <th>{{i18n "admin.api.description"}}</th> - <th>{{i18n "admin.api.user"}}</th> - <th>{{i18n "admin.api.created"}}</th> - <th>{{i18n "admin.api.last_used"}}</th> - <th> </th> - </thead> - <tbody> - {{#each model as |k|}} - <tr class={{if k.revoked_at "revoked"}}> - <td class="key"> - {{#if k.revoked_at}}{{d-icon 'times-circle'}}{{/if}} - {{k.truncatedKey}} - </td> - <td class="key-description"> - {{k.shortDescription}} - </td> - <td class="key-user"> - <div class="label">{{i18n 'admin.api.user'}}</div> - {{#if k.user}} - {{#link-to "adminUser" k.user}} - {{avatar k.user imageSize="small"}} - {{/link-to}} - {{else}} - {{i18n "admin.api.all_users"}} - {{/if}} - </td> - <td class="key-created"> - <div class="label">{{i18n 'admin.api.created'}}</div> - {{format-date k.created_at}} - </td> - <td class="key-last-used"> - <div class="label">{{i18n 'admin.api.last_used'}}</div> - {{#if k.last_used_at}} - {{format-date k.last_used_at}} - {{else}} - {{i18n "admin.api.never_used"}} - {{/if}} - </td> - <td class="key-controls"> - {{d-button action=(route-action "show" k) icon="far-eye" title="admin.api.show_details"}} - {{#if k.revoked_at}} - {{d-button - action=(action "undoRevokeKey") - actionParam=k icon="undo" - title="admin.api.undo_revoke"}} - {{else}} - {{d-button - class="btn-danger" - action=(action "revokeKey") - actionParam=k - icon="times" - title="admin.api.revoke"}} - {{/if}} - </td> - </tr> - {{/each}} - </tbody> + <thead> + <th>{{i18n "admin.api.key"}}</th> + <th>{{i18n "admin.api.description"}}</th> + <th>{{i18n "admin.api.user"}}</th> + <th>{{i18n "admin.api.created"}}</th> + <th>{{i18n "admin.api.last_used"}}</th> + <th> </th> + </thead> + <tbody> + {{#each model as |k|}} + <tr class={{if k.revoked_at "revoked"}}> + <td class="key"> + {{#if k.revoked_at}}{{d-icon 'times-circle'}}{{/if}} + {{k.truncatedKey}} + </td> + <td class="key-description"> + {{k.shortDescription}} + </td> + <td class="key-user"> + <div class="label">{{i18n 'admin.api.user'}}</div> + {{#if k.user}} + {{#link-to "adminUser" k.user}} + {{avatar k.user imageSize="small"}} + {{/link-to}} + {{else}} + {{i18n "admin.api.all_users"}} + {{/if}} + </td> + <td class="key-created"> + <div class="label">{{i18n 'admin.api.created'}}</div> + {{format-date k.created_at}} + </td> + <td class="key-last-used"> + <div class="label">{{i18n 'admin.api.last_used'}}</div> + {{#if k.last_used_at}} + {{format-date k.last_used_at}} + {{else}} + {{i18n "admin.api.never_used"}} + {{/if}} + </td> + <td class="key-controls"> + {{d-button action=(route-action "show" k) icon="far-eye" title="admin.api.show_details"}} + {{#if k.revoked_at}} + {{d-button + action=(action "undoRevokeKey") + actionParam=k icon="undo" + title="admin.api.undo_revoke"}} + {{else}} + {{d-button + class="btn-danger" + action=(action "revokeKey") + actionParam=k + icon="times" + title="admin.api.revoke"}} + {{/if}} + </td> + </tr> + {{/each}} + </tbody> </table> {{else}} <p>{{i18n "admin.api.none"}}</p> diff --git a/app/assets/javascripts/admin/templates/api-keys-show.hbs b/app/assets/javascripts/admin/templates/api-keys-show.hbs index b96bc109b38..736a4ef777c 100644 --- a/app/assets/javascripts/admin/templates/api-keys-show.hbs +++ b/app/assets/javascripts/admin/templates/api-keys-show.hbs @@ -30,11 +30,11 @@ {{#admin-form-row label="admin.api.user"}} {{#if model.user}} - {{#link-to "adminUser" model.user}} - {{avatar model.user imageSize="small"}} {{model.user.username}} - {{/link-to}} + {{#link-to "adminUser" model.user}} + {{avatar model.user imageSize="small"}} {{model.user.username}} + {{/link-to}} {{else}} - {{i18n "admin.api.all_users"}} + {{i18n "admin.api.all_users"}} {{/if}} {{/admin-form-row}} diff --git a/app/assets/javascripts/admin/templates/backups-index.hbs b/app/assets/javascripts/admin/templates/backups-index.hbs index 9bfbfc21814..8c5e593a639 100644 --- a/app/assets/javascripts/admin/templates/backups-index.hbs +++ b/app/assets/javascripts/admin/templates/backups-index.hbs @@ -41,57 +41,57 @@ <th></th> </thead> <tbody> - {{#each model as |backup|}} - <tr> - <td class="backup-filename">{{backup.filename}}</td> - <td class="backup-size">{{human-size backup.size}}</td> - <td class="backup-controls"> - <div> - {{d-button class="btn-default download" - action=(action "download") - actionParam=backup - icon="download" - title="admin.backups.operations.download.title" - label="admin.backups.operations.download.label"}} - {{#if status.isOperationRunning}} - {{d-button - icon="far-trash-alt" - action=(route-action "destroyBackup") - actionParam=backup class="btn-danger" - disabled="true" - title="admin.backups.operations.is_running"}} - {{d-button - icon="play" - action=(route-action "startRestore") - actionParam=backup disabled=status.restoreDisabled - class="btn-default" - title=restoreTitle - label="admin.backups.operations.restore.label"}} - {{else}} - {{d-button - icon="far-trash-alt" - action=(route-action "destroyBackup") - actionParam=backup - class="btn-danger" - title="admin.backups.operations.destroy.title"}} - {{d-button - icon="play" - action=(route-action "startRestore") - actionParam=backup - disabled=status.restoreDisabled - class="btn-default btn-restore" - title=restoreTitle - label="admin.backups.operations.restore.label"}} - {{/if}} - </div> - </td> - </tr> - {{else}} - <tr> - <td>{{i18n "admin.backups.none"}}</td> - <td></td> - <td></td> - </tr> - {{/each}} + {{#each model as |backup|}} + <tr> + <td class="backup-filename">{{backup.filename}}</td> + <td class="backup-size">{{human-size backup.size}}</td> + <td class="backup-controls"> + <div> + {{d-button class="btn-default download" + action=(action "download") + actionParam=backup + icon="download" + title="admin.backups.operations.download.title" + label="admin.backups.operations.download.label"}} + {{#if status.isOperationRunning}} + {{d-button + icon="far-trash-alt" + action=(route-action "destroyBackup") + actionParam=backup class="btn-danger" + disabled="true" + title="admin.backups.operations.is_running"}} + {{d-button + icon="play" + action=(route-action "startRestore") + actionParam=backup disabled=status.restoreDisabled + class="btn-default" + title=restoreTitle + label="admin.backups.operations.restore.label"}} + {{else}} + {{d-button + icon="far-trash-alt" + action=(route-action "destroyBackup") + actionParam=backup + class="btn-danger" + title="admin.backups.operations.destroy.title"}} + {{d-button + icon="play" + action=(route-action "startRestore") + actionParam=backup + disabled=status.restoreDisabled + class="btn-default btn-restore" + title=restoreTitle + label="admin.backups.operations.restore.label"}} + {{/if}} + </div> + </td> + </tr> + {{else}} + <tr> + <td>{{i18n "admin.backups.none"}}</td> + <td></td> + <td></td> + </tr> + {{/each}} </tbody> </table> diff --git a/app/assets/javascripts/admin/templates/components/admin-report-inline-table.hbs b/app/assets/javascripts/admin/templates/components/admin-report-inline-table.hbs index 76c8eacb0be..9b7f797d036 100644 --- a/app/assets/javascripts/admin/templates/components/admin-report-inline-table.hbs +++ b/app/assets/javascripts/admin/templates/components/admin-report-inline-table.hbs @@ -8,7 +8,7 @@ {{data.x}} </span> <span class="value"> - {{number data.y}} + {{number data.y}} </span> </a> {{/each}} diff --git a/app/assets/javascripts/admin/templates/components/admin-report.hbs b/app/assets/javascripts/admin/templates/components/admin-report.hbs index 48bd58cab91..15d7314622b 100644 --- a/app/assets/javascripts/admin/templates/components/admin-report.hbs +++ b/app/assets/javascripts/admin/templates/components/admin-report.hbs @@ -1,202 +1,202 @@ {{#if isEnabled}} -{{#conditional-loading-section isLoading=isLoading}} - {{#if showHeader}} - <div class="header"> - {{#if showTitle}} - <ul class="breadcrumb"> - {{#if showAllReportsLink}} - <li class="item all-reports"> - {{#link-to "admin.dashboardReports" class="report-url"}} - {{i18n "admin.dashboard.all_reports"}} - {{/link-to}} - </li> + {{#conditional-loading-section isLoading=isLoading}} + {{#if showHeader}} + <div class="header"> + {{#if showTitle}} + <ul class="breadcrumb"> + {{#if showAllReportsLink}} + <li class="item all-reports"> + {{#link-to "admin.dashboardReports" class="report-url"}} + {{i18n "admin.dashboard.all_reports"}} + {{/link-to}} + </li> + + {{#unless showNotFoundError}} + <li class="item separator">|</li> + {{/unless}} + {{/if}} {{#unless showNotFoundError}} - <li class="item separator">|</li> - {{/unless}} - {{/if}} - - {{#unless showNotFoundError}} - <li class="item report"> - <a href={{model.reportUrl}} class="report-url"> - {{model.title}} - </a> - - {{#if model.description}} - {{#if model.description_link}} - <a target="_blank" rel="noopener" href={{model.description_link}} class="info" data-tooltip={{model.description}}> - {{d-icon "question-circle"}} - </a> - {{else}} - <span class="info" data-tooltip={{model.description}}> - {{d-icon "question-circle"}} - </span> - {{/if}} - {{/if}} - </li> - {{/unless}} - </ul> - {{/if}} - - {{#if shouldDisplayTrend}} - <div class="trend {{model.trend}}"> - <span class="value" title={{model.trendTitle}}> - {{#if model.average}} - {{number model.currentAverage}}{{#if model.percent}}%{{/if}} - {{else}} - {{number model.currentTotal noTitle="true"}}{{#if model.percent}}%{{/if}} - {{/if}} - - {{#if model.trendIcon}} - {{d-icon model.trendIcon class="icon"}} - {{/if}} - </span> - </div> - {{/if}} - </div> - {{/if}} - - <div class="body"> - <div class="main"> - {{#if showError}} - {{#if showTimeoutError}} - <div class="alert alert-error report-alert timeout"> - {{d-icon "exclamation-triangle"}} - <span>{{i18n "admin.dashboard.timeout_error"}}</span> - </div> - {{/if}} - - {{#if showExceptionError}} - <div class="alert alert-error report-alert exception"> - {{d-icon "exclamation-triangle"}} - <span>{{i18n "admin.dashboard.exception_error"}}</span> - </div> - {{/if}} - - {{#if showNotFoundError}} - <div class="alert alert-error report-alert not-found"> - {{d-icon "exclamation-triangle"}} - <span>{{i18n "admin.dashboard.not_found_error"}}</span> - </div> - {{/if}} - {{else}} - {{#if hasData}} - {{#if currentMode}} - {{component modeComponent model=model options=options}} - - {{#if model.relatedReport}} - {{admin-report showFilteringUI=false dataSourceName=model.relatedReport.type}} - {{/if}} - {{/if}} - {{else}} - {{#if rateLimitationString}} - <div class="alert alert-error report-alert rate-limited"> - {{d-icon "thermometer-three-quarters"}} - <span>{{rateLimitationString}}</span> - </div> - {{else}} - <div class="alert alert-info report-alert no-data"> - {{d-icon "chart-pie"}} - {{#if model.reportUrl}} + <li class="item report"> <a href={{model.reportUrl}} class="report-url"> - <span> - {{#if model.title}} - {{model.title}} — - {{/if}} - {{i18n "admin.dashboard.reports.no_data"}} - </span> + {{model.title}} </a> + + {{#if model.description}} + {{#if model.description_link}} + <a target="_blank" rel="noopener" href={{model.description_link}} class="info" data-tooltip={{model.description}}> + {{d-icon "question-circle"}} + </a> + {{else}} + <span class="info" data-tooltip={{model.description}}> + {{d-icon "question-circle"}} + </span> + {{/if}} + {{/if}} + </li> + {{/unless}} + </ul> + {{/if}} + + {{#if shouldDisplayTrend}} + <div class="trend {{model.trend}}"> + <span class="value" title={{model.trendTitle}}> + {{#if model.average}} + {{number model.currentAverage}}{{#if model.percent}}%{{/if}} {{else}} - <span>{{i18n "admin.dashboard.reports.no_data"}}</span> + {{number model.currentTotal noTitle="true"}}{{#if model.percent}}%{{/if}} {{/if}} - </div> - {{/if}} - {{/if}} - {{/if}} - </div> - {{#if showFilteringUI}} - <div class="filters"> - {{#if showModes}} - <div class="modes"> - {{#each displayedModes as |displayedMode|}} - {{d-button - action=(action "changeMode") - actionParam=displayedMode.mode - class=displayedMode.cssClass - icon=displayedMode.icon}} - {{/each}} - </div> - {{/if}} - - {{#if showDatesOptions}} - <div class="control"> - <span class="label"> - {{i18n 'admin.dashboard.reports.start_date'}} + {{#if model.trendIcon}} + {{d-icon model.trendIcon class="icon"}} + {{/if}} </span> - - <div class="input"> - {{date-input - date=startDate - onChange=(action "onChangeStartDate") - }} - </div> - </div> - - <div class="control"> - <span class="label"> - {{i18n 'admin.dashboard.reports.end_date'}} - </span> - - <div class="input"> - {{date-input - date=endDate - onChange=(action "onChangeEndDate") - }} - </div> - </div> - {{/if}} - - {{#each model.available_filters as |filter|}} - <div class="control"> - <span class="label"> - {{i18n (concat "admin.dashboard.reports.filters." filter.id ".label")}} - </span> - - <div class="input"> - {{component - (concat "report-filters/" filter.id) - filter=filter - applyFilter=(action "applyFilter")}} - </div> - </div> - {{/each}} - - <div class="control"> - <div class="input"> - {{d-button - class="btn-default export-csv-btn" - action=(action "exportCsv") - label="admin.export_csv.button_text" - icon="download"}} - </div> - </div> - - {{#if showRefresh}} - <div class="control"> - <div class="input"> - {{d-button - class="refresh-report-btn btn-primary" - action=(action "refreshReport") - label="admin.dashboard.reports.refresh_report" - icon="sync"}} - </div> </div> {{/if}} </div> {{/if}} - </div> -{{/conditional-loading-section}} + + <div class="body"> + <div class="main"> + {{#if showError}} + {{#if showTimeoutError}} + <div class="alert alert-error report-alert timeout"> + {{d-icon "exclamation-triangle"}} + <span>{{i18n "admin.dashboard.timeout_error"}}</span> + </div> + {{/if}} + + {{#if showExceptionError}} + <div class="alert alert-error report-alert exception"> + {{d-icon "exclamation-triangle"}} + <span>{{i18n "admin.dashboard.exception_error"}}</span> + </div> + {{/if}} + + {{#if showNotFoundError}} + <div class="alert alert-error report-alert not-found"> + {{d-icon "exclamation-triangle"}} + <span>{{i18n "admin.dashboard.not_found_error"}}</span> + </div> + {{/if}} + {{else}} + {{#if hasData}} + {{#if currentMode}} + {{component modeComponent model=model options=options}} + + {{#if model.relatedReport}} + {{admin-report showFilteringUI=false dataSourceName=model.relatedReport.type}} + {{/if}} + {{/if}} + {{else}} + {{#if rateLimitationString}} + <div class="alert alert-error report-alert rate-limited"> + {{d-icon "thermometer-three-quarters"}} + <span>{{rateLimitationString}}</span> + </div> + {{else}} + <div class="alert alert-info report-alert no-data"> + {{d-icon "chart-pie"}} + {{#if model.reportUrl}} + <a href={{model.reportUrl}} class="report-url"> + <span> + {{#if model.title}} + {{model.title}} — + {{/if}} + {{i18n "admin.dashboard.reports.no_data"}} + </span> + </a> + {{else}} + <span>{{i18n "admin.dashboard.reports.no_data"}}</span> + {{/if}} + </div> + {{/if}} + {{/if}} + {{/if}} + </div> + + {{#if showFilteringUI}} + <div class="filters"> + {{#if showModes}} + <div class="modes"> + {{#each displayedModes as |displayedMode|}} + {{d-button + action=(action "changeMode") + actionParam=displayedMode.mode + class=displayedMode.cssClass + icon=displayedMode.icon}} + {{/each}} + </div> + {{/if}} + + {{#if showDatesOptions}} + <div class="control"> + <span class="label"> + {{i18n 'admin.dashboard.reports.start_date'}} + </span> + + <div class="input"> + {{date-input + date=startDate + onChange=(action "onChangeStartDate") + }} + </div> + </div> + + <div class="control"> + <span class="label"> + {{i18n 'admin.dashboard.reports.end_date'}} + </span> + + <div class="input"> + {{date-input + date=endDate + onChange=(action "onChangeEndDate") + }} + </div> + </div> + {{/if}} + + {{#each model.available_filters as |filter|}} + <div class="control"> + <span class="label"> + {{i18n (concat "admin.dashboard.reports.filters." filter.id ".label")}} + </span> + + <div class="input"> + {{component + (concat "report-filters/" filter.id) + filter=filter + applyFilter=(action "applyFilter")}} + </div> + </div> + {{/each}} + + <div class="control"> + <div class="input"> + {{d-button + class="btn-default export-csv-btn" + action=(action "exportCsv") + label="admin.export_csv.button_text" + icon="download"}} + </div> + </div> + + {{#if showRefresh}} + <div class="control"> + <div class="input"> + {{d-button + class="refresh-report-btn btn-primary" + action=(action "refreshReport") + label="admin.dashboard.reports.refresh_report" + icon="sync"}} + </div> + </div> + {{/if}} + </div> + {{/if}} + </div> + {{/conditional-loading-section}} {{else}} <div class="alert alert-info"> {{html-safe disabledLabel}} diff --git a/app/assets/javascripts/admin/templates/components/admin-theme-editor.hbs b/app/assets/javascripts/admin/templates/components/admin-theme-editor.hbs index ba31c888c32..3f9e09eec81 100644 --- a/app/assets/javascripts/admin/templates/components/admin-theme-editor.hbs +++ b/app/assets/javascripts/admin/templates/components/admin-theme-editor.hbs @@ -1,94 +1,90 @@ <div class='edit-main-nav admin-controls'> - <nav> + <nav> <ul class='nav nav-pills target'> - {{#each visibleTargets as |target|}} + {{#each visibleTargets as |target|}} <li> - {{#link-to editRouteName - theme.id - target.name - fieldName - replace=true - title=field.title - class=(if target.edited 'edited' 'blank') - }} + {{#link-to editRouteName + theme.id + target.name + fieldName + replace=true + title=field.title + class=(if target.edited 'edited' 'blank') + }} {{#if target.error}}{{d-icon 'exclamation-triangle'}}{{/if}} - {{#if target.icon}} - {{d-icon target.icon}} - {{/if}} + {{#if target.icon}}{{d-icon target.icon}}{{/if}} {{i18n (concat 'admin.customize.theme.' target.name)}} - {{/link-to}} + {{/link-to}} </li> - {{/each}} + {{/each}} - {{#if allowAdvanced}} + {{#if allowAdvanced}} <li> - <a {{action "toggleShowAdvanced"}} - class='no-text' - href - title={{i18n (concat "admin.customize.theme." (if showAdvanced "hide_advanced" "show_advanced"))}} - > - {{d-icon (if showAdvanced "angle-double-left" "angle-double-right")}} - </a> + <a {{action "toggleShowAdvanced"}} + class='no-text' + href + title={{i18n (concat "admin.customize.theme." (if showAdvanced "hide_advanced" "show_advanced"))}}> + {{d-icon (if showAdvanced "angle-double-left" "angle-double-right")}} + </a> </li> - {{/if}} - - <li class="spacer"></li> - <li> + {{/if}} + <li class="spacer"></li> + <li> <label> - {{input type="checkbox" checked=onlyOverridden click=(action "onlyOverriddenChanged" value="target.checked")}} - {{i18n 'admin.customize.theme.hide_unused_fields'}} + {{input type="checkbox" checked=onlyOverridden click=(action "onlyOverriddenChanged" value="target.checked")}} + {{i18n 'admin.customize.theme.hide_unused_fields'}} </label> - </li> + </li> </ul> - </nav> + </nav> </div> <div class='admin-controls'> - <nav> + <nav> <ul class='nav nav-pills fields'> - {{#each visibleFields as |field|}} + {{#each visibleFields as |field|}} <li> - {{#link-to editRouteName + {{#link-to editRouteName theme.id currentTargetName field.name replace=true title=field.title class=(if field.edited 'edited' 'blank') - }} + }} {{#if field.error}}{{d-icon 'exclamation-triangle'}}{{/if}} {{#if field.icon}}{{d-icon field.icon}}{{/if}} {{field.translatedName}} - - {{/link-to}} + {{/link-to}} </li> - {{/each}} + {{/each}} - {{#if showAddField}} + {{#if showAddField}} <li> - {{#if addingField}} + {{#if addingField}} {{input type=text value=newFieldName enter=(action 'addField') escape-press=(action "cancelAddField")}} {{d-button class="ok" action=(action "addField" newFieldName) icon="check"}} {{d-button class="cancel" action=(action "cancelAddField") icon="times"}} - {{else}} + {{else}} <a href {{action "toggleAddField" currentTargetName}} class="no-text"> - {{d-icon "plus"}} + {{d-icon "plus"}} </a> - {{/if}} + {{/if}} </li> - {{/if}} - <li class='spacer'></li> - <li> + {{/if}} + + <li class='spacer'></li> + <li> <a href {{action "toggleMaximize"}} class="no-text"> {{d-icon maximizeIcon}} </a> - </li> + </li> </ul> - </nav> + </nav> </div> {{#if error}} - <pre class='field-error'>{{error}}</pre> + <pre class='field-error'>{{error}}</pre> {{/if}} {{ace-editor content=activeSection editorId=editorId mode=activeSectionMode autofocus="true"}} diff --git a/app/assets/javascripts/admin/templates/components/embeddable-host.hbs b/app/assets/javascripts/admin/templates/components/embeddable-host.hbs index b7833d621d3..393cf151659 100644 --- a/app/assets/javascripts/admin/templates/components/embeddable-host.hbs +++ b/app/assets/javascripts/admin/templates/components/embeddable-host.hbs @@ -3,10 +3,10 @@ <div class="label">{{i18n "admin.embedding.host"}}</div> {{input value=buffered.host placeholder="example.com" enter=(action "save") class="host-name"}} </td> - <td class="editing-input"> + <td class="editing-input"> <div class="label">{{i18n "admin.embedding.class_name"}}</div> {{input value=buffered.class_name placeholder="class" enter=(action "save") class="class-name"}} - </td> + </td> <td class="editing-input"> <div class="label">{{i18n "admin.embedding.path_whitelist"}}</div> {{input value=buffered.path_whitelist placeholder="/blog/.*" enter=(action "save") class="path-whitelist"}} diff --git a/app/assets/javascripts/admin/templates/components/silence-details.hbs b/app/assets/javascripts/admin/templates/components/silence-details.hbs index bdcb21cbc58..f34559ec3dc 100644 --- a/app/assets/javascripts/admin/templates/components/silence-details.hbs +++ b/app/assets/javascripts/admin/templates/components/silence-details.hbs @@ -3,11 +3,12 @@ <div class='silence-reason-label'> {{html-safe (i18n 'admin.user.silence_reason_label')}} </div> - </label> - {{text-field - value=reason - class="silence-reason" - placeholderKey="admin.user.silence_reason_placeholder"}} + </label> + {{text-field + value=reason + class="silence-reason" + placeholderKey="admin.user.silence_reason_placeholder" + }} </div> <label> diff --git a/app/assets/javascripts/admin/templates/components/site-setting.hbs b/app/assets/javascripts/admin/templates/components/site-setting.hbs index 23eee45b6de..6984723cd6a 100644 --- a/app/assets/javascripts/admin/templates/components/site-setting.hbs +++ b/app/assets/javascripts/admin/templates/components/site-setting.hbs @@ -1,8 +1,8 @@ <div class='setting-label'> - <h3>{{settingName}}</h3> - {{#if defaultIsAvailable}} - <a href onClick={{action 'setDefaultValues'}}>{{setting.setDefaultValuesLabel}}</a> - {{/if}} + <h3>{{settingName}}</h3> + {{#if defaultIsAvailable}} + <a href onClick={{action 'setDefaultValues'}}>{{setting.setDefaultValuesLabel}}</a> + {{/if}} </div> <div class="setting-value"> {{component componentName setting=setting value=buffered.value validationMessage=validationMessage preview=preview isSecret=isSecret allowAny=allowAny}} diff --git a/app/assets/javascripts/admin/templates/customize-colors-show.hbs b/app/assets/javascripts/admin/templates/customize-colors-show.hbs index ca912cfc338..825095909ef 100644 --- a/app/assets/javascripts/admin/templates/customize-colors-show.hbs +++ b/app/assets/javascripts/admin/templates/customize-colors-show.hbs @@ -3,31 +3,35 @@ <h1>{{#if model.theme_id}}{{model.name}}{{else}}{{text-field class="style-name" value=model.name}}{{/if}}</h1> <div class="controls"> {{#unless model.theme_id}} - {{d-button - class="btn-primary" - action=(action "save") - disabled=model.disableSave - label="admin.customize.save"}} + {{d-button + class="btn-primary" + action=(action "save") + disabled=model.disableSave + label="admin.customize.save" + }} {{/unless}} {{d-button class="btn-default" action=(action "copy" model) icon="copy" - label="admin.customize.copy"}} + label="admin.customize.copy" + }} {{d-button class="btn-default" action=(action "copyToClipboard" model) icon="far-clipboard" - label="admin.customize.copy_to_clipboard"}} + label="admin.customize.copy_to_clipboard" + }} {{#if model.theme_id}} - {{i18n "admin.customize.theme_owner"}} - {{#link-to "adminCustomizeThemes.show" model.theme_id}}{{model.theme_name}}{{/link-to}} + {{i18n "admin.customize.theme_owner"}} + {{#link-to "adminCustomizeThemes.show" model.theme_id}}{{model.theme_name}}{{/link-to}} {{else}} - {{d-button - action=(action "destroy") - class="btn-danger" - icon="far-trash-alt" - label="admin.customize.delete"}} + {{d-button + action=(action "destroy") + class="btn-danger" + icon="far-trash-alt" + label="admin.customize.delete" + }} {{/if}} <span class="saving {{unless model.savingStatus 'hidden'}}">{{model.savingStatus}}</span> </div> @@ -44,40 +48,40 @@ </div> {{#if colors.length}} - <table class="table colors"> - <thead> - <tr> - <th></th> - <th class="hex">{{i18n 'admin.customize.color'}}</th> - <th></th> - </tr> - </thead> - <tbody> - {{#each colors as |c|}} - <tr class="{{if c.changed 'changed'}} {{if c.valid 'valid' 'invalid'}}"> - <td class="name" title={{c.name}}> - <h3>{{c.translatedName}}</h3> - <p class="description">{{c.description}}</p> - </td> - <td class="hex">{{color-input hexValue=c.hex brightnessValue=c.brightness valid=c.valid}}</td> - <td class="actions"> - {{#unless model.theme_id}} - {{d-button - class=(concat "btn-default revert " (unless c.savedIsOverriden "invisible")) - action=(action "revert" c) - title="admin.customize.colors.revert_title" - label="revert"}} - {{d-button - class=(concat "btn-default undo " (unless c.changed "invisible")) - action=(action "undo" c) - title="admin.customize.colors.undo_title" - label="undo"}} - {{/unless}} - </td> + <table class="table colors"> + <thead> + <tr> + <th></th> + <th class="hex">{{i18n 'admin.customize.color'}}</th> + <th></th> </tr> - {{/each}} - </tbody> - </table> + </thead> + <tbody> + {{#each colors as |c|}} + <tr class="{{if c.changed 'changed'}} {{if c.valid 'valid' 'invalid'}}"> + <td class="name" title={{c.name}}> + <h3>{{c.translatedName}}</h3> + <p class="description">{{c.description}}</p> + </td> + <td class="hex">{{color-input hexValue=c.hex brightnessValue=c.brightness valid=c.valid}}</td> + <td class="actions"> + {{#unless model.theme_id}} + {{d-button + class=(concat "btn-default revert " (unless c.savedIsOverriden "invisible")) + action=(action "revert" c) + title="admin.customize.colors.revert_title" + label="revert"}} + {{d-button + class=(concat "btn-default undo " (unless c.changed "invisible")) + action=(action "undo" c) + title="admin.customize.colors.undo_title" + label="undo"}} + {{/unless}} + </td> + </tr> + {{/each}} + </tbody> + </table> {{else}} <p>{{i18n 'search.no_results'}}</p> {{/if}} diff --git a/app/assets/javascripts/admin/templates/customize-themes-index.hbs b/app/assets/javascripts/admin/templates/customize-themes-index.hbs index 32ad33db105..1c17f0b99b7 100644 --- a/app/assets/javascripts/admin/templates/customize-themes-index.hbs +++ b/app/assets/javascripts/admin/templates/customize-themes-index.hbs @@ -2,7 +2,7 @@ <img src={{womanArtistEmojiURL}}> <div class="content-wrapper"> <h1>{{i18n "admin.customize.theme.themes_intro"}}</h1> - <div class="create-actions"> + <div class="create-actions"> {{d-button action=(route-action "installModal") icon="upload" label="admin.customize.install" class="btn-primary"}} </div> <div class="external-resources"> diff --git a/app/assets/javascripts/admin/templates/dashboard_reports.hbs b/app/assets/javascripts/admin/templates/dashboard_reports.hbs index d6666cee713..e5660e9c50b 100644 --- a/app/assets/javascripts/admin/templates/dashboard_reports.hbs +++ b/app/assets/javascripts/admin/templates/dashboard_reports.hbs @@ -1,12 +1,13 @@ {{#conditional-loading-spinner condition=isLoading}} - <div class="reports-index section"> - <div class="section-title"> - <h2>{{i18n "admin.reports.title"}}</h2> + <div class="reports-index section"> + <div class="section-title"> + <h2>{{i18n "admin.reports.title"}}</h2> {{input class="filter-reports-input" input=(action "filterReports" value="target.value") placeholder=(i18n "admin.dashboard.filter_reports") - autofocus=true}} + autofocus=true + }} </div> <ul class="reports-list"> @@ -14,12 +15,11 @@ <li class="report"> {{#link-to 'adminReports.show' report.type}} <h3 class="report-title">{{report.title}}</h3> - {{#if report.description}} - <p class="report-description"> - {{report.description}} - </p> - {{/if}} + <p class="report-description"> + {{report.description}} + </p> + {{/if}} {{/link-to}} </li> {{/each}} diff --git a/app/assets/javascripts/admin/templates/email-advanced-test.hbs b/app/assets/javascripts/admin/templates/email-advanced-test.hbs index f0dcaa5c6af..fe55b11009c 100644 --- a/app/assets/javascripts/admin/templates/email-advanced-test.hbs +++ b/app/assets/javascripts/admin/templates/email-advanced-test.hbs @@ -5,23 +5,21 @@ {{textarea name="email" value=email class="email-body"}} {{d-button action=(action "run") - label="admin.email.advanced_test.run"}} + label="admin.email.advanced_test.run" + }} </div> {{#conditional-loading-spinner condition=loading}} - -{{#if format}} - <hr> - <div class="text"> - <h3>{{i18n 'admin.email.advanced_test.text'}}</h3> - <pre class="full-reason">{{html-safe text}}</pre> - </div> - - <hr> - <div class="elided"> - <h3>{{i18n 'admin.email.advanced_test.elided'}}</h3> - <pre class="full-reason">{{html-safe elided}}</pre> - </div> -{{/if}} - + {{#if format}} + <hr> + <div class="text"> + <h3>{{i18n 'admin.email.advanced_test.text'}}</h3> + <pre class="full-reason">{{html-safe text}}</pre> + </div> + <hr> + <div class="elided"> + <h3>{{i18n 'admin.email.advanced_test.elided'}}</h3> + <pre class="full-reason">{{html-safe elided}}</pre> + </div> + {{/if}} {{/conditional-loading-spinner}} diff --git a/app/assets/javascripts/admin/templates/email-preview-digest.hbs b/app/assets/javascripts/admin/templates/email-preview-digest.hbs index 0dfcb04531b..82217bacfbf 100644 --- a/app/assets/javascripts/admin/templates/email-preview-digest.hbs +++ b/app/assets/javascripts/admin/templates/email-preview-digest.hbs @@ -13,8 +13,11 @@ <div class="toggle"> <label>{{i18n 'admin.email.format'}}</label> {{#if showHtml}} - <span>{{i18n 'admin.email.html'}}</span> | <a href - {{action "toggleShowHtml"}}>{{i18n 'admin.email.text'}}</a> + <span>{{i18n 'admin.email.html'}}</span> + | + <a href {{action "toggleShowHtml"}}> + {{i18n 'admin.email.text'}} + </a> {{else}} <a href {{action "toggleShowHtml"}}>{{i18n 'admin.email.html'}}</a> | <span>{{i18n 'admin.email.text'}}</span> diff --git a/app/assets/javascripts/admin/templates/embedding.hbs b/app/assets/javascripts/admin/templates/embedding.hbs index 2a5d39f12cc..b9422bbb110 100644 --- a/app/assets/javascripts/admin/templates/embedding.hbs +++ b/app/assets/javascripts/admin/templates/embedding.hbs @@ -9,9 +9,9 @@ <th style='width: 10%'> </th> </thead> <tbody> - {{#each embedding.embeddable_hosts as |host|}} - {{embeddable-host host=host deleteHost=(action "deleteHost")}} - {{/each}} + {{#each embedding.embeddable_hosts as |host|}} + {{embeddable-host host=host deleteHost=(action "deleteHost")}} + {{/each}} </tbody> </table> {{else}} diff --git a/app/assets/javascripts/admin/templates/logs/screened-emails.hbs b/app/assets/javascripts/admin/templates/logs/screened-emails.hbs index e8cb30140c0..6cc12397839 100644 --- a/app/assets/javascripts/admin/templates/logs/screened-emails.hbs +++ b/app/assets/javascripts/admin/templates/logs/screened-emails.hbs @@ -25,21 +25,21 @@ <th class="action"></th> </thead> <tbody> - {{#each model as |item|}} - <tr class="admin-list-item"> - <td class="col first email"> - <div class="overflow-ellipsis" title={{item.email}}>{{item.email}}</div> - </td> - <td class="action">{{item.actionName}}</td> - <td class="match_count"><div class="label">{{i18n 'admin.logs.match_count'}}</div>{{item.match_count}}</td> - <td class="last_match_at"><div class="label">{{i18n 'admin.logs.last_match_at'}}</div>{{age-with-tooltip item.last_match_at}}</td> - <td class="created_at"><div class="label">{{i18n 'admin.logs.created_at'}}</div>{{age-with-tooltip item.created_at}}</td> - <td class="ip_address">{{item.ip_address}}</td> - <td class="action"> - {{d-button action=(action "clearBlock") actionParam=item icon="check" label="admin.logs.screened_emails.actions.allow"}} - </td> - </tr> - {{/each}} + {{#each model as |item|}} + <tr class="admin-list-item"> + <td class="col first email"> + <div class="overflow-ellipsis" title={{item.email}}>{{item.email}}</div> + </td> + <td class="action">{{item.actionName}}</td> + <td class="match_count"><div class="label">{{i18n 'admin.logs.match_count'}}</div>{{item.match_count}}</td> + <td class="last_match_at"><div class="label">{{i18n 'admin.logs.last_match_at'}}</div>{{age-with-tooltip item.last_match_at}}</td> + <td class="created_at"><div class="label">{{i18n 'admin.logs.created_at'}}</div>{{age-with-tooltip item.created_at}}</td> + <td class="ip_address">{{item.ip_address}}</td> + <td class="action"> + {{d-button action=(action "clearBlock") actionParam=item icon="check" label="admin.logs.screened_emails.actions.allow"}} + </td> + </tr> + {{/each}} </tbody> </table> diff --git a/app/assets/javascripts/admin/templates/logs/screened-ip-addresses.hbs b/app/assets/javascripts/admin/templates/logs/screened-ip-addresses.hbs index 96a185fb172..2d256ce151f 100644 --- a/app/assets/javascripts/admin/templates/logs/screened-ip-addresses.hbs +++ b/app/assets/javascripts/admin/templates/logs/screened-ip-addresses.hbs @@ -36,83 +36,83 @@ <th class="col heading actions"></th> </thead> <tbody> - {{#each model as |item|}} - <tr class="admin-list-item"> - <td class="col first ip_address"> - {{#if item.editing}} - {{text-field value=item.ip_address autofocus="autofocus"}} - {{else}} - <a href {{action "edit" item}} class="inline-editable-field"> - {{#if item.isRange}} - <strong>{{item.ip_address}}</strong> - {{else}} - {{item.ip_address}} - {{/if}} - </a> - {{/if}} - </td> - <td class="col action"> - {{#if item.isBlocked}} - {{d-icon "ban"}} - {{else}} - {{d-icon "check"}} - {{/if}} - {{item.actionName}} - </td> - <td class="col match_count"> - <div class="label">{{i18n "admin.logs.match_count"}}</div> - {{item.match_count}} - </td> - <td class="col created_at"> - <div class="label">{{i18n "admin.logs.created_at"}}</div> - {{age-with-tooltip item.created_at}} - </td> - <td class="col last_match_at"> - {{#if item.last_match_at}} - <div class="label"> - {{i18n "admin.logs.last_match_at"}} - {{age-with-tooltip item.last_match_at}} - </div> - {{/if}} - </td> - <td class="col actions"> - {{#if item.editing}} - {{d-button - class="btn-default" - action=(action "save") - actionParam=item - label="admin.logs.save"}} - <a href {{action "cancel" item}}>{{i18n "cancel"}}</a> - {{else}} - {{d-button - class="btn-default btn-danger" - action=(action "destroy") - actionParam=item - icon="far-trash-alt"}} - {{d-button - class="btn-default" - action=(action "edit") - actionParam=item - icon="pencil-alt"}} + {{#each model as |item|}} + <tr class="admin-list-item"> + <td class="col first ip_address"> + {{#if item.editing}} + {{text-field value=item.ip_address autofocus="autofocus"}} + {{else}} + <a href {{action "edit" item}} class="inline-editable-field"> + {{#if item.isRange}} + <strong>{{item.ip_address}}</strong> + {{else}} + {{item.ip_address}} + {{/if}} + </a> + {{/if}} + </td> + <td class="col action"> {{#if item.isBlocked}} + {{d-icon "ban"}} + {{else}} + {{d-icon "check"}} + {{/if}} + {{item.actionName}} + </td> + <td class="col match_count"> + <div class="label">{{i18n "admin.logs.match_count"}}</div> + {{item.match_count}} + </td> + <td class="col created_at"> + <div class="label">{{i18n "admin.logs.created_at"}}</div> + {{age-with-tooltip item.created_at}} + </td> + <td class="col last_match_at"> + {{#if item.last_match_at}} + <div class="label"> + {{i18n "admin.logs.last_match_at"}} + {{age-with-tooltip item.last_match_at}} + </div> + {{/if}} + </td> + <td class="col actions"> + {{#if item.editing}} {{d-button class="btn-default" - action=(action "allow") + action=(action "save") actionParam=item - icon="check" - label="admin.logs.screened_ips.actions.do_nothing"}} + label="admin.logs.save"}} + <a href {{action "cancel" item}}>{{i18n "cancel"}}</a> {{else}} {{d-button - class="btn-default" - action=(action "block") + class="btn-default btn-danger" + action=(action "destroy") actionParam=item - icon="ban" - label="admin.logs.screened_ips.actions.block"}} + icon="far-trash-alt"}} + {{d-button + class="btn-default" + action=(action "edit") + actionParam=item + icon="pencil-alt"}} + {{#if item.isBlocked}} + {{d-button + class="btn-default" + action=(action "allow") + actionParam=item + icon="check" + label="admin.logs.screened_ips.actions.do_nothing"}} + {{else}} + {{d-button + class="btn-default" + action=(action "block") + actionParam=item + icon="ban" + label="admin.logs.screened_ips.actions.block"}} + {{/if}} {{/if}} - {{/if}} - </td> - </tr> - {{/each}} + </td> + </tr> + {{/each}} </tbody> </table> {{else}} diff --git a/app/assets/javascripts/admin/templates/logs/screened-urls.hbs b/app/assets/javascripts/admin/templates/logs/screened-urls.hbs index 1ee42743683..ab3fcf18832 100644 --- a/app/assets/javascripts/admin/templates/logs/screened-urls.hbs +++ b/app/assets/javascripts/admin/templates/logs/screened-urls.hbs @@ -20,17 +20,17 @@ <th class="created_at">{{i18n 'admin.logs.created_at'}}</th> </thead> <tbody> - {{#each model as |url|}} - <tr class="admin-list-item"> - <td class="col first domain"> - <div class="overflow-ellipsis" title={{url.domain}}>{{url.domain}}</div> - </td> - <td class="col action">{{url.actionName}}</td> - <td class="col match_count"><div class="label">{{i18n 'admin.logs.match_count'}}</div>{{url.match_count}}</td> - <td class="col last_match_at"><div class="label">{{i18n 'admin.logs.last_match_at'}}</div>{{age-with-tooltip url.last_match_at}}</td> - <td class="col created_at"><div class="label">{{i18n 'admin.logs.created_at'}}</div>{{age-with-tooltip url.created_at}}</td> - </tr> - {{/each}} + {{#each model as |url|}} + <tr class="admin-list-item"> + <td class="col first domain"> + <div class="overflow-ellipsis" title={{url.domain}}>{{url.domain}}</div> + </td> + <td class="col action">{{url.actionName}}</td> + <td class="col match_count"><div class="label">{{i18n 'admin.logs.match_count'}}</div>{{url.match_count}}</td> + <td class="col last_match_at"><div class="label">{{i18n 'admin.logs.last_match_at'}}</div>{{age-with-tooltip url.last_match_at}}</td> + <td class="col created_at"><div class="label">{{i18n 'admin.logs.created_at'}}</div>{{age-with-tooltip url.created_at}}</td> + </tr> + {{/each}} </tbody> </table> {{else}} diff --git a/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs b/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs index ab4c70d39e4..5a81de8f1df 100644 --- a/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs +++ b/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs @@ -1,34 +1,34 @@ <div class="staff-action-logs-controls"> {{#if filtersExists}} - <div class='staff-action-logs-filters'> - <a href {{action "clearAllFilters"}} class="clear-filters filter"> - <span class="label">{{i18n 'admin.logs.staff_actions.clear_filters'}}</span> - </a> - {{#if actionFilter}} - <a href {{action "clearFilter" "actionFilter"}} class="filter"> - <span class="label">{{i18n 'admin.logs.action'}}</span>: {{actionFilter}} - {{d-icon "times-circle"}} + <div class='staff-action-logs-filters'> + <a href {{action "clearAllFilters"}} class="clear-filters filter"> + <span class="label">{{i18n 'admin.logs.staff_actions.clear_filters'}}</span> </a> - {{/if}} - {{#if filters.acting_user}} - <a href {{action "clearFilter" "acting_user"}} class="filter"> - <span class="label">{{i18n 'admin.logs.staff_actions.staff_user'}}</span>: {{filters.acting_user}} - {{d-icon "times-circle"}} - </a> - {{/if}} - {{#if filters.target_user}} - <a href {{action "clearFilter" "target_user"}} class="filter"> - <span class="label">{{i18n 'admin.logs.staff_actions.target_user'}}</span>: {{filters.target_user}} - {{d-icon "times-circle"}} - </a> - {{/if}} - {{#if filters.subject}} - <a href {{action "clearFilter" "subject"}} class="filter"> - <span class="label">{{i18n 'admin.logs.staff_actions.subject'}}</span>: {{filters.subject}} - {{d-icon "times-circle"}} - </a> - {{/if}} - </div> + {{#if actionFilter}} + <a href {{action "clearFilter" "actionFilter"}} class="filter"> + <span class="label">{{i18n 'admin.logs.action'}}</span>: {{actionFilter}} + {{d-icon "times-circle"}} + </a> + {{/if}} + {{#if filters.acting_user}} + <a href {{action "clearFilter" "acting_user"}} class="filter"> + <span class="label">{{i18n 'admin.logs.staff_actions.staff_user'}}</span>: {{filters.acting_user}} + {{d-icon "times-circle"}} + </a> + {{/if}} + {{#if filters.target_user}} + <a href {{action "clearFilter" "target_user"}} class="filter"> + <span class="label">{{i18n 'admin.logs.staff_actions.target_user'}}</span>: {{filters.target_user}} + {{d-icon "times-circle"}} + </a> + {{/if}} + {{#if filters.subject}} + <a href {{action "clearFilter" "subject"}} class="filter"> + <span class="label">{{i18n 'admin.logs.staff_actions.subject'}}</span>: {{filters.subject}} + {{d-icon "times-circle"}} + </a> + {{/if}} + </div> {{else}} {{i18n "admin.logs.staff_actions.filter"}} {{combo-box @@ -41,10 +41,10 @@ {{d-button class="btn-default" action=(action "exportStaffActionLogs") label="admin.export_csv.button_text" icon="download"}} </div> + <div class="clearfix"></div> {{#staff-actions}} - {{#load-more selector=".staff-logs tr" action=(action "loadMore")}} {{#if model.content}} <table class='table staff-logs grid'> @@ -108,5 +108,4 @@ {{i18n 'search.no_results'}} {{/if}} {{/load-more}} - {{/staff-actions}} diff --git a/app/assets/javascripts/admin/templates/modal/admin-add-upload.hbs b/app/assets/javascripts/admin/templates/modal/admin-add-upload.hbs index f59c73b89e3..160ca685ad3 100644 --- a/app/assets/javascripts/admin/templates/modal/admin-add-upload.hbs +++ b/app/assets/javascripts/admin/templates/modal/admin-add-upload.hbs @@ -1,19 +1,19 @@ {{#d-modal-body class='add-upload-modal' title="admin.customize.theme.add_upload"}} - <div class="inputs"> - <section class="field"> + <div class="inputs"> + <section class="field"> <input onchange={{action "updateName"}} type="file" id="file-input" accept='*'> <label for="file-input">{{i18n 'admin.customize.theme.upload_file_tip'}}</label> - </section> - <section class="field"> + </section> + <section class="field"> <label for="theme-variable-name">{{i18n 'admin.customize.theme.variable_name'}}</label> {{input id="theme-variable-name" value=name}} - </section> - {{#if fileSelected}} - {{#if errorMessage}} - <span class="alert alert-error">{{errorMessage}}</span> - {{/if}} + </section> + {{#if fileSelected}} + {{#if errorMessage}} + <span class="alert alert-error">{{errorMessage}}</span> {{/if}} - </div> + {{/if}} + </div> {{/d-modal-body}} <div class="modal-footer"> diff --git a/app/assets/javascripts/admin/templates/modal/admin-watched-word-test.hbs b/app/assets/javascripts/admin/templates/modal/admin-watched-word-test.hbs index a46f4ddb7be..ef56567cdd6 100644 --- a/app/assets/javascripts/admin/templates/modal/admin-watched-word-test.hbs +++ b/app/assets/javascripts/admin/templates/modal/admin-watched-word-test.hbs @@ -1,16 +1,16 @@ {{#d-modal-body rawTitle=(i18n "admin.watched_words.test.modal_title" action=model.name) class="watched-words-test-modal"}} - <p>{{i18n "admin.watched_words.test.description"}}</p> - {{textarea name="test_value" value=value autofocus="autofocus"}} - {{#if matches}} - <p> - {{i18n "admin.watched_words.test.found_matches"}} - <ul> - {{#each matches as |match|}} - <li>{{match}}</li> - {{/each}} - </ul> - </p> - {{else}} - <p>{{i18n "admin.watched_words.test.no_matches"}}</p> - {{/if}} + <p>{{i18n "admin.watched_words.test.description"}}</p> + {{textarea name="test_value" value=value autofocus="autofocus"}} + {{#if matches}} + <p> + {{i18n "admin.watched_words.test.found_matches"}} + <ul> + {{#each matches as |match|}} + <li>{{match}}</li> + {{/each}} + </ul> + </p> + {{else}} + <p>{{i18n "admin.watched_words.test.no_matches"}}</p> + {{/if}} {{/d-modal-body}} diff --git a/app/assets/javascripts/admin/templates/modal/site-setting-default-categories.hbs b/app/assets/javascripts/admin/templates/modal/site-setting-default-categories.hbs index 0bd05c2ba8c..38a08b76270 100644 --- a/app/assets/javascripts/admin/templates/modal/site-setting-default-categories.hbs +++ b/app/assets/javascripts/admin/templates/modal/site-setting-default-categories.hbs @@ -1,5 +1,5 @@ {{#d-modal-body class="incoming-emails" rawTitle=model.key}} -{{i18n "admin.site_settings.default_categories.modal_description" count=model.count}} + {{i18n "admin.site_settings.default_categories.modal_description" count=model.count}} {{/d-modal-body}} <div class="modal-footer"> diff --git a/app/assets/javascripts/admin/templates/plugins-index.hbs b/app/assets/javascripts/admin/templates/plugins-index.hbs index d3d7c23785e..e17804d7fff 100644 --- a/app/assets/javascripts/admin/templates/plugins-index.hbs +++ b/app/assets/javascripts/admin/templates/plugins-index.hbs @@ -29,8 +29,10 @@ {{plugin.name}} {{/if}} </td> - <td class="version"> <div class="label">{{i18n "admin.plugins.version"}}</div> -{{plugin.version}}</td> + <td class="version"> + <div class="label">{{i18n "admin.plugins.version"}}</div> + {{plugin.version}} + </td> <td class="col-enabled"> <div class="label">{{i18n "admin.plugins.enabled"}}</div> {{#if plugin.enabled_setting}} diff --git a/app/assets/javascripts/admin/templates/plugins.hbs b/app/assets/javascripts/admin/templates/plugins.hbs index 9b41e0976de..dbe648daef7 100644 --- a/app/assets/javascripts/admin/templates/plugins.hbs +++ b/app/assets/javascripts/admin/templates/plugins.hbs @@ -1,17 +1,17 @@ - <div class='admin-controls'> - +<div class='admin-controls'> <div class='controls'> {{d-button action=(action "toggleMenu") class="menu-toggle" icon="bars"}} - {{#if currentUser.admin}} - {{d-button label="admin.plugins.change_settings" - icon="cog" - class="btn-default settings-button" - action=(route-action "showSettings")}} - {{/if}} - </div> - + {{#if currentUser.admin}} + {{d-button + label="admin.plugins.change_settings" + icon="cog" + class="btn-default settings-button" + action=(route-action "showSettings") + }} + {{/if}} </div> +</div> <div class="admin-nav pull-left"> <ul class="nav nav-stacked"> diff --git a/app/assets/javascripts/admin/templates/search-logs-index.hbs b/app/assets/javascripts/admin/templates/search-logs-index.hbs index b56a1400fbb..a0cb23a89bc 100644 --- a/app/assets/javascripts/admin/templates/search-logs-index.hbs +++ b/app/assets/javascripts/admin/templates/search-logs-index.hbs @@ -18,17 +18,17 @@ <th class="col heading">{{i18n 'admin.logs.search_logs.click_through_rate'}}</th> </thead> <tbody> - {{#each model as |item|}} - <tr class="admin-list-item"> - <td class="col term"> - {{#link-to 'adminSearchLogs.term' (query-params term=item.term period=period) class="test"}} - {{item.term}} - {{/link-to}} - </td> - <td class="col"><div class="label">{{i18n 'admin.logs.search_logs.searches'}}</div>{{item.searches}}</td> - <td class="col"><div class="label">{{i18n 'admin.logs.search_logs.click_through_rate'}}</div>{{item.ctr}}%</td> - </tr> - {{/each}} + {{#each model as |item|}} + <tr class="admin-list-item"> + <td class="col term"> + {{#link-to 'adminSearchLogs.term' (query-params term=item.term period=period) class="test"}} + {{item.term}} + {{/link-to}} + </td> + <td class="col"><div class="label">{{i18n 'admin.logs.search_logs.searches'}}</div>{{item.searches}}</td> + <td class="col"><div class="label">{{i18n 'admin.logs.search_logs.click_through_rate'}}</div>{{item.ctr}}%</td> + </tr> + {{/each}} </tbody> </table> diff --git a/app/assets/javascripts/admin/templates/search-logs-term.hbs b/app/assets/javascripts/admin/templates/search-logs-term.hbs index 27f61f2940e..c38b4c9e593 100644 --- a/app/assets/javascripts/admin/templates/search-logs-term.hbs +++ b/app/assets/javascripts/admin/templates/search-logs-term.hbs @@ -20,47 +20,47 @@ <br> <div class='header-search-results'> - {{#each model.search_result.posts as |result|}} - <div class='fps-result'> - <div class='author'> - <a href={{result.userPath}} data-user-card={{result.username}}> - {{avatar result imageSize="large"}} - </a> - </div> - - <div class='fps-topic'> - <div class='topic'> - <a class='search-link' href={{result.url}}> - {{topic-status topic=result.topic disableActions=true}}<span class='topic-title'>{{#highlight-text highlight=term}}{{html-safe result.topic.fancyTitle}}{{/highlight-text}}</span> + {{#each model.search_result.posts as |result|}} + <div class='fps-result'> + <div class='author'> + <a href={{result.userPath}} data-user-card={{result.username}}> + {{avatar result imageSize="large"}} </a> + </div> - <div class='search-category'> - {{#if result.topic.category.parentCategory}} - {{category-link result.topic.category.parentCategory}} + <div class='fps-topic'> + <div class='topic'> + <a class='search-link' href={{result.url}}> + {{topic-status topic=result.topic disableActions=true}}<span class='topic-title'>{{#highlight-text highlight=term}}{{html-safe result.topic.fancyTitle}}{{/highlight-text}}</span> + </a> + + <div class='search-category'> + {{#if result.topic.category.parentCategory}} + {{category-link result.topic.category.parentCategory}} + {{/if}} + {{category-link result.topic.category hideParent=true}} + {{#each result.topic.tags as |tag|}} + {{discourse-tag tag}} + {{/each}} + </div> + </div> + + <div class='blurb container'> + <span class='date'> + {{format-age result.created_at}} + {{#if result.blurb}} + - + {{/if}} + </span> + + {{#if result.blurb}} + {{#highlight-text highlight=term}} + {{html-safe result.blurb}} + {{/highlight-text}} {{/if}} - {{category-link result.topic.category hideParent=true}} - {{#each result.topic.tags as |tag|}} - {{discourse-tag tag}} - {{/each}} </div> </div> - - <div class='blurb container'> - <span class='date'> - {{format-age result.created_at}} - {{#if result.blurb}} - - - {{/if}} - </span> - - {{#if result.blurb}} - {{#highlight-text highlight=term}} - {{html-safe result.blurb}} - {{/highlight-text}} - {{/if}} - </div> </div> - </div> - {{/each}} + {{/each}} </div> {{/conditional-loading-spinner}} diff --git a/app/assets/javascripts/admin/templates/user-badges.hbs b/app/assets/javascripts/admin/templates/user-badges.hbs index 39d227bcf84..f85db567379 100644 --- a/app/assets/javascripts/admin/templates/user-badges.hbs +++ b/app/assets/javascripts/admin/templates/user-badges.hbs @@ -13,26 +13,26 @@ {{#if noGrantableBadges}} <p>{{i18n 'admin.badges.no_badges'}}</p> {{else}} - <form class="form-horizontal"> - <div> - <label>{{i18n 'admin.badges.badge'}}</label> - {{combo-box - filterable=true - value=selectedBadgeId - content=grantableBadges - onChange=(action (mut selectedBadgeId)) - }} - </div> - <div> - <label>{{i18n 'admin.badges.reason'}}</label> - {{input type="text" value=badgeReason}}<br><small>{{i18n 'admin.badges.reason_help'}}</small> - </div> - {{d-button - class="btn-primary" - action=(action "grantBadge") - type="submit" - label="admin.badges.grant"}} - </form> + <form class="form-horizontal"> + <div> + <label>{{i18n 'admin.badges.badge'}}</label> + {{combo-box + filterable=true + value=selectedBadgeId + content=grantableBadges + onChange=(action (mut selectedBadgeId)) + }} + </div> + <div> + <label>{{i18n 'admin.badges.reason'}}</label> + {{input type="text" value=badgeReason}}<br><small>{{i18n 'admin.badges.reason_help'}}</small> + </div> + {{d-button + class="btn-primary" + action=(action "grantBadge") + type="submit" + label="admin.badges.grant"}} + </form> {{/if}} <table id='user-badges'> @@ -55,7 +55,7 @@ </td> <td class='reason'> {{#if userBadge.postUrl}} - <a href={{userBadge.postUrl}}>{{userBadge.topic_title}}</a> + <a href={{userBadge.postUrl}}>{{userBadge.topic_title}}</a> {{/if}} </td> <td>{{age-with-tooltip userBadge.granted_at}}</td> diff --git a/app/assets/javascripts/admin/templates/user-index.hbs b/app/assets/javascripts/admin/templates/user-index.hbs index f5abf9f8dda..6cabbb87add 100644 --- a/app/assets/javascripts/admin/templates/user-index.hbs +++ b/app/assets/javascripts/admin/templates/user-index.hbs @@ -474,7 +474,7 @@ <div class="value"> {{#link-to "adminUser" model.silencedBy}} {{avatar model.silencedBy imageSize="tiny"}} - {{/link-to}} + {{/link-to}} {{#link-to "adminUser" model.silencedBy}} {{model.silencedBy.username}} {{/link-to}} @@ -507,45 +507,45 @@ {{#if currentUser.admin}} <section class="details"> <h1>{{i18n "admin.groups.title"}}</h1> - <div class="display-row"> - <div class="field">{{i18n "admin.groups.automatic"}}</div> - <div class="value">{{html-safe automaticGroups}}</div> + <div class="display-row"> + <div class="field">{{i18n "admin.groups.automatic"}}</div> + <div class="value">{{html-safe automaticGroups}}</div> + </div> + <div class="display-row"> + <div class="field">{{i18n "admin.groups.custom"}}</div> + <div class="value"> + {{admin-group-selector + content=availableGroups + value=customGroupIdsBuffer + onChange=(action (mut customGroupIdsBuffer)) + }} </div> + {{#if customGroupsDirty}} + <div class="controls"> + {{d-button icon="check" class="ok" action=(action "saveCustomGroups")}} + {{d-button icon="times" class="cancel" action=(action "resetCustomGroups")}} + </div> + {{/if}} + </div> + {{#if model.customGroups}} <div class="display-row"> - <div class="field">{{i18n "admin.groups.custom"}}</div> + <div class="field">{{i18n "admin.groups.primary"}}</div> <div class="value"> - {{admin-group-selector - content=availableGroups - value=customGroupIdsBuffer - onChange=(action (mut customGroupIdsBuffer)) + {{combo-box + content=model.customGroups + value=model.primary_group_id + none="admin.groups.no_primary" + onChange=(action (mut model.primary_group_id)) }} </div> - {{#if customGroupsDirty}} + {{#if primaryGroupDirty}} <div class="controls"> - {{d-button icon="check" class="ok" action=(action "saveCustomGroups")}} - {{d-button icon="times" class="cancel" action=(action "resetCustomGroups")}} + {{d-button icon="check" class="ok" action=(action "savePrimaryGroup")}} + {{d-button icon="times" class="cancel" action=(action "resetPrimaryGroup")}} </div> {{/if}} </div> - {{#if model.customGroups}} - <div class="display-row"> - <div class="field">{{i18n "admin.groups.primary"}}</div> - <div class="value"> - {{combo-box - content=model.customGroups - value=model.primary_group_id - none="admin.groups.no_primary" - onChange=(action (mut model.primary_group_id)) - }} - </div> - {{#if primaryGroupDirty}} - <div class="controls"> - {{d-button icon="check" class="ok" action=(action "savePrimaryGroup")}} - {{d-button icon="times" class="cancel" action=(action "resetPrimaryGroup")}} - </div> - {{/if}} - </div> - {{/if}} + {{/if}} </section> {{/if}} @@ -625,34 +625,34 @@ </section> {{#if model.single_sign_on_record}} -<section class="details"> - <h1>{{i18n "admin.user.sso.title"}}</h1> + <section class="details"> + <h1>{{i18n "admin.user.sso.title"}}</h1> - {{#with model.single_sign_on_record as |sso|}} - <div class="display-row"> - <div class="field">{{i18n "admin.user.sso.external_id"}}</div> - <div class="value">{{sso.external_id}}</div> - </div> - <div class="display-row"> - <div class="field">{{i18n "admin.user.sso.external_username"}}</div> - <div class="value">{{sso.external_username}}</div> - </div> - <div class="display-row"> - <div class="field">{{i18n "admin.user.sso.external_name"}}</div> - <div class="value">{{sso.external_name}}</div> - </div> - {{#if sso.external_email}} + {{#with model.single_sign_on_record as |sso|}} <div class="display-row"> - <div class="field">{{i18n "admin.user.sso.external_email"}}</div> - <div class="value">{{sso.external_email}}</div> + <div class="field">{{i18n "admin.user.sso.external_id"}}</div> + <div class="value">{{sso.external_id}}</div> </div> - {{/if}} - <div class="display-row"> - <div class="field">{{i18n "admin.user.sso.external_avatar_url"}}</div> - <div class="value">{{sso.external_avatar_url}}</div> - </div> - {{/with}} -</section> + <div class="display-row"> + <div class="field">{{i18n "admin.user.sso.external_username"}}</div> + <div class="value">{{sso.external_username}}</div> + </div> + <div class="display-row"> + <div class="field">{{i18n "admin.user.sso.external_name"}}</div> + <div class="value">{{sso.external_name}}</div> + </div> + {{#if sso.external_email}} + <div class="display-row"> + <div class="field">{{i18n "admin.user.sso.external_email"}}</div> + <div class="value">{{sso.external_email}}</div> + </div> + {{/if}} + <div class="display-row"> + <div class="field">{{i18n "admin.user.sso.external_avatar_url"}}</div> + <div class="value">{{sso.external_avatar_url}}</div> + </div> + {{/with}} + </section> {{/if}} {{plugin-outlet name="after-user-details" args=(hash model=model)}} diff --git a/app/assets/javascripts/admin/templates/user-tl3-requirements.hbs b/app/assets/javascripts/admin/templates/user-tl3-requirements.hbs index 8dc98a948a5..8fcc81a7ce5 100644 --- a/app/assets/javascripts/admin/templates/user-tl3-requirements.hbs +++ b/app/assets/javascripts/admin/templates/user-tl3-requirements.hbs @@ -117,31 +117,42 @@ {{#if model.tl3Requirements.requirements_lost}} {{! tl implicitly not locked }} {{#if model.tl3Requirements.on_grace_period}} - {{d-icon "times"}} {{i18n 'admin.user.tl3_requirements.on_grace_period'}} - {{else}} {{! not on grace period }} - {{d-icon "times"}} {{i18n 'admin.user.tl3_requirements.does_not_qualify'}} - {{i18n 'admin.user.tl3_requirements.will_be_demoted'}} + {{d-icon "times"}} + {{i18n 'admin.user.tl3_requirements.on_grace_period'}} + {{else}} + {{! not on grace period }} + {{d-icon "times"}} + {{i18n 'admin.user.tl3_requirements.does_not_qualify'}} + {{i18n 'admin.user.tl3_requirements.will_be_demoted'}} {{/if}} - {{else}} {{! requirements not lost - remains tl3 }} + {{else}} + {{! requirements not lost - remains tl3 }} {{#if model.tl3Requirements.trust_level_locked}} - {{d-icon "lock"}} {{i18n 'admin.user.tl3_requirements.locked_will_not_be_demoted'}} - {{else}} {{! tl not locked }} - {{d-icon "check"}} {{i18n 'admin.user.tl3_requirements.qualifies'}} + {{d-icon "lock"}} + {{i18n 'admin.user.tl3_requirements.locked_will_not_be_demoted'}} + {{else}} + {{! tl not locked }} + {{d-icon "check"}} + {{i18n 'admin.user.tl3_requirements.qualifies'}} {{#if model.tl3Requirements.on_grace_period}} {{i18n 'admin.user.tl3_requirements.on_grace_period'}} {{/if}} {{/if}} {{/if}} - {{else}} {{! is not tl3 }} + {{else}} + {{! is not tl3 }} {{#if model.tl3Requirements.requirements_met}} {{! met & not tl3 - will be promoted}} - {{d-icon "check"}} {{i18n 'admin.user.tl3_requirements.qualifies'}} - {{i18n 'admin.user.tl3_requirements.will_be_promoted'}} - {{else}} {{! requirements not met - remains regular }} + {{d-icon "check"}} + {{i18n 'admin.user.tl3_requirements.qualifies'}} + {{i18n 'admin.user.tl3_requirements.will_be_promoted'}} + {{else}} + {{! requirements not met - remains regular }} {{#if model.tl3Requirements.trust_level_locked}} - {{d-icon "lock"}} {{i18n 'admin.user.tl3_requirements.locked_will_not_be_promoted'}} + {{d-icon "lock"}} + {{i18n 'admin.user.tl3_requirements.locked_will_not_be_promoted'}} {{else}} - {{d-icon "times"}} {{i18n 'admin.user.tl3_requirements.does_not_qualify'}} + {{d-icon "times"}} {{/if}} {{/if}} {{/if}} diff --git a/app/assets/javascripts/admin/templates/web-hooks-show-events.hbs b/app/assets/javascripts/admin/templates/web-hooks-show-events.hbs index 38e4d2215fb..7161ff0a0ab 100644 --- a/app/assets/javascripts/admin/templates/web-hooks-show-events.hbs +++ b/app/assets/javascripts/admin/templates/web-hooks-show-events.hbs @@ -9,31 +9,31 @@ </div> <div class='web-hook-events-listing'> -{{#if model}} - {{#load-more selector=".web-hook-events li" action=(action "loadMore")}} - <div class='web-hook-events content-list'> - <div class='heading-container'> - <div class='col heading first status'>{{i18n 'admin.web_hooks.events.status'}}</div> - <div class='col heading event-id'>{{i18n 'admin.web_hooks.events.event_id'}}</div> - <div class='col heading timestamp'>{{i18n 'admin.web_hooks.events.timestamp'}}</div> - <div class='col heading completion'>{{i18n 'admin.web_hooks.events.completion'}}</div> - <div class='col heading actions'>{{i18n 'admin.web_hooks.events.actions'}}</div> - <div class='clearfix'></div> + {{#if model}} + {{#load-more selector=".web-hook-events li" action=(action "loadMore")}} + <div class='web-hook-events content-list'> + <div class='heading-container'> + <div class='col heading first status'>{{i18n 'admin.web_hooks.events.status'}}</div> + <div class='col heading event-id'>{{i18n 'admin.web_hooks.events.event_id'}}</div> + <div class='col heading timestamp'>{{i18n 'admin.web_hooks.events.timestamp'}}</div> + <div class='col heading completion'>{{i18n 'admin.web_hooks.events.completion'}}</div> + <div class='col heading actions'>{{i18n 'admin.web_hooks.events.actions'}}</div> + <div class='clearfix'></div> + </div> + {{#if hasIncoming}} + <a href class='alert alert-info clickable' tabindex="0" {{action "showInserted"}}> + {{count-i18n key="admin.web_hooks.events.incoming" count=incomingCount}} + </a> + {{/if}} + <ul> + {{#each model as |webHookEvent|}} + {{admin-web-hook-event model=webHookEvent}} + {{/each}} + </ul> </div> - {{#if hasIncoming}} - <a href class='alert alert-info clickable' tabindex="0" {{action "showInserted"}}> - {{count-i18n key="admin.web_hooks.events.incoming" count=incomingCount}} - </a> - {{/if}} - <ul> - {{#each model as |webHookEvent|}} - {{admin-web-hook-event model=webHookEvent}} - {{/each}} - </ul> - </div> - {{conditional-loading-spinner condition=model.loadingMore}} - {{/load-more}} -{{else}} - <p>{{i18n 'admin.web_hooks.events.none'}}</p> -{{/if}} + {{conditional-loading-spinner condition=model.loadingMore}} + {{/load-more}} + {{else}} + <p>{{i18n 'admin.web_hooks.events.none'}}</p> + {{/if}} </div> diff --git a/app/assets/javascripts/admin/templates/web-hooks.hbs b/app/assets/javascripts/admin/templates/web-hooks.hbs index e63dac08281..c65964d41f4 100644 --- a/app/assets/javascripts/admin/templates/web-hooks.hbs +++ b/app/assets/javascripts/admin/templates/web-hooks.hbs @@ -5,34 +5,34 @@ {{d-icon 'plus'}} {{i18n 'admin.web_hooks.new'}} {{/link-to}} </div> -{{#if model}} - {{#load-more selector=".web-hooks tr" action=(action "loadMore")}} - <table class='web-hooks grid'> - <thead> - <tr> - <th>{{i18n 'admin.web_hooks.delivery_status.title'}}</th> - <th>{{i18n 'admin.web_hooks.payload_url'}}</th> - <th>{{i18n 'admin.web_hooks.description'}}</th> - <th>{{i18n 'admin.web_hooks.controls'}}</th> - </tr> - </thead> - <tbody> - {{#each model as |webHook|}} + {{#if model}} + {{#load-more selector=".web-hooks tr" action=(action "loadMore")}} + <table class='web-hooks grid'> + <thead> <tr> - <td class='delivery-status'>{{#link-to 'adminWebHooks.showEvents' webHook.id}}{{admin-web-hook-status deliveryStatuses=deliveryStatuses model=webHook}}{{/link-to}}</td> - <td class='payload-url'>{{#link-to 'adminWebHooks.show' webHook}}{{webHook.payload_url}}{{/link-to}}</td> - <td class='description'>{{webHook.description}}</td> - <td class='controls'> - {{#link-to 'adminWebHooks.show' webHook tagName='button' classNames='btn btn-default no-text'}}{{d-icon 'far-edit'}}{{/link-to}} - {{d-button class="destroy btn-danger" action=(action "destroy") actionParam=webHook icon="times"}} - </td> + <th>{{i18n 'admin.web_hooks.delivery_status.title'}}</th> + <th>{{i18n 'admin.web_hooks.payload_url'}}</th> + <th>{{i18n 'admin.web_hooks.description'}}</th> + <th>{{i18n 'admin.web_hooks.controls'}}</th> </tr> - {{/each}} - </tbody> - </table> - {{conditional-loading-spinner condition=model.loadingMore}} - {{/load-more}} -{{else}} - <p>{{i18n 'admin.web_hooks.none'}}</p> -{{/if}} + </thead> + <tbody> + {{#each model as |webHook|}} + <tr> + <td class='delivery-status'>{{#link-to 'adminWebHooks.showEvents' webHook.id}}{{admin-web-hook-status deliveryStatuses=deliveryStatuses model=webHook}}{{/link-to}}</td> + <td class='payload-url'>{{#link-to 'adminWebHooks.show' webHook}}{{webHook.payload_url}}{{/link-to}}</td> + <td class='description'>{{webHook.description}}</td> + <td class='controls'> + {{#link-to 'adminWebHooks.show' webHook tagName='button' classNames='btn btn-default no-text'}}{{d-icon 'far-edit'}}{{/link-to}} + {{d-button class="destroy btn-danger" action=(action "destroy") actionParam=webHook icon="times"}} + </td> + </tr> + {{/each}} + </tbody> + </table> + {{conditional-loading-spinner condition=model.loadingMore}} + {{/load-more}} + {{else}} + <p>{{i18n 'admin.web_hooks.none'}}</p> + {{/if}} </div> diff --git a/app/assets/javascripts/discourse/templates/about.hbs b/app/assets/javascripts/discourse/templates/about.hbs index ad65dbb57e5..11c0471480b 100644 --- a/app/assets/javascripts/discourse/templates/about.hbs +++ b/app/assets/javascripts/discourse/templates/about.hbs @@ -111,8 +111,8 @@ {{#if contactInfo}} <section class='about contact'> - <h3>{{d-icon "far-envelope"}} {{i18n 'about.contact'}}</h3> - <p>{{html-safe contactInfo}}</p> + <h3>{{d-icon "far-envelope"}} {{i18n 'about.contact'}}</h3> + <p>{{html-safe contactInfo}}</p> </section> {{/if}} diff --git a/app/assets/javascripts/discourse/templates/badges/show.hbs b/app/assets/javascripts/discourse/templates/badges/show.hbs index fe7b489159a..38869b6f0d6 100644 --- a/app/assets/javascripts/discourse/templates/badges/show.hbs +++ b/app/assets/javascripts/discourse/templates/badges/show.hbs @@ -37,23 +37,23 @@ {{#if userBadges}} <div class="user-badges {{model.slug}}"> {{#load-more selector=".badge-info" action=(action "loadMore")}} - <div class="badges-granted"> - {{#each userBadges as |ub|}} - {{#user-info user=ub.user size="medium" class="badge-info" date=ub.granted_at}} - <div class="granted-on">{{i18n 'badges.granted_on' date=(inline-date ub.granted_at)}}</div> - {{#if ub.post_number}} - <a class="post-link" href="{{ub.topic.url}}/{{ub.post_number}}">{{html-safe ub.topic.fancyTitle}}</a> - {{/if}} - {{/user-info}} - {{/each}} + <div class="badges-granted"> + {{#each userBadges as |ub|}} + {{#user-info user=ub.user size="medium" class="badge-info" date=ub.granted_at}} + <div class="granted-on">{{i18n 'badges.granted_on' date=(inline-date ub.granted_at)}}</div> + {{#if ub.post_number}} + <a class="post-link" href="{{ub.topic.url}}/{{ub.post_number}}">{{html-safe ub.topic.fancyTitle}}</a> + {{/if}} + {{/user-info}} + {{/each}} </div> {{/load-more}} {{#unless canLoadMore}} {{#if canShowOthers}} - <div class='clearfix'> - <a class='btn' href={{model.url}}>{{i18n 'badges.others_count' count=othersCount}}</a> - </div> + <div class='clearfix'> + <a class='btn' href={{model.url}}>{{i18n 'badges.others_count' count=othersCount}}</a> + </div> {{/if}} {{/unless}} </div> diff --git a/app/assets/javascripts/discourse/templates/components/avatar-uploader.hbs b/app/assets/javascripts/discourse/templates/components/avatar-uploader.hbs index 6545208bb7c..80bbae09364 100644 --- a/app/assets/javascripts/discourse/templates/components/avatar-uploader.hbs +++ b/app/assets/javascripts/discourse/templates/components/avatar-uploader.hbs @@ -1,11 +1,10 @@ <label class="btn btn-default btn-icon-text" disabled={{uploading}} title={{i18n 'user.change_avatar.upload_title'}}> {{d-icon "far-image"}} {{#if uploading}} - {{i18n 'uploading'}} {{uploadProgress}}% + {{i18n 'uploading'}} {{uploadProgress}}% {{else}} - {{i18n 'upload'}} + {{i18n 'upload'}} {{/if}} - <input class="hidden-upload-field" disabled={{uploading}} type="file" accept="image/*"> </label> diff --git a/app/assets/javascripts/discourse/templates/components/basic-topic-list.hbs b/app/assets/javascripts/discourse/templates/components/basic-topic-list.hbs index b047846db56..39a6b0112df 100644 --- a/app/assets/javascripts/discourse/templates/components/basic-topic-list.hbs +++ b/app/assets/javascripts/discourse/templates/components/basic-topic-list.hbs @@ -1,30 +1,31 @@ {{#conditional-loading-spinner condition=loading}} {{#if hasIncoming}} - <div class="show-mores"> - <a tabindex="0" href {{action showInserted}} class='alert alert-info clickable'> - {{count-i18n key="topic_count_" suffix="latest" count=2}} - </a> - </div> + <div class="show-mores"> + <a tabindex="0" href {{action showInserted}} class='alert alert-info clickable'> + {{count-i18n key="topic_count_" suffix="latest" count=2}} + </a> + </div> {{/if}} {{#if topics}} - {{topic-list showPosters=showPosters - hideCategory=hideCategory - topics=topics - expandExcerpts=expandExcerpts - bulkSelectEnabled=bulkSelectEnabled - canBulkSelect=canBulkSelect - selected=selected - skipHeader=skipHeader - tagsForUser=tagsForUser - onScroll=onScroll - scrollOnLoad=scrollOnLoad}} - + {{topic-list + showPosters=showPosters + hideCategory=hideCategory + topics=topics + expandExcerpts=expandExcerpts + bulkSelectEnabled=bulkSelectEnabled + canBulkSelect=canBulkSelect + selected=selected + skipHeader=skipHeader + tagsForUser=tagsForUser + onScroll=onScroll + scrollOnLoad=scrollOnLoad + }} {{else}} {{#unless loadingMore}} - <div class='alert alert-info'> - {{i18n 'choose_topic.none_found'}} - </div> + <div class='alert alert-info'> + {{i18n 'choose_topic.none_found'}} + </div> {{/unless}} {{/if}} {{/conditional-loading-spinner}} diff --git a/app/assets/javascripts/discourse/templates/components/categories-boxes-with-topics.hbs b/app/assets/javascripts/discourse/templates/components/categories-boxes-with-topics.hbs index fc718918543..ea6853b37d9 100644 --- a/app/assets/javascripts/discourse/templates/components/categories-boxes-with-topics.hbs +++ b/app/assets/javascripts/discourse/templates/components/categories-boxes-with-topics.hbs @@ -4,14 +4,15 @@ <div class='category-box-heading'> <a href={{c.url}}> {{#unless c.isMuted}} - {{#if c.uploaded_logo.url}} - {{cdn-img src=c.uploaded_logo.url + {{#if c.uploaded_logo.url}} + {{cdn-img + src=c.uploaded_logo.url class="logo" width=c.uploaded_logo.width - height=c.uploaded_logo.height}} - {{/if}} + height=c.uploaded_logo.height + }} + {{/if}} {{/unless}} - <h3> {{category-title-before category=c}} {{#if c.read_restricted}} @@ -23,15 +24,15 @@ </div> {{#unless c.isMuted}} - <div class='featured-topics'> - {{#if c.topics}} - <ul> - {{#each c.topics as |topic|}} - {{categories-boxes-topic topic=topic}} - {{/each}} - </ul> - {{/if}} - </div> + <div class='featured-topics'> + {{#if c.topics}} + <ul> + {{#each c.topics as |topic|}} + {{categories-boxes-topic topic=topic}} + {{/each}} + </ul> + {{/if}} + </div> {{/unless}} </div> </div> diff --git a/app/assets/javascripts/discourse/templates/components/categories-boxes.hbs b/app/assets/javascripts/discourse/templates/components/categories-boxes.hbs index 755eea2b723..40b256d283e 100644 --- a/app/assets/javascripts/discourse/templates/components/categories-boxes.hbs +++ b/app/assets/javascripts/discourse/templates/components/categories-boxes.hbs @@ -3,15 +3,16 @@ data-url={{c.url}}> <div class='category-box-inner'> {{#unless c.isMuted}} - <div class="category-logo"> - {{#if c.uploaded_logo.url}} - {{cdn-img + <div class="category-logo"> + {{#if c.uploaded_logo.url}} + {{cdn-img src=c.uploaded_logo.url class="logo" width=c.uploaded_logo.width - height=c.uploaded_logo.height}} - {{/if}} - </div> + height=c.uploaded_logo.height + }} + {{/if}} + </div> {{/unless}} <div class="category-details"> <div class='category-box-heading'> @@ -26,45 +27,45 @@ </div> {{#unless c.isMuted}} - <div class='description'> - {{text-overflow class="overflow" text=c.description_excerpt}} - </div> - {{#if c.isGrandParent}} - {{#each c.subcategories as |subcategory|}} - <div data-category-id={{subcategory.id}} data-notification-level={{subcategory.notificationLevelString}} style={{border-color subcategory.color}} class="subcategory with-subcategories {{if subcategory.uploaded_logo.url 'has-logo' 'no-logo'}}"> - <div class="subcategory-box-inner"> - {{category-title-link tagName="h4" category=subcategory}} - {{#if subcategory.subcategories}} - <div class='subcategories'> - {{#each subcategory.subcategories as |subsubcategory|}} - {{#unless subsubcategory.isMuted}} - <span class='subcategory'> - {{category-title-before category=subsubcategory}} - {{category-link subsubcategory hideParent="true"}} - </span> - {{/unless}} - {{/each}} - </div> - {{/if}} - </div> - </div> - {{/each}} - {{else if c.subcategories}} - <div class='subcategories'> - {{#each c.subcategories as |sc|}} - <a class="subcategory" href={{sc.url}}> - <span class="subcategory-image-placeholder"> - {{cdn-img - src=sc.uploaded_logo.url - class="logo" - width=sc.uploaded_logo.width - height=sc.uploaded_logo.height}} - </span> - {{category-link sc hideParent="true"}} - </a> - {{/each}} + <div class='description'> + {{text-overflow class="overflow" text=c.description_excerpt}} </div> - {{/if}} + {{#if c.isGrandParent}} + {{#each c.subcategories as |subcategory|}} + <div data-category-id={{subcategory.id}} data-notification-level={{subcategory.notificationLevelString}} style={{border-color subcategory.color}} class="subcategory with-subcategories {{if subcategory.uploaded_logo.url 'has-logo' 'no-logo'}}"> + <div class="subcategory-box-inner"> + {{category-title-link tagName="h4" category=subcategory}} + {{#if subcategory.subcategories}} + <div class='subcategories'> + {{#each subcategory.subcategories as |subsubcategory|}} + {{#unless subsubcategory.isMuted}} + <span class='subcategory'> + {{category-title-before category=subsubcategory}} + {{category-link subsubcategory hideParent="true"}} + </span> + {{/unless}} + {{/each}} + </div> + {{/if}} + </div> + </div> + {{/each}} + {{else if c.subcategories}} + <div class='subcategories'> + {{#each c.subcategories as |sc|}} + <a class="subcategory" href={{sc.url}}> + <span class="subcategory-image-placeholder"> + {{cdn-img + src=sc.uploaded_logo.url + class="logo" + width=sc.uploaded_logo.width + height=sc.uploaded_logo.height}} + </span> + {{category-link sc hideParent="true"}} + </a> + {{/each}} + </div> + {{/if}} {{/unless}} </div> </div> diff --git a/app/assets/javascripts/discourse/templates/components/categories-only.hbs b/app/assets/javascripts/discourse/templates/components/categories-only.hbs index 6c02050bbdb..495a40ec9f3 100644 --- a/app/assets/javascripts/discourse/templates/components/categories-only.hbs +++ b/app/assets/javascripts/discourse/templates/components/categories-only.hbs @@ -15,59 +15,59 @@ <td class="category {{if c.isMuted 'muted'}} {{if noCategoryStyle "no-category-style"}}" style={{unless noCategoryStyle (border-color c.color)}}> {{category-title-link category=c}} {{#unless c.isMuted}} - {{#if c.description_excerpt}} - <div class="category-description"> - {{dir-span c.description_excerpt}} - </div> - {{/if}} - {{#if c.isGrandParent}} - <table class="category-list subcategories-with-subcategories"> - <tbody> - {{#each c.subcategories as |subcategory|}} - <tr data-category-id={{subcategory.id}} data-notification-level={{subcategory.notificationLevelString}} class="{{if subcategory.description_excerpt 'has-description' 'no-description'}} {{if subcategory.uploaded_logo.url 'has-logo' 'no-logo'}}"> - <td class="category" style={{border-color subcategory.color}}> - {{category-title-link tagName="h4" category=subcategory}} - {{#if subcategory.description_excerpt}} - <div class="category-description subcategory-description"> - {{dir-span subcategory.description_excerpt}} - </div> - {{/if}} - {{#if subcategory.subcategories}} - <div class='subcategories'> - {{#each subcategory.subcategories as |subsubcategory|}} - {{#unless subsubcategory.isMuted}} - <span class='subcategory'> - {{category-title-before category=subsubcategory}} - {{category-link subsubcategory hideParent="true"}} - </span> - {{/unless}} - {{/each}} - </div> - {{else}} + {{#if c.description_excerpt}} + <div class="category-description"> + {{dir-span c.description_excerpt}} + </div> + {{/if}} + {{#if c.isGrandParent}} + <table class="category-list subcategories-with-subcategories"> + <tbody> + {{#each c.subcategories as |subcategory|}} + <tr data-category-id={{subcategory.id}} data-notification-level={{subcategory.notificationLevelString}} class="{{if subcategory.description_excerpt 'has-description' 'no-description'}} {{if subcategory.uploaded_logo.url 'has-logo' 'no-logo'}}"> + <td class="category" style={{border-color subcategory.color}}> + {{category-title-link tagName="h4" category=subcategory}} {{#if subcategory.description_excerpt}} <div class="category-description subcategory-description"> {{dir-span subcategory.description_excerpt}} </div> {{/if}} - {{/if}} - </td> - </tr> + {{#if subcategory.subcategories}} + <div class='subcategories'> + {{#each subcategory.subcategories as |subsubcategory|}} + {{#unless subsubcategory.isMuted}} + <span class='subcategory'> + {{category-title-before category=subsubcategory}} + {{category-link subsubcategory hideParent="true"}} + </span> + {{/unless}} + {{/each}} + </div> + {{else}} + {{#if subcategory.description_excerpt}} + <div class="category-description subcategory-description"> + {{dir-span subcategory.description_excerpt}} + </div> + {{/if}} + {{/if}} + </td> + </tr> + {{/each}} + </tbody> + </table> + {{else if c.subcategories}} + <div class='subcategories'> + {{#each c.subcategories as |subcategory|}} + {{#unless subcategory.isMuted}} + <span class='subcategory'> + {{category-title-before category=subcategory}} + {{category-link subcategory hideParent="true"}} + {{category-unread category=subcategory}} + </span> + {{/unless}} {{/each}} - </tbody> - </table> - {{else if c.subcategories}} - <div class='subcategories'> - {{#each c.subcategories as |subcategory|}} - {{#unless subcategory.isMuted}} - <span class='subcategory'> - {{category-title-before category=subcategory}} - {{category-link subcategory hideParent="true"}} - {{category-unread category=subcategory}} - </span> - {{/unless}} - {{/each}} - </div> - {{/if}} + </div> + {{/if}} {{/unless}} </td> <td class="topics"> @@ -75,13 +75,13 @@ {{category-unread category=c tagName="div" class="unread-new"}} </td> {{#unless c.isMuted}} - {{#if showTopics}} - <td class="latest"> - {{#each c.featuredTopics as |t|}} - {{featured-topic topic=t latestTopicOnly=latestTopicOnly}} - {{/each}} - </td> - {{/if}} + {{#if showTopics}} + <td class="latest"> + {{#each c.featuredTopics as |t|}} + {{featured-topic topic=t latestTopicOnly=latestTopicOnly}} + {{/each}} + </td> + {{/if}} {{/unless}} </tr> {{/each}} diff --git a/app/assets/javascripts/discourse/templates/components/choose-message.hbs b/app/assets/javascripts/discourse/templates/components/choose-message.hbs index 6c21242484f..b602627f0f5 100644 --- a/app/assets/javascripts/discourse/templates/components/choose-message.hbs +++ b/app/assets/javascripts/discourse/templates/components/choose-message.hbs @@ -15,7 +15,7 @@ <span class="message-title"> {{m.title}} </span> - </label> + </label> </div> {{/each}} {{/if}} diff --git a/app/assets/javascripts/discourse/templates/components/composer-user-selector.hbs b/app/assets/javascripts/discourse/templates/components/composer-user-selector.hbs index bf894877412..dd7ad30ff6c 100644 --- a/app/assets/javascripts/discourse/templates/components/composer-user-selector.hbs +++ b/app/assets/javascripts/discourse/templates/components/composer-user-selector.hbs @@ -1,16 +1,18 @@ {{#if showSelector}} - {{user-selector topicId=topicId - onChangeCallback=(action "triggerResize") - id="private-message-users" - includeMessageableGroups='true' - placeholderKey="composer.users_placeholder" - tabindex="1" - usernames=usernames - hasGroups=hasGroups - allowEmails='true' - autocomplete="discourse"}} + {{user-selector + topicId=topicId + onChangeCallback=(action "triggerResize") + id="private-message-users" + includeMessageableGroups='true' + placeholderKey="composer.users_placeholder" + tabindex="1" + usernames=usernames + hasGroups=hasGroups + allowEmails='true' + autocomplete="discourse" + }} {{else}} - <a href {{action "toggleSelector"}}> + <a href {{action "toggleSelector"}}> <div class='ac-wrap composer-user-selector-limited'> <span>{{limitedUsernames}}</span> <span class='btn btn-primary'>{{hiddenUsersCount}}</span> diff --git a/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs b/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs index 73ca697a715..401f4ebcb79 100644 --- a/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs +++ b/app/assets/javascripts/discourse/templates/components/edit-category-settings.hbs @@ -6,7 +6,7 @@ <label for="category-position"> {{i18n 'category.position'}} </label> - {{text-field value=category.position id="category-position" class="position-input" type="number"}} + {{text-field value=category.position id="category-position" class="position-input" type="number"}} </section> {{/if}} @@ -33,16 +33,16 @@ {{i18n "category.search_priority.label"}} </label> <div class="controls"> - {{combo-box - valueProperty="value" - id="category-search-priority" - content=searchPrioritiesOptions - value=category.search_priority - onChange=(action (mut category.search_priority)) - options=(hash - placementStrategy="absolute" - ) - }} + {{combo-box + valueProperty="value" + id="category-search-priority" + content=searchPrioritiesOptions + value=category.search_priority + onChange=(action (mut category.search_priority)) + options=(hash + placementStrategy="absolute" + ) + }} </div> </section> @@ -77,13 +77,10 @@ {{i18n "category.all_topics_wiki"}} </label> </section> - </section> <section> - <h3>{{i18n 'category.settings_sections.moderation'}}</h3> - {{#if siteSettings.enable_category_group_review}} <section class="field"> <label for="reviewable-by-group"> @@ -93,7 +90,8 @@ groupFinder=groupFinder single="true" groupNames=category.reviewable_by_group_name - placeholderKey="category.review_group_name"}} + placeholderKey="category.review_group_name" + }} </section> {{/if}} @@ -139,12 +137,10 @@ </label> {{text-field value=category.custom_fields.num_auto_bump_daily id="category-number-daily-bump" type="number"}} </section> - </section> <section> - - <h3> {{i18n "category.settings_sections.appearance"}}</h3> + <h3>{{i18n "category.settings_sections.appearance"}}</h3> <section class="field default-view-field"> <label for="category-default-view"> @@ -185,75 +181,73 @@ {{i18n "category.sort_order"}} </label> <div class="controls"> - {{combo-box valueProperty="value" content=availableSorts value=category.sort_order none="category.sort_options.default"}} - {{#unless isDefaultSortOrder}} - {{combo-box - castBoolean=true - valueProperty="value" - content=sortAscendingOptions - value=category.sort_ascending - none="category.sort_options.default" - options=(hash - placementStrategy="absolute" - ) - }} - {{/unless}} - </div> - </section> - - {{#if isParentCategory}} - <section class="field show-subcategory-list-field"> - <label> - {{input type="checkbox" checked=category.show_subcategory_list}} - {{i18n "category.show_subcategory_list"}} - </label> - </section> - {{/if}} - - {{#if showSubcategoryListStyle}} - <section class="field subcategory-list-style-field"> - <label for="subcategory-list-style"> - {{i18n "category.subcategory_list_style"}} - </label> + {{combo-box valueProperty="value" content=availableSorts value=category.sort_order none="category.sort_options.default"}} + {{#unless isDefaultSortOrder}} {{combo-box + castBoolean=true valueProperty="value" - id="subcategory-list-style" - content=availableSubcategoryListStyles - value=category.subcategory_list_style + content=sortAscendingOptions + value=category.sort_ascending + none="category.sort_options.default" options=(hash placementStrategy="absolute" ) }} - </section> - {{/if}} + {{/unless}} + </div> + </section> + {{#if isParentCategory}} + <section class="field show-subcategory-list-field"> + <label> + {{input type="checkbox" checked=category.show_subcategory_list}} + {{i18n "category.show_subcategory_list"}} + </label> + </section> + {{/if}} + {{#if showSubcategoryListStyle}} + <section class="field subcategory-list-style-field"> + <label for="subcategory-list-style"> + {{i18n "category.subcategory_list_style"}} + </label> + {{combo-box + valueProperty="value" + id="subcategory-list-style" + content=availableSubcategoryListStyles + value=category.subcategory_list_style + options=(hash + placementStrategy="absolute" + ) + }} + </section> + {{/if}} </section> <section> - <h3> {{i18n "category.settings_sections.email"}}</h3> + <h3>{{i18n "category.settings_sections.email"}}</h3> {{#if emailInEnabled}} - <section class='field'> - <label for="category-email-in"> - {{d-icon "far-envelope"}} - {{i18n 'category.email_in'}} - </label> - {{text-field id="category-email-in" class="email-in" value=category.email_in}} - </section> + <section class='field'> + <label for="category-email-in"> + {{d-icon "far-envelope"}} + {{i18n 'category.email_in'}} + </label> + {{text-field id="category-email-in" class="email-in" value=category.email_in}} + </section> - <section class='field'> - <label> - {{input type="checkbox" checked=category.email_in_allow_strangers}} - {{i18n 'category.email_in_allow_strangers'}} - </label> - </section> + <section class='field'> + <label> + {{input type="checkbox" checked=category.email_in_allow_strangers}} + {{i18n 'category.email_in_allow_strangers'}} + </label> + </section> - <section class='field'> - <label> - {{input type="checkbox" checked=category.mailinglist_mirror}} - {{i18n 'category.mailinglist_mirror'}} - </label> - </section> + <section class='field'> + <label> + {{input type="checkbox" checked=category.mailinglist_mirror}} + {{i18n 'category.mailinglist_mirror'}} + </label> + </section> {{plugin-outlet name="category-email-in" args=(hash category=category)}} {{/if}} @@ -264,7 +258,6 @@ <a href={{get-url '/admin/site_settings/category/email'}}>{{i18n 'category.email_in_disabled_click'}}</a> </section> {{/unless}} - </section> {{plugin-outlet name="category-custom-settings" args=(hash category=category) connectorTagName="" tagName="section"}} diff --git a/app/assets/javascripts/discourse/templates/components/future-date-input.hbs b/app/assets/javascripts/discourse/templates/components/future-date-input.hbs index 38451bea90e..14da87147f3 100644 --- a/app/assets/javascripts/discourse/templates/components/future-date-input.hbs +++ b/app/assets/javascripts/discourse/templates/components/future-date-input.hbs @@ -1,22 +1,22 @@ <div class="future-date-input"> {{#unless isBasedOnDuration}} - <div class="control-group"> - <label>{{displayLabel}}</label> - {{future-date-input-selector - minimumResultsForSearch=-1 - statusType=statusType - value=(readonly selection) - input=(readonly input) - includeDateTime=includeDateTime - includeWeekend=includeWeekend - includeFarFuture=includeFarFuture - includeMidFuture=includeMidFuture - clearable=clearable - none="topic.auto_update_input.none" - onChangeInput=onChangeInput - onChange=(action (mut selection)) - }} - </div> + <div class="control-group"> + <label>{{displayLabel}}</label> + {{future-date-input-selector + minimumResultsForSearch=-1 + statusType=statusType + value=(readonly selection) + input=(readonly input) + includeDateTime=includeDateTime + includeWeekend=includeWeekend + includeFarFuture=includeFarFuture + includeMidFuture=includeMidFuture + clearable=clearable + none="topic.auto_update_input.none" + onChangeInput=onChangeInput + onChange=(action (mut selection)) + }} + </div> {{/unless}} {{#if displayDateAndTimePicker}} diff --git a/app/assets/javascripts/discourse/templates/components/group-card-contents.hbs b/app/assets/javascripts/discourse/templates/components/group-card-contents.hbs index 7f6104b836e..cc819f07a9b 100644 --- a/app/assets/javascripts/discourse/templates/components/group-card-contents.hbs +++ b/app/assets/javascripts/discourse/templates/components/group-card-contents.hbs @@ -1,14 +1,14 @@ {{#if visible}} <div class="card-content"> - <div class="card-row first-row"> <div class="group-card-avatar"> <a href={{groupPath}} {{action "showGroup" group}} class="card-huge-avatar"> {{avatar-flair - flairURL=group.flair_url - flairBgColor=group.flair_bg_color - flairColor=group.flair_color - groupName=group.name}} + flairURL=group.flair_url + flairBgColor=group.flair_bg_color + flairColor=group.flair_color + groupName=group.name + }} </a> </div> <div class="names"> @@ -26,8 +26,9 @@ <ul class="usercard-controls group-details-button"> <li> {{group-membership-button - model=group - showLogin=(route-action "showLogin")}} + model=group + showLogin=(route-action "showLogin") + }} </li> {{#if group.messageable}} <li> @@ -35,7 +36,8 @@ action=(action "messageGroup") class="btn-primary group-message-button inline" icon="envelope" - label="groups.message"}} + label="groups.message" + }} </li> {{/if}} </ul> @@ -74,13 +76,12 @@ <a href {{action 'showUser' user}} class="card-tiny-avatar">{{bound-avatar user "tiny"}}</a> {{/each}} {{#if showMoreMembers}} - <a href={{groupPath}} {{action "showGroup" group}} class="more-members-link"><span - class="more-members-count">+{{moreMembersCount}} - {{i18n "more"}}</span></a> + <a href={{groupPath}} {{action "showGroup" group}} class="more-members-link"> + <span class="more-members-count">+{{moreMembersCount}}{{i18n "more"}}</span> + </a> {{/if}} </div> </div> {{/if}} - </div> {{/if}} diff --git a/app/assets/javascripts/discourse/templates/components/group-manage-save-button.hbs b/app/assets/javascripts/discourse/templates/components/group-manage-save-button.hbs index 6c7afbab652..3efeac10ac7 100644 --- a/app/assets/javascripts/discourse/templates/components/group-manage-save-button.hbs +++ b/app/assets/javascripts/discourse/templates/components/group-manage-save-button.hbs @@ -1,9 +1,9 @@ <div class='control-group buttons'> {{#d-button action=(action "save") - disabled=saving - class='btn btn-primary group-manage-save'}} - - {{savingText}} + disabled=saving + class='btn btn-primary group-manage-save' + }} + {{savingText}} {{/d-button}} {{#if saved}} diff --git a/app/assets/javascripts/discourse/templates/components/group-post.hbs b/app/assets/javascripts/discourse/templates/components/group-post.hbs index d4a9673708e..451904c5420 100644 --- a/app/assets/javascripts/discourse/templates/components/group-post.hbs +++ b/app/assets/javascripts/discourse/templates/components/group-post.hbs @@ -1,25 +1,24 @@ <div class='clearfix info'> - <a href={{post.user.userUrl}} data-user-card={{post.user.username}} class='avatar-link'> - {{avatar post.user imageSize="large" extraClasses="actor" ignoreTitle="true"}} - </a> - <span class='time'>{{format-date post.created_at leaveAgo="true"}}</span> - {{expand-post item=post}} + <a href={{post.user.userUrl}} data-user-card={{post.user.username}} class='avatar-link'> + {{avatar post.user imageSize="large" extraClasses="actor" ignoreTitle="true"}} + </a> + <span class='time'>{{format-date post.created_at leaveAgo="true"}}</span> + {{expand-post item=post}} <div class='stream-topic-details'> - <div class='stream-topic-title'> - <span class='title'> - <a href={{postUrl}}>{{html-safe post.topic.fancyTitle}}</a> - </span> + <div class='stream-topic-title'> + <span class='title'> + <a href={{postUrl}}>{{html-safe post.topic.fancyTitle}}</a> + </span> + </div> + <div class="group-post-category">{{category-link post.category}}</div> + {{#if post.user.name}} + <div class="group-member-info"> + <span class="name">{{post.user.name}}</span> + {{#if post.user.title}}<span class="title">, {{post.user.title}}</span>{{/if}} </div> - <div class="group-post-category">{{category-link post.category}}</div> - {{#if post.user.name}} - <div class="group-member-info"> - <span class="name">{{post.user.name}}</span> - {{#if post.user.title}}<span class="title">, {{post.user.title}}</span>{{/if}} - </div> - {{/if}} + {{/if}} </div> - </div> <div class='excerpt'> diff --git a/app/assets/javascripts/discourse/templates/components/invite-panel.hbs b/app/assets/javascripts/discourse/templates/components/invite-panel.hbs index a7a7875219b..ad366bfc1f1 100644 --- a/app/assets/javascripts/discourse/templates/components/invite-panel.hbs +++ b/app/assets/javascripts/discourse/templates/components/invite-panel.hbs @@ -38,12 +38,13 @@ value=emailOrUsername placeholderKey="topic.invite_reply.email_placeholder"}} {{/if}} - {{#if showContactPicker}} - {{d-button + {{#if showContactPicker}} + {{d-button icon="address-book" action=(action "searchContact") - class="btn-primary open-contact-picker"}} - {{/if}} + class="btn-primary open-contact-picker" + }} + {{/if}} </div> </div> diff --git a/app/assets/javascripts/discourse/templates/components/navigation-bar.hbs b/app/assets/javascripts/discourse/templates/components/navigation-bar.hbs index 0808efcc6d5..25a520642a5 100644 --- a/app/assets/javascripts/discourse/templates/components/navigation-bar.hbs +++ b/app/assets/javascripts/discourse/templates/components/navigation-bar.hbs @@ -4,5 +4,5 @@ {{custom-html name="extraNavItem" tagName="li"}} {{!- this is done to avoid DIV in the UL, originally {{plugin-outlet name="extra-nav-item"}} {{#each connectors as |c|}} -{{plugin-connector connector=c class=c.classNames tagName="li" args=(hash category=category filterMode=filterMode)}} + {{plugin-connector connector=c class=c.classNames tagName="li" args=(hash category=category filterMode=filterMode)}} {{/each}} diff --git a/app/assets/javascripts/discourse/templates/components/navigation-item.hbs b/app/assets/javascripts/discourse/templates/components/navigation-item.hbs index f6ebd1b7867..7cd996da0cd 100644 --- a/app/assets/javascripts/discourse/templates/components/navigation-item.hbs +++ b/app/assets/javascripts/discourse/templates/components/navigation-item.hbs @@ -1,6 +1,6 @@ <a href={{hrefLink}} class={{activeClass}}> -{{#if hasIcon}} -<span class={{content.name}}></span> -{{/if}} -{{content.displayName}} + {{#if hasIcon}} + <span class={{content.name}}></span> + {{/if}} + {{content.displayName}} </a> diff --git a/app/assets/javascripts/discourse/templates/components/reviewable-flagged-post.hbs b/app/assets/javascripts/discourse/templates/components/reviewable-flagged-post.hbs index 2ac3b61ff78..6cbad0ec063 100644 --- a/app/assets/javascripts/discourse/templates/components/reviewable-flagged-post.hbs +++ b/app/assets/javascripts/discourse/templates/components/reviewable-flagged-post.hbs @@ -4,7 +4,7 @@ <a href {{action "showEditHistory"}} class="has-edits {{historyClass}}" title="{{i18n "post.last_edited_on"}} {{editedDate}}"> - {{d-icon "pencil-alt"}} + {{d-icon "pencil-alt"}} </a> {{/if}} </div> diff --git a/app/assets/javascripts/discourse/templates/components/reviewable-histories.hbs b/app/assets/javascripts/discourse/templates/components/reviewable-histories.hbs index 33c3e016ac4..6b1f327638c 100644 --- a/app/assets/javascripts/discourse/templates/components/reviewable-histories.hbs +++ b/app/assets/javascripts/discourse/templates/components/reviewable-histories.hbs @@ -2,28 +2,26 @@ <table class='reviewable-histories'> <thead> <tr> - <th colspan="3">{{i18n "review.history.title"}}</th> - </tr> + <th colspan="3">{{i18n "review.history.title"}}</th> + </tr> </thead> <tbody> - {{#each filteredHistories as |rh|}} - {{#unless rh.created}} - <tr> - <td> - {{reviewable-history-description rh}} - </td> - <td> - {{#user-link user=rs.user}} - {{avatar rh.created_by imageSize="tiny"}} - {{rh.created_by.username}} - {{/user-link}} - </td> - <td>{{format-date rh.created_at format="medium"}}</td> - - </tr> - {{/unless}} - {{/each}} - </tbody> - + {{#each filteredHistories as |rh|}} + {{#unless rh.created}} + <tr> + <td> + {{reviewable-history-description rh}} + </td> + <td> + {{#user-link user=rs.user}} + {{avatar rh.created_by imageSize="tiny"}} + {{rh.created_by.username}} + {{/user-link}} + </td> + <td>{{format-date rh.created_at format="medium"}}</td> + </tr> + {{/unless}} + {{/each}} + </tbody> </table> {{/if}} diff --git a/app/assets/javascripts/discourse/templates/components/reviewable-scores.hbs b/app/assets/javascripts/discourse/templates/components/reviewable-scores.hbs index e811554285a..f15b9e4ace1 100644 --- a/app/assets/javascripts/discourse/templates/components/reviewable-scores.hbs +++ b/app/assets/javascripts/discourse/templates/components/reviewable-scores.hbs @@ -1,9 +1,9 @@ {{#if reviewable.reviewable_scores}} <table class='reviewable-scores'> <tbody> - {{#each reviewable.reviewable_scores as |rs|}} - {{reviewable-score rs=rs reviewable=reviewable}} - {{/each}} - </tbody> + {{#each reviewable.reviewable_scores as |rs|}} + {{reviewable-score rs=rs reviewable=reviewable}} + {{/each}} + </tbody> </table> {{/if}} diff --git a/app/assets/javascripts/discourse/templates/components/search-advanced-options.hbs b/app/assets/javascripts/discourse/templates/components/search-advanced-options.hbs index 89df8f94e37..c3548b7c58f 100644 --- a/app/assets/javascripts/discourse/templates/components/search-advanced-options.hbs +++ b/app/assets/javascripts/discourse/templates/components/search-advanced-options.hbs @@ -53,9 +53,9 @@ unlimitedTagCount=true onChange=(action (mut searchedTerms.tags)) }} - <section class="field"> + <section class="field"> <label>{{ input type="checkbox" class="all-tags" checked=searchedTerms.special.all_tags}} {{i18n "search.advanced.filters.all_tags"}} </label> - </section> + </section> </div> </div> </div> diff --git a/app/assets/javascripts/discourse/templates/components/topic-progress.hbs b/app/assets/javascripts/discourse/templates/components/topic-progress.hbs index d9c0ff58023..4bfcbdc6fdc 100644 --- a/app/assets/javascripts/discourse/templates/components/topic-progress.hbs +++ b/app/assets/javascripts/discourse/templates/components/topic-progress.hbs @@ -10,8 +10,10 @@ <nav id='topic-progress' title={{i18n 'topic.progress.title'}} class={{if hideProgress 'hidden'}}> <div class='nums'> - <h4>{{progressPosition}}</h4><span class={{if hugeNumberOfPosts 'hidden'}}> - <span>/</span> - <h4>{{postStream.filteredPostsCount}}</h4></span> + <h4>{{progressPosition}}</h4> + <span class={{if hugeNumberOfPosts 'hidden'}}> + <span>/</span> + <h4>{{postStream.filteredPostsCount}}</h4> + </span> </div> </nav> diff --git a/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs b/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs index 4bc61d7a7c0..60bf8008b9c 100644 --- a/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs +++ b/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs @@ -153,8 +153,10 @@ <div class="card-row"> <div class="location-and-website"> {{#if user.location}} - <span class='location'>{{d-icon "map-marker-alt"}} - <span>{{user.location}}</span></span> + <span class='location'> + {{d-icon "map-marker-alt"}} + <span>{{user.location}}</span> + </span> {{/if}} {{#if user.website_name}} <span class='website-name'> diff --git a/app/assets/javascripts/discourse/templates/components/user-fields/dropdown.hbs b/app/assets/javascripts/discourse/templates/components/user-fields/dropdown.hbs index fd3cb919170..5583c96f89e 100644 --- a/app/assets/javascripts/discourse/templates/components/user-fields/dropdown.hbs +++ b/app/assets/javascripts/discourse/templates/components/user-fields/dropdown.hbs @@ -1,5 +1,10 @@ -<label class="control-label" for={{concat 'user-' elementId}}>{{html-safe field.name}} {{#if field.required}}<span class='required'>*</span>{{/if}} +<label class="control-label" for={{concat 'user-' elementId}}> + {{html-safe field.name}} + {{#if field.required}} + <span class='required'>*</span> + {{/if}} </label> + <div class='controls'> {{combo-box id=(concat 'user-' elementId) diff --git a/app/assets/javascripts/discourse/templates/components/user-stream-item.hbs b/app/assets/javascripts/discourse/templates/components/user-stream-item.hbs index f6da96aa0c3..50d4f6ee862 100644 --- a/app/assets/javascripts/discourse/templates/components/user-stream-item.hbs +++ b/app/assets/javascripts/discourse/templates/components/user-stream-item.hbs @@ -46,7 +46,8 @@ </p> {{#each item.children as |child|}} - <div class='user-stream-item-actions child-actions'>{{!-- DEPRECATED: 'child-actions' class --}} + {{!-- DEPRECATED: 'child-actions' class --}} + <div class='user-stream-item-actions child-actions'> {{d-icon child.icon class="icon"}} {{#each child.items as |grandChild|}} {{#if grandChild.removableBookmark}} @@ -54,10 +55,11 @@ class="btn-default remove-bookmark" action=(action removeBookmark grandChild) icon="times" - label="bookmarks.remove"}} + label="bookmarks.remove" + }} {{else}} - <a href={{grandChild.userUrl}} data-user-card={{grandChild.username}} class='avatar-link'><div class='avatar-wrapper'>{{avatar grandChild imageSize="tiny" extraClasses="actor" ignoreTitle="true" avatarTemplatePath="acting_avatar_template"}}</div></a> - {{#if grandChild.edit_reason}} — <span class="edit-reason">{{grandChild.edit_reason}}</span>{{/if}} + <a href={{grandChild.userUrl}} data-user-card={{grandChild.username}} class='avatar-link'><div class='avatar-wrapper'>{{avatar grandChild imageSize="tiny" extraClasses="actor" ignoreTitle="true" avatarTemplatePath="acting_avatar_template"}}</div></a> + {{#if grandChild.edit_reason}} — <span class="edit-reason">{{grandChild.edit_reason}}</span>{{/if}} {{/if}} {{/each}} </div> diff --git a/app/assets/javascripts/discourse/templates/full-page-search.hbs b/app/assets/javascripts/discourse/templates/full-page-search.hbs index 9394f354864..649c3af0e48 100644 --- a/app/assets/javascripts/discourse/templates/full-page-search.hbs +++ b/app/assets/javascripts/discourse/templates/full-page-search.hbs @@ -93,7 +93,7 @@ <div class='search-category'> {{#if result.topic.category.parentCategory}} - {{category-link result.topic.category.parentCategory}} + {{category-link result.topic.category.parentCategory}} {{/if}} {{category-link result.topic.category hideParent=true}} {{#each result.topic.tags as |tag|}} @@ -107,7 +107,7 @@ <span class='date'> {{format-age result.created_at}} {{#if result.blurb}} - - + - {{/if}} </span> diff --git a/app/assets/javascripts/discourse/templates/group-index.hbs b/app/assets/javascripts/discourse/templates/group-index.hbs index 36d9acfe889..cd2608f2c2b 100644 --- a/app/assets/javascripts/discourse/templates/group-index.hbs +++ b/app/assets/javascripts/discourse/templates/group-index.hbs @@ -1,88 +1,89 @@ <section class="user-content"> - -<div class="group-members-actions"> + <div class="group-members-actions"> {{#if model.can_see_members}} - {{text-field value=filterInput - placeholderKey=filterPlaceholder - autocomplete="discourse" - class="group-username-filter no-blur"}} + {{text-field + value=filterInput + placeholderKey=filterPlaceholder + autocomplete="discourse" + class="group-username-filter no-blur" + }} {{/if}} - <div class="group-members-manage"> - {{#if canManageGroup}} - {{d-button icon="plus" - action=(route-action "showAddMembersModal") - label="groups.add_members.title" - class="group-members-add"}} - {{#if currentUser.admin}} + <div class="group-members-manage"> + {{#if canManageGroup}} {{d-button icon="plus" - action=(route-action "showBulkAddModal") - label="admin.groups.bulk_add.title" - class="group-bulk-add"}} + action=(route-action "showAddMembersModal") + label="groups.add_members.title" + class="group-members-add"}} + {{#if currentUser.admin}} + {{d-button icon="plus" + action=(route-action "showBulkAddModal") + label="admin.groups.bulk_add.title" + class="group-bulk-add"}} + {{/if}} {{/if}} - {{/if}} + </div> </div> -</div> -{{#if hasMembers}} - {{#load-more selector=".group-members tr" action=(action "loadMore")}} - <table class='group-members'> - <thead> - {{group-index-toggle order=order desc=desc field='username_lower' i18nKey='username'}} - <th class='group-owner'>{{i18n "groups.members.owner"}}</th> - {{group-index-toggle order=order desc=desc field='added_at' i18nKey='groups.member_added'}} - {{group-index-toggle order=order desc=desc field='last_posted_at' i18nKey='last_post'}} - {{group-index-toggle order=order desc=desc field='last_seen_at' i18nKey='last_seen'}} - <th></th> - </thead> + {{#if hasMembers}} + {{#load-more selector=".group-members tr" action=(action "loadMore")}} + <table class='group-members'> + <thead> + {{group-index-toggle order=order desc=desc field='username_lower' i18nKey='username'}} + <th class='group-owner'>{{i18n "groups.members.owner"}}</th> + {{group-index-toggle order=order desc=desc field='added_at' i18nKey='groups.member_added'}} + {{group-index-toggle order=order desc=desc field='last_posted_at' i18nKey='last_post'}} + {{group-index-toggle order=order desc=desc field='last_seen_at' i18nKey='last_seen'}} + <th></th> + </thead> - <tbody> - {{#each model.members as |m|}} - <tr> - <td class='avatar'> - {{user-info user=m skipName=skipName}} - </td> + <tbody> + {{#each model.members as |m|}} + <tr> + <td class='avatar'> + {{user-info user=m skipName=skipName}} + </td> - <td class='group-owner'> - {{#if m.owner}} - <strong class="group-owner-label"> - {{d-icon "shield-alt"}} - </strong> - {{/if}} - </td> - <td> - <span class="text">{{bound-date m.added_at}}</span> - </td> - <td> - <span class="text">{{bound-date m.last_posted_at}}</span> - </td> - <td> - <span class="text">{{bound-date m.last_seen_at}}</span> - </td> + <td class='group-owner'> + {{#if m.owner}} + <strong class="group-owner-label"> + {{d-icon "shield-alt"}} + </strong> + {{/if}} + </td> + <td> + <span class="text">{{bound-date m.added_at}}</span> + </td> + <td> + <span class="text">{{bound-date m.last_posted_at}}</span> + </td> + <td> + <span class="text">{{bound-date m.last_seen_at}}</span> + </td> - <td> - {{#if canManageGroup}} - {{group-member-dropdown - member=m - onChange=(action "actOnGroup" m) - }} - {{/if}} - {{!-- group parameter is used by plugins --}} - </td> - </tr> - {{/each}} - </tbody> - </table> - {{/load-more}} + <td> + {{#if canManageGroup}} + {{group-member-dropdown + member=m + onChange=(action "actOnGroup" m) + }} + {{/if}} + {{!-- group parameter is used by plugins --}} + </td> + </tr> + {{/each}} + </tbody> + </table> + {{/load-more}} - {{conditional-loading-spinner condition=loading}} -{{else if model.can_see_members}} - <br> + {{conditional-loading-spinner condition=loading}} + {{else if model.can_see_members}} + <br> - <div>{{i18n "groups.empty.members"}}</div> -{{else}} - <br> + <div>{{i18n "groups.empty.members"}}</div> + {{else}} + <br> - <div>{{i18n "groups.members.forbidden"}}</div> -{{/if}} + <div>{{i18n "groups.members.forbidden"}}</div> + {{/if}} </section> diff --git a/app/assets/javascripts/discourse/templates/group-requests.hbs b/app/assets/javascripts/discourse/templates/group-requests.hbs index d018c23d7c7..7b8b793315f 100644 --- a/app/assets/javascripts/discourse/templates/group-requests.hbs +++ b/app/assets/javascripts/discourse/templates/group-requests.hbs @@ -1,55 +1,57 @@ <section class="user-content"> -<div class="group-members-actions"> - {{text-field value=filterInput - placeholderKey=filterPlaceholder - class="group-username-filter no-blur"}} -</div> + <div class="group-members-actions"> + {{text-field + value=filterInput + placeholderKey=filterPlaceholder + class="group-username-filter no-blur" + }} + </div> -{{#if hasRequesters}} - {{#load-more selector=".group-members tr" action=(action "loadMore")}} - <table class='group-members'> - <thead> - {{group-index-toggle order=order desc=desc field='username_lower' i18nKey='username'}} - {{group-index-toggle order=order desc=desc field='requested_at' i18nKey='groups.member_requested'}} - <th>{{i18n "groups.requests.reason"}}</th> - <th></th> - <th></th> - </thead> + {{#if hasRequesters}} + {{#load-more selector=".group-members tr" action=(action "loadMore")}} + <table class='group-members'> + <thead> + {{group-index-toggle order=order desc=desc field='username_lower' i18nKey='username'}} + {{group-index-toggle order=order desc=desc field='requested_at' i18nKey='groups.member_requested'}} + <th>{{i18n "groups.requests.reason"}}</th> + <th></th> + <th></th> + </thead> - <tbody> - {{#each model.requesters as |m|}} - <tr> - <td class='avatar'> - {{user-info user=m skipName=skipName}} - </td> - <td> - <span class="text">{{bound-date m.requested_at}}</span> - </td> - <td>{{m.reason}}</td> - <td> - {{#if m.request_undone}} - {{i18n "groups.requests.undone"}} - {{else if m.request_accepted}} - {{i18n "groups.requests.accepted"}} - {{d-button action=(action "undoAcceptRequest") actionParam=m label="undo"}} - {{else if m.request_denied}} - {{i18n "groups.requests.denied"}} - {{else}} - {{d-button action=(action "acceptRequest") actionParam=m label="groups.requests.accept" class="btn-primary"}} - {{d-button action=(action "denyRequest") actionParam=m label="groups.requests.deny" class="btn-danger"}} - {{/if}} - </td> - <td></td> - </tr> - {{/each}} - </tbody> - </table> - {{/load-more}} + <tbody> + {{#each model.requesters as |m|}} + <tr> + <td class='avatar'> + {{user-info user=m skipName=skipName}} + </td> + <td> + <span class="text">{{bound-date m.requested_at}}</span> + </td> + <td>{{m.reason}}</td> + <td> + {{#if m.request_undone}} + {{i18n "groups.requests.undone"}} + {{else if m.request_accepted}} + {{i18n "groups.requests.accepted"}} + {{d-button action=(action "undoAcceptRequest") actionParam=m label="undo"}} + {{else if m.request_denied}} + {{i18n "groups.requests.denied"}} + {{else}} + {{d-button action=(action "acceptRequest") actionParam=m label="groups.requests.accept" class="btn-primary"}} + {{d-button action=(action "denyRequest") actionParam=m label="groups.requests.deny" class="btn-danger"}} + {{/if}} + </td> + <td></td> + </tr> + {{/each}} + </tbody> + </table> + {{/load-more}} - {{conditional-loading-spinner condition=loading}} -{{else}} - <div>{{i18n "groups.empty.requests"}}</div> -{{/if}} + {{conditional-loading-spinner condition=loading}} + {{else}} + <div>{{i18n "groups.empty.requests"}}</div> + {{/if}} </section> diff --git a/app/assets/javascripts/discourse/templates/group.hbs b/app/assets/javascripts/discourse/templates/group.hbs index 1bc9734c139..4cb1033389c 100644 --- a/app/assets/javascripts/discourse/templates/group.hbs +++ b/app/assets/javascripts/discourse/templates/group.hbs @@ -53,13 +53,12 @@ {{/if}} </div> </div> -<div class="user-content-wrapper"> - <section class="user-primary-navigation"> - <div class="container"> - {{group-navigation group=model currentPath=currentPath tabs=tabs}} - </div> - </section> - - {{outlet}} -</div> + <div class="user-content-wrapper"> + <section class="user-primary-navigation"> + <div class="container"> + {{group-navigation group=model currentPath=currentPath tabs=tabs}} + </div> + </section> + {{outlet}} + </div> </div> diff --git a/app/assets/javascripts/discourse/templates/group/activity.hbs b/app/assets/javascripts/discourse/templates/group/activity.hbs index 896228f9594..5d94db7b56f 100644 --- a/app/assets/javascripts/discourse/templates/group/activity.hbs +++ b/app/assets/javascripts/discourse/templates/group/activity.hbs @@ -1,4 +1,4 @@ - <section class="user-secondary-navigation"> +<section class="user-secondary-navigation"> {{#mobile-nav class='activity-nav' desktopClass='action-list activity-list nav-stacked' currentPath=router._router.currentPath}} {{#if model.can_see_members}} {{group-activity-filter filter="posts" categoryId=category_id}} @@ -12,4 +12,4 @@ </section> <section class="user-content"> {{outlet}} - </section> +</section> diff --git a/app/assets/javascripts/discourse/templates/group/manage.hbs b/app/assets/javascripts/discourse/templates/group/manage.hbs index 5ee0f8591f3..459cdd7a18d 100644 --- a/app/assets/javascripts/discourse/templates/group/manage.hbs +++ b/app/assets/javascripts/discourse/templates/group/manage.hbs @@ -11,4 +11,4 @@ </section> <section class="user-content"> {{outlet}} - </section> +</section> diff --git a/app/assets/javascripts/discourse/templates/group/messages.hbs b/app/assets/javascripts/discourse/templates/group/messages.hbs index 1d3edaa440b..f923416abb6 100644 --- a/app/assets/javascripts/discourse/templates/group/messages.hbs +++ b/app/assets/javascripts/discourse/templates/group/messages.hbs @@ -1,6 +1,5 @@ - <section class="user-secondary-navigation"> +<section class="user-secondary-navigation"> {{#mobile-nav class='messages-nav' desktopClass='nav-stacked action-list' currentPath=router._router.currentPath}} - <li> {{#link-to 'group.messages.inbox' model.name}} {{i18n 'user.messages.inbox'}} @@ -14,5 +13,5 @@ {{/mobile-nav}} </section> <section class="user-content"> - {{outlet}} + {{outlet}} </section> diff --git a/app/assets/javascripts/discourse/templates/groups/index.hbs b/app/assets/javascripts/discourse/templates/groups/index.hbs index bf610c81ac1..a3f46e47db2 100644 --- a/app/assets/javascripts/discourse/templates/groups/index.hbs +++ b/app/assets/javascripts/discourse/templates/groups/index.hbs @@ -61,15 +61,15 @@ <div class="group-membership"> {{#group-membership-button tagName='' model=group showLogin=(route-action "showLogin")}} {{#if group.is_group_owner}} - <span class="is-group-owner"> - {{d-icon "shield-alt"}} - {{i18n "groups.index.is_group_owner"}} - </span> + <span class="is-group-owner"> + {{d-icon "shield-alt"}} + {{i18n "groups.index.is_group_owner"}} + </span> {{else if group.is_group_user}} - <span class="is-group-member"> - {{d-icon "check"}} - {{i18n "groups.index.is_group_user"}} - </span> + <span class="is-group-member"> + {{d-icon "check"}} + {{i18n "groups.index.is_group_user"}} + </span> {{else if group.public_admission}} {{i18n 'groups.index.public'}} {{else if group.isPrivate}} diff --git a/app/assets/javascripts/discourse/templates/invites/show.hbs b/app/assets/javascripts/discourse/templates/invites/show.hbs index f2f1e736781..ce3f115efab 100644 --- a/app/assets/javascripts/discourse/templates/invites/show.hbs +++ b/app/assets/javascripts/discourse/templates/invites/show.hbs @@ -1,5 +1,4 @@ <div class="container invites-show clearfix"> - <h2>{{welcomeTitle}}</h2> <div class="two-col"> @@ -10,15 +9,18 @@ <div class="col-form"> {{#if successMessage}} <br><br> - <div class='alert alert-info'><p>{{html-safe successMessage}}</p></div> + <div class='alert alert-info'> + <p>{{html-safe successMessage}}</p> + </div> {{else}} <p>{{i18n 'invites.invited_by'}}</p> <p>{{user-info user=invitedBy}}</p> - <p>{{html-safe yourEmailMessage}} - {{#if externalAuthsEnabled}} - {{i18n 'invites.social_login_available'}} - {{/if}} + <p> + {{html-safe yourEmailMessage}} + {{#if externalAuthsEnabled}} + {{i18n 'invites.social_login_available'}} + {{/if}} </p> <form> @@ -44,7 +46,8 @@ <div class="instructions"> {{passwordInstructions}} {{i18n 'invites.optional_description'}} <div class="caps-lock-warning {{unless capsLockOn 'invisible'}}"> - {{d-icon "exclamation-triangle"}} {{i18n 'login.caps_lock_warning'}}</div> + {{d-icon "exclamation-triangle"}} {{i18n 'login.caps_lock_warning'}} + </div> </div> </div> @@ -61,7 +64,8 @@ action=(action "submit") type="submit" disabled=submitDisabled - label="invites.accept_invite"}} + label="invites.accept_invite" + }} {{#if errorMessage}} <br><br> diff --git a/app/assets/javascripts/discourse/templates/mobile/components/basic-topic-list.hbs b/app/assets/javascripts/discourse/templates/mobile/components/basic-topic-list.hbs index 72ed944b944..f9fa81455a0 100644 --- a/app/assets/javascripts/discourse/templates/mobile/components/basic-topic-list.hbs +++ b/app/assets/javascripts/discourse/templates/mobile/components/basic-topic-list.hbs @@ -2,7 +2,7 @@ {{#if hasIncoming}} <div class="show-mores"> <a href class='alert alert-info clickable' {{action showInserted}}> - {{count-i18n key="topic_count_" suffix="latest" count=incomingCount}} + {{count-i18n key="topic_count_" suffix="latest" count=incomingCount}} </a> </div> {{/if}} @@ -10,50 +10,56 @@ {{#if topics}} <table class="topic-list"> <tbody> - {{#each topics as |t|}} - <tr class="topic-list-item {{if t.archived 'archived'}} {{if t.visited 'visited'}}" data-topic-id={{t.id}}> - <td> - <div class='main-link'> - {{topic-status topic=t}} - {{topic-link t}} - {{raw "list/unread-indicator" includeUnreadIndicator=showUnreadIndicator - topicId=t.id - unreadClass=(if t.unread_by_group_member "" "read")}} - {{#if t.unseen}} - <span class="badge-notification new-topic"></span> - {{/if}} - {{#if t.hasExcerpt}} - <div class="topic-excerpt"> - {{html-safe t.excerpt}} - {{#if t.excerptTruncated}} - {{#unless t.canClearPin}}<a href={{t.url}}>{{i18n 'read_more'}}</a>{{/unless}} - {{/if}} - {{#if t.canClearPin}} - <a href {{action "clearPin" t}} title={{i18n 'topic.clear_pin.help'}}>{{i18n 'topic.clear_pin.title'}}</a> - {{/if}} - </div> - {{/if}} - </div> - <div class='pull-right'> - {{raw "list/post-count-or-badges" topic=t postBadgesEnabled="true"}} - </div> - <div class='clearfix'></div> - <div class="topic-item-stats clearfix"> - {{discourse-tags t mode="list" tagsForUser=tagsForUser}} - <div class="pull-right"> - {{raw "list/activity-column" topic=t tagName="div" class="num activity last"}} - <a href={{t.lastPostUrl}} title='{{i18n 'last_post'}}: {{raw-date t.bumped_at}}'>{{t.last_poster_username}}</a> - </div> - {{#unless hideCategory}} - <div class='category'> - {{category-link t.category}} - </div> - {{/unless}} - <div class="clearfix"></div> - </div> - </td> - </tr> - {{/each}} + {{#each topics as |t|}} + <tr class="topic-list-item {{if t.archived 'archived'}} {{if t.visited 'visited'}}" data-topic-id={{t.id}}> + <td> + <div class='main-link'> + {{topic-status topic=t}} + {{topic-link t}} + {{raw "list/unread-indicator" + includeUnreadIndicator=showUnreadIndicator + topicId=t.id + unreadClass=(if t.unread_by_group_member "" "read") + }} + {{#if t.unseen}} + <span class="badge-notification new-topic"></span> + {{/if}} + {{#if t.hasExcerpt}} + <div class="topic-excerpt"> + {{html-safe t.excerpt}} + {{#if t.excerptTruncated}} + {{#unless t.canClearPin}} + <a href={{t.url}}>{{i18n 'read_more'}}</a> + {{/unless}} + {{/if}} + {{#if t.canClearPin}} + <a href {{action "clearPin" t}} title={{i18n 'topic.clear_pin.help'}}> + {{i18n 'topic.clear_pin.title'}} + </a> + {{/if}} + </div> + {{/if}} + </div> + <div class='pull-right'> + {{raw "list/post-count-or-badges" topic=t postBadgesEnabled="true"}} + </div> + <div class='clearfix'></div> + <div class="topic-item-stats clearfix"> + {{discourse-tags t mode="list" tagsForUser=tagsForUser}} + <div class="pull-right"> + {{raw "list/activity-column" topic=t tagName="div" class="num activity last"}} + <a href={{t.lastPostUrl}} title='{{i18n 'last_post'}}: {{raw-date t.bumped_at}}'>{{t.last_poster_username}}</a> + </div> + {{#unless hideCategory}} + <div class='category'> + {{category-link t.category}} + </div> + {{/unless}} + <div class="clearfix"></div> + </div> + </td> + </tr> + {{/each}} </tbody> </table> {{else}} diff --git a/app/assets/javascripts/discourse/templates/mobile/components/categories-only.hbs b/app/assets/javascripts/discourse/templates/mobile/components/categories-only.hbs index b57dfeb0014..148c009254e 100644 --- a/app/assets/javascripts/discourse/templates/mobile/components/categories-only.hbs +++ b/app/assets/javascripts/discourse/templates/mobile/components/categories-only.hbs @@ -9,68 +9,71 @@ {{category-title-link category=c}} </th> </tr> - {{#unless c.isMuted}} - {{#if c.description_excerpt}} - <tr class="category-description"> - <td colspan="3"> - {{html-safe c.description_excerpt}} - </td> - </tr> - {{/if}} - - {{#if showTopics}} - {{#each c.topics as |t|}} - {{mobile-category-topic topic=t}} - {{/each}} - {{/if}} - - {{#if c.isGrandParent}} - {{#each c.subcategories as |subcategory|}} - <tr data-category-id={{c.id}} class='subcategory-list-item category' style={{border-color subcategory.color}}> - <td> - {{category-title-link tagName="h4" category=subcategory}} - <div class="subcategories-list"> - {{#if subcategory.subcategories}} - <div class='subcategories'> - {{#each subcategory.subcategories as |subsubcategory|}} - {{#unless subsubcategory.isMuted}} - {{category-link subsubcategory}} - {{/unless}} - {{/each}} - </div> - {{/if}} - </div> - </td> - </tr> - {{/each}} - {{else if c.subcategories}} - <tr class="subcategories-list"> - <td> - <div class='subcategories'> - {{#each c.subcategories as |subcategory|}} - {{#unless subcategory.isMuted}} - {{category-link subcategory}} - {{/unless}} - {{/each}} - </div> - </td> - </tr> - {{/if}} + {{#if c.description_excerpt}} + <tr class="category-description"> + <td colspan="3"> + {{html-safe c.description_excerpt}} + </td> + </tr> + {{/if}} + {{#if showTopics}} + {{#each c.topics as |t|}} + {{mobile-category-topic topic=t}} + {{/each}} + {{/if}} + {{#if c.isGrandParent}} + {{#each c.subcategories as |subcategory|}} + <tr data-category-id={{c.id}} class='subcategory-list-item category' style={{border-color subcategory.color}}> + <td> + {{category-title-link tagName="h4" category=subcategory}} + <div class="subcategories-list"> + {{#if subcategory.subcategories}} + <div class='subcategories'> + {{#each subcategory.subcategories as |subsubcategory|}} + {{#unless subsubcategory.isMuted}} + {{category-link subsubcategory}} + {{/unless}} + {{/each}} + </div> + {{/if}} + </div> + </td> + </tr> + {{/each}} + {{else if c.subcategories}} + <tr class="subcategories-list"> + <td> + <div class='subcategories'> + {{#each c.subcategories as |subcategory|}} + {{#unless subcategory.isMuted}} + {{category-link subcategory}} + {{/unless}} + {{/each}} + </div> + </td> + </tr> + {{/if}} {{/unless}} </tbody> </table> <footer class="clearfix"> - <figure title={{i18n 'all_time_desc'}}>{{number c.topics_all_time}} <figcaption>{{i18n 'all_time'}}</figcaption></figure> - + <figure title={{i18n 'all_time_desc'}}> + {{number c.topics_all_time}} + <figcaption>{{i18n 'all_time'}}</figcaption> + </figure> {{#if c.pickMonth}} - <figure title={{i18n 'month_desc'}}>{{number c.topics_month}} <figcaption>/ {{i18n 'month'}}</figcaption></figure> + <figure title={{i18n 'month_desc'}}> + {{number c.topics_month}} + <figcaption>/ {{i18n 'month'}}</figcaption> + </figure> {{/if}} - {{#if c.pickWeek}} - <figure title={{i18n 'week_desc'}}>{{number c.topics_week}} <figcaption>/ {{i18n 'week'}}</figcaption></figure> + <figure title={{i18n 'week_desc'}}> + {{number c.topics_week}} + <figcaption>/ {{i18n 'week'}}</figcaption> + </figure> {{/if}} - </footer> </div> {{/each}} diff --git a/app/assets/javascripts/discourse/templates/mobile/group-index.hbs b/app/assets/javascripts/discourse/templates/mobile/group-index.hbs index e95a8cb20f5..7ec577917c9 100644 --- a/app/assets/javascripts/discourse/templates/mobile/group-index.hbs +++ b/app/assets/javascripts/discourse/templates/mobile/group-index.hbs @@ -1,60 +1,63 @@ <section class="user-content"> -{{text-field value=filterInput + {{text-field + value=filterInput placeholderKey=filterPlaceholder autocomplete="discourse" - class="group-username-filter no-blur"}} + class="group-username-filter no-blur" + }} -<div class="group-members-manage"> - {{#if canManageGroup}} - {{#if currentUser.admin}} - {{group-members-dropdown - showAddMembersModal=(route-action "showAddMembersModal") - showBulkAddModal=(route-action "showBulkAddModal") - }} - {{else}} - {{d-button + <div class="group-members-manage"> + {{#if canManageGroup}} + {{#if currentUser.admin}} + {{group-members-dropdown + showAddMembersModal=(route-action "showAddMembersModal") + showBulkAddModal=(route-action "showBulkAddModal") + }} + {{else}} + {{d-button icon="plus" label="groups.add_members.title" class="group-members-add" - action=(route-action "showAddMembersModal")}} + action=(route-action "showAddMembersModal") + }} + {{/if}} {{/if}} + </div> + + {{#if hasMembers}} + {{#load-more selector=".group-members .user-info" action=(action "loadMore")}} + <div class="group-members"> + {{#each model.members as |user|}} + <div class="group-member"> + {{#user-info user=user skipName=skipName}} + {{#if user.owner}}<strong class="group-owner-label">{{i18n "groups.owner"}}</strong>{{/if}} + + <div class="group-member-info"> + <label>{{i18n "last_post"}}</label> + <span class="text">{{bound-date user.last_posted_at}}</span> + </div> + + <div class="group-member-info"> + <label>{{i18n "last_seen"}}</label> + <span class="text">{{bound-date user.last_seen_at}}</span> + </div> + + {{#if canManageGroup}} + {{group-member-dropdown + member=user + onChange=(action "actOnGroup" user) + }} + {{/if}} + {{/user-info}} + </div> + {{/each}} + </div> + {{/load-more}} + + {{conditional-loading-spinner condition=loading}} + {{else}} + <br> + + <div>{{i18n "groups.empty.members"}}</div> {{/if}} -</div> - -{{#if hasMembers}} - {{#load-more selector=".group-members .user-info" action=(action "loadMore")}} - <div class="group-members"> - {{#each model.members as |user|}} - <div class="group-member"> - {{#user-info user=user skipName=skipName}} - {{#if user.owner}}<strong class="group-owner-label">{{i18n "groups.owner"}}</strong>{{/if}} - - <div class="group-member-info"> - <label>{{i18n "last_post"}}</label> - <span class="text">{{bound-date user.last_posted_at}}</span> - </div> - - <div class="group-member-info"> - <label>{{i18n "last_seen"}}</label> - <span class="text">{{bound-date user.last_seen_at}}</span> - </div> - - {{#if canManageGroup}} - {{group-member-dropdown - member=user - onChange=(action "actOnGroup" user) - }} - {{/if}} - {{/user-info}} - </div> - {{/each}} - </div> - {{/load-more}} - - {{conditional-loading-spinner condition=loading}} -{{else}} - <br> - - <div>{{i18n "groups.empty.members"}}</div> -{{/if}} </section> diff --git a/app/assets/javascripts/discourse/templates/modal/bookmark.hbs b/app/assets/javascripts/discourse/templates/modal/bookmark.hbs index 890a7dbdcc8..553705c7a58 100644 --- a/app/assets/javascripts/discourse/templates/modal/bookmark.hbs +++ b/app/assets/javascripts/discourse/templates/modal/bookmark.hbs @@ -1,11 +1,11 @@ {{#d-modal-body id="bookmark-reminder-modal"}} {{#conditional-loading-spinner condition=loading}} {{#if errorMessage}} - <div class="control-group"> - <div class="controls"> - <div class='alert alert-error'>{{errorMessage}}</div> + <div class="control-group"> + <div class="controls"> + <div class='alert alert-error'>{{errorMessage}}</div> + </div> </div> - </div> {{/if}} <div class="control-group"> @@ -13,83 +13,83 @@ </div> {{#if showBookmarkReminderControls}} - <div class="control-group"> - <label class="control-label" for="set_reminder"> - {{i18n 'post.bookmarks.set_reminder'}} - </label> + <div class="control-group"> + <label class="control-label" for="set_reminder"> + {{i18n 'post.bookmarks.set_reminder'}} + </label> - {{#if userHasTimezoneSet}} - {{#tap-tile-grid activeTile=selectedReminderType as |grid|}} - {{#if showAtDesktop}} - {{#tap-tile icon="desktop" tileId=reminderTypes.AT_DESKTOP activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.at_desktop"}}</div> - {{/tap-tile}} - {{/if}} + {{#if userHasTimezoneSet}} + {{#tap-tile-grid activeTile=selectedReminderType as |grid|}} + {{#if showAtDesktop}} + {{#tap-tile icon="desktop" tileId=reminderTypes.AT_DESKTOP activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.at_desktop"}}</div> + {{/tap-tile}} + {{/if}} - {{#if showLaterToday}} - {{#tap-tile icon="far-moon" tileId=reminderTypes.LATER_TODAY activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.later_today"}}</div> - <div class="tap-tile-date">{{laterTodayFormatted}}</div> + {{#if showLaterToday}} + {{#tap-tile icon="far-moon" tileId=reminderTypes.LATER_TODAY activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.later_today"}}</div> + <div class="tap-tile-date">{{laterTodayFormatted}}</div> + {{/tap-tile}} + {{/if}} + {{#tap-tile icon="far-sun" tileId=reminderTypes.TOMORROW activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.tomorrow"}}</div> + <div class="tap-tile-date">{{tomorrowFormatted}}</div> {{/tap-tile}} - {{/if}} - {{#tap-tile icon="far-sun" tileId=reminderTypes.TOMORROW activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.tomorrow"}}</div> - <div class="tap-tile-date">{{tomorrowFormatted}}</div> - {{/tap-tile}} - {{#if showLaterThisWeek}} - {{#tap-tile icon="angle-double-right" tileId=reminderTypes.LATER_THIS_WEEK activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.later_this_week"}}</div> - <div class="tap-tile-date">{{laterThisWeekFormatted}}</div> + {{#if showLaterThisWeek}} + {{#tap-tile icon="angle-double-right" tileId=reminderTypes.LATER_THIS_WEEK activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.later_this_week"}}</div> + <div class="tap-tile-date">{{laterThisWeekFormatted}}</div> + {{/tap-tile}} + {{/if}} + {{#tap-tile icon="briefcase" tileId=reminderTypes.START_OF_NEXT_BUSINESS_WEEK activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.start_of_next_business_week"}}</div> + <div class="tap-tile-date">{{startNextBusinessWeekFormatted}}</div> + {{/tap-tile}} + {{#tap-tile icon="far-clock" tileId=reminderTypes.NEXT_WEEK activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.next_week"}}</div> + <div class="tap-tile-date">{{nextWeekFormatted}}</div> + {{/tap-tile}} + {{#tap-tile icon="far-calendar-plus" tileId=reminderTypes.NEXT_MONTH activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.next_month"}}</div> + <div class="tap-tile-date">{{nextMonthFormatted}}</div> + {{/tap-tile}} + {{#tap-tile icon="calendar-alt" tileId=reminderTypes.CUSTOM activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.custom"}}</div> {{/tap-tile}} - {{/if}} - {{#tap-tile icon="briefcase" tileId=reminderTypes.START_OF_NEXT_BUSINESS_WEEK activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.start_of_next_business_week"}}</div> - <div class="tap-tile-date">{{startNextBusinessWeekFormatted}}</div> - {{/tap-tile}} - {{#tap-tile icon="far-clock" tileId=reminderTypes.NEXT_WEEK activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.next_week"}}</div> - <div class="tap-tile-date">{{nextWeekFormatted}}</div> - {{/tap-tile}} - {{#tap-tile icon="far-calendar-plus" tileId=reminderTypes.NEXT_MONTH activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.next_month"}}</div> - <div class="tap-tile-date">{{nextMonthFormatted}}</div> - {{/tap-tile}} - {{#tap-tile icon="calendar-alt" tileId=reminderTypes.CUSTOM activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.custom"}}</div> - {{/tap-tile}} - {{#if customDateTimeSelected}} - <div class="control-group custom-date-time-wrap"> - <div class="tap-tile-date-input"> - {{d-icon "calendar-alt"}} - {{date-picker-future - value=customReminderDate - onSelect=(action (mut customReminderDate)) - }} + {{#if customDateTimeSelected}} + <div class="control-group custom-date-time-wrap"> + <div class="tap-tile-date-input"> + {{d-icon "calendar-alt"}} + {{date-picker-future + value=customReminderDate + onSelect=(action (mut customReminderDate)) + }} + </div> + <div class="tap-tile-time-input"> + {{d-icon "far-clock"}} + {{input placeholder="--:--" type="time" class="time-input" value=customReminderTime}} + </div> </div> - <div class="tap-tile-time-input"> - {{d-icon "far-clock"}} - {{input placeholder="--:--" type="time" class="time-input" value=customReminderTime}} - </div> - </div> - {{/if}} + {{/if}} - {{#if showLastCustom}} - {{#tap-tile icon="undo" tileId=reminderTypes.LAST_CUSTOM activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.last_custom"}}</div> - <div class="tap-tile-date">{{lastCustomFormatted}}</div> + {{#if showLastCustom}} + {{#tap-tile icon="undo" tileId=reminderTypes.LAST_CUSTOM activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.last_custom"}}</div> + <div class="tap-tile-date">{{lastCustomFormatted}}</div> + {{/tap-tile}} + {{/if}} + + {{#tap-tile icon="ban" tileId=reminderTypes.NONE activeTile=grid.activeTile onChange=(action "selectReminderType")}} + <div class="tap-tile-title">{{i18n "bookmarks.reminders.none"}}</div> {{/tap-tile}} - {{/if}} + {{/tap-tile-grid}} - {{#tap-tile icon="ban" tileId=reminderTypes.NONE activeTile=grid.activeTile onChange=(action "selectReminderType")}} - <div class="tap-tile-title">{{i18n "bookmarks.reminders.none"}}</div> - {{/tap-tile}} - {{/tap-tile-grid}} - - {{else}} - <div class="alert alert-info">{{html-safe (i18n "bookmarks.no_timezone" basePath=basePath)}}</div> - {{/if}} - </div> + {{else}} + <div class="alert alert-info">{{html-safe (i18n "bookmarks.no_timezone" basePath=basePath)}}</div> + {{/if}} + </div> {{/if}} <div class="control-group"> diff --git a/app/assets/javascripts/discourse/templates/modal/create-account.hbs b/app/assets/javascripts/discourse/templates/modal/create-account.hbs index bd03f39f241..c5b493a8a1d 100644 --- a/app/assets/javascripts/discourse/templates/modal/create-account.hbs +++ b/app/assets/javascripts/discourse/templates/modal/create-account.hbs @@ -10,117 +10,123 @@ {{#if showCreateForm}} <div class="login-form"> <form> - <table> - <tbody> - <tr class="input create-account-email"> - <td class="label"><label for='new-account-email'>{{i18n 'user.email.title'}}</label></td> - <td> - {{input type="email" value=accountEmail id="new-account-email" disabled=emailValidated name="email" autofocus="autofocus"}} - </td> - </tr> - - <tr class="instructions create-account-email"> - <td></td> - {{input-tip validation=emailValidation id="account-email-validation"}} - <td><label>{{i18n 'user.email.instructions'}}</label></td> - </tr> - - {{#if usernameRequired}} - <tr class="input"> - <td class="label"><label for='new-account-username'>{{i18n 'user.username.title'}}</label></td> - <td> - {{input value=accountUsername id="new-account-username" name="username" maxlength=maxUsernameLength autocomplete="discourse"}} - </td> - </tr> - <tr class="instructions"> - <td></td> - {{input-tip validation=usernameValidation id="username-validation"}} - <td><label>{{i18n 'user.username.instructions'}}</label></td> - </tr> - {{/if}} - - {{#if fullnameRequired}} - <tr class="input"> - <td class="label"> - <label for='new-account-name'>{{i18n 'user.name.title'}}</label> - </td> + <table> + <tbody> + <tr class="input create-account-email"> + <td class="label"><label for='new-account-email'>{{i18n 'user.email.title'}}</label></td> <td> - {{text-field value=accountName id="new-account-name"}} + {{input type="email" value=accountEmail id="new-account-email" disabled=emailValidated name="email" autofocus="autofocus"}} </td> </tr> - <tr class="instructions"> + + <tr class="instructions create-account-email"> <td></td> - {{input-tip validation=nameValidation}} - <td><label>{{nameInstructions}}</label></td> + {{input-tip validation=emailValidation id="account-email-validation"}} + <td><label>{{i18n 'user.email.instructions'}}</label></td> </tr> - {{/if}} - {{plugin-outlet name="create-account-before-password" - noTags=true - args=(hash accountName=accountName - accountUsername=accountUsername - accountPassword=accountPassword - userFields=userFields - authOptions=authOptions)}} + {{#if usernameRequired}} + <tr class="input"> + <td class="label"><label for='new-account-username'>{{i18n 'user.username.title'}}</label></td> + <td> + {{input value=accountUsername id="new-account-username" name="username" maxlength=maxUsernameLength autocomplete="discourse"}} + </td> + </tr> + <tr class="instructions"> + <td></td> + {{input-tip validation=usernameValidation id="username-validation"}} + <td><label>{{i18n 'user.username.instructions'}}</label></td> + </tr> + {{/if}} - {{#if passwordRequired}} - <tr class="input"> + {{#if fullnameRequired}} + <tr class="input"> + <td class="label"> + <label for='new-account-name'>{{i18n 'user.name.title'}}</label> + </td> + <td> + {{text-field value=accountName id="new-account-name"}} + </td> + </tr> + <tr class="instructions"> + <td></td> + {{input-tip validation=nameValidation}} + <td><label>{{nameInstructions}}</label></td> + </tr> + {{/if}} + + {{plugin-outlet + name="create-account-before-password" + noTags=true + args=(hash + accountName=accountName + accountUsername=accountUsername + accountPassword=accountPassword + userFields=userFields + authOptions=authOptions + ) + }} + + {{#if passwordRequired}} + <tr class="input"> <td class="label"><label for='new-account-password'>{{i18n 'user.password.title'}}</label></td> <td> - {{password-field value=accountPassword type="password" id="new-account-password" capsLockOn=capsLockOn}} + {{password-field value=accountPassword type="password" id="new-account-password" capsLockOn=capsLockOn}} </td> - </tr> - <tr class="instructions"> - <td></td> - {{input-tip validation=passwordValidation}} + </tr> + <tr class="instructions"> + <td></td> + {{input-tip validation=passwordValidation}} + <td> + <label>{{passwordInstructions}}</label> + <div class="caps-lock-warning {{unless capsLockOn 'hidden'}}"> + {{d-icon "exclamation-triangle"}} {{i18n 'login.caps_lock_warning'}} + </div> + </td> + </tr> + {{/if}} + + <tr class="password-confirmation"> + <td><label for='new-account-password-confirmation'>{{i18n 'user.password_confirmation.title'}}</label></td> <td> - <label>{{passwordInstructions}}</label> - <div class="caps-lock-warning {{unless capsLockOn 'hidden'}}"> - {{d-icon "exclamation-triangle"}} {{i18n 'login.caps_lock_warning'}}</div> + {{honeypot-input id="new-account-confirmation" autocomplete="new-password" value=accountHoneypot}} + {{input value=accountChallenge id="new-account-challenge"}} </td> </tr> - {{/if}} - <tr class="password-confirmation"> - <td><label for='new-account-password-confirmation'>{{i18n 'user.password_confirmation.title'}}</label></td> - <td> - {{honeypot-input id="new-account-confirmation" autocomplete="new-password" value=accountHoneypot}} - {{input value=accountChallenge id="new-account-challenge"}} - </td> - </tr> + {{#if requireInviteCode }} + <tr class="invite-code"> + <td><label for='invite-code'>{{i18n 'user.invite_code.title'}}</label></td> + <td> + {{input value=inviteCode id="inviteCode"}} + </td> + <td><label>{{i18n 'user.invite_code.instructions'}}</label></td> + </tr> + {{/if}} - {{#if requireInviteCode }} - <tr class="invite-code"> - <td><label for='invite-code'>{{i18n 'user.invite_code.title'}}</label></td> - <td> - {{input value=inviteCode id="inviteCode"}} - </td> - - <td><label>{{i18n 'user.invite_code.instructions'}}</label></td> - </tr> - {{/if}} - - {{plugin-outlet name="create-account-after-password" - noTags=true - args=(hash accountName=accountName - accountUsername=accountUsername - accountPassword=accountPassword - userFields=userFields)}} - </tbody> - </table> - - {{#if userFields}} - <div class='user-fields'> - {{#each userFields as |f|}} - {{user-field field=f.field value=f.value}} - {{/each}} - </div> - {{/if}} + {{plugin-outlet + name="create-account-after-password" + noTags=true + args=(hash + accountName=accountName + accountUsername=accountUsername + accountPassword=accountPassword + userFields=userFields + ) + }} + </tbody> + </table> + {{#if userFields}} + <div class='user-fields'> + {{#each userFields as |f|}} + {{user-field field=f.field value=f.value}} + {{/each}} + </div> + {{/if}} </form> </div> {{/if}} - {{/d-modal-body}} {{#if showCreateForm}} @@ -129,7 +135,8 @@ class="btn-large btn-primary" action=(action "createAccount") disabled=submitDisabled - label="create_account.title"}} + label="create_account.title" + }} {{#conditional-loading-spinner condition=formSubmitted size="small"}} {{#d-button class="btn-large" id="login-link" action=(route-action "showLogin")}} @@ -137,11 +144,10 @@ {{/d-button}} {{/conditional-loading-spinner}} - <div class='disclaimer'>{{html-safe disclaimerHtml}}</div> + <div class='disclaimer'>{{html-safe disclaimerHtml}}</div> </div> {{plugin-outlet name="create-account-after-modal-footer" tagName=""}} - {{/if}} {{/unless}} {{/create-account}} diff --git a/app/assets/javascripts/discourse/templates/modal/flag.hbs b/app/assets/javascripts/discourse/templates/modal/flag.hbs index 056f2bc9a3f..4a37ee0337c 100644 --- a/app/assets/javascripts/discourse/templates/modal/flag.hbs +++ b/app/assets/javascripts/discourse/templates/modal/flag.hbs @@ -1,14 +1,16 @@ {{#d-modal-body class="flag-modal-body" title=title}} <form> {{#flag-selection nameKey=selected.name_key flags=flagsAvailable as |f|}} - {{flag-action-type flag=f - message=message - isWarning=isWarning - selectedFlag=selected - username=model.username - staffFlagsAvailable=staffFlagsAvailable - changePostActionType=(action "changePostActionType")}} - {{/flag-selection}} + {{flag-action-type + flag=f + message=message + isWarning=isWarning + selectedFlag=selected + username=model.username + staffFlagsAvailable=staffFlagsAvailable + changePostActionType=(action "changePostActionType") + }} + {{/flag-selection}} </form> {{/d-modal-body}} @@ -19,7 +21,8 @@ disabled=submitDisabled title="flagging.submit_tooltip" icon=submitIcon - label=submitLabel}} + label=submitLabel + }} {{#if canSendWarning}} {{d-button @@ -27,7 +30,8 @@ action=(action "createFlagAsWarning") disabled=submitDisabled icon="exclamation-triangle" - label="flagging.official_warning"}} + label="flagging.official_warning" + }} {{/if}} {{#if canTakeAction}} @@ -37,7 +41,8 @@ disabled=submitDisabled title="flagging.take_action_tooltip" icon="gavel" - label="flagging.take_action"}} + label="flagging.take_action" + }} {{/if}} {{#if showDeleteSpammer}} @@ -46,6 +51,7 @@ action=(action "deleteSpammer") disabled=submitDisabled icon="exclamation-triangle" - label="flagging.delete_spammer"}} + label="flagging.delete_spammer" + }} {{/if}} </div> diff --git a/app/assets/javascripts/discourse/templates/modal/insert-hyperlink.hbs b/app/assets/javascripts/discourse/templates/modal/insert-hyperlink.hbs index 4f3149b7b6c..331b08587e6 100644 --- a/app/assets/javascripts/discourse/templates/modal/insert-hyperlink.hbs +++ b/app/assets/javascripts/discourse/templates/modal/insert-hyperlink.hbs @@ -1,40 +1,40 @@ <form {{action "ok" on="submit"}}> {{#d-modal-body title="composer.link_dialog_title" class="insert-link"}} - <div class="inputs"> - {{text-field - value=linkUrl - placeholderKey="composer.link_url_placeholder" - class="link-url" - key-up=(action "search") - }} - {{#if searchLoading}} - {{loading-spinner}} - {{/if}} - {{#if searchResults}} - <div class="internal-link-results"> - {{#each searchResults as |result|}} - <a - class="search-link" - href={{result.url}} - onclick={{action "linkClick"}} - data-title={{result.title}}> - {{topic-status topic=result disableActions=true}} - {{replace-emoji result.fancy_title}} - <div class="search-category"> - {{#if result.category.parentCategory}} - {{category-link result.category.parentCategory}} - {{/if}} - {{category-link result.category hideParent=true}} - {{discourse-tags result}} - </div> - </a> - {{/each}} - </div> - {{/if}} - </div> - <div class="inputs"> - {{text-field value=linkText placeholderKey="composer.link_optional_text" class="link-text"}} - </div> + <div class="inputs"> + {{text-field + value=linkUrl + placeholderKey="composer.link_url_placeholder" + class="link-url" + key-up=(action "search") + }} + {{#if searchLoading}} + {{loading-spinner}} + {{/if}} + {{#if searchResults}} + <div class="internal-link-results"> + {{#each searchResults as |result|}} + <a + class="search-link" + href={{result.url}} + onclick={{action "linkClick"}} + data-title={{result.title}}> + {{topic-status topic=result disableActions=true}} + {{replace-emoji result.fancy_title}} + <div class="search-category"> + {{#if result.category.parentCategory}} + {{category-link result.category.parentCategory}} + {{/if}} + {{category-link result.category hideParent=true}} + {{discourse-tags result}} + </div> + </a> + {{/each}} + </div> + {{/if}} + </div> + <div class="inputs"> + {{text-field value=linkText placeholderKey="composer.link_optional_text" class="link-text"}} + </div> {{/d-modal-body}} <div class="modal-footer"> diff --git a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs index 43f550d15e5..f2d6b022e9e 100644 --- a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs +++ b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs @@ -56,21 +56,21 @@ </ul> </section> {{#if showBookmarkShortcuts}} - <section class="keyboard-shortcuts-bookmark-section"> - <h4>{{i18n "keyboard_shortcuts_help.bookmarks.title"}}</h4> - <ul> - <li>{{html-safe shortcuts.bookmarks.enter}}</li> - <li>{{html-safe shortcuts.bookmarks.later_today}}</li> - <li>{{html-safe shortcuts.bookmarks.later_this_week}}</li> - <li>{{html-safe shortcuts.bookmarks.tomorrow}}</li> - <li>{{html-safe shortcuts.bookmarks.next_week}}</li> - <li>{{html-safe shortcuts.bookmarks.next_month}}</li> - <li>{{html-safe shortcuts.bookmarks.next_business_week}}</li> - <li>{{html-safe shortcuts.bookmarks.next_business_day}}</li> - <li>{{html-safe shortcuts.bookmarks.custom}}</li> - <li>{{html-safe shortcuts.bookmarks.none}}</li> - </ul> - </section> + <section class="keyboard-shortcuts-bookmark-section"> + <h4>{{i18n "keyboard_shortcuts_help.bookmarks.title"}}</h4> + <ul> + <li>{{html-safe shortcuts.bookmarks.enter}}</li> + <li>{{html-safe shortcuts.bookmarks.later_today}}</li> + <li>{{html-safe shortcuts.bookmarks.later_this_week}}</li> + <li>{{html-safe shortcuts.bookmarks.tomorrow}}</li> + <li>{{html-safe shortcuts.bookmarks.next_week}}</li> + <li>{{html-safe shortcuts.bookmarks.next_month}}</li> + <li>{{html-safe shortcuts.bookmarks.next_business_week}}</li> + <li>{{html-safe shortcuts.bookmarks.next_business_day}}</li> + <li>{{html-safe shortcuts.bookmarks.custom}}</li> + <li>{{html-safe shortcuts.bookmarks.none}}</li> + </ul> + </section> {{/if}} </div> <div class="column"> diff --git a/app/assets/javascripts/discourse/templates/modal/reorder-categories.hbs b/app/assets/javascripts/discourse/templates/modal/reorder-categories.hbs index 9461b5d3c4d..df4dd14513b 100644 --- a/app/assets/javascripts/discourse/templates/modal/reorder-categories.hbs +++ b/app/assets/javascripts/discourse/templates/modal/reorder-categories.hbs @@ -2,25 +2,25 @@ <div id="rc-scroll-anchor"></div> <table> <thead> - <th class="th-cat">{{i18n "categories.category"}}</th> - <th class="th-pos">{{i18n "categories.reorder.position"}}</th> + <th class="th-cat">{{i18n "categories.category"}}</th> + <th class="th-pos">{{i18n "categories.reorder.position"}}</th> </thead> <tbody> - {{#each categoriesOrdered as |cat|}} - <tr data-category-id={{cat.id}}> - <td> - <div class={{concat 'reorder-categories-depth-' cat.depth}}> - {{category-badge cat allowUncategorized="true"}} - </div> - </td> + {{#each categoriesOrdered as |cat|}} + <tr data-category-id={{cat.id}}> + <td> + <div class={{concat 'reorder-categories-depth-' cat.depth}}> + {{category-badge cat allowUncategorized="true"}} + </div> + </td> - <td> - {{number-field number=(readonly cat.position) change=(action 'change' cat)}} - {{d-button class="btn-default no-text" action=(action "moveUp") actionParam=cat icon="arrow-up"}} - {{d-button class="btn-default no-text" action=(action "moveDown") actionParam=cat icon="arrow-down"}} - </td> - </tr> - {{/each}} + <td> + {{number-field number=(readonly cat.position) change=(action 'change' cat)}} + {{d-button class="btn-default no-text" action=(action "moveUp") actionParam=cat icon="arrow-up"}} + {{d-button class="btn-default no-text" action=(action "moveDown") actionParam=cat icon="arrow-down"}} + </td> + </tr> + {{/each}} </tbody> </table> <div id="rc-scroll-bottom"></div> diff --git a/app/assets/javascripts/discourse/templates/modal/second-factor-add-totp.hbs b/app/assets/javascripts/discourse/templates/modal/second-factor-add-totp.hbs index dd378355543..c993a811a20 100644 --- a/app/assets/javascripts/discourse/templates/modal/second-factor-add-totp.hbs +++ b/app/assets/javascripts/discourse/templates/modal/second-factor-add-totp.hbs @@ -1,11 +1,11 @@ {{#d-modal-body}} {{#conditional-loading-spinner condition=loading}} {{#if errorMessage}} - <div class="control-group"> - <div class="controls"> - <div class='alert alert-error'>{{errorMessage}}</div> + <div class="control-group"> + <div class="controls"> + <div class='alert alert-error'>{{errorMessage}}</div> + </div> </div> - </div> {{/if}} <div class="control-group"> diff --git a/app/assets/javascripts/discourse/templates/modal/second-factor-backup-edit.hbs b/app/assets/javascripts/discourse/templates/modal/second-factor-backup-edit.hbs index e9988b486ff..8a9e433672f 100644 --- a/app/assets/javascripts/discourse/templates/modal/second-factor-backup-edit.hbs +++ b/app/assets/javascripts/discourse/templates/modal/second-factor-backup-edit.hbs @@ -1,51 +1,51 @@ {{#d-modal-body}} -<section class="user-preferences solo-preference second-factor-backup-preferences"> - <form class="form-horizontal"> - {{#if successMessage}} - <div class="alert alert-success"> - {{successMessage}} - </div> - {{/if}} + <section class="user-preferences solo-preference second-factor-backup-preferences"> + <form class="form-horizontal"> + {{#if successMessage}} + <div class="alert alert-success"> + {{successMessage}} + </div> + {{/if}} - {{#if errorMessage}} - <div class="alert alert-error"> - {{errorMessage}} - </div> - {{/if}} + {{#if errorMessage}} + <div class="alert alert-error"> + {{errorMessage}} + </div> + {{/if}} - {{#if backupEnabled}} - {{html-safe (i18n "user.second_factor_backup.remaining_codes" count=remainingCodes)}} - {{/if}} - - <div class="actions"> - {{d-button - class="btn-primary" - action=(action "generateSecondFactorCodes") - type="submit" - disabled=loading - label=generateBackupCodeBtnLabel}} {{#if backupEnabled}} + {{html-safe (i18n "user.second_factor_backup.remaining_codes" count=remainingCodes)}} + {{/if}} + + <div class="actions"> {{d-button - class="btn-danger" - action=(action "disableSecondFactorBackup") + class="btn-primary" + action=(action "generateSecondFactorCodes") + type="submit" disabled=loading - label="user.second_factor_backup.disable"}} - {{/if}} - </div> + label=generateBackupCodeBtnLabel}} + {{#if backupEnabled}} + {{d-button + class="btn-danger" + action=(action "disableSecondFactorBackup") + disabled=loading + label="user.second_factor_backup.disable"}} + {{/if}} + </div> - {{#conditional-loading-section isLoading=loading}} - {{#if backupCodes}} - <h3>{{i18n "user.second_factor_backup.codes.title"}}</h3> + {{#conditional-loading-section isLoading=loading}} + {{#if backupCodes}} + <h3>{{i18n "user.second_factor_backup.codes.title"}}</h3> - <p> - {{i18n "user.second_factor_backup.codes.description"}} - </p> + <p> + {{i18n "user.second_factor_backup.codes.description"}} + </p> - {{backup-codes - copyBackupCode=(action "copyBackupCode") - backupCodes=backupCodes}} - {{/if}} - {{/conditional-loading-section}} - </form> -</section> + {{backup-codes + copyBackupCode=(action "copyBackupCode") + backupCodes=backupCodes}} + {{/if}} + {{/conditional-loading-section}} + </form> + </section> {{/d-modal-body}} diff --git a/app/assets/javascripts/discourse/templates/modal/second-factor-edit-security-key.hbs b/app/assets/javascripts/discourse/templates/modal/second-factor-edit-security-key.hbs index 7de9e5a2ada..b7e9bb651dd 100644 --- a/app/assets/javascripts/discourse/templates/modal/second-factor-edit-security-key.hbs +++ b/app/assets/javascripts/discourse/templates/modal/second-factor-edit-security-key.hbs @@ -1,15 +1,18 @@ {{#d-modal-body}} <div class="form-horizontal"> - {{input type="text" value=model.name}} + {{input type="text" value=model.name}} </div> <div class='second-factor instructions'> {{i18n 'user.second_factor.security_key.edit_description'}} </div> - {{d-button action=(action "editSecurityKey") + {{d-button + action=(action "editSecurityKey") class="btn-primary" - label="user.second_factor.security_key.edit"}} - - {{d-button action=(action "disableSecurityKey") + label="user.second_factor.security_key.edit" + }} + {{d-button + action=(action "disableSecurityKey") class="btn-danger" - label="user.second_factor.security_key.delete"}} + label="user.second_factor.security_key.delete" + }} {{/d-modal-body}} diff --git a/app/assets/javascripts/discourse/templates/modal/second-factor-edit.hbs b/app/assets/javascripts/discourse/templates/modal/second-factor-edit.hbs index 48a4670230f..4155ce69f6e 100644 --- a/app/assets/javascripts/discourse/templates/modal/second-factor-edit.hbs +++ b/app/assets/javascripts/discourse/templates/modal/second-factor-edit.hbs @@ -1,15 +1,18 @@ {{#d-modal-body}} <div class="form-horizontal"> - {{input type="text" value=model.name}} + {{input type="text" value=model.name}} </div> <div class='second-factor instructions'> {{i18n 'user.second_factor.edit_description'}} </div> - {{d-button action=(action "editSecondFactor") + {{d-button + action=(action "editSecondFactor") class="btn-primary" - label="user.second_factor.edit"}} - - {{d-button action=(action "disableSecondFactor") + label="user.second_factor.edit" + }} + {{d-button + action=(action "disableSecondFactor") class="btn-danger" - label="user.second_factor.disable"}} + label="user.second_factor.disable" + }} {{/d-modal-body}} diff --git a/app/assets/javascripts/discourse/templates/password-reset.hbs b/app/assets/javascripts/discourse/templates/password-reset.hbs index f641f8b0e04..0d3e5b8818c 100644 --- a/app/assets/javascripts/discourse/templates/password-reset.hbs +++ b/app/assets/javascripts/discourse/templates/password-reset.hbs @@ -53,7 +53,8 @@ <div class="instructions"> <div class="caps-lock-warning {{unless capsLockOn 'invisible'}}"> - {{d-icon "exclamation-triangle"}} {{i18n 'login.caps_lock_warning'}}</div> + {{d-icon "exclamation-triangle"}} {{i18n 'login.caps_lock_warning'}} + </div> </div> {{d-button action=(action "submit") class='btn-primary' label='user.change_password.set_password' type='submit'}} diff --git a/app/assets/javascripts/discourse/templates/preferences-second-factor.hbs b/app/assets/javascripts/discourse/templates/preferences-second-factor.hbs index e146d073caa..0d3d8f48c83 100644 --- a/app/assets/javascripts/discourse/templates/preferences-second-factor.hbs +++ b/app/assets/javascripts/discourse/templates/preferences-second-factor.hbs @@ -1,162 +1,161 @@ <section class='user-preferences solo-preference second-factor'> {{#conditional-loading-spinner condition=loading}} - <form class="form-horizontal"> - - {{#if showEnforcedNotice}} - <div class="control-group"> - <div class="controls"> - <div class='alert alert-error'>{{i18n 'user.second_factor.enforced_notice'}}</div> - </div> - </div> - {{/if}} - - {{#if displayOAuthWarning}} - <div class="control-group"> - <div class="controls"> - {{i18n 'user.second_factor.oauth_enabled_warning'}} - </div> - </div> - {{/if}} - - {{#if errorMessage}} - <div class="control-group"> - <div class="controls"> - <div class='alert alert-error'>{{errorMessage}}</div> - </div> - </div> - {{/if}} - - {{#if loaded}} - <div class="control-group totp"> - <div class="controls"> - <h2>{{i18n "user.second_factor.totp.title"}}</h2> - {{d-button action=(action "createTotp") - class="btn-primary new-totp" - disabled=loading - label="user.second_factor.totp.add"}} - {{#each totps as |totp|}} - <div class="second-factor-item"> - {{#if totp.name}} - {{totp.name}} - {{else}} - {{i18n "user.second_factor.totp.default_name"}} - {{/if}} - - {{#if isCurrentUser}} - {{d-button action=(action "editSecondFactor" totp) - class="btn-default btn-small btn-icon pad-left no-text edit" - disabled=loading - icon="pencil-alt" - }} - {{/if}} - </div> - {{/each}} - </div> - </div> - - <div class="control-group security-key"> - <div class="controls"> - <h2>{{i18n "user.second_factor.security_key.title"}}</h2> - {{d-button action=(action "createSecurityKey") - class="btn-primary new-security-key" - disabled=loading - label="user.second_factor.security_key.add"}} - {{#each security_keys as |security_key|}} - <div class="second-factor-item"> - {{#if security_key.name}} - {{security_key.name}} - {{else}} - {{i18n "user.second_factor.security_key.default_name"}} - {{/if}} - - {{#if isCurrentUser}} - {{d-button action=(action "editSecurityKey" security_key) - class="btn-default btn-small btn-icon pad-left no-text edit" - disabled=loading - icon="pencil-alt" - }} - {{/if}} - </div> - {{/each}} - </div> - </div> - - <div class="control-group pref-second-factor-backup"> - <div class="controls pref-second-factor-backup"> - <h2>{{i18n "user.second_factor_backup.title"}}</h2> - {{#if model.second_factor_enabled}} - {{#if model.second_factor_backup_enabled}} - {{html-safe (i18n 'user.second_factor_backup.manage' count=model.second_factor_remaining_backup_codes)}} - {{else}} - {{i18n 'user.second_factor_backup.enable_long'}} - {{/if}} - - {{#if isCurrentUser}} - {{d-button action=(action "editSecondFactorBackup") - class="btn-default btn-small btn-icon pad-left no-text edit edit-2fa-backup" - disabled=loading - icon="pencil-alt" - }} - {{/if}} - {{else}} - {{i18n "user.second_factor_backup.enable_prerequisites"}} - {{/if}} - </div> - </div> - - {{#if model.second_factor_enabled}} - {{#unless showEnforcedNotice}} - <div class="control-group"> - <div class="controls"> - <h2>{{i18n "user.second_factor.disable_title"}}</h2> - {{d-button - class="btn-danger" - action=(action "disableAllSecondFactors") - disabled=loading - label="disable"}} - </div> + <form class="form-horizontal"> + {{#if showEnforcedNotice}} + <div class="control-group"> + <div class="controls"> + <div class='alert alert-error'>{{i18n 'user.second_factor.enforced_notice'}}</div> </div> - {{/unless}} + </div> {{/if}} - {{else}} - <div class="control-group"> - <label class='control-label'>{{i18n 'user.password.title'}}</label> - <div class="controls"> - <div> - {{text-field value=password - id="password" - type="password" - classNames="input-large" - autofocus="autofocus"}} - </div> - <div class='instructions'> - {{i18n 'user.second_factor.confirm_password_description'}} + {{#if displayOAuthWarning}} + <div class="control-group"> + <div class="controls"> + {{i18n 'user.second_factor.oauth_enabled_warning'}} </div> </div> - </div> + {{/if}} - <div class="control-group"> - <div class="controls"> - {{d-button - class="btn-primary" - type="submit" - action=(action "confirmPassword") - disabled=loading - label="continue"}} + {{#if errorMessage}} + <div class="control-group"> + <div class="controls"> + <div class='alert alert-error'>{{errorMessage}}</div> + </div> + </div> + {{/if}} + {{#if loaded}} + <div class="control-group totp"> + <div class="controls"> + <h2>{{i18n "user.second_factor.totp.title"}}</h2> + {{d-button action=(action "createTotp") + class="btn-primary new-totp" + disabled=loading + label="user.second_factor.totp.add"}} + {{#each totps as |totp|}} + <div class="second-factor-item"> + {{#if totp.name}} + {{totp.name}} + {{else}} + {{i18n "user.second_factor.totp.default_name"}} + {{/if}} + + {{#if isCurrentUser}} + {{d-button action=(action "editSecondFactor" totp) + class="btn-default btn-small btn-icon pad-left no-text edit" + disabled=loading + icon="pencil-alt" + }} + {{/if}} + </div> + {{/each}} + </div> + </div> + + <div class="control-group security-key"> + <div class="controls"> + <h2>{{i18n "user.second_factor.security_key.title"}}</h2> + {{d-button action=(action "createSecurityKey") + class="btn-primary new-security-key" + disabled=loading + label="user.second_factor.security_key.add"}} + {{#each security_keys as |security_key|}} + <div class="second-factor-item"> + {{#if security_key.name}} + {{security_key.name}} + {{else}} + {{i18n "user.second_factor.security_key.default_name"}} + {{/if}} + + {{#if isCurrentUser}} + {{d-button action=(action "editSecurityKey" security_key) + class="btn-default btn-small btn-icon pad-left no-text edit" + disabled=loading + icon="pencil-alt" + }} + {{/if}} + </div> + {{/each}} + </div> + </div> + + <div class="control-group pref-second-factor-backup"> + <div class="controls pref-second-factor-backup"> + <h2>{{i18n "user.second_factor_backup.title"}}</h2> + {{#if model.second_factor_enabled}} + {{#if model.second_factor_backup_enabled}} + {{html-safe (i18n 'user.second_factor_backup.manage' count=model.second_factor_remaining_backup_codes)}} + {{else}} + {{i18n 'user.second_factor_backup.enable_long'}} + {{/if}} + + {{#if isCurrentUser}} + {{d-button action=(action "editSecondFactorBackup") + class="btn-default btn-small btn-icon pad-left no-text edit edit-2fa-backup" + disabled=loading + icon="pencil-alt" + }} + {{/if}} + {{else}} + {{i18n "user.second_factor_backup.enable_prerequisites"}} + {{/if}} + </div> + </div> + + {{#if model.second_factor_enabled}} {{#unless showEnforcedNotice}} - {{cancel-link route="preferences.account" args=model.username}} + <div class="control-group"> + <div class="controls"> + <h2>{{i18n "user.second_factor.disable_title"}}</h2> + {{d-button + class="btn-danger" + action=(action "disableAllSecondFactors") + disabled=loading + label="disable"}} + </div> + </div> {{/unless}} + {{/if}} + {{else}} + <div class="control-group"> + <label class='control-label'>{{i18n 'user.password.title'}}</label> + + <div class="controls"> + <div> + {{text-field value=password + id="password" + type="password" + classNames="input-large" + autofocus="autofocus"}} + </div> + <div class='instructions'> + {{i18n 'user.second_factor.confirm_password_description'}} + </div> + </div> </div> - <div class="controls" style="margin-top: 5px"> - {{resetPasswordProgress}} - {{#unless resetPasswordLoading}} - <a href class="instructions" {{action "resetPassword"}}>{{ i18n 'user.second_factor.forgot_password' }}</a> - {{/unless}} + + <div class="control-group"> + <div class="controls"> + {{d-button + class="btn-primary" + type="submit" + action=(action "confirmPassword") + disabled=loading + label="continue"}} + + {{#unless showEnforcedNotice}} + {{cancel-link route="preferences.account" args=model.username}} + {{/unless}} + </div> + <div class="controls" style="margin-top: 5px"> + {{resetPasswordProgress}} + {{#unless resetPasswordLoading}} + <a href class="instructions" {{action "resetPassword"}}>{{ i18n 'user.second_factor.forgot_password' }}</a> + {{/unless}} + </div> </div> - </div> - {{/if}} - </form> + {{/if}} + </form> {{/conditional-loading-spinner}} </section> diff --git a/app/assets/javascripts/discourse/templates/preferences/account.hbs b/app/assets/javascripts/discourse/templates/preferences/account.hbs index 40802f66df3..9c1483e50e8 100644 --- a/app/assets/javascripts/discourse/templates/preferences/account.hbs +++ b/app/assets/javascripts/discourse/templates/preferences/account.hbs @@ -4,7 +4,8 @@ <span class='static'>{{model.username}}</span> {{#if model.can_edit_username}} {{#link-to "preferences.username" class="btn btn-default btn-small btn-icon pad-left no-text"}} - {{d-icon "pencil-alt"}} {{/link-to}} + {{d-icon "pencil-alt"}} + {{/link-to}} {{/if}} </div> {{#if siteSettings.enable_mentions}} @@ -66,37 +67,37 @@ {{/if}} {{#if canChangePassword}} -<div class="control-group pref-password"> - <label class="control-label">{{i18n 'user.password.title'}}</label> - <div class="controls"> - <a href {{action "changePassword"}} class='btn btn-default'> - {{d-icon "envelope"}} - {{#if model.no_password}} - {{i18n 'user.change_password.set_password'}} - {{else}} - {{i18n 'user.change_password.action'}} - {{/if}} - </a> + <div class="control-group pref-password"> + <label class="control-label">{{i18n 'user.password.title'}}</label> + <div class="controls"> + <a href {{action "changePassword"}} class='btn btn-default'> + {{d-icon "envelope"}} + {{#if model.no_password}} + {{i18n 'user.change_password.set_password'}} + {{else}} + {{i18n 'user.change_password.action'}} + {{/if}} + </a> - {{passwordProgress}} + {{passwordProgress}} + </div> </div> -</div> -<div class="control-group pref-second-factor"> - <label class="control-label">{{i18n 'user.second_factor.title'}}</label> - {{#unless model.second_factor_enabled}} - <label> + <div class="control-group pref-second-factor"> + <label class="control-label">{{i18n 'user.second_factor.title'}}</label> + {{#unless model.second_factor_enabled}} + <label> {{i18n 'user.second_factor.short_description'}} - </label> - {{/unless}} - <div class="controls pref-second-factor"> - {{#if isCurrentUser}} - {{#link-to "preferences.second-factor" class="btn btn-default"}} - {{d-icon "lock"}} <span>{{i18n 'user.second_factor.enable'}}</span> - {{/link-to}} - {{/if}} + </label> + {{/unless}} + <div class="controls pref-second-factor"> + {{#if isCurrentUser}} + {{#link-to "preferences.second-factor" class="btn btn-default"}} + {{d-icon "lock"}} <span>{{i18n 'user.second_factor.enable'}}</span> + {{/link-to}} + {{/if}} + </div> </div> -</div> {{/if}} {{#if canUpdateAssociatedAccounts}} @@ -109,23 +110,23 @@ {{#if authProvider.account}} <tr class="{{dasherize authProvider.method.name}} account-connected"> <td>{{authProvider.method.prettyName}}</td> - <td>{{authProvider.account.description}}</td> - <td> - {{#if authProvider.method.can_revoke}} - {{d-button action=(action "revokeAccount") actionParam=authProvider.account title="user.associated_accounts.revoke" class="btn-danger no-text" icon="trash-alt" disabled=(get revoking authProvider.method.name) }} - {{/if}} - </td> + <td>{{authProvider.account.description}}</td> + <td> + {{#if authProvider.method.can_revoke}} + {{d-button action=(action "revokeAccount") actionParam=authProvider.account title="user.associated_accounts.revoke" class="btn-danger no-text" icon="trash-alt" disabled=(get revoking authProvider.method.name) }} + {{/if}} + </td> </tr> {{else}} <tr class={{dasherize authProvider.method.name}}> <td>{{authProvider.method.prettyName}}</td> - <td colspan="2"> - {{#if authProvider.method.can_connect}} - {{d-button action=(action "connectAccount") actionParam=authProvider.method label="user.associated_accounts.connect" class="btn-default" icon="plug" disabled=disableConnectButtons}} - {{else}} - {{i18n 'user.associated_accounts.not_connected'}} - {{/if}} - </td> + <td colspan="2"> + {{#if authProvider.method.can_connect}} + {{d-button action=(action "connectAccount") actionParam=authProvider.method label="user.associated_accounts.connect" class="btn-default" icon="plug" disabled=disableConnectButtons}} + {{else}} + {{i18n 'user.associated_accounts.not_connected'}} + {{/if}} + </td> </tr> {{/if}} {{/each}} diff --git a/app/assets/javascripts/discourse/templates/preferences/apps.hbs b/app/assets/javascripts/discourse/templates/preferences/apps.hbs index 2add47b39ce..bb9216086c1 100644 --- a/app/assets/javascripts/discourse/templates/preferences/apps.hbs +++ b/app/assets/javascripts/discourse/templates/preferences/apps.hbs @@ -1,28 +1,28 @@ {{#if model.userApiKeys}} -<div class="control-group apps"> - <label class="control-label">{{i18n 'user.apps'}}</label> - <div class="controls"> - {{#each model.userApiKeys as |key|}} - <div> - <span>{{key.application_name}}</span> - {{#if key.revoked}} - {{d-button action=(route-action "undoRevokeApiKey") actionParam=key class="btn" label="user.undo_revoke_access"}} - {{else}} - {{d-button action=(route-action "revokeApiKey") actionParam=key class="btn" label="user.revoke_access"}} - {{/if}} - <p> - <ul> - {{#each key.scopes as |scope|}} - <li>{{scope}}</li> - {{/each}} - </ul> - </p> - <p><span>{{i18n "user.api_approved"}}</span> {{bound-date key.created_at}}</p> - <p><span>{{i18n "user.api_last_used_at"}}</span> {{bound-date key.last_used_at}}</p> + <div class="control-group apps"> + <label class="control-label">{{i18n 'user.apps'}}</label> + <div class="controls"> + {{#each model.userApiKeys as |key|}} + <div> + <span>{{key.application_name}}</span> + {{#if key.revoked}} + {{d-button action=(route-action "undoRevokeApiKey") actionParam=key class="btn" label="user.undo_revoke_access"}} + {{else}} + {{d-button action=(route-action "revokeApiKey") actionParam=key class="btn" label="user.revoke_access"}} + {{/if}} + <p> + <ul> + {{#each key.scopes as |scope|}} + <li>{{scope}}</li> + {{/each}} + </ul> + </p> + <p><span>{{i18n "user.api_approved"}}</span> {{bound-date key.created_at}}</p> + <p><span>{{i18n "user.api_last_used_at"}}</span> {{bound-date key.last_used_at}}</p> + </div> + {{/each}} </div> - {{/each}} </div> -</div> {{/if}} {{plugin-outlet name="user-preferences-apps" args=(hash model=model)}} diff --git a/app/assets/javascripts/discourse/templates/preferences/emails.hbs b/app/assets/javascripts/discourse/templates/preferences/emails.hbs index 5e54c3af931..367ea59b0df 100644 --- a/app/assets/javascripts/discourse/templates/preferences/emails.hbs +++ b/app/assets/javascripts/discourse/templates/preferences/emails.hbs @@ -1,7 +1,7 @@ {{#unless siteSettings.disable_mailing_list_mode}} {{~#if model.user_option.mailing_list_mode}} <div class="warning-wrap"> - <div class="warning">{{i18n 'user.mailing_list_mode.warning'}}</div> + <div class="warning">{{i18n 'user.mailing_list_mode.warning'}}</div> </div> {{/if}} {{/unless}} diff --git a/app/assets/javascripts/discourse/templates/preferences/interface.hbs b/app/assets/javascripts/discourse/templates/preferences/interface.hbs index acd5aa60bb6..63b96865b2c 100644 --- a/app/assets/javascripts/discourse/templates/preferences/interface.hbs +++ b/app/assets/javascripts/discourse/templates/preferences/interface.hbs @@ -1,19 +1,19 @@ {{#if showThemeSelector}} -<div class="control-group theme"> - <label class="control-label">{{i18n 'user.theme'}}</label> - <div class="controls"> - {{combo-box - content=userSelectableThemes - value=themeId - onChange=(action (mut themeId)) - }} - </div> - {{#if showThemeSetDefault}} + <div class="control-group theme"> + <label class="control-label">{{i18n 'user.theme'}}</label> <div class="controls"> - {{preference-checkbox labelKey="user.theme_default_on_all_devices" checked=makeThemeDefault}} + {{combo-box + content=userSelectableThemes + value=themeId + onChange=(action (mut themeId)) + }} </div> - {{/if}} -</div> + {{#if showThemeSetDefault}} + <div class="controls"> + {{preference-checkbox labelKey="user.theme_default_on_all_devices" checked=makeThemeDefault}} + </div> + {{/if}} + </div> {{/if}} <div class="control-group text-size"> diff --git a/app/assets/javascripts/discourse/templates/preferences/notifications.hbs b/app/assets/javascripts/discourse/templates/preferences/notifications.hbs index f3c1b00f527..a676f29787f 100644 --- a/app/assets/javascripts/discourse/templates/preferences/notifications.hbs +++ b/app/assets/javascripts/discourse/templates/preferences/notifications.hbs @@ -1,5 +1,5 @@ <div class="control-group notifications"> - <label class="control-label">{{i18n 'user.notifications'}}</label> + <label class="control-label">{{i18n 'user.notifications'}}</label> <div class="controls controls-dropdown"> <label>{{i18n 'user.new_topic_duration.label'}}</label> diff --git a/app/assets/javascripts/discourse/templates/preferences/profile.hbs b/app/assets/javascripts/discourse/templates/preferences/profile.hbs index fed0da9e91a..b9a95dc9bbb 100644 --- a/app/assets/javascripts/discourse/templates/preferences/profile.hbs +++ b/app/assets/javascripts/discourse/templates/preferences/profile.hbs @@ -1,10 +1,10 @@ {{#if canChangeBio}} -<div class="control-group pref-bio"> - <label class="control-label">{{i18n 'user.bio'}}</label> - <div class="controls bio-composer input-xxlarge"> - {{d-editor value=model.bio_raw}} + <div class="control-group pref-bio"> + <label class="control-label">{{i18n 'user.bio'}}</label> + <div class="controls bio-composer input-xxlarge"> + {{d-editor value=model.bio_raw}} + </div> </div> -</div> {{/if}} <div class="control-group pref-timezone"> @@ -67,7 +67,9 @@ <label class="control-label">{{i18n 'user.featured_topic'}}</label> {{#if model.featured_topic}} <label class="featured-topic-link"> - {{#link-to "topic" model.featured_topic.slug model.featured_topic.id}}{{html-safe (replace-emoji model.featured_topic.fancy_title)}}{{/link-to}} + {{#link-to "topic" model.featured_topic.slug model.featured_topic.id}} + {{html-safe (replace-emoji model.featured_topic.fancy_title)}} + {{/link-to}} </label> {{/if}} diff --git a/app/assets/javascripts/discourse/templates/preferences/tags.hbs b/app/assets/javascripts/discourse/templates/preferences/tags.hbs index 906d7761c04..e645e8175ad 100644 --- a/app/assets/javascripts/discourse/templates/preferences/tags.hbs +++ b/app/assets/javascripts/discourse/templates/preferences/tags.hbs @@ -1,64 +1,67 @@ {{#if siteSettings.tagging_enabled}} -<div class="control-group tag-notifications"> + <div class="control-group tag-notifications"> + <label class="control-label">{{i18n 'user.tag_settings'}}</label> - <label class="control-label">{{i18n 'user.tag_settings'}}</label> + <div class="controls tracking-controls"> + <label>{{d-icon "d-watching" class="icon watching"}} {{i18n 'user.watched_tags'}}</label> + {{tag-chooser + tags=model.watched_tags + blacklist=selectedTags + filterPlaceholder="select_kit.filter_placeholder" + allowCreate=false + everyTag=true + unlimitedTagCount=true + }} + </div> - <div class="controls tracking-controls"> - <label>{{d-icon "d-watching" class="icon watching"}} {{i18n 'user.watched_tags'}}</label> - {{tag-chooser - tags=model.watched_tags - blacklist=selectedTags - filterPlaceholder="select_kit.filter_placeholder" - allowCreate=false - everyTag=true - unlimitedTagCount=true}} + <div class="instructions">{{i18n 'user.watched_tags_instructions'}}</div> + + <div class="controls tracking-controls"> + <label>{{d-icon "d-tracking" class="icon tracking"}} {{i18n 'user.tracked_tags'}}</label> + {{tag-chooser + tags=model.tracked_tags + blacklist=selectedTags + filterPlaceholder="select_kit.filter_placeholder" + allowCreate=false + everyTag=true + unlimitedTagCount=true}} + </div> + + <div class="instructions">{{i18n 'user.tracked_tags_instructions'}}</div> + + <div class="controls tracking-controls"> + <label>{{d-icon "d-watching-first" class="icon watching-first-post"}} {{i18n 'user.watched_first_post_tags'}}</label> + {{tag-chooser + tags=model.watching_first_post_tags + blacklist=selectedTags + filterPlaceholder="select_kit.filter_placeholder" + allowCreate=false + everyTag=true + unlimitedTagCount=true}} + </div> + + <div class="instructions"> + {{i18n 'user.watched_first_post_tags_instructions'}} + </div> + + <div class="controls tracking-controls"> + <label>{{d-icon "d-muted" class="icon muted"}} {{i18n 'user.muted_tags'}}</label> + {{tag-chooser + tags=model.muted_tags + blacklist=selectedTags + filterPlaceholder="select_kit.filter_placeholder" + allowCreate=false + everyTag=true + unlimitedTagCount=true}} + </div> + <div class="instructions">{{i18n 'user.muted_tags_instructions'}}</div> </div> - <div class="instructions">{{i18n 'user.watched_tags_instructions'}}</div> - <div class="controls tracking-controls"> - <label>{{d-icon "d-tracking" class="icon tracking"}} {{i18n 'user.tracked_tags'}}</label> - {{tag-chooser - tags=model.tracked_tags - blacklist=selectedTags - filterPlaceholder="select_kit.filter_placeholder" - allowCreate=false - everyTag=true - unlimitedTagCount=true}} - </div> - <div class="instructions">{{i18n 'user.tracked_tags_instructions'}}</div> + {{plugin-outlet name="user-preferences-tags" args=(hash model=model save=(action "save"))}} - <div class="controls tracking-controls"> - <label>{{d-icon "d-watching-first" class="icon watching-first-post"}} {{i18n 'user.watched_first_post_tags'}}</label> - {{tag-chooser - tags=model.watching_first_post_tags - blacklist=selectedTags - filterPlaceholder="select_kit.filter_placeholder" - allowCreate=false - everyTag=true - unlimitedTagCount=true}} - </div> - <div class="instructions">{{i18n 'user.watched_first_post_tags_instructions'}}</div> + <br> - <div class="controls tracking-controls"> - <label>{{d-icon "d-muted" class="icon muted"}} {{i18n 'user.muted_tags'}}</label> - {{tag-chooser - tags=model.muted_tags - blacklist=selectedTags - filterPlaceholder="select_kit.filter_placeholder" - allowCreate=false - everyTag=true - unlimitedTagCount=true}} - </div> - <div class="instructions">{{i18n 'user.muted_tags_instructions'}}</div> - -</div> - -{{plugin-outlet name="user-preferences-tags" args=(hash model=model save=(action "save"))}} - -<br> - -{{plugin-outlet name="user-custom-controls" args=(hash model=model)}} - -{{save-controls model=model action=(action "save") saved=saved}} + {{plugin-outlet name="user-custom-controls" args=(hash model=model)}} + {{save-controls model=model action=(action "save") saved=saved}} {{/if}} diff --git a/app/assets/javascripts/discourse/templates/review-topics.hbs b/app/assets/javascripts/discourse/templates/review-topics.hbs index 5e548c3215c..36cdb89b7b1 100644 --- a/app/assets/javascripts/discourse/templates/review-topics.hbs +++ b/app/assets/javascripts/discourse/templates/review-topics.hbs @@ -7,29 +7,29 @@ <th></th> </thead> <tbody> - {{#each reviewableTopics as |rt|}} - <tr class='reviewable-topic'> - <td class="topic-title"> - <div class='combined-title'> - {{topic-status topic=rt}} - <a href={{rt.relative_url}} rel="noopener" target="_blank">{{replace-emoji rt.fancy_title}}</a> - </div> - </td> - <td class="reviewable-count"> - {{rt.stats.count}} - </td> - <td class="reported-by"> - {{i18n "review.topics.unique_users" count=rt.stats.unique_users}} - </td> - <td class="reviewable-details"> - {{reviewable-claimed-topic topicId=rt.id claimedBy=rt.claimed_by}} - {{#link-to "review.index" (query-params topic_id=rt.id) class="btn btn-primary btn-small"}} - {{d-icon "list"}} - <span>{{i18n "review.topics.details"}}</span> - {{/link-to}} - </td> - </tr> - {{/each}} + {{#each reviewableTopics as |rt|}} + <tr class='reviewable-topic'> + <td class="topic-title"> + <div class='combined-title'> + {{topic-status topic=rt}} + <a href={{rt.relative_url}} rel="noopener" target="_blank">{{replace-emoji rt.fancy_title}}</a> + </div> + </td> + <td class="reviewable-count"> + {{rt.stats.count}} + </td> + <td class="reported-by"> + {{i18n "review.topics.unique_users" count=rt.stats.unique_users}} + </td> + <td class="reviewable-details"> + {{reviewable-claimed-topic topicId=rt.id claimedBy=rt.claimed_by}} + {{#link-to "review.index" (query-params topic_id=rt.id) class="btn btn-primary btn-small"}} + {{d-icon "list"}} + <span>{{i18n "review.topics.details"}}</span> + {{/link-to}} + </td> + </tr> + {{/each}} </tbody> </table> {{else}} diff --git a/app/assets/javascripts/discourse/templates/tags/show.hbs b/app/assets/javascripts/discourse/templates/tags/show.hbs index 923dfb991f5..638701e3da3 100644 --- a/app/assets/javascripts/discourse/templates/tags/show.hbs +++ b/app/assets/javascripts/discourse/templates/tags/show.hbs @@ -5,44 +5,45 @@ <div class="list-controls"> <div class="container"> <section class="navigation-container"> - - {{#if showTagFilter}} - {{bread-crumbs categories=categories - category=category - tagId=tag.id - noSubcategories=noSubcategories}} - - {{navigation-bar navItems=navItems filterMode=filterMode}} - {{else}} - <h2 class="tag-show-heading"> - {{#link-to 'tags'}}{{i18n "tagging.tags"}}{{/link-to}} - {{d-icon "angle-right"}} - {{discourse-tag-bound tagRecord=tag style="simple"}} - {{#each additionalTags as |tag|}} - <span>&</span> - {{discourse-tag tag style="simple"}} - {{/each}} - </h2> - {{/if}} - - {{#if tagNotification}} - {{#unless additionalTags}} - {{tag-notifications-button - onChange=(action "changeTagNotificationLevel") - value=tagNotification.notification_level + {{#if showTagFilter}} + {{bread-crumbs + categories=categories + category=category + tagId=tag.id + noSubcategories=noSubcategories }} - {{/unless}} - {{/if}} + {{navigation-bar navItems=navItems filterMode=filterMode}} + {{else}} + <h2 class="tag-show-heading"> + {{#link-to 'tags'}}{{i18n "tagging.tags"}}{{/link-to}} + {{d-icon "angle-right"}} + {{discourse-tag-bound tagRecord=tag style="simple"}} + {{#each additionalTags as |tag|}} + <span>&</span> + {{discourse-tag tag style="simple"}} + {{/each}} + </h2> + {{/if}} - {{create-topic-button - canCreateTopic=canCreateTopic - disabled=createTopicDisabled - label=createTopicLabel - action=(route-action "createTopic")}} + {{#if tagNotification}} + {{#unless additionalTags}} + {{tag-notifications-button + onChange=(action "changeTagNotificationLevel") + value=tagNotification.notification_level + }} + {{/unless}} + {{/if}} - {{#if showToggleInfo}} - {{d-button icon="tag" label="tagging.info" action=(action "toggleInfo") id="show-tag-info"}} - {{/if}} + {{create-topic-button + canCreateTopic=canCreateTopic + disabled=createTopicDisabled + label=createTopicLabel + action=(route-action "createTopic") + }} + + {{#if showToggleInfo}} + {{d-button icon="tag" label="tagging.info" action=(action "toggleInfo") id="show-tag-info"}} + {{/if}} </section> </div> </div> @@ -52,6 +53,7 @@ {{/if}} {{plugin-outlet name="discovery-list-container-top"}} + <div class="container list-container"> <div class="row"> <div class="full-width"> @@ -59,18 +61,18 @@ {{#unless loading}} {{#if list.topics}} {{#discovery-topics-list model=list refresh=(action "refresh")}} - {{bulk-select-button selected=selected action=(action "refresh")}} - - {{topic-list topics=list.topics - canBulkSelect=canBulkSelect - toggleBulkSelect=(action "toggleBulkSelect") - bulkSelectEnabled=bulkSelectEnabled - selected=selected - showPosters=true - order=order - ascending=ascending - changeSort=(action "changeSort")}} - + {{bulk-select-button selected=selected action=(action "refresh")}} + {{topic-list + topics=list.topics + canBulkSelect=canBulkSelect + toggleBulkSelect=(action "toggleBulkSelect") + bulkSelectEnabled=bulkSelectEnabled + selected=selected + showPosters=true + order=order + ascending=ascending + changeSort=(action "changeSort") + }} {{/discovery-topics-list}} {{else}} <footer class='topic-list-bottom'> diff --git a/app/assets/javascripts/discourse/templates/user-invited-show.hbs b/app/assets/javascripts/discourse/templates/user-invited-show.hbs index bd8e75f1e4a..fde0c262271 100644 --- a/app/assets/javascripts/discourse/templates/user-invited-show.hbs +++ b/app/assets/javascripts/discourse/templates/user-invited-show.hbs @@ -91,8 +91,8 @@ {{else}} {{d-button icon="times" action=(action "rescind") actionParam=invite label="user.invited.rescind"}} {{/if}} - </td> - <td> + </td> + <td> {{#if invite.reinvited}} <div>{{i18n 'user.invited.reinvited'}}</div> {{else}} diff --git a/app/assets/javascripts/discourse/templates/user.hbs b/app/assets/javascripts/discourse/templates/user.hbs index 10881bb35b1..59334e9ded0 100644 --- a/app/assets/javascripts/discourse/templates/user.hbs +++ b/app/assets/javascripts/discourse/templates/user.hbs @@ -1,51 +1,49 @@ {{plugin-outlet name="above-user-profile" tagName='' args=(hash model=model)}} <div class="container {{if viewingSelf 'viewing-self'}}"> {{#d-section class="user-main"}} - <section class="{{if collapsedInfo 'collapsed-info'}} about {{if hasProfileBackgroundUrl 'has-background' 'no-background'}}" > - {{#unless collapsedInfo}} - {{#if showStaffCounters}} - <div class='staff-counters'> - {{#if model.number_of_flags_given}} - <div><span class="helpful-flags">{{model.number_of_flags_given}}</span>{{i18n 'user.staff_counters.flags_given'}}</div> - {{/if}} - {{#if model.number_of_flagged_posts}} - <div> - {{#link-to 'review' (query-params username=model.username status='all' type='ReviewableFlaggedPost')}} - <span class="flagged-posts">{{model.number_of_flagged_posts}}</span>{{i18n 'user.staff_counters.flagged_posts'}} - {{/link-to}} - </div> - {{/if}} - {{#if model.number_of_rejected_posts}} - <div> - {{#link-to 'review' (query-params username=model.username status='rejected' type='ReviewableQueuedPost')}} - <span class="flagged-posts">{{model.number_of_rejected_posts}}</span>{{i18n 'user.staff_counters.rejected_posts'}} - {{/link-to}} - </div> - {{/if}} - - {{#if model.number_of_deleted_posts}} - <div> - {{#link-to 'user.deletedPosts' model}} - <span class="deleted-posts">{{model.number_of_deleted_posts}}</span>{{i18n 'user.staff_counters.deleted_posts'}} - {{/link-to}} - </div> - {{/if}} - {{#if model.number_of_suspensions}} - <div> - <a href {{action "showSuspensions"}}> - <span class="suspensions">{{model.number_of_suspensions}}</span>{{i18n 'user.staff_counters.suspensions'}} - </a> - </div> - {{/if}} - {{#if model.warnings_received_count}} - <div><span class="warnings-received">{{model.warnings_received_count}}</span>{{i18n 'user.staff_counters.warnings_received'}}</div> - {{/if}} - </div> - {{/if}} - <div class="user-profile-image" style={{model.profileBackgroundUrl}}></div> - {{/unless}} + {{#unless collapsedInfo}} + {{#if showStaffCounters}} + <div class='staff-counters'> + {{#if model.number_of_flags_given}} + <div><span class="helpful-flags">{{model.number_of_flags_given}}</span>{{i18n 'user.staff_counters.flags_given'}}</div> + {{/if}} + {{#if model.number_of_flagged_posts}} + <div> + {{#link-to 'review' (query-params username=model.username status='all' type='ReviewableFlaggedPost')}} + <span class="flagged-posts">{{model.number_of_flagged_posts}}</span>{{i18n 'user.staff_counters.flagged_posts'}} + {{/link-to}} + </div> + {{/if}} + {{#if model.number_of_rejected_posts}} + <div> + {{#link-to 'review' (query-params username=model.username status='rejected' type='ReviewableQueuedPost')}} + <span class="flagged-posts">{{model.number_of_rejected_posts}}</span>{{i18n 'user.staff_counters.rejected_posts'}} + {{/link-to}} + </div> + {{/if}} + {{#if model.number_of_deleted_posts}} + <div> + {{#link-to 'user.deletedPosts' model}} + <span class="deleted-posts">{{model.number_of_deleted_posts}}</span>{{i18n 'user.staff_counters.deleted_posts'}} + {{/link-to}} + </div> + {{/if}} + {{#if model.number_of_suspensions}} + <div> + <a href {{action "showSuspensions"}}> + <span class="suspensions">{{model.number_of_suspensions}}</span>{{i18n 'user.staff_counters.suspensions'}} + </a> + </div> + {{/if}} + {{#if model.warnings_received_count}} + <div><span class="warnings-received">{{model.warnings_received_count}}</span>{{i18n 'user.staff_counters.warnings_received'}}</div> + {{/if}} + </div> + {{/if}} + <div class="user-profile-image" style={{model.profileBackgroundUrl}}></div> + {{/unless}} <div class='details'> <div class='primary'> {{user-profile-avatar user=model tagName=""}} @@ -113,19 +111,19 @@ {{/if}} <h3 class="location-and-website"> - {{#if model.location}}<div class="user-profile-location">{{d-icon "map-marker-alt"}} {{model.location}}</div>{{/if}} - {{#if model.website_name}} - <div class="user-profile-website"> - {{d-icon "globe"}} - {{#if linkWebsite}} - {{!-- template-lint-disable --}} - <a href={{model.website}} rel="noopener {{unless removeNoFollow 'nofollow ugc'}}" target="_blank">{{model.website_name}}</a> - {{else}} - <span title={{model.website}}>{{model.website_name}}</span> + {{#if model.location}}<div class="user-profile-location">{{d-icon "map-marker-alt"}} {{model.location}}</div>{{/if}} + {{#if model.website_name}} + <div class="user-profile-website"> + {{d-icon "globe"}} + {{#if linkWebsite}} + {{!-- template-lint-disable --}} + <a href={{model.website}} rel="noopener {{unless removeNoFollow 'nofollow ugc'}}" target="_blank">{{model.website_name}}</a> + {{else}} + <span title={{model.website}}>{{model.website_name}}</span> + {{/if}} + </div> {{/if}} - </div> - {{/if}} - {{plugin-outlet name="user-location-and-website" args=(hash model=model)}} + {{plugin-outlet name="user-location-and-website" args=(hash model=model)}} </h3> <div class='bio'> @@ -138,7 +136,8 @@ {{else}} {{i18n 'user.suspended_notice' date=model.suspendedTillDate}} {{/if}} - </b><br> + </b> + <br> {{#if model.suspend_reason}} <b>{{i18n 'user.suspended_reason'}}</b> {{model.suspend_reason}} {{/if}} @@ -170,97 +169,90 @@ </div> </div> {{#unless collapsedInfo}} - <div class='secondary'> - <dl> - {{#if model.created_at}} - <div><dt>{{i18n 'user.created'}}</dt><dd>{{bound-date model.created_at}}</dd></div> - {{/if}} - {{#if model.last_posted_at}} - <div><dt>{{i18n 'user.last_posted'}}</dt><dd>{{bound-date model.last_posted_at}}</dd></div> - {{/if}} - {{#if model.last_seen_at}} - <div><dt>{{i18n 'user.last_seen'}}</dt><dd>{{bound-date model.last_seen_at}}</dd></div> - {{/if}} - {{#if model.profile_view_count}} - <div><dt>{{i18n 'views'}}</dt><dd>{{model.profile_view_count}}</dd></div> - {{/if}} - {{#if model.invited_by}} - <div><dt class="invited-by">{{i18n 'user.invited_by'}}</dt><dd class="invited-by">{{#link-to 'user' model.invited_by}}{{model.invited_by.username}}{{/link-to}}</dd></div> - {{/if}} - {{#if model.trust_level}} - <div><dt class="trust-level">{{i18n 'user.trust_level'}}</dt><dd class="trust-level">{{model.trustLevel.name}}</dd></div> - {{/if}} - {{#if canCheckEmails}} - <div><dt>{{i18n 'user.email.title'}}</dt> - <dd title={{model.email}}> - {{#if model.email}} - {{model.email}} - {{else}} - {{d-button action=(route-action "checkEmail") actionParam=model icon="far-envelope" label="admin.users.check_email.text" class="btn-primary"}} - {{/if}} - </dd> - </div> - {{/if}} + <div class='secondary'> + <dl> + {{#if model.created_at}} + <div><dt>{{i18n 'user.created'}}</dt><dd>{{bound-date model.created_at}}</dd></div> + {{/if}} + {{#if model.last_posted_at}} + <div><dt>{{i18n 'user.last_posted'}}</dt><dd>{{bound-date model.last_posted_at}}</dd></div> + {{/if}} + {{#if model.last_seen_at}} + <div><dt>{{i18n 'user.last_seen'}}</dt><dd>{{bound-date model.last_seen_at}}</dd></div> + {{/if}} + {{#if model.profile_view_count}} + <div><dt>{{i18n 'views'}}</dt><dd>{{model.profile_view_count}}</dd></div> + {{/if}} + {{#if model.invited_by}} + <div><dt class="invited-by">{{i18n 'user.invited_by'}}</dt><dd class="invited-by">{{#link-to 'user' model.invited_by}}{{model.invited_by.username}}{{/link-to}}</dd></div> + {{/if}} + {{#if model.trust_level}} + <div><dt class="trust-level">{{i18n 'user.trust_level'}}</dt><dd class="trust-level">{{model.trustLevel.name}}</dd></div> + {{/if}} + {{#if canCheckEmails}} + <div><dt>{{i18n 'user.email.title'}}</dt> + <dd title={{model.email}}> + {{#if model.email}} + {{model.email}} + {{else}} + {{d-button action=(route-action "checkEmail") actionParam=model icon="far-envelope" label="admin.users.check_email.text" class="btn-primary"}} + {{/if}} + </dd> + </div> + {{/if}} + {{#if model.displayGroups}} + <div><dt class="groups">{{i18n 'groups.title' count=model.displayGroups.length}}</dt> + <dd class='groups'> + {{#each model.displayGroups as |group|}} + <span>{{#link-to 'group' group.name class="group-link"}}{{group.name}}{{/link-to}}</span> + {{/each}} - {{#if model.displayGroups}} - <div><dt class="groups">{{i18n 'groups.title' count=model.displayGroups.length}}</dt> - <dd class='groups'> - {{#each model.displayGroups as |group|}} - <span>{{#link-to 'group' group.name class="group-link"}}{{group.name}}{{/link-to}}</span> - {{/each}} + {{#link-to "groups" (query-params username=model.username)}} + ... + {{/link-to}} + </dd> + </div> + {{/if}} - {{#link-to "groups" (query-params username=model.username)}} - ... - {{/link-to}} - </dd> - </div> - {{/if}} - - {{#if canDeleteUser}} - <div class='pull-right'>{{d-button action=(action "adminDelete") icon="exclamation-triangle" label="user.admin_delete" class="btn-danger"}}</div> - {{/if}} - </dl> - {{plugin-outlet name="user-profile-secondary" args=(hash model=model)}} - </div> + {{#if canDeleteUser}} + <div class='pull-right'>{{d-button action=(action "adminDelete") icon="exclamation-triangle" label="user.admin_delete" class="btn-danger"}}</div> + {{/if}} + </dl> + {{plugin-outlet name="user-profile-secondary" args=(hash model=model)}} + </div> {{/unless}} </div> - - </section> - <div class='user-content-wrapper'> - - <section class="user-primary-navigation"> - {{#mobile-nav class='main-nav' desktopClass="nav nav-pills user-nav" currentPath=currentPath}} - {{#unless model.profile_hidden}} - <li>{{#link-to 'user.summary'}}{{i18n 'user.summary.title'}}{{/link-to}}</li> - <li>{{#link-to 'userActivity'}}{{i18n 'user.activity_stream'}}{{/link-to}}</li> - {{/unless}} - {{#if showNotificationsTab}} - <li> - {{#link-to 'userNotifications'}} - {{d-icon "comment" class="glyph"}}{{i18n 'user.notifications'}} - {{/link-to}} - </li> - {{/if}} - {{#if showPrivateMessages}} - <li>{{#link-to 'userPrivateMessages'}}{{d-icon "far-envelope"}}{{i18n 'user.private_messages'}}{{/link-to}}</li> - {{/if}} - {{#if canInviteToForum}} - <li>{{#link-to 'userInvited'}}{{d-icon "user-plus"}}{{i18n 'user.invited.title'}}{{/link-to}}</li> - {{/if}} - {{#if showBadges}} - <li>{{#link-to 'user.badges'}}{{d-icon "certificate"}}{{i18n 'badges.title'}}{{/link-to}}</li> - {{/if}} - {{plugin-outlet name="user-main-nav" tagName='' connectorTagName='li' args=(hash model=model)}} - {{#if model.can_edit}} - <li>{{#link-to 'preferences'}}{{d-icon "cog"}}{{i18n 'user.preferences'}}{{/link-to}}</li> - {{/if}} - {{/mobile-nav}} - </section> - - {{outlet}} - </div> - + <section class="user-primary-navigation"> + {{#mobile-nav class='main-nav' desktopClass="nav nav-pills user-nav" currentPath=currentPath}} + {{#unless model.profile_hidden}} + <li>{{#link-to 'user.summary'}}{{i18n 'user.summary.title'}}{{/link-to}}</li> + <li>{{#link-to 'userActivity'}}{{i18n 'user.activity_stream'}}{{/link-to}}</li> + {{/unless}} + {{#if showNotificationsTab}} + <li> + {{#link-to 'userNotifications'}} + {{d-icon "comment" class="glyph"}}{{i18n 'user.notifications'}} + {{/link-to}} + </li> + {{/if}} + {{#if showPrivateMessages}} + <li>{{#link-to 'userPrivateMessages'}}{{d-icon "far-envelope"}}{{i18n 'user.private_messages'}}{{/link-to}}</li> + {{/if}} + {{#if canInviteToForum}} + <li>{{#link-to 'userInvited'}}{{d-icon "user-plus"}}{{i18n 'user.invited.title'}}{{/link-to}}</li> + {{/if}} + {{#if showBadges}} + <li>{{#link-to 'user.badges'}}{{d-icon "certificate"}}{{i18n 'badges.title'}}{{/link-to}}</li> + {{/if}} + {{plugin-outlet name="user-main-nav" tagName='' connectorTagName='li' args=(hash model=model)}} + {{#if model.can_edit}} + <li>{{#link-to 'preferences'}}{{d-icon "cog"}}{{i18n 'user.preferences'}}{{/link-to}}</li> + {{/if}} + {{/mobile-nav}} + </section> + {{outlet}} + </div> {{/d-section}} </div> diff --git a/app/assets/javascripts/discourse/templates/user/activity.hbs b/app/assets/javascripts/discourse/templates/user/activity.hbs index 2623e57c050..809b8a16295 100644 --- a/app/assets/javascripts/discourse/templates/user/activity.hbs +++ b/app/assets/javascripts/discourse/templates/user/activity.hbs @@ -10,34 +10,35 @@ {{#link-to 'userActivity.replies'}}{{i18n 'user_action_groups.5'}}{{/link-to}} </li> {{#if user.showDrafts}} - <li> - {{#link-to 'userActivity.drafts'}}{{i18n 'user_action_groups.15'}}{{/link-to}} - </li> + <li> + {{#link-to 'userActivity.drafts'}}{{i18n 'user_action_groups.15'}}{{/link-to}} + </li> {{/if}} <li> {{#link-to 'userActivity.likesGiven'}}{{i18n 'user_action_groups.1'}}{{/link-to}} </li> {{#if user.showBookmarks}} {{#if bookmarksWithRemindersEnabled}} - <li> - {{#link-to 'userActivity.bookmarksWithReminders'}}{{i18n 'user_action_groups.3'}}{{/link-to}} - </li> + <li> + {{#link-to 'userActivity.bookmarksWithReminders'}}{{i18n 'user_action_groups.3'}}{{/link-to}} + </li> {{else}} - <li> - {{#link-to 'userActivity.bookmarks'}}{{i18n 'user_action_groups.3'}}{{/link-to}} - </li> + <li> + {{#link-to 'userActivity.bookmarks'}}{{i18n 'user_action_groups.3'}}{{/link-to}} + </li> {{/if}} {{/if}} - {{plugin-outlet name="user-activity-bottom" - connectorTagName='li' - args=(hash model=model)}} + {{plugin-outlet + name="user-activity-bottom" + connectorTagName='li' + args=(hash model=model) + }} {{/mobile-nav}} - {{/d-section}} {{#if canDownloadPosts}} - <section class='user-additional-controls'> - {{d-button action=(action "exportUserArchive") class="btn-default" label="user.download_archive.button_text" icon="download"}} - </section> + <section class='user-additional-controls'> + {{d-button action=(action "exportUserArchive") class="btn-default" label="user.download_archive.button_text" icon="download"}} + </section> {{/if}} <section class='user-content'> {{outlet}} diff --git a/app/assets/javascripts/discourse/templates/user/bookmarks.hbs b/app/assets/javascripts/discourse/templates/user/bookmarks.hbs index 92c9979b544..75e5b2ce10d 100644 --- a/app/assets/javascripts/discourse/templates/user/bookmarks.hbs +++ b/app/assets/javascripts/discourse/templates/user/bookmarks.hbs @@ -11,41 +11,41 @@ <th> </th> </thead> <tbody> - {{#each content as |bookmark|}} - <tr class="topic-list-item bookmark-list-item"> - <td class="main-link"> - <span class="link-top-line"> - <div class="bookmark-metadata"> - {{#if bookmark.name}} - <span class="bookmark-metadata-item"> - {{d-icon "info-circle"}}{{bookmark.name}} - </span> - {{/if}} - {{#if bookmark.reminder_at}} - <span class="bookmark-metadata-item"> - {{d-icon "far-clock"}}{{bookmark.formattedReminder}} - </span> - {{/if}} - </div> + {{#each content as |bookmark|}} + <tr class="topic-list-item bookmark-list-item"> + <td class="main-link"> + <span class="link-top-line"> + <div class="bookmark-metadata"> + {{#if bookmark.name}} + <span class="bookmark-metadata-item"> + {{d-icon "info-circle"}}{{bookmark.name}} + </span> + {{/if}} + {{#if bookmark.reminder_at}} + <span class="bookmark-metadata-item"> + {{d-icon "far-clock"}}{{bookmark.formattedReminder}} + </span> + {{/if}} + </div> - {{topic-status topic=bookmark}} - {{topic-link bookmark}} - </span> - {{#if bookmark.excerpt}} - <p class="post-excerpt">{{html-safe bookmark.excerpt}}</p> - {{/if}} - <div class="link-bottom-line"> - {{category-link bookmark.category}} - {{discourse-tags bookmark mode="list" tagsForUser=tagsForUser}} - </div> - </td> - <td>{{format-date bookmark.created_at format="tiny"}}</td> - {{raw "list/activity-column" topic=bookmark class="num" tagName="td"}} - <td> - {{bookmark-actions-dropdown bookmark=bookmark removeBookmark=(action "removeBookmark")}} - </td> - </tr> - {{/each}} + {{topic-status topic=bookmark}} + {{topic-link bookmark}} + </span> + {{#if bookmark.excerpt}} + <p class="post-excerpt">{{html-safe bookmark.excerpt}}</p> + {{/if}} + <div class="link-bottom-line"> + {{category-link bookmark.category}} + {{discourse-tags bookmark mode="list" tagsForUser=tagsForUser}} + </div> + </td> + <td>{{format-date bookmark.created_at format="tiny"}}</td> + {{raw "list/activity-column" topic=bookmark class="num" tagName="td"}} + <td> + {{bookmark-actions-dropdown bookmark=bookmark removeBookmark=(action "removeBookmark")}} + </td> + </tr> + {{/each}} </tbody> </table> {{conditional-loading-spinner condition=loadingMore}} diff --git a/app/assets/javascripts/discourse/templates/user/messages.hbs b/app/assets/javascripts/discourse/templates/user/messages.hbs index 3dc34f67a15..64e8d535494 100644 --- a/app/assets/javascripts/discourse/templates/user/messages.hbs +++ b/app/assets/javascripts/discourse/templates/user/messages.hbs @@ -56,9 +56,7 @@ {{/d-section}} <section class='user-content'> - -<div class="list-actions"> - + <div class="list-actions"> {{#unless site.mobileView}} {{#if showToggleBulkSelect}} {{d-button @@ -106,7 +104,6 @@ onChange=(action "changeGroupNotificationLevel") }} {{/if}} -</div> - -{{outlet}} + </div> + {{outlet}} </section> diff --git a/app/assets/javascripts/discourse/templates/user/notifications.hbs b/app/assets/javascripts/discourse/templates/user/notifications.hbs index 8dca10c91fd..2db8a547846 100644 --- a/app/assets/javascripts/discourse/templates/user/notifications.hbs +++ b/app/assets/javascripts/discourse/templates/user/notifications.hbs @@ -32,15 +32,17 @@ {{/d-section}} {{#if model}} -<section class="user-additional-controls"> - {{d-button title='user.dismiss_notifications_tooltip' - class='btn btn-default dismiss-notifications' - action=(action "resetNew") - label='user.dismiss_notifications' - icon='check' - disabled=allNotificationsRead}} - </section> - {{/if}} + <section class="user-additional-controls"> + {{d-button + title='user.dismiss_notifications_tooltip' + class='btn btn-default dismiss-notifications' + action=(action "resetNew") + label='user.dismiss_notifications' + icon='check' + disabled=allNotificationsRead + }} + </section> +{{/if}} <section class='user-content'> {{#load-more class="notification-history user-stream" selector=".user-stream .notification" action=(action "loadMore")}} diff --git a/app/assets/javascripts/discourse/templates/user/summary.hbs b/app/assets/javascripts/discourse/templates/user/summary.hbs index 26ee193bde9..d28017469db 100644 --- a/app/assets/javascripts/discourse/templates/user/summary.hbs +++ b/app/assets/javascripts/discourse/templates/user/summary.hbs @@ -1,163 +1,163 @@ {{#d-section pageClass="user-summary" tagName=""}} -<div class="user-content"> - <div class='top-section stats-section'> - <h3 class='stats-title'>{{i18n "user.summary.stats"}}</h3> - <ul> - <li> - {{user-stat value=model.days_visited label="user.summary.days_visited"}} - </li> - <li> - {{user-stat value=timeRead label="user.summary.time_read" type="string"}} - </li> - {{#if showRecentTimeRead}} + <div class="user-content"> + <div class='top-section stats-section'> + <h3 class='stats-title'>{{i18n "user.summary.stats"}}</h3> + <ul> <li> - {{user-stat value=recentTimeRead label="user.summary.recent_time_read" type="string"}} + {{user-stat value=model.days_visited label="user.summary.days_visited"}} + </li> + <li> + {{user-stat value=timeRead label="user.summary.time_read" type="string"}} + </li> + {{#if showRecentTimeRead}} + <li> + {{user-stat value=recentTimeRead label="user.summary.recent_time_read" type="string"}} + </li> + {{/if}} + <li> + {{user-stat value=model.topics_entered label="user.summary.topics_entered"}} + </li> + <li> + {{user-stat value=model.posts_read_count label="user.summary.posts_read"}} </li> - {{/if}} - <li> - {{user-stat value=model.topics_entered label="user.summary.topics_entered"}} - </li> - <li> - {{user-stat value=model.posts_read_count label="user.summary.posts_read"}} - </li> - <li class="linked-stat"> - {{#link-to 'userActivity.likesGiven'}} - {{user-stat value=model.likes_given icon="heart" label="user.summary.likes_given"}} - {{/link-to}} - </li> - {{#if model.bookmark_count}} <li class="linked-stat"> - {{#link-to 'userActivity.bookmarks'}} - {{user-stat value=model.bookmark_count label="user.summary.bookmark_count"}} + {{#link-to 'userActivity.likesGiven'}} + {{user-stat value=model.likes_given icon="heart" label="user.summary.likes_given"}} {{/link-to}} </li> - {{/if}} - <li class="linked-stat"> - {{#link-to 'userActivity.topics'}} - {{user-stat value=model.topic_count label="user.summary.topic_count"}} - {{/link-to}} - </li> - <li class="linked-stat"> - {{#link-to 'userActivity.replies'}} - {{user-stat value=model.post_count label="user.summary.post_count"}} - {{/link-to}} - </li> - <li> - {{user-stat value=model.likes_received icon="heart" label="user.summary.likes_received"}} - </li> - {{plugin-outlet name="user-summary-stat" tagName="" connectorTagName="li" args=(hash model=model)}} - </ul> - </div> + {{#if model.bookmark_count}} + <li class="linked-stat"> + {{#link-to 'userActivity.bookmarks'}} + {{user-stat value=model.bookmark_count label="user.summary.bookmark_count"}} + {{/link-to}} + </li> + {{/if}} + <li class="linked-stat"> + {{#link-to 'userActivity.topics'}} + {{user-stat value=model.topic_count label="user.summary.topic_count"}} + {{/link-to}} + </li> + <li class="linked-stat"> + {{#link-to 'userActivity.replies'}} + {{user-stat value=model.post_count label="user.summary.post_count"}} + {{/link-to}} + </li> + <li> + {{user-stat value=model.likes_received icon="heart" label="user.summary.likes_received"}} + </li> + {{plugin-outlet name="user-summary-stat" tagName="" connectorTagName="li" args=(hash model=model)}} + </ul> + </div> - <div class='top-section'> - {{#user-summary-section title="top_replies" class="replies-section pull-left"}} - {{#user-summary-topics-list type="replies" items=model.replies user=user as |reply|}} - {{user-summary-topic - createdAt=reply.createdAt - topic=reply.topic - likes=reply.like_count - url=reply.url}} - {{/user-summary-topics-list}} - {{/user-summary-section}} + <div class='top-section'> + {{#user-summary-section title="top_replies" class="replies-section pull-left"}} + {{#user-summary-topics-list type="replies" items=model.replies user=user as |reply|}} + {{user-summary-topic + createdAt=reply.createdAt + topic=reply.topic + likes=reply.like_count + url=reply.url}} + {{/user-summary-topics-list}} + {{/user-summary-section}} - {{#user-summary-section title="top_topics" class="topics-section pull-right"}} - {{#user-summary-topics-list type="topics" items=model.topics user=user as |topic|}} - {{user-summary-topic - createdAt=topic.created_at - topic=topic - likes=topic.like_count - url=topic.url}} - {{/user-summary-topics-list}} - {{/user-summary-section}} - </div> - - <div class='top-section'> - {{#user-summary-section title="top_links" class="links-section pull-left"}} - {{#if model.links.length}} - <ul> - {{!-- template-lint-disable --}} - {{#each model.links as |link|}} - <li> - <a class='domain' - href={{link.url}} - title={{link.title}} - rel='noopener {{unless user.removeNoFollow 'nofollow ugc'}}' - target='_blank'> - {{shorten-url link.url}} - </a> - <span class='badge badge-notification clicks' title='{{i18n 'topic_map.clicks' count=link.clicks}}'>{{number link.clicks}}</span> - <br> - <a href="{{link.post_url}}">{{html-safe link.topic.fancyTitle}}</a> - </li> - {{/each}} - </ul> - {{else}} - <p>{{i18n "user.summary.no_links"}}</p> - {{/if}} - {{/user-summary-section}} - - {{#user-summary-section title="most_replied_to_users" class="summary-user-list replied-section pull-right"}} - {{#user-summary-users-list none="no_replies" users=model.most_replied_to_users as |user|}} - {{user-summary-user user=user icon="reply" countClass="replies"}} - {{/user-summary-users-list}} - {{/user-summary-section}} - </div> - - <div class='top-section most-liked-section'> - {{#user-summary-section title="most_liked_by" class="summary-user-list liked-by-section pull-left"}} - {{#user-summary-users-list none="no_likes" users=model.most_liked_by_users as |user|}} - {{user-summary-user user=user icon="heart" countClass="likes"}} - {{/user-summary-users-list}} - {{/user-summary-section}} - - {{#user-summary-section title="most_liked_users" class="summary-user-list liked-section pull-right"}} - {{#user-summary-users-list none="no_likes" users=model.most_liked_users as |user|}} - {{user-summary-user user=user icon="heart" countClass="likes"}} - {{/user-summary-users-list}} - {{/user-summary-section}} - </div> - - {{#if model.top_categories.length}} - <div class='top-section top-categories-section'> - {{#user-summary-section title="top_categories" class="summary-category-list pull-left"}} - <table> - <thead> - <th class="category-link"></th> - <th class='topic-count'>{{i18n "user.summary.topics"}}</th> - <th class='reply-count'>{{i18n "user.summary.replies"}}</th> - </thead> - <tbody> - {{#each model.top_categories as |category|}} - <tr> - <td class="category-link"> - {{category-link category allowUncategorized="true" hideParent=false}} - </td> - <td class='topic-count'> - {{user-summary-category-search user=user category=category count=category.topic_count}} - </td> - <td class='reply-count'> - {{user-summary-category-search user=user category=category count=category.post_count}} - </td> - </tr> - {{/each}} - </tbody> - </table> + {{#user-summary-section title="top_topics" class="topics-section pull-right"}} + {{#user-summary-topics-list type="topics" items=model.topics user=user as |topic|}} + {{user-summary-topic + createdAt=topic.created_at + topic=topic + likes=topic.like_count + url=topic.url}} + {{/user-summary-topics-list}} {{/user-summary-section}} </div> - {{/if}} - {{#if siteSettings.enable_badges}} - <div class='top-section badges-section'> - <h3 class='stats-title'>{{i18n "user.summary.top_badges"}}</h3> - {{#each model.badges as |badge|}} - {{badge-card badge=badge count=badge.count username=user.username_lower}} - {{else}} - <p>{{i18n "user.summary.no_badges"}}</p> - {{/each}} - {{#if moreBadges}} - <p>{{#link-to "user.badges" user class="more"}}{{i18n "user.summary.more_badges"}}{{/link-to}}</p> - {{/if}} + <div class='top-section'> + {{#user-summary-section title="top_links" class="links-section pull-left"}} + {{#if model.links.length}} + <ul> + {{!-- template-lint-disable --}} + {{#each model.links as |link|}} + <li> + <a class='domain' + href={{link.url}} + title={{link.title}} + rel='noopener {{unless user.removeNoFollow 'nofollow ugc'}}' + target='_blank'> + {{shorten-url link.url}} + </a> + <span class='badge badge-notification clicks' title='{{i18n 'topic_map.clicks' count=link.clicks}}'>{{number link.clicks}}</span> + <br> + <a href="{{link.post_url}}">{{html-safe link.topic.fancyTitle}}</a> + </li> + {{/each}} + </ul> + {{else}} + <p>{{i18n "user.summary.no_links"}}</p> + {{/if}} + {{/user-summary-section}} + + {{#user-summary-section title="most_replied_to_users" class="summary-user-list replied-section pull-right"}} + {{#user-summary-users-list none="no_replies" users=model.most_replied_to_users as |user|}} + {{user-summary-user user=user icon="reply" countClass="replies"}} + {{/user-summary-users-list}} + {{/user-summary-section}} </div> - {{/if}} + + <div class='top-section most-liked-section'> + {{#user-summary-section title="most_liked_by" class="summary-user-list liked-by-section pull-left"}} + {{#user-summary-users-list none="no_likes" users=model.most_liked_by_users as |user|}} + {{user-summary-user user=user icon="heart" countClass="likes"}} + {{/user-summary-users-list}} + {{/user-summary-section}} + + {{#user-summary-section title="most_liked_users" class="summary-user-list liked-section pull-right"}} + {{#user-summary-users-list none="no_likes" users=model.most_liked_users as |user|}} + {{user-summary-user user=user icon="heart" countClass="likes"}} + {{/user-summary-users-list}} + {{/user-summary-section}} + </div> + + {{#if model.top_categories.length}} + <div class='top-section top-categories-section'> + {{#user-summary-section title="top_categories" class="summary-category-list pull-left"}} + <table> + <thead> + <th class="category-link"></th> + <th class='topic-count'>{{i18n "user.summary.topics"}}</th> + <th class='reply-count'>{{i18n "user.summary.replies"}}</th> + </thead> + <tbody> + {{#each model.top_categories as |category|}} + <tr> + <td class="category-link"> + {{category-link category allowUncategorized="true" hideParent=false}} + </td> + <td class='topic-count'> + {{user-summary-category-search user=user category=category count=category.topic_count}} + </td> + <td class='reply-count'> + {{user-summary-category-search user=user category=category count=category.post_count}} + </td> + </tr> + {{/each}} + </tbody> + </table> + {{/user-summary-section}} + </div> + {{/if}} + + {{#if siteSettings.enable_badges}} + <div class='top-section badges-section'> + <h3 class='stats-title'>{{i18n "user.summary.top_badges"}}</h3> + {{#each model.badges as |badge|}} + {{badge-card badge=badge count=badge.count username=user.username_lower}} + {{else}} + <p>{{i18n "user.summary.no_badges"}}</p> + {{/each}} + {{#if moreBadges}} + <p>{{#link-to "user.badges" user class="more"}}{{i18n "user.summary.more_badges"}}{{/link-to}}</p> + {{/if}} + </div> + {{/if}} </div> {{/d-section}} diff --git a/app/assets/javascripts/select-kit/templates/components/multi-select.hbs b/app/assets/javascripts/select-kit/templates/components/multi-select.hbs index c2b12d8b7c3..e0d1f54f00f 100644 --- a/app/assets/javascripts/select-kit/templates/components/multi-select.hbs +++ b/app/assets/javascripts/select-kit/templates/components/multi-select.hbs @@ -13,11 +13,11 @@ </span> {{else}} {{#if selectKit.filter}} - {{#if selectKit.hasNoContent}} - <span class="no-content"> - {{i18n "select_kit.no_content"}} - </span> - {{/if}} + {{#if selectKit.hasNoContent}} + <span class="no-content"> + {{i18n "select_kit.no_content"}} + </span> + {{/if}} {{/if}} {{#each collections as |collection|}} diff --git a/app/assets/javascripts/select-kit/templates/components/single-select.hbs b/app/assets/javascripts/select-kit/templates/components/single-select.hbs index 9e210f7317a..a3b71cba23d 100644 --- a/app/assets/javascripts/select-kit/templates/components/single-select.hbs +++ b/app/assets/javascripts/select-kit/templates/components/single-select.hbs @@ -17,11 +17,11 @@ </span> {{else}} {{#if selectKit.filter}} - {{#if selectKit.hasNoContent}} - <span class="no-content"> - {{i18n "select_kit.no_content"}} - </span> - {{/if}} + {{#if selectKit.hasNoContent}} + <span class="no-content"> + {{i18n "select_kit.no_content"}} + </span> + {{/if}} {{/if}} {{#each collections as |collection|}} diff --git a/app/assets/javascripts/wizard/templates/components/wizard-field-checkbox.hbs b/app/assets/javascripts/wizard/templates/components/wizard-field-checkbox.hbs index d520465bd98..dddf1b81e49 100644 --- a/app/assets/javascripts/wizard/templates/components/wizard-field-checkbox.hbs +++ b/app/assets/javascripts/wizard/templates/components/wizard-field-checkbox.hbs @@ -1,7 +1,8 @@ <label> -{{input type="checkbox" - class="wizard-checkbox" - checked=field.value}} - -{{field.placeholder}} + {{input + type="checkbox" + class="wizard-checkbox" + checked=field.value + }} + {{field.placeholder}} </label>