Most Unicode Icons back to Font Awesome 4.7 for better accessibility. Less always visible buttons, More at ☰ Men.

Thanks to xet7 !
This commit is contained in:
Lauri Ojansivu 2026-01-28 12:59:07 +02:00
parent 440f553de0
commit 7ad04f4535
84 changed files with 1828 additions and 1381 deletions

View file

@ -8,7 +8,7 @@ template(name="attachments")
ul
li
a.js-move-attachments(data-id="move-attachments")
| ➡️
i.fa.fa-arrow-right
| {{_ 'attachment-move'}}
.main-body
@ -80,17 +80,17 @@ template(name="moveAttachment")
td
if $neq version.storageName "fs"
button.js-move-storage-fs
| ➡️
i.fa.fa-arrow-right
| {{_ 'attachment-move-storage-fs'}}
if $neq version.storageName "gridfs"
if version.storageName
button.js-move-storage-gridfs
| ➡️
i.fa.fa-arrow-right
| {{_ 'attachment-move-storage-gridfs'}}
if $neq version.storageName "s3"
if version.storageName
button.js-move-storage-s3
| ➡️
i.fa.fa-arrow-right
| {{_ 'attachment-move-storage-s3'}}

View file

@ -82,13 +82,13 @@ template(name="cronMigrations")
| {{_ 'database-migrations'}}
.migration-controls
button.btn.btn-primary.js-start-all-migrations
| ▶️
i.fa.fa-play
| {{_ 'start-all-migrations'}}
button.btn.btn-warning.js-pause-all-migrations
| ⏸️
i.fa.fa-pause
| {{_ 'pause-all-migrations'}}
button.btn.btn-danger.js-stop-all-migrations
| ⏹️
i.fa.fa-stop
| {{_ 'stop-all-migrations'}}
.migration-progress
@ -99,11 +99,11 @@ template(name="cronMigrations")
.progress-label {{_ 'overall-progress'}}
.current-step
| ⚙️
i.fa.fa-cog
| {{migrationCurrentStep}}
.migration-status
|
i.fa.fa-info-circle
| {{migrationStatus}}
.migration-steps
@ -114,11 +114,11 @@ template(name="cronMigrations")
.step-header
.step-icon
if completed
| ✅
i.fa.fa-check
else if isCurrentStep
| ⚙️
i.fa.fa-cog
else
| ⭕
i.fa.fa-circle-o
.step-info
.step-name {{name}}
.step-description {{description}}
@ -137,17 +137,17 @@ template(name="cronBoardOperations")
.cron-board-operations
.board-operations-header
h2
| 📋
i.fa.fa-list
| {{_ 'board-operations'}}
.board-operations-controls
button.btn.btn-success.js-refresh-board-operations
| 🔄
i.fa.fa-recycle
| {{_ 'refresh'}}
button.btn.btn-primary.js-start-test-operation
| ▶️
i.fa.fa-play
| {{_ 'start-test-operation'}}
button.btn.btn-info.js-force-board-scan
| 🔍
i.fa.fa-search
| {{_ 'force-board-scan'}}
.board-operations-stats
@ -195,7 +195,7 @@ template(name="cronBoardOperations")
.board-operations-search
.search-box
input.form-control.js-search-board-operations(type="text" placeholder="{{_ 'search-boards-or-operations'}}")
| 🔍.search-icon
i.fa.fa-search.search-icon
.board-operations-list
.operations-header
@ -234,36 +234,36 @@ template(name="cronBoardOperations")
.btn-group
if isRunning
button.btn.btn-sm.btn-warning.js-pause-operation(data-operation="{{id}}")
| ⏸️
i.fa.fa-pause
else
button.btn.btn-sm.btn-success.js-resume-operation(data-operation="{{id}}")
| ▶️
i.fa.fa-play
button.btn.btn-sm.btn-danger.js-stop-operation(data-operation="{{id}}")
| ⏹️
i.fa.fa-stop
button.btn.btn-sm.btn-info.js-view-details(data-operation="{{id}}")
|
i.fa.fa-info-circle
.pagination
if pagination.hasPrev
button.btn.btn-sm.btn-default.js-prev-page
| ◀️
i.fa.fa-caret-left
| {{_ 'previous'}}
.page-info
| {{_ 'page'}} {{pagination.page}} {{_ 'of'}} {{pagination.totalPages}}
if pagination.hasNext
button.btn.btn-sm.btn-default.js-next-page
| {{_ 'next'}}
| ▶️
i.fa.fa-caret-right
template(name="cronJobs")
.cron-jobs
.jobs-header
h2
| ⏰
i.fa.fa-clock-o
| {{_ 'cron-jobs'}}
.jobs-controls
button.btn.btn-success.js-refresh-jobs
| 🔄
i.fa.fa-refresh
| {{_ 'refresh'}}
.jobs-list
@ -289,20 +289,20 @@ template(name="cronJobs")
.btn-group
if isRunning
button.btn.btn-sm.btn-warning.js-pause-job(data-job="{{name}}")
| ⏸️
i.fa.fa-pause
else
button.btn.btn-sm.btn-success.js-start-job(data-job="{{name}}")
| ▶️
i.fa.fa-caret-right
button.btn.btn-sm.btn-danger.js-stop-job(data-job="{{name}}")
| ⏹️
i.fa.fa-stop
button.btn.btn-sm.btn-danger.js-remove-job(data-job="{{name}}")
| 🗑️
i.fa.fa-trash
template(name="cronAddJob")
.cron-add-job
.add-job-header
h2
|
i.fa.fa-plus
| {{_ 'add-cron-job'}}
.add-job-form
@ -333,8 +333,8 @@ template(name="cronAddJob")
.form-actions
button.btn.btn-primary(type="submit")
|
i.fa.fa-plus
| {{_ 'add-job'}}
button.btn.btn-default.js-cancel-add-job
| ❌
i.fa.fa-times-thin
| {{_ 'cancel'}}

View file

@ -5,14 +5,14 @@ template(name='information')
else
.content-title
span
|
i.fa.fa-info-circle
| {{_ 'info'}}
.content-body
.side-menu
ul
li.active
a.js-setting-menu(data-id="information-display")
|
i.fa.fa-info-circle
| {{_ 'info'}}
.main-body
+statistics

View file

@ -4,9 +4,10 @@ template(name="migrationProgress")
.migration-progress-modal
.migration-progress-header
h3.migration-progress-title
| 🔄 {{_ 'migration-progress-title'}}
i.fa.fa-recycle
| {{_ 'migration-progress-title'}}
.migration-progress-close.js-close-migration-progress
| ❌
i.fa.fa-times-thin
.migration-progress-content
.migration-progress-overall

View file

@ -9,34 +9,34 @@ template(name="people")
+spinner
else if orgSetting.get
span
| 🌐
i.fa.fa-globe
unless isMiniScreen
| {{_ 'organizations'}}
input#searchOrgInput(placeholder="{{_ 'search'}}")
button#searchOrgButton
| 🔍
i.fa.fa-search
| {{_ 'search'}}
.ext-box-right
span {{#unless isMiniScreen}}{{_ 'org-number'}}{{/unless}} #{orgNumber}
else if teamSetting.get
span
| 👥
i.fa.fa-users
unless isMiniScreen
| {{_ 'teams'}}
input#searchTeamInput(placeholder="{{_ 'search'}}")
button#searchTeamButton
| 🔍
i.fa.fa-search
| {{_ 'search'}}
.ext-box-right
span {{#unless isMiniScreen}}{{_ 'team-number'}}{{/unless}} #{teamNumber}
else if peopleSetting.get
span
| 👤
i.fa.fa-user
unless isMiniScreen
| {{_ 'people'}}
input#searchInput(placeholder="{{_ 'search'}}")
button#searchButton
| 🔍
i.fa.fa-search
| {{_ 'search'}}
.divLockedUsersFilter
.flex-container
@ -48,17 +48,19 @@ template(name="people")
option(value="inactive") {{_ 'admin-people-filter-inactive'}}
option(value="admin") Admin
button#unlockAllUsers.unlock-all-btn
span.emoji-icon 🔓
span.emoji-icon
i.fa.fa-unlock
| {{_ 'accounts-lockout-unlock-all'}}
.ext-box-right
span {{#unless isMiniScreen}}{{_ 'people-number'}}{{/unless}} #{peopleNumber}
.divAddOrRemoveTeam#divAddOrRemoveTeam
button#addOrRemoveTeam
| ✏️
i.fa.fa-pencil-square-o
| {{_ 'add'}} / {{_ 'delete'}} {{_ 'teams'}}
else if lockedUsersSetting.get
span
span.emoji-icon.text-red 🔒
span.emoji-icon.text-red
i.fa.fa-lock
unless isMiniScreen
| {{_ 'accounts-lockout-locked-users'}}
@ -67,19 +69,20 @@ template(name="people")
ul
li.active
a.js-org-menu(data-id="org-setting")
| 🌐
i.fa.fa-globe
| {{_ 'organizations'}}
li
a.js-team-menu(data-id="team-setting")
| 👥
i.fa.fa-users
| {{_ 'teams'}}
li
a.js-people-menu(data-id="people-setting")
| 👤
i.fa.fa-user
| {{_ 'people'}}
li
a.js-locked-users-menu(data-id="locked-users-setting")
span.emoji-icon.text-red 🔒
span.emoji-icon.text-red
i.fa.fa-lock
| {{_ 'accounts-lockout-locked-users'}}
.main-body
if loading.get
@ -155,17 +158,17 @@ template(name="selectAllUser")
template(name="newOrgRow")
a.new-org
|
i.fa.fa-plus
| {{_ 'new'}}
template(name="newTeamRow")
a.new-team
|
i.fa.fa-plus
| {{_ 'new'}}
template(name="newUserRow")
a.new-user
|
i.fa.fa-plus
| {{_ 'new'}}
template(name="orgRow")
@ -197,7 +200,7 @@ template(name="orgRow")
| {{_ 'no'}}
td
a.edit-org
| ✏️
i.fa.fa-pencil-square-o
| {{_ 'edit'}}
a.more-settings-org
| ⋯
@ -231,7 +234,7 @@ template(name="teamRow")
| {{_ 'no'}}
td
a.edit-team
| ✏️
i.fa.fa-pencil-square-o
| {{_ 'edit'}}
a.more-settings-team
| ⋯
@ -240,7 +243,7 @@ template(name="peopleRow")
tr
td
a.edit-user
| ✏️
i.fa.fa-pencil-square-o
| {{_ 'edit'}}
a.more-settings-user
| ⋯
@ -268,14 +271,18 @@ template(name="peopleRow")
| {{_ 'no'}}
td.account-active-status
if userData.loginDisabled
span.text-red.js-toggle-active-status(data-user-id=userData._id, data-is-active="false", title="{{_ 'admin-people-user-inactive'}}") 🚫
span.text-red.js-toggle-active-status(data-user-id=userData._id, data-is-active="false", title="{{_ 'admin-people-user-inactive'}}")
i.fa.fa-ban
else
span.text-green.js-toggle-active-status(data-user-id=userData._id, data-is-active="true", title="{{_ 'admin-people-user-active'}}") ✅
span.text-green.js-toggle-active-status(data-user-id=userData._id, data-is-active="true", title="{{_ 'admin-people-user-active'}}")
i.fa.fa-check
td.account-status
if isUserLocked
span.text-red.js-toggle-lock-status.emoji-icon(data-user-id=userData._id, data-is-locked="true", title="{{_ 'accounts-lockout-click-to-unlock'}}") 🔒
span.text-red.js-toggle-lock-status.emoji-icon(data-user-id=userData._id, data-is-locked="true", title="{{_ 'accounts-lockout-click-to-unlock'}}")
i.fa.fa-lock
else
span.text-green.js-toggle-lock-status.emoji-icon(data-user-id=userData._id, data-is-locked="false", title="{{_ 'accounts-lockout-user-unlocked'}}") 🔓
span.text-green.js-toggle-lock-status.emoji-icon(data-user-id=userData._id, data-is-locked="false", title="{{_ 'accounts-lockout-user-unlocked'}}")
i.fa.fa-unlock
if userData.loginDisabled
td <s>{{ moment userData.createdAt 'LLL' }}</s>
else
@ -395,8 +402,10 @@ template(name="editUserPopup")
option(value="{{value}}") {{_ value}}
label
| {{_ 'organizations'}}
span#addUserOrg
span#removeUserOrg
span#addUserOrg
i.fa.fa-plus
span#removeUserOrg
i.fa.fa-minus
select.js-orgs#jsOrgs
option(value="-1") {{_ 'organizations'}} :
each value in orgsDatas
@ -405,8 +414,10 @@ template(name="editUserPopup")
input#jsUserOrgIdsInPut.js-userOrgIds.hide(type="hidden" value=user.orgIdsUserBelongs)
label
| {{_ 'teams'}}
span#addUserTeam
span#removeUserTeam
span#addUserTeam
i.fa.fa-plus
span#removeUserTeam
i.fa.fa-minus
select.js-teams#jsTeams
option(value="-1") {{_ 'teams'}} :
each value in teamsDatas
@ -538,8 +549,10 @@ template(name="newUserPopup")
option(value="{{value}}") {{_ value}}
label
| {{_ 'organizations'}}
span#addUserOrgNewUser
span#removeUserOrgNewUser
span#addUserOrgNewUser
i.fa.fa-plus
span#removeUserOrgNewUser
i.fa.fa-minus
select.js-orgsNewUser#jsOrgsNewUser
option(value="-1") {{_ 'organizations'}} :
each value in orgsDatas
@ -548,8 +561,10 @@ template(name="newUserPopup")
input#jsUserOrgIdsInPutNewUser.js-userOrgIdsNewUser.hide(type="text" value=user.orgIdsUserBelongs)
label
| {{_ 'teams'}}
span#addUserTeamNewUser
span#removeUserTeamNewUser
span#addUserTeamNewUser
i.fa.fa-plus
span#removeUserTeamNewUser
i.fa.fa-minus
select.js-teamsNewUser#jsTeamsNewUser
option(value="-1") {{_ 'teams'}} :
each value in teamsDatas
@ -583,7 +598,7 @@ template(name="settingsOrgPopup")
// to impersonate organization?
// li
// a.impersonate-org
// | 👤
// i.fa.fa-user
// | {{_ 'impersonate-org'}}
//
//
@ -606,7 +621,7 @@ template(name="settingsUserPopup")
ul.pop-over-list
li
a.impersonate-user
| 👤
i.fa.fa-user
| {{_ 'impersonate-user'}}
br
hr

View file

@ -6,87 +6,107 @@ template(name="setting")
.content-title.ext-box
if isGeneralSetting
span
span.emoji-icon 🔑
span.emoji-icon
i.fa.fa-key
| {{_ 'registration'}}
else if isEmailSetting
span
span.emoji-icon ✉️
span.emoji-icon
i.fa.fa-envelope
| {{_ 'email'}}
else if isAccountSetting
span
span.emoji-icon 👥
span.emoji-icon
i.fa.fa-users
| {{_ 'accounts'}}
else if isTableVisibilityModeSetting
span
span.emoji-icon 👁️
span.emoji-icon
i.fa.fa-eye
| {{_ 'tableVisibilityMode'}}
else if isAnnouncementSetting
span
span.emoji-icon 📢
span.emoji-icon
i.fa.fa-bullhorn
| {{_ 'admin-announcement'}}
else if isAccessibilitySetting
span
span.emoji-icon ♿
span.emoji-icon
i.fa.fa-universal-access
| {{_ 'accessibility'}}
else if isLayoutSetting
span
span.emoji-icon 🔗
span.emoji-icon
i.fa.fa-link
| {{_ 'layout'}}
else if isWebhookSetting
span
span.emoji-icon 🌐
span.emoji-icon
i.fa.fa-globe
| {{_ 'global-webhook'}}
else if isAttachmentSettings
span
span.emoji-iconpan.emoji-icon 📎
span.emoji-icon
i.fa.fa-paperclip
| {{_ 'attachments'}}
else if isCronSettings
span
span.emoji-icon ⏰
span.emoji-icon
i.fa.fa-clock
| {{_ 'cron'}}
.content-body
.side-menu
ul
li(class="{{#if isGeneralSetting}}active{{/if}}")
a.js-setting-menu(data-id="registration-setting")
span.emoji-icon 🔑
span.emoji-icon
i.fa.fa-key
| {{_ 'registration'}}
unless isSandstorm
li(class="{{#if isEmailSetting}}active{{/if}}")
a.js-setting-menu(data-id="email-setting")
span.emoji-icon ✉️
span.emoji-icon
i.fa.fa-envelope
| {{_ 'email'}}
li(class="{{#if isAccountSetting}}active{{/if}}")
a.js-setting-menu(data-id="account-setting")
span.emoji-icon 👥
span.emoji-icon
i.fa.fa-users
| {{_ 'accounts'}}
li(class="{{#if isTableVisibilityModeSetting}}active{{/if}}")
a.js-setting-menu(data-id="tableVisibilityMode-setting")
span.emoji-icon 👁️
span.emoji-icon
i.fa.fa-eye
| {{_ 'tableVisibilityMode'}}
li(class="{{#if isAnnouncementSetting}}active{{/if}}")
a.js-setting-menu(data-id="announcement-setting")
span.emoji-icon 📢
span.emoji-icon
i.fa.fa-bullhorn
| {{_ 'admin-announcement'}}
li(class="{{#if isAccessibilitySetting}}active{{/if}}")
a.js-setting-menu(data-id="accessibility-setting")
span.emoji-icon ♿
span.emoji-icon
i.fa.fa-universal-access
| {{_ 'accessibility'}}
li(class="{{#if isLayoutSetting}}active{{/if}}")
a.js-setting-menu(data-id="layout-setting")
span.emoji-icon 🔗
span.emoji-icon
i.fa.fa-link
| {{_ 'layout'}}
li(class="{{#if isWebhookSetting}}active{{/if}}")
a.js-setting-menu(data-id="webhook-setting")
span.emoji-icon 🌐
span.emoji-icon
i.fa.fa-globe
| {{_ 'global-webhook'}}
li(class="{{#if isAttachmentSettings}}active{{/if}}")
a.js-setting-menu(data-id="attachment-settings")
span.emoji-icon 📎
span.emoji-icon
i.fa.fa-paperclip
| {{_ 'attachments'}}
li(class="{{#if isCronSettings}}active{{/if}}")
a.js-setting-menu(data-id="cron-settings")
span.emoji-icon ⏰
span.emoji-icon
i.fa.fa-clock
| {{_ 'cron'}}
.main-body
if isLoading

View file

@ -5,31 +5,38 @@ template(name="settingHeaderBar")
.setting-header-btns.left
if currentUser
a.setting-header-btn.settings(class=isSettingsActive href="{{pathFor 'setting'}}")
span.emoji-icon ⚙️
span.emoji-icon
i.fa.fa-cog
span {{_ 'settings'}}
a.setting-header-btn.people(class=isPeopleActive href="{{pathFor 'people'}}")
span.emoji-icon 👥
span.emoji-icon
i.fa.fa-users
span {{_ 'people'}}
a.setting-header-btn.informations(class=isAdminReportsActive href="{{pathFor 'admin-reports'}}")
span.emoji-icon 📋
span.emoji-icon
i.fa.fa-file-text-o
span {{_ 'reports'}}
a.setting-header-btn.informations(class=isAttachmentsActive href="{{pathFor 'attachments'}}")
span.emoji-icon 📎
span.emoji-icon
i.fa.fa-paperclip
span {{_ 'attachments'}}
a.setting-header-btn.informations(class=isTranslationActive href="{{pathFor 'translation'}}")
span.emoji-icon 🔤
span.emoji-icon
i.fa.fa-globe
span {{_ 'translation'}}
a.setting-header-btn.informations(class=isInformationActive href="{{pathFor 'information'}}")
span.emoji-icon
span.emoji-icon
i.fa.fa-info-circle
span {{_ 'info'}}
else
a.setting-header-btn.js-log-in(
title="{{_ 'log-in'}}")
span.emoji-icon 🚪
span.emoji-icon
i.fa.fa-sign-in
span {{_ 'log-in'}}

View file

@ -9,12 +9,12 @@ template(name="translation")
+spinner
else if translationSetting.get
span
| 🔤
i.fa.fa-globe
unless isMiniScreen
| {{_ 'translation'}}
input#searchTranslationInput(placeholder="{{_ 'search'}}")
button#searchTranslationButton
| 🔍
i.fa.fa-search
| {{_ 'search'}}
.ext-box-right
span {{#unless isMiniScreen}}{{_ 'translation-number'}}{{/unless}} #{translationNumber}
@ -24,7 +24,7 @@ template(name="translation")
ul
li.active
a.js-translation-menu(data-id="translation-setting")
| 🔤
i.fa.fa-globe
| {{_ 'translation'}}
.main-body
if loading.get
@ -47,7 +47,7 @@ template(name="translationGeneral")
template(name="newTranslationRow")
a.new-translation
|
i.fa.fa-plus
| {{_ 'new'}}
template(name="translationRow")
@ -57,7 +57,7 @@ template(name="translationRow")
td {{translationData.translationText}}
td
a.edit-translation
| ✏️
i.fa.fa-pencil-square-o
| {{_ 'edit'}}
a.more-settings-translation
| ⋯