MCPcopy Create free account
hub / github.com/DHTMLX/scheduler / undoDelete

Function undoDelete

codebase/sources/dhtmlxscheduler.es.js:201–231  ·  view source on GitHub ↗
(scheduler2)

Source from the content-addressed store, hash-verified

199 });
200}
201function undoDelete(scheduler2) {
202 const undoableDeletes = {};
203 scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id) {
204 undoableDeletes[id] = true;
205 return true;
206 });
207 scheduler2.attachEvent("onEventDeleted", function(id, ev) {
208 if (undoableDeletes[id]) {
209 delete undoableDeletes[id];
210 } else {
211 return;
212 }
213 let deletedEvent = scheduler2.copy(ev);
214 if (scheduler2.config.undo_deleted && !scheduler2.getState().new_event) {
215 scheduler2.message({ text: `<div class="dhx_info_message">
216 <span class="undo_popup_text">Event deleted</span>
217 <button class="undo_button" data-deleted-event-id="${ev.id}">Undo</button>
218 </div>`, expire: 1e4, type: "popup_after_delete", callback: function(e) {
219 let undoBtn = e.target.closest(`[data-deleted-event-id="${ev.id}"]`);
220 if (undoBtn) {
221 if (deletedEvent.rrule && deletedEvent.duration) {
222 deletedEvent.end_date = new Date(deletedEvent.start_date.valueOf() + deletedEvent.duration * 1e3);
223 scheduler2.addEvent(deletedEvent);
224 }
225 scheduler2.addEvent(deletedEvent);
226 scheduler2.render();
227 }
228 } });
229 }
230 });
231}
232function limitPlugin(scheduler2) {
233 scheduler2.config.mark_now = true;
234 scheduler2.config.display_marked_timespans = true;

Callers 1

initPluginsFunction · 0.70

Calls 6

attachEventMethod · 0.65
copyMethod · 0.65
getStateMethod · 0.65
messageMethod · 0.65
addEventMethod · 0.65
renderMethod · 0.65

Tested by

no test coverage detected