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

Function undoDelete

codebase/sources/dhtmlxscheduler.js:205–235  ·  view source on GitHub ↗
(scheduler2)

Source from the content-addressed store, hash-verified

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