![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/libs/absol-full/dist/js/ |
Upload File : |
/*** module: node_modules/absol-card/js/fragment/WorkCalendar.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("../../css/workcalendar.css"); var _Fragment = _interopRequireDefault(require("absol/src/AppPattern/Fragment")); var _Core = _interopRequireDefault(require("../dom/Core")); var _Dom = _interopRequireDefault(require("absol/src/HTML5/Dom")); var _datetime = require("absol/src/Time/datetime"); var _WorkCalendarApdapter = _interopRequireDefault(require("../adapter/WorkCalendarApdapter")); var _ = _Core.default._; var $ = _Core.default.$; function WorkCalendar(props) { _Fragment.default.call(this); this._loadingToken = -1; // property default value this.firstDayOfWeek = 1; /*** * * @type {WorkCalendarAdapter} */ this.adapter = null; Object.assign(this, props); if (this.adapter && this.adapter.attach) this.adapter.attach(this); this.activities = []; //các thẻ đang hiển thị hiệnt tại } Object.defineProperties(WorkCalendar.prototype, Object.getOwnPropertyDescriptors(_Fragment.default.prototype)); WorkCalendar.prototype.constructor = WorkCalendar; /*** * hàm này gọi sau khi gọi createView, đợc gọi 1 lần bởi getView */ WorkCalendar.prototype.onCreated = function () { this._viewCurrentCalendar(); this._loadCurrentCalendar(); }; WorkCalendar.prototype._createHeader = function () { var thisWC = this; this.$header = _({ class: 'cd-work-calendar-header', child: [{ class: 'cd-work-calendar-filter', child: [{ tag: 'label', child: { text: "Board" } }, { tag: 'selectmenu', class: "cd-work-calendar-board-select", props: { items: this.adapter.getBoardList() }, on: { change: this._loadCurrentCalendar.bind(this) // load lại lịch hiện tại với user mới } }] }, { class: 'cd-work-calendar-filter', child: [{ tag: 'label', child: { text: "User" } }, { tag: 'selectmenu', class: 'cd-work-calendar-user-select', props: { items: this.adapter.getUserList() }, on: { change: this._loadCurrentCalendar.bind(this) // load lại lịch hiện tại với user mới } }] }, { class: 'cd-work-calendar-filter', child: [{ class: 'cd-work-calendar-date', child: [{ tag: 'button', class: '.cd-prev-2', child: 'span.mdi.mdi-chevron-double-left', on: { click: this.ev_clickPrevPage.bind(this) } }, { tag: 'button', class: '.cd-prev', child: 'span.mdi.mdi-chevron-left', on: { click: this.ev_clickPrevDate.bind(this) } }, { tag: 'button', class: 'cd-today', child: { text: 'Today' }, on: { click: this.ev_clickToday.bind(this) } }, { tag: 'button', class: 'cd-next', child: 'span.mdi.mdi-chevron-right', on: { click: this.ev_clickNextDate.bind(this) } }, { tag: 'button', class: 'cd-next-2', child: 'span.mdi.mdi-chevron-double-right', on: { click: this.ev_clickNextPage.bind(this) } }, { tag: 'dateinput', props: { value: new Date() }, on: { change: function () { console.log(this.value); thisWC.focusIntoDate(this.value || new Date()); } } }] }] }, { class: 'cd-work-calendar-filter', child: [{ tag: 'label', child: { text: "Lịch" } }, { tag: 'selectmenu', class: 'cd-work-calendar-type-select', props: { items: [{ text: "Tháng", value: "MONTH" }, { text: "Tuần", value: "WEEK" }], disabled: false, value: "MONTH" }, on: { change: function () { thisWC._viewCurrentCalendar(); thisWC._loadCurrentCalendar(); } } }] }] }); this.$calendarType = $('selectmenu.cd-work-calendar-type-select', this.$header); this.$userId = $('.cd-work-calendar-user-select', this.$header); this.$boardId = $('.cd-work-calendar-board-select', this.$header); this.$focusDate = $('dateinput', this.$header); }; WorkCalendar.prototype._createWeekFrame = function () { this.$weekFrame = _({ tag: 'frame', class: 'cd-work-calendar-frame', style: {// backgroundColor: 'rgb(255, 220, 220)' }, child: { tag: 'weektable', style: { width: '100%', height: '100%' // fix sau }, props: { firstDayOfWeek: this.firstDayOfWeek }, on: { visibleperiodchange: function (event) { console.log(event.visiblePeriod); //ngoài ra thời điểm bất kì có thể lấy bằng cách gọi //this là weektable console.log(this.getVisiblePeriod()); } } } }); this.$weekTable = $('weektable', this.$weekFrame); }; WorkCalendar.prototype._createMonthFrame = function () { this.$monthFrame = _({ tag: 'frame', class: 'cd-work-calendar-frame', style: {// backgroundColor: 'rgb(255, 220, 220)' }, child: { tag: 'monthtable', style: { width: '100%', height: '100%' // fix sau }, props: { firstDayOfWeek: this.firstDayOfWeek }, on: { visibleperiodchange: function (event) { console.log(event.visiblePeriod); //ngoài ra thời điểm bất kì có thể lấy bằng cách gọi //this là weektable console.log(this.getVisiblePeriod()); } } } }); this.$monthTable = $('monthtable', this.$monthFrame); }; WorkCalendar.prototype._createLoadModal = function () { this.$loadModal = _({ tag: 'modal', class: 'cd-work-loading-modal', child: { tag: 'img', props: { src: 'https://absol.cf/assets/loadingicon/Spin1s.svg' } } }); }; /*** * hàm gọi bởi getView, và chỉ được gọi 1 lần duy nhất */ WorkCalendar.prototype.createView = function () { this._createHeader(); this._createWeekFrame(); this._createMonthFrame(); this.$view = _({ class: 'cd-work-calendar', child: [this.$header, { tag: 'frameview', child: [this.$weekFrame, this.$monthFrame] }] }); this.$frameView = $('frameview', this.$view); this.$attachhook = _('attachhook').addTo(this.$view).on('error', function () { _Dom.default.addToResizeSystem(this); this.requestUpdateSize(); }); this.$attachhook.requestUpdateSize = this.updateSize.bind(this); }; WorkCalendar.prototype._viewCurrentCalendar = function () { var calendarType = this.$calendarType.value; switch (calendarType) { case "MONTH": this._viewMonthCalendar(); break; case 'WEEK': this._viewWeekCalendar(); break; } this.focusIntoDate(this.$focusDate.value); }; WorkCalendar.prototype._viewMonthCalendar = function () { this.$monthFrame.requestActive(); }; WorkCalendar.prototype._viewWeekCalendar = function () { this.$weekFrame.requestActive(); }; WorkCalendar.prototype.updateSize = function () { var headerBound = this.$header.getBoundingClientRect(); this.$frameView.addStyle('height', 'calc(100% - ' + headerBound.height + 'px)'); }; WorkCalendar.prototype.reload = function () { this._loadCurrentCalendar(); }; WorkCalendar.prototype._loadCurrentCalendar = function () { var calendarType = this.$calendarType.value; switch (calendarType) { case "MONTH": this._loadMonthCalendar(); break; case "WEEK": this._loadWeekCalendar(); break; } }; WorkCalendar.prototype._loadMonthCalendar = function () { var thisWC = this; //xóa toàn bộ thẻ cũ trước khi thêm các thẻ mới this.$monthTable.removeAllActivity(); var userId = this.$userId.value; var boardId = this.$boardId.value; this.adapter.getActivities(boardId, userId).then(function (propOfCards) { thisWC.activities = propOfCards.map(function (pC) { //hàm addActivity trả về một đối tượng CActivity với các property lấy từ card var act = thisWC.$monthTable.addActivity(pC); act.on('click', function () { thisWC.adapter.openActivity(act); }); //cũng có thể viết ngắn gọn : // act.on('click', thisWC.adapter._openActivity.bind( thisWC.adapter, card)); return act; }); }); }; WorkCalendar.prototype._loadWeekCalendar = function () { var thisWC = this; this.$weekTable.removeAllActivity(); var userId = this.$userId.value; var boardId = this.$boardId.value; this.adapter.getActivities(boardId, userId).then(function (propOfCards) { thisWC.activities = propOfCards.map(function (pC) { //hàm addActivity trả về một đối tượng CActivity với các property lấy từ card var act = thisWC.$weekTable.addActivity(pC); act.on('click', function () { thisWC.adapter.openActivity(act); }); return act; }); }); }; /*** * * @param {Date} date */ WorkCalendar.prototype.focusIntoDate = function (date) { var calendarType = this.$calendarType.value; this.$focusDate.value = date; switch (calendarType) { case "MONTH": this.$monthTable.focusInto(date); break; case "WEEK": this.$weekTable.focusInto(date); break; } }; WorkCalendar.prototype._showLoading = function () { var token = Math.random() * 10000 >> 0; this._loadingToken = token; if (!this.$loadModal) this._createLoadModal(); this.$loadModal.addTo(document.body); return token; }; WorkCalendar.prototype._closeLoading = function (token) { if (this._loadingToken != token) return; this.$loadModal.remove(); this._loadingToken = -1; }; WorkCalendar.prototype.ev_clickPrevDate = function () { var newFocusDate = (0, _datetime.prevDate)(this.$focusDate.value); this.focusIntoDate(newFocusDate); }; WorkCalendar.prototype.ev_clickToday = function () { var newFocusDate = (0, _datetime.beginOfDay)(new Date()); this.focusIntoDate(newFocusDate); }; WorkCalendar.prototype.ev_clickNextDate = function () { var newFocusDate = (0, _datetime.nextDate)(this.$focusDate.value); this.focusIntoDate(newFocusDate); }; WorkCalendar.prototype.ev_clickNextPage = function () { var calendarType = this.$calendarType.value; var newFocusDate; switch (calendarType) { case "MONTH": newFocusDate = this.$monthTable.nextPeriod(); break; case "WEEK": newFocusDate = this.$weekTable.nextPeriod(); break; } this.$focusDate.value = newFocusDate; }; WorkCalendar.prototype.ev_clickPrevPage = function () { var calendarType = this.$calendarType.value; var newFocusDate; switch (calendarType) { case "MONTH": newFocusDate = this.$monthTable.prevPeriod(); break; case "WEEK": newFocusDate = this.$weekTable.prevPeriod(); break; } this.$focusDate.value = newFocusDate; }; var _default = WorkCalendar; exports.default = _default;