feat: cancel scheduling button

This commit is contained in:
gasoved 2023-04-28 22:25:01 +03:00 committed by Julian Lam
parent 60ee62eef3
commit e116e36bd6
2 changed files with 27 additions and 2 deletions

View file

@ -1,6 +1,11 @@
'use strict';

define('composer/scheduler', ['benchpress', 'bootbox', 'alerts'], function (Benchpress, bootbox, alerts) {
define('composer/scheduler', ['benchpress', 'bootbox', 'alerts', 'translator'], function (
Benchpress,
bootbox,
alerts,
translator
) {
const scheduler = {};
const state = {
timestamp: 0,
@ -10,9 +15,16 @@ define('composer/scheduler', ['benchpress', 'bootbox', 'alerts'], function (Benc
};
let displayBtnCons = [];
let displayBtns;
let cancelBtn;
let submitContainer;
let submitOptionsCon;

const dropdownDisplayBtn = {
el: null,
defaultText: '',
activeText: '',
};

const submitBtn = {
el: null,
icon: null,
@ -28,8 +40,15 @@ define('composer/scheduler', ['benchpress', 'bootbox', 'alerts'], function (Benc
state.timestamp = 0;
state.posts = posts;

translator.translateKeys(['[[topic:composer.post-later]]', '[[modules:composer.change-schedule-date]]']).then((translated) => {
dropdownDisplayBtn.defaultText = translated[0];
dropdownDisplayBtn.activeText = translated[1];
});

displayBtnCons = $postContainer[0].querySelectorAll('.display-scheduler');
displayBtns = $postContainer[0].querySelectorAll('.display-scheduler i');
dropdownDisplayBtn.el = $postContainer[0].querySelector('.dropdown-item.display-scheduler');
cancelBtn = $postContainer[0].querySelector('.dropdown-item.cancel-scheduling');
submitContainer = $postContainer.find('[component="composer/submit/container"]');
submitOptionsCon = $postContainer.find('[component="composer/submit/options/container"]');

@ -38,6 +57,7 @@ define('composer/scheduler', ['benchpress', 'bootbox', 'alerts'], function (Benc
submitBtn.defaultText = submitBtn.el.lastChild.textContent;
submitBtn.activeText = submitBtn.el.getAttribute('data-text-variant');

cancelBtn.addEventListener('click', cancelScheduling);
displayBtnCons.forEach(el => el.addEventListener('click', openModal));
};

@ -165,6 +185,10 @@ define('composer/scheduler', ['benchpress', 'bootbox', 'alerts'], function (Benc
submitBtn.icon.classList.toggle('fa-check', !active);
submitBtn.icon.classList.toggle('fa-clock-o', active);
}
if (dropdownDisplayBtn.el) {
dropdownDisplayBtn.el.textContent = active ? dropdownDisplayBtn.activeText : dropdownDisplayBtn.defaultText;
cancelBtn.classList.toggle('hidden', !active);
}
// Toggle submit button text
submitBtn.el.lastChild.textContent = active ? submitBtn.activeText : submitBtn.defaultText;
}

View file

@ -34,6 +34,7 @@
</button>
<ul class="dropdown-menu dropdown-menu-end p-1">
<li><a class="dropdown-item rounded-1 display-scheduler {{{ if !canSchedule }}}hidden{{{ end }}}">[[topic:composer.post-later]]</a></li>
<li><a class="dropdown-item rounded-1 cancel-scheduling hidden">[[modules:composer.cancel-scheduling]]</a></li>
{{{ each submitOptions }}}
<li><a class="dropdown-item rounded-1" href="#" data-action="{./action}">{./text}</a></li>
{{{ end }}}
@ -41,4 +42,4 @@
</div>
</div>
</div>
</div>
</div>