mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 23:40:13 +01:00
Convert Font Awesome to Unicode Icons. Part 1. In Progress.
Some checks are pending
Some checks are pending
Thanks to xet7 !
This commit is contained in:
parent
a7af4b4809
commit
2947238a02
20 changed files with 342 additions and 183 deletions
|
|
@ -93,4 +93,4 @@ ejson@1.1.3
|
||||||
logging@1.3.3
|
logging@1.3.3
|
||||||
wekan-fullcalendar
|
wekan-fullcalendar
|
||||||
momentjs:moment@2.29.3
|
momentjs:moment@2.29.3
|
||||||
wekan-fontawesome
|
# wekan-fontawesome
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,6 @@ wekan-accounts-cas@0.1.0
|
||||||
wekan-accounts-lockout@1.0.0
|
wekan-accounts-lockout@1.0.0
|
||||||
wekan-accounts-oidc@1.0.10
|
wekan-accounts-oidc@1.0.10
|
||||||
wekan-accounts-sandstorm@0.8.0
|
wekan-accounts-sandstorm@0.8.0
|
||||||
wekan-fontawesome@6.4.2
|
|
||||||
wekan-fullcalendar@3.10.5
|
wekan-fullcalendar@3.10.5
|
||||||
wekan-ldap@0.0.2
|
wekan-ldap@0.0.2
|
||||||
wekan-markdown@1.0.9
|
wekan-markdown@1.0.9
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ template(name="boardConversionProgress")
|
||||||
.board-conversion-modal
|
.board-conversion-modal
|
||||||
.board-conversion-header
|
.board-conversion-header
|
||||||
h3
|
h3
|
||||||
i.fa.fa-cogs
|
| ⚙️
|
||||||
| {{_ 'converting-board'}}
|
| {{_ 'converting-board'}}
|
||||||
p {{_ 'converting-board-description'}}
|
p {{_ 'converting-board-description'}}
|
||||||
|
|
||||||
|
|
@ -14,14 +14,14 @@ template(name="boardConversionProgress")
|
||||||
.progress-text {{conversionProgress}}%
|
.progress-text {{conversionProgress}}%
|
||||||
|
|
||||||
.conversion-status
|
.conversion-status
|
||||||
i.fa.fa-spinner.fa-spin
|
| ⚙️
|
||||||
| {{conversionStatus}}
|
| {{conversionStatus}}
|
||||||
|
|
||||||
.conversion-time(style="{{#unless conversionEstimatedTime}}display: none;{{/unless}}")
|
.conversion-time(style="{{#unless conversionEstimatedTime}}display: none;{{/unless}}")
|
||||||
i.fa.fa-clock-o
|
| ⏰
|
||||||
| {{_ 'estimated-time-remaining'}}: {{conversionEstimatedTime}}
|
| {{_ 'estimated-time-remaining'}}: {{conversionEstimatedTime}}
|
||||||
|
|
||||||
.board-conversion-footer
|
.board-conversion-footer
|
||||||
.conversion-info
|
.conversion-info
|
||||||
i.fa.fa-info-circle
|
| ℹ️
|
||||||
| {{_ 'conversion-info-text'}}
|
| {{_ 'conversion-info-text'}}
|
||||||
|
|
|
||||||
|
|
@ -34,10 +34,10 @@ template(name="attachmentViewer")
|
||||||
#viewer-overlay.hidden
|
#viewer-overlay.hidden
|
||||||
#viewer-top-bar
|
#viewer-top-bar
|
||||||
span#attachment-name
|
span#attachment-name
|
||||||
a#viewer-close.fa.fa-times-thin
|
a#viewer-close ❌
|
||||||
|
|
||||||
#viewer-container
|
#viewer-container
|
||||||
i.fa.fa-chevron-left.attachment-arrow#prev-attachment
|
| ◀️
|
||||||
#viewer-content
|
#viewer-content
|
||||||
img#image-viewer.hidden
|
img#image-viewer.hidden
|
||||||
video#video-viewer.hidden(controls="true")
|
video#video-viewer.hidden(controls="true")
|
||||||
|
|
@ -45,7 +45,7 @@ template(name="attachmentViewer")
|
||||||
object#pdf-viewer.hidden(type="application/pdf")
|
object#pdf-viewer.hidden(type="application/pdf")
|
||||||
span.pdf-preview-error {{_ 'preview-pdf-not-supported' }}
|
span.pdf-preview-error {{_ 'preview-pdf-not-supported' }}
|
||||||
object#txt-viewer.hidden(type="text/plain")
|
object#txt-viewer.hidden(type="text/plain")
|
||||||
i.fa.fa-chevron-right.attachment-arrow#next-attachment
|
| ▶️
|
||||||
|
|
||||||
template(name="attachmentGallery")
|
template(name="attachmentGallery")
|
||||||
|
|
||||||
|
|
@ -53,7 +53,7 @@ template(name="attachmentGallery")
|
||||||
|
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
a.attachment-item.add-attachment.js-add-attachment
|
a.attachment-item.add-attachment.js-add-attachment
|
||||||
i.fa.fa-plus.icon
|
| ➕
|
||||||
|
|
||||||
each attachments
|
each attachments
|
||||||
|
|
||||||
|
|
@ -87,21 +87,22 @@ template(name="attachmentGallery")
|
||||||
span.file-size ({{fileSize size}})
|
span.file-size ({{fileSize size}})
|
||||||
.attachment-actions
|
.attachment-actions
|
||||||
a.js-download(href="{{link}}?download=true", download="{{name}}")
|
a.js-download(href="{{link}}?download=true", download="{{name}}")
|
||||||
i.fa.fa-download.icon(title="{{_ 'download'}}")
|
| ⬇️(title="{{_ 'download'}}")
|
||||||
if currentUser.isBoardMember
|
if currentUser.isBoardMember
|
||||||
unless currentUser.isCommentOnly
|
unless currentUser.isCommentOnly
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
a.js-rename
|
a.js-rename
|
||||||
i.fa.fa-pencil-square-o.icon(title="{{_ 'rename'}}")
|
| ✏️(title="{{_ 'rename'}}")
|
||||||
a.js-confirm-delete
|
a.js-confirm-delete
|
||||||
i.fa.fa-trash.icon(title="{{_ 'delete'}}")
|
| 🗑️(title="{{_ 'delete'}}")
|
||||||
a.fa.fa-navicon.icon.js-open-attachment-menu(data-attachment-link="{{link}}" title="{{_ 'attachmentActionsPopup-title'}}")
|
a.js-open-attachment-menu
|
||||||
|
| ☰(data-attachment-link="{{link}}" title="{{_ 'attachmentActionsPopup-title'}}")
|
||||||
|
|
||||||
// Migration spinner overlay
|
// Migration spinner overlay
|
||||||
if isAttachmentMigrating _id
|
if isAttachmentMigrating _id
|
||||||
.attachment-migration-overlay
|
.attachment-migration-overlay
|
||||||
.migration-spinner
|
.migration-spinner
|
||||||
i.fa.fa-cog.fa-spin
|
| ⚙️
|
||||||
.migration-text {{_ 'migrating-attachment'}}
|
.migration-text {{_ 'migrating-attachment'}}
|
||||||
|
|
||||||
template(name="attachmentActionsPopup")
|
template(name="attachmentActionsPopup")
|
||||||
|
|
@ -109,8 +110,8 @@ template(name="attachmentActionsPopup")
|
||||||
li
|
li
|
||||||
if isImage
|
if isImage
|
||||||
a(class="{{#if isCover}}js-remove-cover{{else}}js-add-cover{{/if}}")
|
a(class="{{#if isCover}}js-remove-cover{{else}}js-add-cover{{/if}}")
|
||||||
i.fa.fa-book
|
| 📖
|
||||||
i.fa.fa-picture-o
|
| 🖼️
|
||||||
if isCover
|
if isCover
|
||||||
| {{_ 'remove-cover'}}
|
| {{_ 'remove-cover'}}
|
||||||
else
|
else
|
||||||
|
|
@ -118,7 +119,7 @@ template(name="attachmentActionsPopup")
|
||||||
if currentUser.isBoardAdmin
|
if currentUser.isBoardAdmin
|
||||||
if isImage
|
if isImage
|
||||||
a(class="{{#if isBackgroundImage}}js-remove-background-image{{else}}js-add-background-image{{/if}}")
|
a(class="{{#if isBackgroundImage}}js-remove-background-image{{else}}js-add-background-image{{/if}}")
|
||||||
i.fa.fa-picture-o
|
| 🖼️
|
||||||
if isBackgroundImage
|
if isBackgroundImage
|
||||||
| {{_ 'remove-background-image'}}
|
| {{_ 'remove-background-image'}}
|
||||||
else
|
else
|
||||||
|
|
@ -126,19 +127,19 @@ template(name="attachmentActionsPopup")
|
||||||
|
|
||||||
if $neq versions.original.storage "fs"
|
if $neq versions.original.storage "fs"
|
||||||
a.js-move-storage-fs
|
a.js-move-storage-fs
|
||||||
i.fa.fa-arrow-right
|
| ▶️
|
||||||
| {{_ 'attachment-move-storage-fs'}}
|
| {{_ 'attachment-move-storage-fs'}}
|
||||||
|
|
||||||
if $neq versions.original.storage "gridfs"
|
if $neq versions.original.storage "gridfs"
|
||||||
if versions.original.storage
|
if versions.original.storage
|
||||||
a.js-move-storage-gridfs
|
a.js-move-storage-gridfs
|
||||||
i.fa.fa-arrow-right
|
| ▶️
|
||||||
| {{_ 'attachment-move-storage-gridfs'}}
|
| {{_ 'attachment-move-storage-gridfs'}}
|
||||||
|
|
||||||
if $neq versions.original.storage "s3"
|
if $neq versions.original.storage "s3"
|
||||||
if versions.original.storage
|
if versions.original.storage
|
||||||
a.js-move-storage-s3
|
a.js-move-storage-s3
|
||||||
i.fa.fa-arrow-right
|
| ▶️
|
||||||
| {{_ 'attachment-move-storage-s3'}}
|
| {{_ 'attachment-move-storage-s3'}}
|
||||||
|
|
||||||
template(name="attachmentRenamePopup")
|
template(name="attachmentRenamePopup")
|
||||||
|
|
|
||||||
|
|
@ -42,23 +42,64 @@
|
||||||
.card-date.long-overdue.is-active {
|
.card-date.long-overdue.is-active {
|
||||||
background-color: #fd3e24;
|
background-color: #fd3e24;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Date type specific colors */
|
||||||
|
.card-date.received-date {
|
||||||
|
background-color: #0079bf; /* Blue for received */
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-date.received-date:hover,
|
||||||
|
.card-date.received-date.is-active {
|
||||||
|
background-color: #005a8b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-date.start-date {
|
||||||
|
background-color: #3cb500; /* Green for start */
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-date.start-date:hover,
|
||||||
|
.card-date.start-date.is-active {
|
||||||
|
background-color: #2d8f00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-date.due-date {
|
||||||
|
background-color: #ff9f19; /* Orange for due */
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-date.due-date:hover,
|
||||||
|
.card-date.due-date.is-active {
|
||||||
|
background-color: #e68a00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-date.end-date {
|
||||||
|
background-color: #a632db; /* Purple for end */
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-date.end-date:hover,
|
||||||
|
.card-date.end-date.is-active {
|
||||||
|
background-color: #8a2bb8;
|
||||||
|
}
|
||||||
.card-date.end-date time::before {
|
.card-date.end-date time::before {
|
||||||
content: "\f253";
|
content: "🏁"; /* Finish flag - represents end/completion */
|
||||||
}
|
}
|
||||||
.card-date.due-date time::before {
|
.card-date.due-date time::before {
|
||||||
content: "\f090";
|
content: "⏰"; /* Alarm clock - represents due/deadline */
|
||||||
}
|
}
|
||||||
.card-date.start-date time::before {
|
.card-date.start-date time::before {
|
||||||
content: "\f251";
|
content: "🚀"; /* Rocket - represents start/launch */
|
||||||
}
|
}
|
||||||
.card-date.received-date time::before {
|
.card-date.received-date time::before {
|
||||||
content: "\f08b";
|
content: "📥"; /* Inbox tray - represents received/incoming */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Generic date badge and custom field date */
|
||||||
|
.card-date:not(.received-date):not(.start-date):not(.due-date):not(.end-date) time::before {
|
||||||
|
content: "📅"; /* Calendar - represents generic date */
|
||||||
}
|
}
|
||||||
.card-date time::before {
|
.card-date time::before {
|
||||||
font: normal normal normal 14px/1 FontAwesome;
|
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
margin-right: 0.3em;
|
margin-right: 0.3em;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.customfield-date {
|
.customfield-date {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
|
||||||
|
|
@ -21,3 +21,75 @@ template(name="dateCustomField")
|
||||||
if showWeekOfYear
|
if showWeekOfYear
|
||||||
b
|
b
|
||||||
| {{showWeek}}
|
| {{showWeek}}
|
||||||
|
|
||||||
|
template(name="minicardReceivedDate")
|
||||||
|
if canModifyCard
|
||||||
|
a.js-edit-date.card-date(title="{{_ 'card-received'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
else
|
||||||
|
a.card-date(title="{{_ 'card-received'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
|
||||||
|
template(name="minicardStartDate")
|
||||||
|
if canModifyCard
|
||||||
|
a.js-edit-date.card-date(title="{{_ 'card-start'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
else
|
||||||
|
a.card-date(title="{{_ 'card-start'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
|
||||||
|
template(name="minicardDueDate")
|
||||||
|
if canModifyCard
|
||||||
|
a.js-edit-date.card-date(title="{{_ 'card-due'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
else
|
||||||
|
a.card-date(title="{{_ 'card-due'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
|
||||||
|
template(name="minicardEndDate")
|
||||||
|
if canModifyCard
|
||||||
|
a.js-edit-date.card-date(title="{{_ 'card-end'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
else
|
||||||
|
a.card-date(title="{{_ 'card-end'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
|
||||||
|
template(name="minicardCustomFieldDate")
|
||||||
|
a(title="{{_ 'date'}} {{_ 'predicate-week'}} {{#if showWeekOfYear}}{{showWeek}}{{/if}}" class="{{classes}}")
|
||||||
|
time(datetime="{{showISODate}}")
|
||||||
|
| {{showDate}}
|
||||||
|
if showWeekOfYear
|
||||||
|
b
|
||||||
|
| {{showWeek}}
|
||||||
|
|
|
||||||
|
|
@ -329,30 +329,50 @@ class CardCustomFieldDate extends CardDate {
|
||||||
CardCustomFieldDate.register('cardCustomFieldDate');
|
CardCustomFieldDate.register('cardCustomFieldDate');
|
||||||
|
|
||||||
(class extends CardReceivedDate {
|
(class extends CardReceivedDate {
|
||||||
|
template() {
|
||||||
|
return 'minicardReceivedDate';
|
||||||
|
}
|
||||||
|
|
||||||
showDate() {
|
showDate() {
|
||||||
return format(this.date.get(), 'L');
|
return format(this.date.get(), 'L');
|
||||||
}
|
}
|
||||||
}.register('minicardReceivedDate'));
|
}.register('minicardReceivedDate'));
|
||||||
|
|
||||||
(class extends CardStartDate {
|
(class extends CardStartDate {
|
||||||
|
template() {
|
||||||
|
return 'minicardStartDate';
|
||||||
|
}
|
||||||
|
|
||||||
showDate() {
|
showDate() {
|
||||||
return format(this.date.get(), 'YYYY-MM-DD HH:mm');
|
return format(this.date.get(), 'YYYY-MM-DD HH:mm');
|
||||||
}
|
}
|
||||||
}.register('minicardStartDate'));
|
}.register('minicardStartDate'));
|
||||||
|
|
||||||
(class extends CardDueDate {
|
(class extends CardDueDate {
|
||||||
|
template() {
|
||||||
|
return 'minicardDueDate';
|
||||||
|
}
|
||||||
|
|
||||||
showDate() {
|
showDate() {
|
||||||
return format(this.date.get(), 'YYYY-MM-DD HH:mm');
|
return format(this.date.get(), 'YYYY-MM-DD HH:mm');
|
||||||
}
|
}
|
||||||
}.register('minicardDueDate'));
|
}.register('minicardDueDate'));
|
||||||
|
|
||||||
(class extends CardEndDate {
|
(class extends CardEndDate {
|
||||||
|
template() {
|
||||||
|
return 'minicardEndDate';
|
||||||
|
}
|
||||||
|
|
||||||
showDate() {
|
showDate() {
|
||||||
return format(this.date.get(), 'YYYY-MM-DD HH:mm');
|
return format(this.date.get(), 'YYYY-MM-DD HH:mm');
|
||||||
}
|
}
|
||||||
}.register('minicardEndDate'));
|
}.register('minicardEndDate'));
|
||||||
|
|
||||||
(class extends CardCustomFieldDate {
|
(class extends CardCustomFieldDate {
|
||||||
|
template() {
|
||||||
|
return 'minicardCustomFieldDate';
|
||||||
|
}
|
||||||
|
|
||||||
showDate() {
|
showDate() {
|
||||||
return format(this.date.get(), 'L');
|
return format(this.date.get(), 'L');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,15 +12,19 @@ template(name="cardDetails")
|
||||||
else
|
else
|
||||||
unless isMiniScreen
|
unless isMiniScreen
|
||||||
unless isPopup
|
unless isPopup
|
||||||
a.fa.fa-times-thin.close-card-details.js-close-card-details(title="{{_ 'close-card'}}")
|
a.close-card-details.js-close-card-details(title="{{_ 'close-card'}}")
|
||||||
|
| ❌
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
if cardMaximized
|
if cardMaximized
|
||||||
a.fa.fa-window-minimize.minimize-card-details.js-minimize-card-details(title="{{_ 'minimize-card'}}")
|
a.minimize-card-details.js-minimize-card-details(title="{{_ 'minimize-card'}}")
|
||||||
|
| 🔽
|
||||||
else
|
else
|
||||||
a.fa.fa-window-maximize.maximize-card-details.js-maximize-card-details(title="{{_ 'maximize-card'}}")
|
a.maximize-card-details.js-maximize-card-details(title="{{_ 'maximize-card'}}")
|
||||||
|
| 🔼
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
a.fa.fa-navicon.card-details-menu.js-open-card-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
|
a.card-details-menu.js-open-card-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
|
||||||
a.fa.fa-link.card-copy-button.js-copy-link(
|
| ☰
|
||||||
|
a.card-copy-button.js-copy-link(
|
||||||
id="cardURL_copy"
|
id="cardURL_copy"
|
||||||
class="fa-link"
|
class="fa-link"
|
||||||
title="{{_ 'copy-card-link-to-clipboard'}}"
|
title="{{_ 'copy-card-link-to-clipboard'}}"
|
||||||
|
|
@ -29,10 +33,12 @@ template(name="cardDetails")
|
||||||
span.copied-tooltip {{_ 'copied'}}
|
span.copied-tooltip {{_ 'copied'}}
|
||||||
else
|
else
|
||||||
unless isPopup
|
unless isPopup
|
||||||
a.fa.fa-times-thin.close-card-details.js-close-card-details(title="{{_ 'close-card'}}")
|
a.close-card-details.js-close-card-details(title="{{_ 'close-card'}}")
|
||||||
|
| ❌
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
a.fa.fa-navicon.card-details-menu-mobile-web.js-open-card-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
|
a.card-details-menu-mobile-web.js-open-card-details-menu(title="{{_ 'cardDetailsActionsPopup-title'}}")
|
||||||
a.fa.fa-link.card-copy-mobile-button.js-copy-link(
|
| ☰
|
||||||
|
a.card-copy-mobile-button.js-copy-link(
|
||||||
id="cardURL_copy"
|
id="cardURL_copy"
|
||||||
class="fa-link"
|
class="fa-link"
|
||||||
title="{{_ 'copy-card-link-to-clipboard'}}"
|
title="{{_ 'copy-card-link-to-clipboard'}}"
|
||||||
|
|
@ -47,7 +53,8 @@ template(name="cardDetails")
|
||||||
| ##{getCardNumber}
|
| ##{getCardNumber}
|
||||||
= getTitle
|
= getTitle
|
||||||
if isWatching
|
if isWatching
|
||||||
i.card-details-watch.fa.fa-eye
|
i.card-details-watch
|
||||||
|
| 👁️
|
||||||
.card-details-path
|
.card-details-path
|
||||||
each parentList
|
each parentList
|
||||||
| >
|
| >
|
||||||
|
|
@ -69,7 +76,7 @@ template(name="cardDetails")
|
||||||
if hasActiveUploads
|
if hasActiveUploads
|
||||||
.card-details-upload-progress
|
.card-details-upload-progress
|
||||||
.upload-progress-header
|
.upload-progress-header
|
||||||
i.fa.fa-upload
|
| 📤
|
||||||
span {{_ 'uploading-files'}} ({{uploadCount}})
|
span {{_ 'uploading-files'}} ({{uploadCount}})
|
||||||
each uploads
|
each uploads
|
||||||
.upload-progress-item(class="{{#if $eq status 'error'}}upload-error{{/if}}")
|
.upload-progress-item(class="{{#if $eq status 'error'}}upload-error{{/if}}")
|
||||||
|
|
@ -78,11 +85,11 @@ template(name="cardDetails")
|
||||||
.upload-progress-fill(style="width: {{progress}}%")
|
.upload-progress-fill(style="width: {{progress}}%")
|
||||||
if $eq status 'error'
|
if $eq status 'error'
|
||||||
.upload-progress-error
|
.upload-progress-error
|
||||||
i.fa.fa-exclamation-triangle
|
| ⚠️
|
||||||
span {{_ 'upload-failed'}}
|
span {{_ 'upload-failed'}}
|
||||||
else if $eq status 'completed'
|
else if $eq status 'completed'
|
||||||
.upload-progress-success
|
.upload-progress-success
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
span {{_ 'upload-completed'}}
|
span {{_ 'upload-completed'}}
|
||||||
|
|
||||||
.card-details-left
|
.card-details-left
|
||||||
|
|
@ -91,7 +98,7 @@ template(name="cardDetails")
|
||||||
if currentBoard.allowsLabels
|
if currentBoard.allowsLabels
|
||||||
.card-details-item.card-details-item-labels
|
.card-details-item.card-details-item-labels
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-tags
|
| 🏷️
|
||||||
| {{_ 'labels'}}
|
| {{_ 'labels'}}
|
||||||
a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}")
|
a(class="{{#if canModifyCard}}js-add-labels{{else}}is-disabled{{/if}}" title="{{_ 'card-labels-title'}}")
|
||||||
each labels
|
each labels
|
||||||
|
|
@ -101,7 +108,7 @@ template(name="cardDetails")
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
|
a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
|
|
||||||
if currentBoard.hasAnyAllowsDate
|
if currentBoard.hasAnyAllowsDate
|
||||||
hr
|
hr
|
||||||
|
|
@ -109,7 +116,7 @@ template(name="cardDetails")
|
||||||
if currentBoard.allowsReceivedDate
|
if currentBoard.allowsReceivedDate
|
||||||
.card-details-item.card-details-item-received
|
.card-details-item.card-details-item-received
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-sign-out
|
| 📥
|
||||||
| {{_ 'card-received'}}
|
| {{_ 'card-received'}}
|
||||||
if getReceived
|
if getReceived
|
||||||
+cardReceivedDate
|
+cardReceivedDate
|
||||||
|
|
@ -117,12 +124,12 @@ template(name="cardDetails")
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
a.card-label.add-label.js-received-date
|
a.card-label.add-label.js-received-date
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
|
|
||||||
if currentBoard.allowsStartDate
|
if currentBoard.allowsStartDate
|
||||||
.card-details-item.card-details-item-start
|
.card-details-item.card-details-item-start
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-hourglass-start
|
| 🚀
|
||||||
| {{_ 'card-start'}}
|
| {{_ 'card-start'}}
|
||||||
if getStart
|
if getStart
|
||||||
+cardStartDate
|
+cardStartDate
|
||||||
|
|
@ -130,12 +137,12 @@ template(name="cardDetails")
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
a.card-label.add-label.js-start-date
|
a.card-label.add-label.js-start-date
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
|
|
||||||
if currentBoard.allowsDueDate
|
if currentBoard.allowsDueDate
|
||||||
.card-details-item.card-details-item-due
|
.card-details-item.card-details-item-due
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-sign-in
|
| ⏰
|
||||||
| {{_ 'card-due'}}
|
| {{_ 'card-due'}}
|
||||||
if getDue
|
if getDue
|
||||||
+cardDueDate
|
+cardDueDate
|
||||||
|
|
@ -143,12 +150,12 @@ template(name="cardDetails")
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
a.card-label.add-label.js-due-date
|
a.card-label.add-label.js-due-date
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
|
|
||||||
if currentBoard.allowsEndDate
|
if currentBoard.allowsEndDate
|
||||||
.card-details-item.card-details-item-end
|
.card-details-item.card-details-item-end
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-hourglass-end
|
| 🏁
|
||||||
| {{_ 'card-end'}}
|
| {{_ 'card-end'}}
|
||||||
if getEnd
|
if getEnd
|
||||||
+cardEndDate
|
+cardEndDate
|
||||||
|
|
@ -156,7 +163,7 @@ template(name="cardDetails")
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
a.card-label.add-label.js-end-date
|
a.card-label.add-label.js-end-date
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
|
|
||||||
if currentBoard.hasAnyAllowsUser
|
if currentBoard.hasAnyAllowsUser
|
||||||
hr
|
hr
|
||||||
|
|
@ -164,7 +171,7 @@ template(name="cardDetails")
|
||||||
if currentBoard.allowsCreator
|
if currentBoard.allowsCreator
|
||||||
.card-details-item.card-details-item-creator
|
.card-details-item.card-details-item-creator
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-user
|
| 👤
|
||||||
| {{_ 'creator'}}
|
| {{_ 'creator'}}
|
||||||
|
|
||||||
+userAvatar(userId=userId noRemove=true)
|
+userAvatar(userId=userId noRemove=true)
|
||||||
|
|
@ -174,7 +181,7 @@ template(name="cardDetails")
|
||||||
if currentBoard.allowsMembers
|
if currentBoard.allowsMembers
|
||||||
.card-details-item.card-details-item-members
|
.card-details-item.card-details-item-members
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-users
|
| 👤s
|
||||||
| {{_ 'members'}}
|
| {{_ 'members'}}
|
||||||
each userId in getMembers
|
each userId in getMembers
|
||||||
+userAvatar(userId=userId cardId=_id)
|
+userAvatar(userId=userId cardId=_id)
|
||||||
|
|
@ -182,13 +189,13 @@ template(name="cardDetails")
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}")
|
a.member.add-member.card-details-item-add-button.js-add-members(title="{{_ 'card-members-title'}}")
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
|
|
||||||
//if assigneeSelected
|
//if assigneeSelected
|
||||||
if currentBoard.allowsAssignee
|
if currentBoard.allowsAssignee
|
||||||
.card-details-item.card-details-item-assignees
|
.card-details-item.card-details-item-assignees
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-user
|
| 👤
|
||||||
| {{_ 'assignee'}}
|
| {{_ 'assignee'}}
|
||||||
each userId in getAssignees
|
each userId in getAssignees
|
||||||
+userAvatar(userId=userId cardId=_id assignee=true)
|
+userAvatar(userId=userId cardId=_id assignee=true)
|
||||||
|
|
@ -199,7 +206,7 @@ template(name="cardDetails")
|
||||||
if currentUser.isWorker
|
if currentUser.isWorker
|
||||||
unless assigneeSelected
|
unless assigneeSelected
|
||||||
a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
|
a.assignee.add-assignee.card-details-item-add-button.js-add-assignees(title="{{_ 'assignee'}}")
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
|
|
||||||
//.card-details-items
|
//.card-details-items
|
||||||
if currentBoard.allowsRequestedBy
|
if currentBoard.allowsRequestedBy
|
||||||
|
|
@ -225,7 +232,7 @@ template(name="cardDetails")
|
||||||
if currentBoard.allowsAssignedBy
|
if currentBoard.allowsAssignedBy
|
||||||
.card-details-item.card-details-item-name
|
.card-details-item.card-details-item-name
|
||||||
h3.card-details-item-title
|
h3.card-details-item-title
|
||||||
i.fa.fa-user-plus
|
| 👤-plus
|
||||||
| {{_ 'assigned-by'}}
|
| {{_ 'assigned-by'}}
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
|
|
@ -350,52 +357,52 @@ template(name="cardDetails")
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-one(class="{{#if $eq pokerState 'one'}}poker-voted{{/if}}") {{_ 'poker-one'}}
|
span.inner.js-poker.js-poker-vote-one(class="{{#if $eq pokerState 'one'}}poker-voted{{/if}}") {{_ 'poker-one'}}
|
||||||
if $eq pokerState "one"
|
if $eq pokerState "one"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-two(class="{{#if $eq pokerState 'two'}}poker-voted{{/if}}") {{_ 'poker-two'}}
|
span.inner.js-poker.js-poker-vote-two(class="{{#if $eq pokerState 'two'}}poker-voted{{/if}}") {{_ 'poker-two'}}
|
||||||
if $eq pokerState "two"
|
if $eq pokerState "two"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-three(class="{{#if $eq pokerState 'three'}}poker-voted{{/if}}") {{_ 'poker-three'}}
|
span.inner.js-poker.js-poker-vote-three(class="{{#if $eq pokerState 'three'}}poker-voted{{/if}}") {{_ 'poker-three'}}
|
||||||
if $eq pokerState "three"
|
if $eq pokerState "three"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-five(class="{{#if $eq pokerState 'five'}}poker-voted{{/if}}") {{_ 'poker-five'}}
|
span.inner.js-poker.js-poker-vote-five(class="{{#if $eq pokerState 'five'}}poker-voted{{/if}}") {{_ 'poker-five'}}
|
||||||
if $eq pokerState "five"
|
if $eq pokerState "five"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-eight(class="{{#if $eq pokerState 'eight'}}poker-voted{{/if}}") {{_ 'poker-eight'}}
|
span.inner.js-poker.js-poker-vote-eight(class="{{#if $eq pokerState 'eight'}}poker-voted{{/if}}") {{_ 'poker-eight'}}
|
||||||
if $eq pokerState "eight"
|
if $eq pokerState "eight"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-thirteen(class="{{#if $eq pokerState 'thirteen'}}poker-voted{{/if}}") {{_ 'poker-thirteen'}}
|
span.inner.js-poker.js-poker-vote-thirteen(class="{{#if $eq pokerState 'thirteen'}}poker-voted{{/if}}") {{_ 'poker-thirteen'}}
|
||||||
if $eq pokerState "thirteen"
|
if $eq pokerState "thirteen"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-twenty(class="{{#if $eq pokerState 'twenty'}}poker-voted{{/if}}") {{_ 'poker-twenty'}}
|
span.inner.js-poker.js-poker-vote-twenty(class="{{#if $eq pokerState 'twenty'}}poker-voted{{/if}}") {{_ 'poker-twenty'}}
|
||||||
if $eq pokerState "twenty"
|
if $eq pokerState "twenty"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-forty(class="{{#if $eq pokerState 'forty'}}poker-voted{{/if}}") {{_ 'poker-forty'}}
|
span.inner.js-poker.js-poker-vote-forty(class="{{#if $eq pokerState 'forty'}}poker-voted{{/if}}") {{_ 'poker-forty'}}
|
||||||
if $eq pokerState "forty"
|
if $eq pokerState "forty"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-one-hundred(class="{{#if $eq pokerState 'oneHundred'}}poker-voted{{/if}}") {{_ 'poker-oneHundred'}}
|
span.inner.js-poker.js-poker-vote-one-hundred(class="{{#if $eq pokerState 'oneHundred'}}poker-voted{{/if}}") {{_ 'poker-oneHundred'}}
|
||||||
if $eq pokerState "oneHundred"
|
if $eq pokerState "oneHundred"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
.poker-deck
|
.poker-deck
|
||||||
.poker-card
|
.poker-card
|
||||||
span.inner.js-poker.js-poker-vote-unsure(class="{{#if $eq pokerState 'unsure'}}poker-voted{{/if}}") {{_ 'poker-unsure'}}
|
span.inner.js-poker.js-poker-vote-unsure(class="{{#if $eq pokerState 'unsure'}}poker-voted{{/if}}") {{_ 'poker-unsure'}}
|
||||||
if $eq pokerState "unsure"
|
if $eq pokerState "unsure"
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
|
|
||||||
if currentUser.isBoardAdmin
|
if currentUser.isBoardAdmin
|
||||||
button.card-details-blue.js-poker-finish(class="{{#if $eq voteState false}}poker-voted{{/if}}") {{_ 'poker-finish'}}
|
button.card-details-blue.js-poker-finish(class="{{#if $eq voteState false}}poker-voted{{/if}}") {{_ 'poker-finish'}}
|
||||||
|
|
@ -812,7 +819,7 @@ template(name="cardMembersPopup")
|
||||||
= user.profile.fullname
|
= user.profile.fullname
|
||||||
| (<span class="username">{{ user.username }}</span>)
|
| (<span class="username">{{ user.username }}</span>)
|
||||||
if isCardMember
|
if isCardMember
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
|
|
||||||
template(name="cardAssigneesPopup")
|
template(name="cardAssigneesPopup")
|
||||||
input.card-assignees-filter(type="text" placeholder="{{_ 'search'}}")
|
input.card-assignees-filter(type="text" placeholder="{{_ 'search'}}")
|
||||||
|
|
@ -826,7 +833,7 @@ template(name="cardAssigneesPopup")
|
||||||
= user.profile.fullname
|
= user.profile.fullname
|
||||||
| (<span class="username">{{ user.username }}</span>)
|
| (<span class="username">{{ user.username }}</span>)
|
||||||
if isCardAssignee
|
if isCardAssignee
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
if currentUser.isWorker
|
if currentUser.isWorker
|
||||||
ul.pop-over-list.js-card-assignee-list
|
ul.pop-over-list.js-card-assignee-list
|
||||||
li.item(class="{{#if currentUser.isCardAssignee}}active{{/if}}")
|
li.item(class="{{#if currentUser.isCardAssignee}}active{{/if}}")
|
||||||
|
|
@ -836,7 +843,7 @@ template(name="cardAssigneesPopup")
|
||||||
= currentUser.profile.fullname
|
= currentUser.profile.fullname
|
||||||
| (<span class="username">{{ currentUser.username }}</span>)
|
| (<span class="username">{{ currentUser.username }}</span>)
|
||||||
if currentUser.isCardAssignee
|
if currentUser.isCardAssignee
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
|
|
||||||
template(name="cardAssigneePopup")
|
template(name="cardAssigneePopup")
|
||||||
.board-assignee-menu
|
.board-assignee-menu
|
||||||
|
|
@ -902,7 +909,7 @@ template(name="setCardColorPopup")
|
||||||
unless $eq color 'white'
|
unless $eq color 'white'
|
||||||
span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
|
span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
|
||||||
if(isSelected color)
|
if(isSelected color)
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
button.primary.confirm.js-submit {{_ 'save'}}
|
button.primary.confirm.js-submit {{_ 'save'}}
|
||||||
button.js-remove-color.negate.wide.right {{_ 'unset-color'}}
|
button.js-remove-color.negate.wide.right {{_ 'unset-color'}}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,8 @@ template(name="editCardSpentTime")
|
||||||
|
|
||||||
template(name="timeBadge")
|
template(name="timeBadge")
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
a.js-edit-time.card-time(title="{{showTitle}}" class="{{#if getIsOvertime}}card-label-red{{else}}card-label-green{{/if}}")
|
a.js-edit-time.card-time(title="{{_ 'time'}}" class="{{#if getIsOvertime}}card-label-red{{else}}card-label-green{{/if}}")
|
||||||
| {{showTime}}
|
| ⏱️ {{showTime}}
|
||||||
else
|
else
|
||||||
a.card-time(title="{{showTitle}}" class="{{#if getIsOvertime}}card-label-red{{else}}card-label-green{{/if}}")
|
a.card-time(title="{{_ 'time'}}" class="{{#if getIsOvertime}}card-label-red{{else}}card-label-green{{/if}}")
|
||||||
| {{showTime}}
|
| ⏱️ {{showTime}}
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,20 @@
|
||||||
.minicard .date {
|
.minicard .date {
|
||||||
margin-right: 0.4vw;
|
margin-right: 0.4vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Font Awesome icons in minicard dates */
|
||||||
|
.minicard .card-date i.fa {
|
||||||
|
margin-right: 0.3vw;
|
||||||
|
font-size: 0.9em;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Font Awesome icons in minicard spent time */
|
||||||
|
.minicard .card-time i.fa {
|
||||||
|
margin-right: 0.3vw;
|
||||||
|
font-size: 0.9em;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
.minicard .badges {
|
.minicard .badges {
|
||||||
float: left;
|
float: left;
|
||||||
margin-top: 1vh;
|
margin-top: 1vh;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ template(name="bookmarks")
|
||||||
li
|
li
|
||||||
a(href="{{pathFor 'board' id=_id slug=slug}}")= title
|
a(href="{{pathFor 'board' id=_id slug=slug}}")= title
|
||||||
a.js-toggle-star(title="{{_ 'star-board-short-unstar'}}")
|
a.js-toggle-star(title="{{_ 'star-board-short-unstar'}}")
|
||||||
i.fa.fa-star
|
| ⭐
|
||||||
else
|
else
|
||||||
p {{_ 'no-starred-boards'}}
|
p {{_ 'no-starred-boards'}}
|
||||||
else
|
else
|
||||||
|
|
@ -21,9 +21,9 @@ template(name="bookmarksPopup")
|
||||||
each starredBoards
|
each starredBoards
|
||||||
li
|
li
|
||||||
a(href="{{pathFor 'board' id=_id slug=slug}}")
|
a(href="{{pathFor 'board' id=_id slug=slug}}")
|
||||||
i.fa.fa-star
|
| ⭐
|
||||||
| #{title}
|
| #{title}
|
||||||
a.js-toggle-star.right(title="{{_ 'star-board-short-unstar'}}")
|
a.js-toggle-star.right(title="{{_ 'star-board-short-unstar'}}")
|
||||||
i.fa.fa-star
|
| ⭐
|
||||||
else
|
else
|
||||||
li {{_ 'no-starred-boards'}}
|
li {{_ 'no-starred-boards'}}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ template(name="header")
|
||||||
// Home icon - always at left side of logo
|
// Home icon - always at left side of logo
|
||||||
span.home-icon.allBoards
|
span.home-icon.allBoards
|
||||||
a(href="{{pathFor 'home'}}")
|
a(href="{{pathFor 'home'}}")
|
||||||
span.fa.fa-home
|
| 🏠
|
||||||
| {{_ 'all-boards'}}
|
| {{_ 'all-boards'}}
|
||||||
|
|
||||||
// Logo - visible; on mobile constrained by CSS
|
// Logo - visible; on mobile constrained by CSS
|
||||||
|
|
@ -80,12 +80,12 @@ template(name="header")
|
||||||
|
|
||||||
.mobile-mode-toggle
|
.mobile-mode-toggle
|
||||||
a.board-header-btn.js-mobile-mode-toggle(title="{{_ 'mobile-desktop-toggle'}}" class="{{#if mobileMode}}mobile-active{{else}}desktop-active{{/if}}")
|
a.board-header-btn.js-mobile-mode-toggle(title="{{_ 'mobile-desktop-toggle'}}" class="{{#if mobileMode}}mobile-active{{else}}desktop-active{{/if}}")
|
||||||
i.fa.fa-mobile.mobile-icon(class="{{#if mobileMode}}active{{/if}}")
|
| 📱(class="{{#if mobileMode}}active{{/if}}")
|
||||||
i.fa.fa-desktop.desktop-icon(class="{{#unless mobileMode}}active{{/unless}}")
|
| 🖥️(class="{{#unless mobileMode}}active{{/unless}}")
|
||||||
|
|
||||||
// Bookmarks button - desktop opens popup, mobile routes to page
|
// Bookmarks button - desktop opens popup, mobile routes to page
|
||||||
a.board-header-btn.js-open-bookmarks(title="{{_ 'bookmarks'}}")
|
a.board-header-btn.js-open-bookmarks(title="{{_ 'bookmarks'}}")
|
||||||
i.fa.fa-bookmark
|
| 🔖
|
||||||
|
|
||||||
// Notifications
|
// Notifications
|
||||||
+notifications
|
+notifications
|
||||||
|
|
@ -93,7 +93,7 @@ template(name="header")
|
||||||
if currentSetting.customHelpLinkUrl
|
if currentSetting.customHelpLinkUrl
|
||||||
#header-help
|
#header-help
|
||||||
a(href="{{currentSetting.customHelpLinkUrl}}", title="{{_ 'help'}}", target="_blank", rel="noopener noreferrer")
|
a(href="{{currentSetting.customHelpLinkUrl}}", title="{{_ 'help'}}", target="_blank", rel="noopener noreferrer")
|
||||||
span.fa.fa-question
|
| ❓
|
||||||
|
|
||||||
+headerUserBar
|
+headerUserBar
|
||||||
|
|
||||||
|
|
@ -112,15 +112,15 @@ template(name="header")
|
||||||
if hasAnnouncement
|
if hasAnnouncement
|
||||||
.announcement
|
.announcement
|
||||||
p
|
p
|
||||||
i.fa.fa-bullhorn
|
| 📢
|
||||||
+viewer
|
+viewer
|
||||||
| #{announcement}
|
| #{announcement}
|
||||||
i.fa.fa-times-circle.js-close-announcement
|
| ❌
|
||||||
|
|
||||||
template(name="offlineWarning")
|
template(name="offlineWarning")
|
||||||
.offline-warning
|
.offline-warning
|
||||||
p
|
p
|
||||||
i.fa.fa-warning
|
| ⚠️
|
||||||
| {{_ 'app-is-offline'}}
|
| {{_ 'app-is-offline'}}
|
||||||
|
|
||||||
a.app-try-reconnect {{_ 'app-try-reconnect'}}
|
a.app-try-reconnect {{_ 'app-try-reconnect'}}
|
||||||
|
|
|
||||||
|
|
@ -85,13 +85,13 @@ template(name="defaultLayout")
|
||||||
if (Modal.isWide)
|
if (Modal.isWide)
|
||||||
.modal-content-wide.modal-container
|
.modal-content-wide.modal-container
|
||||||
a.modal-close-btn.js-close-modal
|
a.modal-close-btn.js-close-modal
|
||||||
i.fa.fa-times-thin
|
| ❌
|
||||||
+Template.dynamic(template=Modal.getHeaderName)
|
+Template.dynamic(template=Modal.getHeaderName)
|
||||||
+Template.dynamic(template=Modal.getTemplateName)
|
+Template.dynamic(template=Modal.getTemplateName)
|
||||||
else
|
else
|
||||||
.modal-content.modal-container
|
.modal-content.modal-container
|
||||||
a.modal-close-btn.js-close-modal
|
a.modal-close-btn.js-close-modal
|
||||||
i.fa.fa-times-thin
|
| ❌
|
||||||
+Template.dynamic(template=Modal.getHeaderName)
|
+Template.dynamic(template=Modal.getHeaderName)
|
||||||
+Template.dynamic(template=Modal.getTemplateName)
|
+Template.dynamic(template=Modal.getTemplateName)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@
|
||||||
style="left:{{offset.left}}px; top:{{offset.top}}px;{{#if offset.maxHeight}} max-height:{{offset.maxHeight}}px;{{/if}}")
|
style="left:{{offset.left}}px; top:{{offset.top}}px;{{#if offset.maxHeight}} max-height:{{offset.maxHeight}}px;{{/if}}")
|
||||||
.header
|
.header
|
||||||
a.back-btn.js-back-view(class="{{#unless hasPopupParent}}is-hidden{{/unless}}")
|
a.back-btn.js-back-view(class="{{#unless hasPopupParent}}is-hidden{{/unless}}")
|
||||||
i.fa.fa-chevron-left
|
| ◀️
|
||||||
span.header-title= title
|
span.header-title= title
|
||||||
a.close-btn.js-close-pop-over
|
a.close-btn.js-close-pop-over
|
||||||
i.fa.fa-times-thin
|
| ❌
|
||||||
.content-wrapper
|
.content-wrapper
|
||||||
//-
|
//-
|
||||||
We display the all stack of popup content next to each other and move
|
We display the all stack of popup content next to each other and move
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ template(name="migrationProgress")
|
||||||
.migration-modal
|
.migration-modal
|
||||||
.migration-header
|
.migration-header
|
||||||
h3
|
h3
|
||||||
i.fa.fa-database
|
| 🗄️
|
||||||
| {{_ 'database-migration'}}
|
| {{_ 'database-migration'}}
|
||||||
p {{_ 'database-migration-description'}}
|
p {{_ 'database-migration-description'}}
|
||||||
|
|
||||||
|
|
@ -16,11 +16,11 @@ template(name="migrationProgress")
|
||||||
.progress-label {{_ 'overall-progress'}}
|
.progress-label {{_ 'overall-progress'}}
|
||||||
|
|
||||||
.current-step
|
.current-step
|
||||||
i.fa.fa-cog.fa-spin
|
| ⚙️
|
||||||
| {{migrationCurrentStep}}
|
| {{migrationCurrentStep}}
|
||||||
|
|
||||||
.estimated-time(style="{{#unless migrationEstimatedTime}}display: none;{{/unless}}")
|
.estimated-time(style="{{#unless migrationEstimatedTime}}display: none;{{/unless}}")
|
||||||
i.fa.fa-clock-o
|
| ⏰
|
||||||
| {{_ 'estimated-time-remaining'}}: {{migrationEstimatedTime}}
|
| {{_ 'estimated-time-remaining'}}: {{migrationEstimatedTime}}
|
||||||
|
|
||||||
.migration-steps
|
.migration-steps
|
||||||
|
|
@ -31,11 +31,11 @@ template(name="migrationProgress")
|
||||||
.step-header
|
.step-header
|
||||||
.step-icon
|
.step-icon
|
||||||
if completed
|
if completed
|
||||||
i.fa.fa-check-circle
|
| ✅
|
||||||
else if isCurrentStep
|
else if isCurrentStep
|
||||||
i.fa.fa-cog.fa-spin
|
| ⚙️
|
||||||
else
|
else
|
||||||
i.fa.fa-circle-o
|
| ⭕
|
||||||
.step-info
|
.step-info
|
||||||
.step-name {{name}}
|
.step-name {{name}}
|
||||||
.step-description {{description}}
|
.step-description {{description}}
|
||||||
|
|
@ -51,13 +51,13 @@ template(name="migrationProgress")
|
||||||
.progress-fill(style="width: {{progress}}%")
|
.progress-fill(style="width: {{progress}}%")
|
||||||
|
|
||||||
.migration-status
|
.migration-status
|
||||||
i.fa.fa-info-circle
|
| ℹ️
|
||||||
| {{migrationStatus}}
|
| {{migrationStatus}}
|
||||||
|
|
||||||
.migration-footer
|
.migration-footer
|
||||||
.migration-info
|
.migration-info
|
||||||
i.fa.fa-lightbulb-o
|
| 💡
|
||||||
| {{_ 'migration-info-text'}}
|
| {{_ 'migration-info-text'}}
|
||||||
.migration-warning
|
.migration-warning
|
||||||
i.fa.fa-exclamation-triangle
|
| ⚠️
|
||||||
| {{_ 'migration-warning-text'}}
|
| {{_ 'migration-warning-text'}}
|
||||||
|
|
|
||||||
|
|
@ -47,17 +47,17 @@ template(name="cronMigrations")
|
||||||
.cron-migrations
|
.cron-migrations
|
||||||
.migration-header
|
.migration-header
|
||||||
h2
|
h2
|
||||||
i.fa.fa-database
|
| 🗄️
|
||||||
| {{_ 'database-migrations'}}
|
| {{_ 'database-migrations'}}
|
||||||
.migration-controls
|
.migration-controls
|
||||||
button.btn.btn-primary.js-start-all-migrations
|
button.btn.btn-primary.js-start-all-migrations
|
||||||
i.fa.fa-play
|
| ▶️
|
||||||
| {{_ 'start-all-migrations'}}
|
| {{_ 'start-all-migrations'}}
|
||||||
button.btn.btn-warning.js-pause-all-migrations
|
button.btn.btn-warning.js-pause-all-migrations
|
||||||
i.fa.fa-pause
|
| ⏸️
|
||||||
| {{_ 'pause-all-migrations'}}
|
| {{_ 'pause-all-migrations'}}
|
||||||
button.btn.btn-danger.js-stop-all-migrations
|
button.btn.btn-danger.js-stop-all-migrations
|
||||||
i.fa.fa-stop
|
| ⏹️
|
||||||
| {{_ 'stop-all-migrations'}}
|
| {{_ 'stop-all-migrations'}}
|
||||||
|
|
||||||
.migration-progress
|
.migration-progress
|
||||||
|
|
@ -68,11 +68,11 @@ template(name="cronMigrations")
|
||||||
.progress-label {{_ 'overall-progress'}}
|
.progress-label {{_ 'overall-progress'}}
|
||||||
|
|
||||||
.current-step
|
.current-step
|
||||||
i.fa.fa-cog.fa-spin
|
| ⚙️
|
||||||
| {{migrationCurrentStep}}
|
| {{migrationCurrentStep}}
|
||||||
|
|
||||||
.migration-status
|
.migration-status
|
||||||
i.fa.fa-info-circle
|
| ℹ️
|
||||||
| {{migrationStatus}}
|
| {{migrationStatus}}
|
||||||
|
|
||||||
.migration-steps
|
.migration-steps
|
||||||
|
|
@ -83,11 +83,11 @@ template(name="cronMigrations")
|
||||||
.step-header
|
.step-header
|
||||||
.step-icon
|
.step-icon
|
||||||
if completed
|
if completed
|
||||||
i.fa.fa-check-circle
|
| ✅
|
||||||
else if isCurrentStep
|
else if isCurrentStep
|
||||||
i.fa.fa-cog.fa-spin
|
| ⚙️
|
||||||
else
|
else
|
||||||
i.fa.fa-circle-o
|
| ⭕
|
||||||
.step-info
|
.step-info
|
||||||
.step-name {{name}}
|
.step-name {{name}}
|
||||||
.step-description {{description}}
|
.step-description {{description}}
|
||||||
|
|
@ -106,17 +106,17 @@ template(name="cronBoardOperations")
|
||||||
.cron-board-operations
|
.cron-board-operations
|
||||||
.board-operations-header
|
.board-operations-header
|
||||||
h2
|
h2
|
||||||
i.fa.fa-tasks
|
| 📋
|
||||||
| {{_ 'board-operations'}}
|
| {{_ 'board-operations'}}
|
||||||
.board-operations-controls
|
.board-operations-controls
|
||||||
button.btn.btn-success.js-refresh-board-operations
|
button.btn.btn-success.js-refresh-board-operations
|
||||||
i.fa.fa-refresh
|
| 🔄
|
||||||
| {{_ 'refresh'}}
|
| {{_ 'refresh'}}
|
||||||
button.btn.btn-primary.js-start-test-operation
|
button.btn.btn-primary.js-start-test-operation
|
||||||
i.fa.fa-play
|
| ▶️
|
||||||
| {{_ 'start-test-operation'}}
|
| {{_ 'start-test-operation'}}
|
||||||
button.btn.btn-info.js-force-board-scan
|
button.btn.btn-info.js-force-board-scan
|
||||||
i.fa.fa-search
|
| 🔍
|
||||||
| {{_ 'force-board-scan'}}
|
| {{_ 'force-board-scan'}}
|
||||||
|
|
||||||
.board-operations-stats
|
.board-operations-stats
|
||||||
|
|
@ -164,7 +164,7 @@ template(name="cronBoardOperations")
|
||||||
.board-operations-search
|
.board-operations-search
|
||||||
.search-box
|
.search-box
|
||||||
input.form-control.js-search-board-operations(type="text" placeholder="{{_ 'search-boards-or-operations'}}")
|
input.form-control.js-search-board-operations(type="text" placeholder="{{_ 'search-boards-or-operations'}}")
|
||||||
i.fa.fa-search.search-icon
|
| 🔍.search-icon
|
||||||
|
|
||||||
.board-operations-list
|
.board-operations-list
|
||||||
.operations-header
|
.operations-header
|
||||||
|
|
@ -203,36 +203,36 @@ template(name="cronBoardOperations")
|
||||||
.btn-group
|
.btn-group
|
||||||
if isRunning
|
if isRunning
|
||||||
button.btn.btn-sm.btn-warning.js-pause-operation(data-operation="{{id}}")
|
button.btn.btn-sm.btn-warning.js-pause-operation(data-operation="{{id}}")
|
||||||
i.fa.fa-pause
|
| ⏸️
|
||||||
else
|
else
|
||||||
button.btn.btn-sm.btn-success.js-resume-operation(data-operation="{{id}}")
|
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}}")
|
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}}")
|
button.btn.btn-sm.btn-info.js-view-details(data-operation="{{id}}")
|
||||||
i.fa.fa-info-circle
|
| ℹ️
|
||||||
|
|
||||||
.pagination
|
.pagination
|
||||||
if pagination.hasPrev
|
if pagination.hasPrev
|
||||||
button.btn.btn-sm.btn-default.js-prev-page
|
button.btn.btn-sm.btn-default.js-prev-page
|
||||||
i.fa.fa-chevron-left
|
| ◀️
|
||||||
| {{_ 'previous'}}
|
| {{_ 'previous'}}
|
||||||
.page-info
|
.page-info
|
||||||
| {{_ 'page'}} {{pagination.page}} {{_ 'of'}} {{pagination.totalPages}}
|
| {{_ 'page'}} {{pagination.page}} {{_ 'of'}} {{pagination.totalPages}}
|
||||||
if pagination.hasNext
|
if pagination.hasNext
|
||||||
button.btn.btn-sm.btn-default.js-next-page
|
button.btn.btn-sm.btn-default.js-next-page
|
||||||
| {{_ 'next'}}
|
| {{_ 'next'}}
|
||||||
i.fa.fa-chevron-right
|
| ▶️
|
||||||
|
|
||||||
template(name="cronJobs")
|
template(name="cronJobs")
|
||||||
.cron-jobs
|
.cron-jobs
|
||||||
.jobs-header
|
.jobs-header
|
||||||
h2
|
h2
|
||||||
i.fa.fa-clock-o
|
| ⏰
|
||||||
| {{_ 'cron-jobs'}}
|
| {{_ 'cron-jobs'}}
|
||||||
.jobs-controls
|
.jobs-controls
|
||||||
button.btn.btn-success.js-refresh-jobs
|
button.btn.btn-success.js-refresh-jobs
|
||||||
i.fa.fa-refresh
|
| 🔄
|
||||||
| {{_ 'refresh'}}
|
| {{_ 'refresh'}}
|
||||||
|
|
||||||
.jobs-list
|
.jobs-list
|
||||||
|
|
@ -258,20 +258,20 @@ template(name="cronJobs")
|
||||||
.btn-group
|
.btn-group
|
||||||
if isRunning
|
if isRunning
|
||||||
button.btn.btn-sm.btn-warning.js-pause-job(data-job="{{name}}")
|
button.btn.btn-sm.btn-warning.js-pause-job(data-job="{{name}}")
|
||||||
i.fa.fa-pause
|
| ⏸️
|
||||||
else
|
else
|
||||||
button.btn.btn-sm.btn-success.js-start-job(data-job="{{name}}")
|
button.btn.btn-sm.btn-success.js-start-job(data-job="{{name}}")
|
||||||
i.fa.fa-play
|
| ▶️
|
||||||
button.btn.btn-sm.btn-danger.js-stop-job(data-job="{{name}}")
|
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}}")
|
button.btn.btn-sm.btn-danger.js-remove-job(data-job="{{name}}")
|
||||||
i.fa.fa-trash
|
| 🗑️
|
||||||
|
|
||||||
template(name="cronAddJob")
|
template(name="cronAddJob")
|
||||||
.cron-add-job
|
.cron-add-job
|
||||||
.add-job-header
|
.add-job-header
|
||||||
h2
|
h2
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
| {{_ 'add-cron-job'}}
|
| {{_ 'add-cron-job'}}
|
||||||
|
|
||||||
.add-job-form
|
.add-job-form
|
||||||
|
|
@ -302,8 +302,8 @@ template(name="cronAddJob")
|
||||||
|
|
||||||
.form-actions
|
.form-actions
|
||||||
button.btn.btn-primary(type="submit")
|
button.btn.btn-primary(type="submit")
|
||||||
i.fa.fa-plus
|
| ➕
|
||||||
| {{_ 'add-job'}}
|
| {{_ 'add-job'}}
|
||||||
button.btn.btn-default.js-cancel-add-job
|
button.btn.btn-default.js-cancel-add-job
|
||||||
i.fa.fa-times
|
| ❌
|
||||||
| {{_ 'cancel'}}
|
| {{_ 'cancel'}}
|
||||||
|
|
|
||||||
|
|
@ -6,87 +6,87 @@ template(name="setting")
|
||||||
.content-title.ext-box
|
.content-title.ext-box
|
||||||
if isGeneralSetting
|
if isGeneralSetting
|
||||||
span
|
span
|
||||||
i.fa.fa-sign-in
|
| 🔑
|
||||||
| {{_ 'registration'}}
|
| {{_ 'registration'}}
|
||||||
else if isEmailSetting
|
else if isEmailSetting
|
||||||
span
|
span
|
||||||
i.fa.fa-envelope
|
| ✉️
|
||||||
| {{_ 'email'}}
|
| {{_ 'email'}}
|
||||||
else if isAccountSetting
|
else if isAccountSetting
|
||||||
span
|
span
|
||||||
i.fa.fa-users
|
| 👥
|
||||||
| {{_ 'accounts'}}
|
| {{_ 'accounts'}}
|
||||||
else if isTableVisibilityModeSetting
|
else if isTableVisibilityModeSetting
|
||||||
span
|
span
|
||||||
i.fa.fa-eye
|
| 👁️
|
||||||
| {{_ 'tableVisibilityMode'}}
|
| {{_ 'tableVisibilityMode'}}
|
||||||
else if isAnnouncementSetting
|
else if isAnnouncementSetting
|
||||||
span
|
span
|
||||||
i.fa.fa-bullhorn
|
| 📢
|
||||||
| {{_ 'admin-announcement'}}
|
| {{_ 'admin-announcement'}}
|
||||||
else if isAccessibilitySetting
|
else if isAccessibilitySetting
|
||||||
span
|
span
|
||||||
i.fa.fa-universal-access
|
| ♿
|
||||||
| {{_ 'accessibility'}}
|
| {{_ 'accessibility'}}
|
||||||
else if isLayoutSetting
|
else if isLayoutSetting
|
||||||
span
|
span
|
||||||
i.fa.fa-object-group
|
| 🔗
|
||||||
| {{_ 'layout'}}
|
| {{_ 'layout'}}
|
||||||
else if isWebhookSetting
|
else if isWebhookSetting
|
||||||
span
|
span
|
||||||
i.fa.fa-globe
|
| 🌐
|
||||||
| {{_ 'global-webhook'}}
|
| {{_ 'global-webhook'}}
|
||||||
else if isAttachmentSettings
|
else if isAttachmentSettings
|
||||||
span
|
span
|
||||||
i.fa.fa-paperclip
|
| 📎
|
||||||
| {{_ 'attachments'}}
|
| {{_ 'attachments'}}
|
||||||
else if isCronSettings
|
else if isCronSettings
|
||||||
span
|
span
|
||||||
i.fa.fa-clock-o
|
| ⏰
|
||||||
| {{_ 'cron'}}
|
| {{_ 'cron'}}
|
||||||
.content-body
|
.content-body
|
||||||
.side-menu
|
.side-menu
|
||||||
ul
|
ul
|
||||||
li(class="{{#if isGeneralSetting}}active{{/if}}")
|
li(class="{{#if isGeneralSetting}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="registration-setting")
|
a.js-setting-menu(data-id="registration-setting")
|
||||||
i.fa.fa-sign-in
|
| 🔑
|
||||||
| {{_ 'registration'}}
|
| {{_ 'registration'}}
|
||||||
unless isSandstorm
|
unless isSandstorm
|
||||||
li(class="{{#if isEmailSetting}}active{{/if}}")
|
li(class="{{#if isEmailSetting}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="email-setting")
|
a.js-setting-menu(data-id="email-setting")
|
||||||
i.fa.fa-envelope
|
| ✉️
|
||||||
| {{_ 'email'}}
|
| {{_ 'email'}}
|
||||||
li(class="{{#if isAccountSetting}}active{{/if}}")
|
li(class="{{#if isAccountSetting}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="account-setting")
|
a.js-setting-menu(data-id="account-setting")
|
||||||
i.fa.fa-users
|
| 👥
|
||||||
| {{_ 'accounts'}}
|
| {{_ 'accounts'}}
|
||||||
li(class="{{#if isTableVisibilityModeSetting}}active{{/if}}")
|
li(class="{{#if isTableVisibilityModeSetting}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="tableVisibilityMode-setting")
|
a.js-setting-menu(data-id="tableVisibilityMode-setting")
|
||||||
i.fa.fa-eye
|
| 👁️
|
||||||
| {{_ 'tableVisibilityMode'}}
|
| {{_ 'tableVisibilityMode'}}
|
||||||
li(class="{{#if isAnnouncementSetting}}active{{/if}}")
|
li(class="{{#if isAnnouncementSetting}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="announcement-setting")
|
a.js-setting-menu(data-id="announcement-setting")
|
||||||
i.fa.fa-bullhorn
|
| 📢
|
||||||
| {{_ 'admin-announcement'}}
|
| {{_ 'admin-announcement'}}
|
||||||
li(class="{{#if isAccessibilitySetting}}active{{/if}}")
|
li(class="{{#if isAccessibilitySetting}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="accessibility-setting")
|
a.js-setting-menu(data-id="accessibility-setting")
|
||||||
i.fa.fa-universal-access
|
| ♿
|
||||||
| {{_ 'accessibility'}}
|
| {{_ 'accessibility'}}
|
||||||
li(class="{{#if isLayoutSetting}}active{{/if}}")
|
li(class="{{#if isLayoutSetting}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="layout-setting")
|
a.js-setting-menu(data-id="layout-setting")
|
||||||
i.fa.fa-object-group
|
| 🔗
|
||||||
| {{_ 'layout'}}
|
| {{_ 'layout'}}
|
||||||
li(class="{{#if isWebhookSetting}}active{{/if}}")
|
li(class="{{#if isWebhookSetting}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="webhook-setting")
|
a.js-setting-menu(data-id="webhook-setting")
|
||||||
i.fa.fa-globe
|
| 🌐
|
||||||
| {{_ 'global-webhook'}}
|
| {{_ 'global-webhook'}}
|
||||||
li(class="{{#if isAttachmentSettings}}active{{/if}}")
|
li(class="{{#if isAttachmentSettings}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="attachment-settings")
|
a.js-setting-menu(data-id="attachment-settings")
|
||||||
i.fa.fa-paperclip
|
| 📎
|
||||||
| {{_ 'attachments'}}
|
| {{_ 'attachments'}}
|
||||||
li(class="{{#if isCronSettings}}active{{/if}}")
|
li(class="{{#if isCronSettings}}active{{/if}}")
|
||||||
a.js-setting-menu(data-id="cron-settings")
|
a.js-setting-menu(data-id="cron-settings")
|
||||||
i.fa.fa-clock-o
|
| ⏰
|
||||||
| {{_ 'cron'}}
|
| {{_ 'cron'}}
|
||||||
.main-body
|
.main-body
|
||||||
if isLoading
|
if isLoading
|
||||||
|
|
|
||||||
|
|
@ -24,16 +24,18 @@ template(name="swimlaneFixedHeader")
|
||||||
| {{isTitleDefault title}}
|
| {{isTitleDefault title}}
|
||||||
.swimlane-header-menu
|
.swimlane-header-menu
|
||||||
unless currentUser.isCommentOnly
|
unless currentUser.isCommentOnly
|
||||||
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon(title="{{_ 'add-swimlane'}}")
|
a.js-open-add-swimlane-menu.swimlane-header-plus-icon
|
||||||
a.fa.fa-navicon.js-open-swimlane-menu(title="{{_ 'swimlaneActionPopup-title'}}")
|
| ➕(title="{{_ 'add-swimlane'}}")
|
||||||
|
a.js-open-swimlane-menu
|
||||||
|
| ☰(title="{{_ 'swimlaneActionPopup-title'}}")
|
||||||
//// TODO: Collapse Swimlane: make button working, etc.
|
//// TODO: Collapse Swimlane: make button working, etc.
|
||||||
//unless collapsed
|
//unless collapsed
|
||||||
// a.js-collapse-swimlane(title="{{_ 'collapse'}}")
|
// a.js-collapse-swimlane(title="{{_ 'collapse'}}")
|
||||||
// i.fa.fa-arrow-down.swimlane-header-collapse-down
|
// i.fa.fa-arrow-down.swimlane-header-collapse-down
|
||||||
// i.fa.fa-arrow-up.swimlane-header-collapse-up
|
// ⬆️.swimlane-header-collapse-up
|
||||||
//if collapsed
|
//if collapsed
|
||||||
// a.js-collapse-swimlane(title="{{_ 'uncollapse'}}")
|
// a.js-collapse-swimlane(title="{{_ 'uncollapse'}}")
|
||||||
// i.fa.fa-arrow-up.swimlane-header-collapse-up
|
// ⬆️.swimlane-header-collapse-up
|
||||||
// i.fa.fa-arrow-down.swimlane-header-collapse-down
|
// i.fa.fa-arrow-down.swimlane-header-collapse-down
|
||||||
unless isTouchScreen
|
unless isTouchScreen
|
||||||
if isShowDesktopDragHandles
|
if isShowDesktopDragHandles
|
||||||
|
|
@ -46,33 +48,34 @@ template(name="editSwimlaneTitleForm")
|
||||||
input.list-name-input.full-line(type="text" value="{{isTitleDefault title}}" autofocus)
|
input.list-name-input.full-line(type="text" value="{{isTitleDefault title}}" autofocus)
|
||||||
.edit-controls.clearfix
|
.edit-controls.clearfix
|
||||||
button.primary.confirm(type="submit") {{_ 'save'}}
|
button.primary.confirm(type="submit") {{_ 'save'}}
|
||||||
a.fa.fa-times-thin.js-close-inlined-form
|
a.js-close-inlined-form
|
||||||
|
| ❌
|
||||||
|
|
||||||
template(name="swimlaneActionPopup")
|
template(name="swimlaneActionPopup")
|
||||||
unless currentUser.isCommentOnly
|
unless currentUser.isCommentOnly
|
||||||
ul.pop-over-list
|
ul.pop-over-list
|
||||||
if currentUser.isBoardAdmin
|
if currentUser.isBoardAdmin
|
||||||
li: a.js-set-swimlane-color
|
li: a.js-set-swimlane-color
|
||||||
i.fa.fa-paint-brush
|
| 🎨
|
||||||
| {{_ 'select-color'}}
|
| {{_ 'select-color'}}
|
||||||
li: a.js-set-swimlane-height
|
li: a.js-set-swimlane-height
|
||||||
i.fa.fa-arrows-v
|
| ↕️
|
||||||
| {{_ 'set-swimlane-height'}}
|
| {{_ 'set-swimlane-height'}}
|
||||||
if currentUser.isBoardAdmin
|
if currentUser.isBoardAdmin
|
||||||
unless this.isTemplateContainer
|
unless this.isTemplateContainer
|
||||||
hr
|
hr
|
||||||
ul.pop-over-list
|
ul.pop-over-list
|
||||||
li: a.js-close-swimlane
|
li: a.js-close-swimlane
|
||||||
i.fa.fa-arrow-right
|
| ▶️
|
||||||
i.fa.fa-archive
|
| 📦
|
||||||
| {{_ 'archive-swimlane'}}
|
| {{_ 'archive-swimlane'}}
|
||||||
ul.pop-over-list
|
ul.pop-over-list
|
||||||
li: a.js-copy-swimlane
|
li: a.js-copy-swimlane
|
||||||
i.fa.fa-copy
|
| 📋
|
||||||
| {{_ 'copy-swimlane'}}
|
| {{_ 'copy-swimlane'}}
|
||||||
ul.pop-over-list
|
ul.pop-over-list
|
||||||
li: a.js-move-swimlane
|
li: a.js-move-swimlane
|
||||||
i.fa.fa-arrow-up
|
| ⬆️
|
||||||
| {{_ 'move-swimlane'}}
|
| {{_ 'move-swimlane'}}
|
||||||
|
|
||||||
template(name="swimlaneAddPopup")
|
template(name="swimlaneAddPopup")
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ template(name="userAvatar")
|
||||||
if showEdit
|
if showEdit
|
||||||
if $eq currentUser._id userData._id
|
if $eq currentUser._id userData._id
|
||||||
a.edit-avatar.js-change-avatar
|
a.edit-avatar.js-change-avatar
|
||||||
i.fa.fa-pencil
|
| ✏️
|
||||||
|
|
||||||
template(name="userAvatarInitials")
|
template(name="userAvatarInitials")
|
||||||
svg.avatar.avatar-initials(viewBox="0 0 {{viewPortWidth}} 15")
|
svg.avatar.avatar-initials(viewBox="0 0 {{viewPortWidth}} 15")
|
||||||
|
|
@ -32,7 +32,8 @@ template(name="boardOrgRow")
|
||||||
td
|
td
|
||||||
if currentUser.isBoardAdmin
|
if currentUser.isBoardAdmin
|
||||||
a.member.orgOrTeamMember.add-member.js-manage-board-removeOrg(title="{{_ 'remove-from-board'}}")
|
a.member.orgOrTeamMember.add-member.js-manage-board-removeOrg(title="{{_ 'remove-from-board'}}")
|
||||||
i.removeTeamFaMinus.fa.fa-minus
|
i.removeTeamFaMinus
|
||||||
|
| ➖
|
||||||
.divaddfaplusminus
|
.divaddfaplusminus
|
||||||
| {{_ 'remove-btn'}}
|
| {{_ 'remove-btn'}}
|
||||||
|
|
||||||
|
|
@ -45,7 +46,8 @@ template(name="boardTeamRow")
|
||||||
td
|
td
|
||||||
if currentUser.isBoardAdmin
|
if currentUser.isBoardAdmin
|
||||||
a.member.orgOrTeamMember.add-member.js-manage-board-removeTeam(title="{{_ 'remove-from-board'}}")
|
a.member.orgOrTeamMember.add-member.js-manage-board-removeTeam(title="{{_ 'remove-from-board'}}")
|
||||||
i.removeTeamFaMinus.fa.fa-minus
|
i.removeTeamFaMinus
|
||||||
|
| ➖
|
||||||
.divaddfaplusminus
|
.divaddfaplusminus
|
||||||
| {{_ 'remove-btn'}}
|
| {{_ 'remove-btn'}}
|
||||||
|
|
||||||
|
|
@ -88,7 +90,7 @@ template(name="changeAvatarPopup")
|
||||||
img.avatar.avatar-image(src="{{link}}?auth=false&brokenIsFine=true")
|
img.avatar.avatar-image(src="{{link}}?auth=false&brokenIsFine=true")
|
||||||
| {{_ 'uploaded-avatar'}}
|
| {{_ 'uploaded-avatar'}}
|
||||||
if isSelected
|
if isSelected
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
p.sub-name
|
p.sub-name
|
||||||
unless isSelected
|
unless isSelected
|
||||||
a.js-delete-avatar {{_ 'delete'}}
|
a.js-delete-avatar {{_ 'delete'}}
|
||||||
|
|
@ -99,7 +101,7 @@ template(name="changeAvatarPopup")
|
||||||
+userAvatarInitials(userId=currentUser._id)
|
+userAvatarInitials(userId=currentUser._id)
|
||||||
| {{_ 'initials' }}
|
| {{_ 'initials' }}
|
||||||
if noAvatarUrl
|
if noAvatarUrl
|
||||||
i.fa.fa-check
|
| ✅
|
||||||
p.sub-name {{_ 'default-avatar'}}
|
p.sub-name {{_ 'default-avatar'}}
|
||||||
input.hide.js-upload-avatar-input(accept="image/*;capture=camera" type="file")
|
input.hide.js-upload-avatar-input(accept="image/*;capture=camera" type="file")
|
||||||
if Meteor.settings.public.avatarsUploadMaxSize
|
if Meteor.settings.public.avatarsUploadMaxSize
|
||||||
|
|
@ -110,7 +112,7 @@ template(name="changeAvatarPopup")
|
||||||
br
|
br
|
||||||
| {{_ 'invalid-file'}}
|
| {{_ 'invalid-file'}}
|
||||||
button.full.js-upload-avatar
|
button.full.js-upload-avatar
|
||||||
i.fa.fa-upload
|
| 📤
|
||||||
| {{_ 'upload-avatar'}}
|
| {{_ 'upload-avatar'}}
|
||||||
|
|
||||||
template(name="cardMemberPopup")
|
template(name="cardMemberPopup")
|
||||||
|
|
|
||||||
|
|
@ -15,92 +15,92 @@ template(name="memberMenuPopup")
|
||||||
// Bookmarks at the very top
|
// Bookmarks at the very top
|
||||||
li
|
li
|
||||||
a.js-open-bookmarks
|
a.js-open-bookmarks
|
||||||
i.fa.fa-bookmark
|
| 🔖
|
||||||
| {{_ 'bookmarks'}}
|
| {{_ 'bookmarks'}}
|
||||||
with currentUser
|
with currentUser
|
||||||
li
|
li
|
||||||
a.js-my-cards(href="{{pathFor 'my-cards'}}")
|
a.js-my-cards(href="{{pathFor 'my-cards'}}")
|
||||||
i.fa.fa-list
|
| 📋
|
||||||
| {{_ 'my-cards'}}
|
| {{_ 'my-cards'}}
|
||||||
li
|
li
|
||||||
a.js-due-cards(href="{{pathFor 'due-cards'}}")
|
a.js-due-cards(href="{{pathFor 'due-cards'}}")
|
||||||
i.fa.fa-calendar
|
| 📅
|
||||||
| {{_ 'dueCards-title'}}
|
| {{_ 'dueCards-title'}}
|
||||||
li
|
li
|
||||||
a.js-global-search(href="{{pathFor 'global-search'}}")
|
a.js-global-search(href="{{pathFor 'global-search'}}")
|
||||||
i.fa.fa-search
|
| 🔍
|
||||||
| {{_ 'globalSearch-title'}}
|
| {{_ 'globalSearch-title'}}
|
||||||
li
|
li
|
||||||
a(href="{{pathFor 'home'}}")
|
a(href="{{pathFor 'home'}}")
|
||||||
span.fa.fa-home
|
| 🏠
|
||||||
| {{_ 'all-boards'}}
|
| {{_ 'all-boards'}}
|
||||||
li
|
li
|
||||||
a(href="{{pathFor 'public'}}")
|
a(href="{{pathFor 'public'}}")
|
||||||
span.fa.fa-globe
|
| 🌐
|
||||||
| {{_ 'public'}}
|
| {{_ 'public'}}
|
||||||
li
|
li
|
||||||
a.board-header-btn.js-open-archived-board
|
a.board-header-btn.js-open-archived-board
|
||||||
i.fa.fa-archive
|
| 📦
|
||||||
span {{_ 'archives'}}
|
span {{_ 'archives'}}
|
||||||
li
|
li
|
||||||
a.js-notifications-drawer-toggle
|
a.js-notifications-drawer-toggle
|
||||||
i.fa.fa-bell
|
| 🔔
|
||||||
| {{_ 'notifications'}}
|
| {{_ 'notifications'}}
|
||||||
if currentSetting.customHelpLinkUrl
|
if currentSetting.customHelpLinkUrl
|
||||||
li
|
li
|
||||||
a(href="{{currentSetting.customHelpLinkUrl}}", title="{{_ 'help'}}", target="_blank", rel="noopener noreferrer")
|
a(href="{{currentSetting.customHelpLinkUrl}}", title="{{_ 'help'}}", target="_blank", rel="noopener noreferrer")
|
||||||
i.fa.fa-question
|
| ❓
|
||||||
| {{_ 'help'}}
|
| {{_ 'help'}}
|
||||||
unless currentUser.isWorker
|
unless currentUser.isWorker
|
||||||
ul.pop-over-list
|
ul.pop-over-list
|
||||||
li
|
li
|
||||||
a(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}")
|
a(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}")
|
||||||
i.fa.fa-clone
|
| 📋
|
||||||
| {{_ 'templates'}}
|
| {{_ 'templates'}}
|
||||||
if currentUser.isAdmin
|
if currentUser.isAdmin
|
||||||
li
|
li
|
||||||
a.js-go-setting(href="{{pathFor 'setting'}}")
|
a.js-go-setting(href="{{pathFor 'setting'}}")
|
||||||
i.fa.fa-lock
|
| 🔒
|
||||||
| {{_ 'admin-panel'}}
|
| {{_ 'admin-panel'}}
|
||||||
hr
|
hr
|
||||||
if isSameDomainNameSettingValue
|
if isSameDomainNameSettingValue
|
||||||
li
|
li
|
||||||
a.js-invite-people
|
a.js-invite-people
|
||||||
i.fa.fa-envelope
|
| ✉️
|
||||||
| {{_ 'invite-people'}}
|
| {{_ 'invite-people'}}
|
||||||
if isNotOAuth2AuthenticationMethod
|
if isNotOAuth2AuthenticationMethod
|
||||||
li
|
li
|
||||||
a.js-edit-profile
|
a.js-edit-profile
|
||||||
i.fa.fa-user
|
| 👤
|
||||||
| {{_ 'edit-profile'}}
|
| {{_ 'edit-profile'}}
|
||||||
li
|
li
|
||||||
a.js-change-settings
|
a.js-change-settings
|
||||||
i.fa.fa-cog
|
| ⚙️
|
||||||
| {{_ 'change-settings'}}
|
| {{_ 'change-settings'}}
|
||||||
li
|
li
|
||||||
a.js-change-avatar
|
a.js-change-avatar
|
||||||
i.fa.fa-picture-o
|
| 🖼️
|
||||||
| {{_ 'edit-avatar'}}
|
| {{_ 'edit-avatar'}}
|
||||||
unless isSandstorm
|
unless isSandstorm
|
||||||
if isNotOAuth2AuthenticationMethod
|
if isNotOAuth2AuthenticationMethod
|
||||||
li
|
li
|
||||||
a.js-change-password
|
a.js-change-password
|
||||||
i.fa.fa-key
|
| 🔑
|
||||||
| {{_ 'changePasswordPopup-title'}}
|
| {{_ 'changePasswordPopup-title'}}
|
||||||
li
|
li
|
||||||
a.js-change-language
|
a.js-change-language
|
||||||
i.fa.fa-flag
|
| 🏁
|
||||||
| {{_ 'changeLanguagePopup-title'}}
|
| {{_ 'changeLanguagePopup-title'}}
|
||||||
//li
|
//li
|
||||||
// a.js-support
|
// a.js-support
|
||||||
// i.fa.fa-question-circle
|
// ❓-circle
|
||||||
// | {{_ 'support'}}
|
// | {{_ 'support'}}
|
||||||
unless isSandstorm
|
unless isSandstorm
|
||||||
hr
|
hr
|
||||||
ul.pop-over-list
|
ul.pop-over-list
|
||||||
li
|
li
|
||||||
a.js-logout
|
a.js-logout
|
||||||
i.fa.fa-sign-out
|
| 🚪
|
||||||
| {{_ 'log-out'}}
|
| {{_ 'log-out'}}
|
||||||
|
|
||||||
template(name="invitePeoplePopup")
|
template(name="invitePeoplePopup")
|
||||||
|
|
@ -190,7 +190,7 @@ template(name="changeSettingsPopup")
|
||||||
| {{_ 'show-cards-minimum-count'}}
|
| {{_ 'show-cards-minimum-count'}}
|
||||||
input#show-cards-count-at.inline-input.left(type="number" value="#{showCardsCountAt}" min="-1")
|
input#show-cards-count-at.inline-input.left(type="number" value="#{showCardsCountAt}" min="-1")
|
||||||
label.bold.clear
|
label.bold.clear
|
||||||
i.fa.fa-calendar
|
| 📅
|
||||||
| {{_ 'start-day-of-week'}}
|
| {{_ 'start-day-of-week'}}
|
||||||
select#start-day-of-week.inline-input.left
|
select#start-day-of-week.inline-input.left
|
||||||
each day in weekDays startDayOfWeek
|
each day in weekDays startDayOfWeek
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue