dhtmlx-scheduler 7.2.5 → 7.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bower.json +1 -1
- package/codebase/dhtmlxscheduler.css +1 -1
- package/codebase/dhtmlxscheduler.d.ts +6 -5
- package/codebase/dhtmlxscheduler.es.d.ts +6 -5
- package/codebase/dhtmlxscheduler.es.js +1396 -1376
- package/codebase/dhtmlxscheduler.es.js.map +1 -1
- package/codebase/dhtmlxscheduler.js +39 -39
- package/codebase/dhtmlxscheduler.js.map +1 -1
- package/codebase/sources/dhtmlxscheduler.css +6 -5
- package/codebase/sources/dhtmlxscheduler.es.js +713 -674
- package/codebase/sources/dhtmlxscheduler.es.js.map +1 -1
- package/codebase/sources/dhtmlxscheduler.js +713 -674
- package/codebase/sources/dhtmlxscheduler.js.map +1 -1
- package/codebase/sources/less/package.json +1 -1
- package/codebase/sources/less/src/lightbox.less +1 -0
- package/package.json +1 -1
- package/whatsnew.md +18 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
})(this, function(exports2) {
|
|
4
4
|
"use strict";/** @license
|
|
5
5
|
|
|
6
|
-
dhtmlxScheduler v.7.2.
|
|
6
|
+
dhtmlxScheduler v.7.2.8 Standard
|
|
7
7
|
|
|
8
8
|
To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product), please obtain Commercial/Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxScheduler/#licensing or contact us at sales@dhtmlx.com
|
|
9
9
|
|
|
@@ -167,21 +167,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
167
167
|
}
|
|
168
168
|
return unitMarkersArray;
|
|
169
169
|
}
|
|
170
|
-
scheduler2.attachEvent("onBeforeDrag", function(
|
|
170
|
+
scheduler2.attachEvent("onBeforeDrag", function(id, mode, e) {
|
|
171
171
|
if (isEnabled2()) {
|
|
172
172
|
dragStarted = true;
|
|
173
|
-
event2 = scheduler2.getEvent(
|
|
173
|
+
event2 = scheduler2.getEvent(id);
|
|
174
174
|
eventNode = e.target.closest(`[${scheduler2.config.event_attribute}]`);
|
|
175
175
|
const viewName = scheduler2.getState().mode;
|
|
176
176
|
const layout = checkViewName(viewName);
|
|
177
177
|
if (layout == "units" && scheduler2.config.cascade_event_display) {
|
|
178
|
-
scheduler2.unselect(
|
|
178
|
+
scheduler2.unselect(id);
|
|
179
179
|
eventNode = e.target.closest(`[${scheduler2.config.event_attribute}]`);
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
return true;
|
|
183
183
|
});
|
|
184
|
-
scheduler2.attachEvent("onEventDrag", function(
|
|
184
|
+
scheduler2.attachEvent("onEventDrag", function(id, mode, e) {
|
|
185
185
|
if (dragStarted && isEnabled2()) {
|
|
186
186
|
dragStarted = false;
|
|
187
187
|
const viewName = scheduler2.getState().mode;
|
|
@@ -193,7 +193,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
|
-
scheduler2.attachEvent("onDragEnd", function(
|
|
196
|
+
scheduler2.attachEvent("onDragEnd", function(id, mode, e) {
|
|
197
197
|
for (let i = 0; i < dndMarkers.length; i++) {
|
|
198
198
|
scheduler2.unmarkTimespan(dndMarkers[i]);
|
|
199
199
|
}
|
|
@@ -204,13 +204,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
204
204
|
}
|
|
205
205
|
function undoDelete(scheduler2) {
|
|
206
206
|
const undoableDeletes = {};
|
|
207
|
-
scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(
|
|
208
|
-
undoableDeletes[
|
|
207
|
+
scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id) {
|
|
208
|
+
undoableDeletes[id] = true;
|
|
209
209
|
return true;
|
|
210
210
|
});
|
|
211
|
-
scheduler2.attachEvent("onEventDeleted", function(
|
|
212
|
-
if (undoableDeletes[
|
|
213
|
-
delete undoableDeletes[
|
|
211
|
+
scheduler2.attachEvent("onEventDeleted", function(id, ev) {
|
|
212
|
+
if (undoableDeletes[id]) {
|
|
213
|
+
delete undoableDeletes[id];
|
|
214
214
|
} else {
|
|
215
215
|
return;
|
|
216
216
|
}
|
|
@@ -568,10 +568,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
568
568
|
scheduler2._get_block_by_config = function(config) {
|
|
569
569
|
var block = document.createElement("div");
|
|
570
570
|
if (config.html) {
|
|
571
|
-
|
|
571
|
+
let html = config.html;
|
|
572
|
+
if (typeof html == "function") {
|
|
573
|
+
html = html(config);
|
|
574
|
+
}
|
|
575
|
+
if (typeof html == "string")
|
|
572
576
|
block.innerHTML = config.html;
|
|
573
|
-
else
|
|
574
|
-
|
|
577
|
+
else if (scheduler2.config.external_render && scheduler2.config.external_render.isElement(html)) {
|
|
578
|
+
scheduler2.config.external_render.renderElement(html, block);
|
|
579
|
+
} else {
|
|
580
|
+
block.appendChild(html);
|
|
581
|
+
}
|
|
575
582
|
}
|
|
576
583
|
return block;
|
|
577
584
|
};
|
|
@@ -730,14 +737,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
730
737
|
scheduler2._addMarkerTimespanConfig = function(config) {
|
|
731
738
|
var global2 = "global";
|
|
732
739
|
var timespans = scheduler2._marked_timespans;
|
|
733
|
-
var
|
|
740
|
+
var id = config.id;
|
|
734
741
|
var ids = scheduler2._marked_timespans_ids;
|
|
735
|
-
if (!ids[
|
|
736
|
-
ids[
|
|
742
|
+
if (!ids[id])
|
|
743
|
+
ids[id] = [];
|
|
737
744
|
var day = config.days;
|
|
738
745
|
var sections = config.sections;
|
|
739
746
|
var type = config.type;
|
|
740
|
-
config.id =
|
|
747
|
+
config.id = id;
|
|
741
748
|
if (sections) {
|
|
742
749
|
for (var view_key in sections) {
|
|
743
750
|
if (sections.hasOwnProperty(view_key)) {
|
|
@@ -759,7 +766,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
759
766
|
var day_configs = timespans_view[unit_id][day][type];
|
|
760
767
|
config._array = day_configs;
|
|
761
768
|
day_configs.push(config);
|
|
762
|
-
ids[
|
|
769
|
+
ids[id].push(config);
|
|
763
770
|
}
|
|
764
771
|
}
|
|
765
772
|
} else {
|
|
@@ -774,7 +781,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
774
781
|
var day_configs = timespans[global2][day][type];
|
|
775
782
|
config._array = day_configs;
|
|
776
783
|
day_configs.push(config);
|
|
777
|
-
ids[
|
|
784
|
+
ids[id].push(config);
|
|
778
785
|
}
|
|
779
786
|
};
|
|
780
787
|
scheduler2._marked_timespans_ids = {};
|
|
@@ -782,11 +789,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
782
789
|
var configs = scheduler2._prepare_timespan_options(configuration);
|
|
783
790
|
if (!configs.length)
|
|
784
791
|
return;
|
|
785
|
-
var
|
|
792
|
+
var id = configs[0].id;
|
|
786
793
|
for (var i = 0; i < configs.length; i++) {
|
|
787
794
|
scheduler2._addMarkerTimespanConfig(configs[i]);
|
|
788
795
|
}
|
|
789
|
-
return
|
|
796
|
+
return id;
|
|
790
797
|
};
|
|
791
798
|
scheduler2._add_timespan_zones = function(current_zones, zones) {
|
|
792
799
|
var resulting_zones = current_zones.slice();
|
|
@@ -848,8 +855,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
848
855
|
scheduler2.invertZones = function(zones) {
|
|
849
856
|
return scheduler2._subtract_timespan_zones([0, 1440], zones.slice());
|
|
850
857
|
};
|
|
851
|
-
scheduler2._delete_marked_timespan_by_id = function(
|
|
852
|
-
var configs = scheduler2._marked_timespans_ids[
|
|
858
|
+
scheduler2._delete_marked_timespan_by_id = function(id) {
|
|
859
|
+
var configs = scheduler2._marked_timespans_ids[id];
|
|
853
860
|
if (configs) {
|
|
854
861
|
for (var i = 0; i < configs.length; i++) {
|
|
855
862
|
var config = configs[i];
|
|
@@ -1291,12 +1298,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
1291
1298
|
return;
|
|
1292
1299
|
}
|
|
1293
1300
|
const { type, event: event2 } = message2;
|
|
1294
|
-
if (scheduler2._dp._in_progress[event2.id]) {
|
|
1301
|
+
if (scheduler2._dp && scheduler2._dp._in_progress[event2.id]) {
|
|
1295
1302
|
return;
|
|
1296
1303
|
}
|
|
1297
1304
|
if (type === "add-event") {
|
|
1298
|
-
for (const
|
|
1299
|
-
if (scheduler2._dp.getState(
|
|
1305
|
+
for (const id in scheduler2._dp._in_progress) {
|
|
1306
|
+
if (scheduler2._dp.getState(id) === "inserted") {
|
|
1300
1307
|
scheduler2._dp.attachEvent("onFullSync", function() {
|
|
1301
1308
|
if (!scheduler2.getEvent(event2.id)) {
|
|
1302
1309
|
processUpdate(type, event2);
|
|
@@ -1370,7 +1377,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
1370
1377
|
function handleDeleteEvent(eventData) {
|
|
1371
1378
|
const sid = eventData.id;
|
|
1372
1379
|
if (!scheduler2.getEvent(sid)) {
|
|
1373
|
-
if (eventData.event_pid) {
|
|
1380
|
+
if (eventData.event_pid || eventData.recurring_event_id) {
|
|
1374
1381
|
ignore(() => {
|
|
1375
1382
|
scheduler2.addEvent(eventData);
|
|
1376
1383
|
});
|
|
@@ -1552,7 +1559,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
1552
1559
|
}
|
|
1553
1560
|
function extend$n(scheduler2) {
|
|
1554
1561
|
var commonViews = { agenda: "https://docs.dhtmlx.com/scheduler/agenda_view.html", grid: "https://docs.dhtmlx.com/scheduler/grid_view.html", map: "https://docs.dhtmlx.com/scheduler/map_view.html", unit: "https://docs.dhtmlx.com/scheduler/units_view.html", timeline: "https://docs.dhtmlx.com/scheduler/timeline_view.html", week_agenda: "https://docs.dhtmlx.com/scheduler/weekagenda_view.html", year: "https://docs.dhtmlx.com/scheduler/year_view.html", anythingElse: "https://docs.dhtmlx.com/scheduler/views.html" };
|
|
1555
|
-
var requiredExtensions = { agenda: "
|
|
1562
|
+
var requiredExtensions = { agenda: "scheduler.plugins({ agenda_view: true })", grid: "scheduler.plugins({ grid_view: true })", map: "scheduler.plugins({ map_view: true })", unit: "scheduler.plugins({ units: true })", timeline: "scheduler.plugins({ timeline: true, treetimeline: true, daytimeline: true})", week_agenda: "scheduler.plugins({ week_agenda: true })", year: "scheduler.plugins({ year_view: true })", limit: "scheduler.plugins({ limit: true })" };
|
|
1556
1563
|
scheduler2._commonErrorMessages = { unknownView: function(view) {
|
|
1557
1564
|
var relatedDoc = "Related docs: " + (commonViews[view] || commonViews.anythingElse);
|
|
1558
1565
|
var relatedExtension = requiredExtensions[view] ? "You're probably missing " + requiredExtensions[view] + "." : "";
|
|
@@ -1570,10 +1577,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
1570
1577
|
throw new Error("scheduler.createGridView is not implemented. Be sure to add the required extension: " + requiredExtensions.grid + "\nRelated docs: " + commonViews.grid);
|
|
1571
1578
|
};
|
|
1572
1579
|
scheduler2.addMarkedTimespan = function() {
|
|
1573
|
-
throw new Error("scheduler.addMarkedTimespan is not implemented. Be sure to add the required extension:
|
|
1580
|
+
throw new Error("scheduler.addMarkedTimespan is not implemented. Be sure to add the required extension: scheduler.plugins({ limit: true })\nRelated docs: https://docs.dhtmlx.com/scheduler/limits.html");
|
|
1574
1581
|
};
|
|
1575
1582
|
scheduler2.renderCalendar = function() {
|
|
1576
|
-
throw new Error("scheduler.renderCalendar is not implemented. Be sure to add the required extension:
|
|
1583
|
+
throw new Error("scheduler.renderCalendar is not implemented. Be sure to add the required extension: scheduler.plugins({ minical: true })\nhttps://docs.dhtmlx.com/scheduler/minicalendar.html");
|
|
1577
1584
|
};
|
|
1578
1585
|
scheduler2.exportToPNG = function() {
|
|
1579
1586
|
throw new Error(["scheduler.exportToPNG is not implemented.", "This feature requires an additional module, be sure to check the related doc here https://docs.dhtmlx.com/scheduler/png.html", "Licensing info: https://dhtmlx.com/docs/products/dhtmlxScheduler/export.shtml"].join("\n"));
|
|
@@ -1963,8 +1970,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
1963
1970
|
}
|
|
1964
1971
|
return false;
|
|
1965
1972
|
};
|
|
1966
|
-
eventStorage.removeEvent = function(
|
|
1967
|
-
delete handlers[
|
|
1973
|
+
eventStorage.removeEvent = function(id) {
|
|
1974
|
+
delete handlers[id];
|
|
1968
1975
|
};
|
|
1969
1976
|
eventStorage.clear = function() {
|
|
1970
1977
|
handlers = {};
|
|
@@ -2007,13 +2014,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2007
2014
|
const listeners = eventHost.listeners;
|
|
2008
2015
|
return !!listeners["ev_" + name.toLowerCase()];
|
|
2009
2016
|
};
|
|
2010
|
-
obj.detachEvent = function(
|
|
2011
|
-
if (
|
|
2017
|
+
obj.detachEvent = function(id) {
|
|
2018
|
+
if (id) {
|
|
2012
2019
|
let listeners = eventHost.listeners;
|
|
2013
2020
|
for (const i in listeners) {
|
|
2014
|
-
listeners[i].removeEvent(
|
|
2021
|
+
listeners[i].removeEvent(id);
|
|
2015
2022
|
}
|
|
2016
|
-
const list =
|
|
2023
|
+
const list = id.split(":");
|
|
2017
2024
|
listeners = eventHost.listeners;
|
|
2018
2025
|
if (list.length === 2) {
|
|
2019
2026
|
const eventName = list[0];
|
|
@@ -2033,11 +2040,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2033
2040
|
function extend$j(scheduler2) {
|
|
2034
2041
|
makeEventable(scheduler2);
|
|
2035
2042
|
extend$l(scheduler2);
|
|
2036
|
-
scheduler2._detachDomEvent = function(
|
|
2037
|
-
if (
|
|
2038
|
-
|
|
2039
|
-
} else if (
|
|
2040
|
-
|
|
2043
|
+
scheduler2._detachDomEvent = function(el, event2, handler) {
|
|
2044
|
+
if (el.removeEventListener) {
|
|
2045
|
+
el.removeEventListener(event2, handler, false);
|
|
2046
|
+
} else if (el.detachEvent) {
|
|
2047
|
+
el.detachEvent("on" + event2, handler);
|
|
2041
2048
|
}
|
|
2042
2049
|
};
|
|
2043
2050
|
scheduler2._init_once = function() {
|
|
@@ -2088,7 +2095,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2088
2095
|
});
|
|
2089
2096
|
return views.concat(date).concat(nav);
|
|
2090
2097
|
}
|
|
2091
|
-
scheduler2.init = function(
|
|
2098
|
+
scheduler2.init = function(id, date, mode) {
|
|
2092
2099
|
if (this.$destroyed) {
|
|
2093
2100
|
return;
|
|
2094
2101
|
}
|
|
@@ -2097,7 +2104,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2097
2104
|
if (this._obj) {
|
|
2098
2105
|
this.unset_actions();
|
|
2099
2106
|
}
|
|
2100
|
-
this._obj = typeof
|
|
2107
|
+
this._obj = typeof id == "string" ? document.getElementById(id) : id;
|
|
2101
2108
|
this.$container = this._obj;
|
|
2102
2109
|
this.$root = this._obj;
|
|
2103
2110
|
if (!this.$container.offsetHeight && this.$container.offsetWidth && this.$container.style.height === "100%") {
|
|
@@ -2281,20 +2288,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2281
2288
|
return returnValue;
|
|
2282
2289
|
});
|
|
2283
2290
|
};
|
|
2284
|
-
scheduler2.select = function(
|
|
2285
|
-
if (this._select_id ==
|
|
2291
|
+
scheduler2.select = function(id) {
|
|
2292
|
+
if (this._select_id == id)
|
|
2286
2293
|
return;
|
|
2287
2294
|
scheduler2._close_not_saved();
|
|
2288
2295
|
this.editStop(false);
|
|
2289
2296
|
if (this._select_id) {
|
|
2290
2297
|
this.unselect();
|
|
2291
2298
|
}
|
|
2292
|
-
this._select_id =
|
|
2293
|
-
this.updateEvent(
|
|
2294
|
-
this.callEvent("onEventSelected", [
|
|
2299
|
+
this._select_id = id;
|
|
2300
|
+
this.updateEvent(id);
|
|
2301
|
+
this.callEvent("onEventSelected", [id]);
|
|
2295
2302
|
};
|
|
2296
|
-
scheduler2.unselect = function(
|
|
2297
|
-
if (
|
|
2303
|
+
scheduler2.unselect = function(id) {
|
|
2304
|
+
if (id && id != this._select_id) {
|
|
2298
2305
|
return;
|
|
2299
2306
|
}
|
|
2300
2307
|
const previousSelection = this._select_id;
|
|
@@ -2315,19 +2322,19 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2315
2322
|
scheduler2._ignore_next_click = false;
|
|
2316
2323
|
return false;
|
|
2317
2324
|
}
|
|
2318
|
-
const
|
|
2319
|
-
if (!
|
|
2325
|
+
const id = scheduler2._locate_event(e.target);
|
|
2326
|
+
if (!id) {
|
|
2320
2327
|
scheduler2.callEvent("onEmptyClick", [scheduler2.getActionData(e).date, e]);
|
|
2321
2328
|
} else {
|
|
2322
|
-
if (!scheduler2.callEvent("onClick", [
|
|
2329
|
+
if (!scheduler2.callEvent("onClick", [id, e]) || scheduler2.config.readonly)
|
|
2323
2330
|
return;
|
|
2324
2331
|
}
|
|
2325
|
-
if (
|
|
2326
|
-
scheduler2.select(
|
|
2332
|
+
if (id && scheduler2.config.select) {
|
|
2333
|
+
scheduler2.select(id);
|
|
2327
2334
|
const icon = e.target.closest(".dhx_menu_icon");
|
|
2328
2335
|
const mask = scheduler2._getClassName(icon);
|
|
2329
2336
|
if (mask.indexOf("_icon") != -1)
|
|
2330
|
-
scheduler2._click.buttons[mask.split(" ")[1].replace("icon_", "")](
|
|
2337
|
+
scheduler2._click.buttons[mask.split(" ")[1].replace("icon_", "")](id);
|
|
2331
2338
|
} else {
|
|
2332
2339
|
scheduler2._close_not_saved();
|
|
2333
2340
|
if (scheduler2.getState().select_id && (/* @__PURE__ */ new Date()).valueOf() - (scheduler2._new_event || 0) > 500) {
|
|
@@ -2352,20 +2359,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2352
2359
|
const deprecated_name = this.getAttribute("name");
|
|
2353
2360
|
const mode = name || deprecated_name.substring(0, deprecated_name.search("_tab"));
|
|
2354
2361
|
scheduler2.setCurrentView(scheduler2._date, mode);
|
|
2355
|
-
}, buttons: { delete: function(
|
|
2362
|
+
}, buttons: { delete: function(id) {
|
|
2356
2363
|
const c = scheduler2.locale.labels.confirm_deleting;
|
|
2357
|
-
scheduler2.
|
|
2358
|
-
scheduler2.deleteEvent(
|
|
2364
|
+
scheduler2._delete_event_confirm({ event: scheduler2.getEvent(id), message: c, title: scheduler2.locale.labels.title_confirm_deleting, callback: function() {
|
|
2365
|
+
scheduler2.deleteEvent(id);
|
|
2359
2366
|
}, config: { ok: scheduler2.locale.labels.icon_delete } });
|
|
2360
|
-
}, edit: function(
|
|
2361
|
-
scheduler2.edit(
|
|
2362
|
-
}, save: function(
|
|
2367
|
+
}, edit: function(id) {
|
|
2368
|
+
scheduler2.edit(id);
|
|
2369
|
+
}, save: function(id) {
|
|
2363
2370
|
scheduler2.editStop(true);
|
|
2364
|
-
}, details: function(
|
|
2365
|
-
scheduler2.showLightbox(
|
|
2366
|
-
}, form: function(
|
|
2367
|
-
scheduler2.showLightbox(
|
|
2368
|
-
}, cancel: function(
|
|
2371
|
+
}, details: function(id) {
|
|
2372
|
+
scheduler2.showLightbox(id);
|
|
2373
|
+
}, form: function(id) {
|
|
2374
|
+
scheduler2.showLightbox(id);
|
|
2375
|
+
}, cancel: function(id) {
|
|
2369
2376
|
scheduler2.editStop(false);
|
|
2370
2377
|
} } };
|
|
2371
2378
|
scheduler2._dhtmlx_confirm = function({ message: message2, title, callback, config }) {
|
|
@@ -2440,13 +2447,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2440
2447
|
case "dhx_grid_event":
|
|
2441
2448
|
case "dhx_cal_event_line":
|
|
2442
2449
|
case "dhx_cal_event_clear": {
|
|
2443
|
-
const
|
|
2444
|
-
if (!this.callEvent("onDblClick", [
|
|
2450
|
+
const id = this._locate_event(src);
|
|
2451
|
+
if (!this.callEvent("onDblClick", [id, e]))
|
|
2445
2452
|
return;
|
|
2446
|
-
if (this.config.details_on_dblclick || this._table_view || !this.getEvent(
|
|
2447
|
-
this.showLightbox(
|
|
2453
|
+
if (this.config.details_on_dblclick || this._table_view || !this.getEvent(id)._timed || !this.config.select)
|
|
2454
|
+
this.showLightbox(id);
|
|
2448
2455
|
else
|
|
2449
|
-
this.edit(
|
|
2456
|
+
this.edit(id);
|
|
2450
2457
|
break;
|
|
2451
2458
|
}
|
|
2452
2459
|
case "dhx_time_block":
|
|
@@ -2850,8 +2857,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2850
2857
|
}
|
|
2851
2858
|
} else {
|
|
2852
2859
|
if (scheduler2.checkEvent("onMouseMove")) {
|
|
2853
|
-
var
|
|
2854
|
-
this.callEvent("onMouseMove", [
|
|
2860
|
+
var id = this._locate_event(e.target || e.srcElement);
|
|
2861
|
+
this.callEvent("onMouseMove", [id, e]);
|
|
2855
2862
|
}
|
|
2856
2863
|
}
|
|
2857
2864
|
};
|
|
@@ -2909,11 +2916,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2909
2916
|
break;
|
|
2910
2917
|
}
|
|
2911
2918
|
if (this._drag_mode) {
|
|
2912
|
-
var
|
|
2913
|
-
if (!this.config["drag_" + this._drag_mode] || !this.callEvent("onBeforeDrag", [
|
|
2919
|
+
var id = this._locate_event(src);
|
|
2920
|
+
if (!this.config["drag_" + this._drag_mode] || !this.callEvent("onBeforeDrag", [id, this._drag_mode, e]))
|
|
2914
2921
|
this._drag_mode = this._drag_id = 0;
|
|
2915
2922
|
else {
|
|
2916
|
-
this._drag_id =
|
|
2923
|
+
this._drag_id = id;
|
|
2917
2924
|
if (this._edit_id != this._drag_id || this._edit_id && this._drag_mode == "create")
|
|
2918
2925
|
this._close_not_saved();
|
|
2919
2926
|
if (!this._drag_mode)
|
|
@@ -2968,6 +2975,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
2968
2975
|
if (is_new && this.config.edit_on_create) {
|
|
2969
2976
|
this.unselect();
|
|
2970
2977
|
this._new_event = /* @__PURE__ */ new Date();
|
|
2978
|
+
ev.$new = true;
|
|
2971
2979
|
if (this._table_view || this.config.details_on_create || !this.config.select || !this.isOneDayEvent(this.getEvent(drag_id))) {
|
|
2972
2980
|
scheduler2.callEvent("onDragEnd", [drag_id, mode, e]);
|
|
2973
2981
|
return this.showLightbox(drag_id);
|
|
@@ -3642,30 +3650,30 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
3642
3650
|
return state.lightbox_id !== null && state.lightbox_id !== void 0;
|
|
3643
3651
|
};
|
|
3644
3652
|
}
|
|
3645
|
-
const defaultDomEvents = { event: function(
|
|
3646
|
-
if (
|
|
3647
|
-
|
|
3648
|
-
else if (
|
|
3649
|
-
|
|
3650
|
-
}, eventRemove: function(
|
|
3651
|
-
if (
|
|
3652
|
-
|
|
3653
|
-
else if (
|
|
3654
|
-
|
|
3653
|
+
const defaultDomEvents = { event: function(el, event2, handler) {
|
|
3654
|
+
if (el.addEventListener)
|
|
3655
|
+
el.addEventListener(event2, handler, false);
|
|
3656
|
+
else if (el.attachEvent)
|
|
3657
|
+
el.attachEvent("on" + event2, handler);
|
|
3658
|
+
}, eventRemove: function(el, event2, handler) {
|
|
3659
|
+
if (el.removeEventListener)
|
|
3660
|
+
el.removeEventListener(event2, handler, false);
|
|
3661
|
+
else if (el.detachEvent)
|
|
3662
|
+
el.detachEvent("on" + event2, handler);
|
|
3655
3663
|
} };
|
|
3656
3664
|
function createEventScope() {
|
|
3657
3665
|
var domEvents = function(addEvent, removeEvent) {
|
|
3658
3666
|
addEvent = addEvent || defaultDomEvents.event;
|
|
3659
3667
|
removeEvent = removeEvent || defaultDomEvents.eventRemove;
|
|
3660
3668
|
var handlers = [];
|
|
3661
|
-
var eventScope = { attach: function(
|
|
3662
|
-
handlers.push({ element:
|
|
3663
|
-
addEvent(
|
|
3664
|
-
}, detach: function(
|
|
3665
|
-
removeEvent(
|
|
3669
|
+
var eventScope = { attach: function(el, event2, callback, capture) {
|
|
3670
|
+
handlers.push({ element: el, event: event2, callback, capture });
|
|
3671
|
+
addEvent(el, event2, callback, capture);
|
|
3672
|
+
}, detach: function(el, event2, callback, capture) {
|
|
3673
|
+
removeEvent(el, event2, callback, capture);
|
|
3666
3674
|
for (var i = 0; i < handlers.length; i++) {
|
|
3667
3675
|
var handler = handlers[i];
|
|
3668
|
-
if (handler.element ===
|
|
3676
|
+
if (handler.element === el && handler.event === event2 && handler.callback === callback && handler.capture === capture) {
|
|
3669
3677
|
handlers.splice(i, 1);
|
|
3670
3678
|
i--;
|
|
3671
3679
|
}
|
|
@@ -4170,13 +4178,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
4170
4178
|
} else {
|
|
4171
4179
|
var matches = Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
|
|
4172
4180
|
closest = function(element, selector) {
|
|
4173
|
-
var
|
|
4181
|
+
var el = element;
|
|
4174
4182
|
do {
|
|
4175
|
-
if (matches.call(
|
|
4176
|
-
return
|
|
4183
|
+
if (matches.call(el, selector)) {
|
|
4184
|
+
return el;
|
|
4177
4185
|
}
|
|
4178
|
-
|
|
4179
|
-
} while (
|
|
4186
|
+
el = el.parentElement || el.parentNode;
|
|
4187
|
+
} while (el !== null && el.nodeType === 1);
|
|
4180
4188
|
return null;
|
|
4181
4189
|
};
|
|
4182
4190
|
}
|
|
@@ -4845,7 +4853,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
4845
4853
|
this.clear_view();
|
|
4846
4854
|
this.callEvent("onClearAll", []);
|
|
4847
4855
|
};
|
|
4848
|
-
scheduler2.addEvent = function(start_date, end_date, text,
|
|
4856
|
+
scheduler2.addEvent = function(start_date, end_date, text, id, extra_data) {
|
|
4849
4857
|
if (!arguments.length)
|
|
4850
4858
|
return this.addEventNow();
|
|
4851
4859
|
var ev = start_date;
|
|
@@ -4854,7 +4862,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
4854
4862
|
ev.start_date = start_date;
|
|
4855
4863
|
ev.end_date = end_date;
|
|
4856
4864
|
ev.text = text;
|
|
4857
|
-
ev.id =
|
|
4865
|
+
ev.id = id;
|
|
4858
4866
|
}
|
|
4859
4867
|
ev.id = ev.id || scheduler2.uid();
|
|
4860
4868
|
ev.text = ev.text || "";
|
|
@@ -4863,8 +4871,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
4863
4871
|
if (typeof ev.end_date == "string")
|
|
4864
4872
|
ev.end_date = this.templates.api_date(ev.end_date);
|
|
4865
4873
|
var d = (this.config.event_duration || this.config.time_step) * 6e4;
|
|
4866
|
-
if (ev.
|
|
4867
|
-
ev.end_date.setTime(ev.
|
|
4874
|
+
if (new Date(ev.end_date).valueOf() - new Date(ev.start_date).valueOf() <= d)
|
|
4875
|
+
ev.end_date.setTime(ev.start_date.valueOf() + d);
|
|
4868
4876
|
ev.start_date.setMilliseconds(0);
|
|
4869
4877
|
ev.end_date.setMilliseconds(0);
|
|
4870
4878
|
ev._timed = this.isOneDayEvent(ev);
|
|
@@ -4875,15 +4883,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
4875
4883
|
this.callEvent(is_new ? "onEventAdded" : "onEventChanged", [ev.id, ev]);
|
|
4876
4884
|
return ev.id;
|
|
4877
4885
|
};
|
|
4878
|
-
scheduler2.deleteEvent = function(
|
|
4879
|
-
var ev = this._events[
|
|
4880
|
-
if (!silent && (!this.callEvent("onBeforeEventDelete", [
|
|
4886
|
+
scheduler2.deleteEvent = function(id, silent) {
|
|
4887
|
+
var ev = this._events[id];
|
|
4888
|
+
if (!silent && (!this.callEvent("onBeforeEventDelete", [id, ev]) || !this.callEvent("onConfirmedBeforeEventDelete", [id, ev])))
|
|
4881
4889
|
return;
|
|
4882
4890
|
if (ev) {
|
|
4883
|
-
if (scheduler2.getState().select_id ==
|
|
4891
|
+
if (scheduler2.getState().select_id == id) {
|
|
4884
4892
|
scheduler2.unselect();
|
|
4885
4893
|
}
|
|
4886
|
-
delete this._events[
|
|
4894
|
+
delete this._events[id];
|
|
4887
4895
|
this.event_updated(ev);
|
|
4888
4896
|
if (this._drag_id == ev.id) {
|
|
4889
4897
|
this._drag_id = null;
|
|
@@ -4891,50 +4899,50 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
4891
4899
|
this._drag_pos = null;
|
|
4892
4900
|
}
|
|
4893
4901
|
}
|
|
4894
|
-
this.callEvent("onEventDeleted", [
|
|
4902
|
+
this.callEvent("onEventDeleted", [id, ev]);
|
|
4895
4903
|
};
|
|
4896
|
-
scheduler2.getEvent = function(
|
|
4897
|
-
return this._events[
|
|
4904
|
+
scheduler2.getEvent = function(id) {
|
|
4905
|
+
return this._events[id];
|
|
4898
4906
|
};
|
|
4899
|
-
scheduler2.setEvent = function(
|
|
4907
|
+
scheduler2.setEvent = function(id, hash) {
|
|
4900
4908
|
if (!hash.id)
|
|
4901
|
-
hash.id =
|
|
4902
|
-
this._events[
|
|
4909
|
+
hash.id = id;
|
|
4910
|
+
this._events[id] = hash;
|
|
4903
4911
|
};
|
|
4904
|
-
scheduler2.for_rendered = function(
|
|
4912
|
+
scheduler2.for_rendered = function(id, method) {
|
|
4905
4913
|
for (var i = this._rendered.length - 1; i >= 0; i--)
|
|
4906
|
-
if (this._rendered[i].getAttribute(this.config.event_attribute) ==
|
|
4914
|
+
if (this._rendered[i].getAttribute(this.config.event_attribute) == id)
|
|
4907
4915
|
method(this._rendered[i], i);
|
|
4908
4916
|
};
|
|
4909
|
-
scheduler2.changeEventId = function(
|
|
4910
|
-
if (
|
|
4917
|
+
scheduler2.changeEventId = function(id, new_id) {
|
|
4918
|
+
if (id == new_id)
|
|
4911
4919
|
return;
|
|
4912
|
-
var ev = this._events[
|
|
4920
|
+
var ev = this._events[id];
|
|
4913
4921
|
if (ev) {
|
|
4914
4922
|
ev.id = new_id;
|
|
4915
4923
|
this._events[new_id] = ev;
|
|
4916
|
-
delete this._events[
|
|
4924
|
+
delete this._events[id];
|
|
4917
4925
|
}
|
|
4918
|
-
this.for_rendered(
|
|
4926
|
+
this.for_rendered(id, function(r) {
|
|
4919
4927
|
r.setAttribute("event_id", new_id);
|
|
4920
4928
|
r.setAttribute(scheduler2.config.event_attribute, new_id);
|
|
4921
4929
|
});
|
|
4922
|
-
if (this._select_id ==
|
|
4930
|
+
if (this._select_id == id)
|
|
4923
4931
|
this._select_id = new_id;
|
|
4924
|
-
if (this._edit_id ==
|
|
4932
|
+
if (this._edit_id == id)
|
|
4925
4933
|
this._edit_id = new_id;
|
|
4926
|
-
this.callEvent("onEventIdChange", [
|
|
4934
|
+
this.callEvent("onEventIdChange", [id, new_id]);
|
|
4927
4935
|
};
|
|
4928
4936
|
(function() {
|
|
4929
4937
|
var attrs = ["text", "Text", "start_date", "StartDate", "end_date", "EndDate"];
|
|
4930
4938
|
var create_getter = function(name) {
|
|
4931
|
-
return function(
|
|
4932
|
-
return scheduler2.getEvent(
|
|
4939
|
+
return function(id) {
|
|
4940
|
+
return scheduler2.getEvent(id)[name];
|
|
4933
4941
|
};
|
|
4934
4942
|
};
|
|
4935
4943
|
var create_setter = function(name) {
|
|
4936
|
-
return function(
|
|
4937
|
-
var ev = scheduler2.getEvent(
|
|
4944
|
+
return function(id, value) {
|
|
4945
|
+
var ev = scheduler2.getEvent(id);
|
|
4938
4946
|
ev[name] = value;
|
|
4939
4947
|
ev._changed = true;
|
|
4940
4948
|
ev._timed = this.isOneDayEvent(ev);
|
|
@@ -4976,18 +4984,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
4976
4984
|
};
|
|
4977
4985
|
scheduler2.get_visible_events = function(only_timed) {
|
|
4978
4986
|
var stack = [];
|
|
4979
|
-
for (var
|
|
4980
|
-
if (this.is_visible_events(this._events[
|
|
4981
|
-
if (!only_timed || this._events[
|
|
4982
|
-
if (this.filter_event(
|
|
4983
|
-
stack.push(this._events[
|
|
4987
|
+
for (var id in this._events)
|
|
4988
|
+
if (this.is_visible_events(this._events[id])) {
|
|
4989
|
+
if (!only_timed || this._events[id]._timed) {
|
|
4990
|
+
if (this.filter_event(id, this._events[id]))
|
|
4991
|
+
stack.push(this._events[id]);
|
|
4984
4992
|
}
|
|
4985
4993
|
}
|
|
4986
4994
|
return stack;
|
|
4987
4995
|
};
|
|
4988
|
-
scheduler2.filter_event = function(
|
|
4996
|
+
scheduler2.filter_event = function(id, ev) {
|
|
4989
4997
|
var filter = this["filter_" + this._mode];
|
|
4990
|
-
return filter ? filter(
|
|
4998
|
+
return filter ? filter(id, ev) : true;
|
|
4991
4999
|
};
|
|
4992
5000
|
scheduler2._is_main_area_event = function(ev) {
|
|
4993
5001
|
return !!ev._timed;
|
|
@@ -5058,27 +5066,27 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5058
5066
|
var count = scheduler2.getEvents(curr, date.add(curr, 1, "day")).length;
|
|
5059
5067
|
var pos = this._get_event_bar_pos(toRender);
|
|
5060
5068
|
var widt = pos.x2 - pos.x;
|
|
5061
|
-
var
|
|
5062
|
-
scheduler2.event(
|
|
5069
|
+
var el = document.createElement("div");
|
|
5070
|
+
scheduler2.event(el, "click", function(e) {
|
|
5063
5071
|
scheduler2._view_month_day(e);
|
|
5064
5072
|
});
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
|
|
5069
|
-
|
|
5070
|
-
this._rendered.push(
|
|
5071
|
-
parent.appendChild(
|
|
5073
|
+
el.className = "dhx_month_link";
|
|
5074
|
+
el.style.top = pos.y + "px";
|
|
5075
|
+
el.style.left = pos.x + "px";
|
|
5076
|
+
el.style.width = widt + "px";
|
|
5077
|
+
el.innerHTML = scheduler2.templates.month_events_link(curr, count);
|
|
5078
|
+
this._rendered.push(el);
|
|
5079
|
+
parent.appendChild(el);
|
|
5072
5080
|
}
|
|
5073
5081
|
};
|
|
5074
|
-
scheduler2._recalculate_timed = function(
|
|
5075
|
-
if (!
|
|
5082
|
+
scheduler2._recalculate_timed = function(id) {
|
|
5083
|
+
if (!id)
|
|
5076
5084
|
return;
|
|
5077
5085
|
var ev;
|
|
5078
|
-
if (typeof
|
|
5079
|
-
ev = this._events[
|
|
5086
|
+
if (typeof id != "object")
|
|
5087
|
+
ev = this._events[id];
|
|
5080
5088
|
else
|
|
5081
|
-
ev =
|
|
5089
|
+
ev = id;
|
|
5082
5090
|
if (!ev)
|
|
5083
5091
|
return;
|
|
5084
5092
|
ev._timed = scheduler2.isOneDayEvent(ev);
|
|
@@ -5382,11 +5390,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5382
5390
|
var chunks_info = {};
|
|
5383
5391
|
for (var i = 0; i < evs.length; i++) {
|
|
5384
5392
|
var ev = evs[i];
|
|
5385
|
-
var
|
|
5386
|
-
if (!chunks_info[
|
|
5387
|
-
chunks_info[
|
|
5393
|
+
var id = ev.id;
|
|
5394
|
+
if (!chunks_info[id]) {
|
|
5395
|
+
chunks_info[id] = { first_chunk: true, last_chunk: true };
|
|
5388
5396
|
}
|
|
5389
|
-
var chunk_info = chunks_info[
|
|
5397
|
+
var chunk_info = chunks_info[id];
|
|
5390
5398
|
var sd = start_date || ev.start_date;
|
|
5391
5399
|
var ed = ev.end_date;
|
|
5392
5400
|
if (sd < this._min_date) {
|
|
@@ -5467,10 +5475,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5467
5475
|
}
|
|
5468
5476
|
this._rendered = [];
|
|
5469
5477
|
};
|
|
5470
|
-
scheduler2.updateEvent = function(
|
|
5471
|
-
var ev = this.getEvent(
|
|
5472
|
-
this.clear_event(
|
|
5473
|
-
if (ev && this.is_visible_events(ev) && this.filter_event(
|
|
5478
|
+
scheduler2.updateEvent = function(id) {
|
|
5479
|
+
var ev = this.getEvent(id);
|
|
5480
|
+
this.clear_event(id);
|
|
5481
|
+
if (ev && this.is_visible_events(ev) && this.filter_event(id, ev) && (this._table_view || this.config.multi_day || ev._timed)) {
|
|
5474
5482
|
if (this.config.update_render) {
|
|
5475
5483
|
this.render_view_data();
|
|
5476
5484
|
} else {
|
|
@@ -5482,8 +5490,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5482
5490
|
}
|
|
5483
5491
|
}
|
|
5484
5492
|
};
|
|
5485
|
-
scheduler2.clear_event = function(
|
|
5486
|
-
this.for_rendered(
|
|
5493
|
+
scheduler2.clear_event = function(id) {
|
|
5494
|
+
this.for_rendered(id, function(node, i) {
|
|
5487
5495
|
if (node.parentNode)
|
|
5488
5496
|
node.parentNode.removeChild(node);
|
|
5489
5497
|
scheduler2._rendered.splice(i, 1);
|
|
@@ -5630,23 +5638,23 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5630
5638
|
};
|
|
5631
5639
|
scheduler2._render_v_bar = function(ev, x, y, w, h, style, contentA, contentB, bottom) {
|
|
5632
5640
|
var d = document.createElement("div");
|
|
5633
|
-
var
|
|
5634
|
-
var
|
|
5641
|
+
var id = ev.id;
|
|
5642
|
+
var cs = bottom ? "dhx_cal_event dhx_cal_select_menu" : "dhx_cal_event";
|
|
5635
5643
|
var state = scheduler2.getState();
|
|
5636
5644
|
if (state.drag_id == ev.id) {
|
|
5637
|
-
|
|
5645
|
+
cs += " dhx_cal_event_drag";
|
|
5638
5646
|
}
|
|
5639
5647
|
if (state.select_id == ev.id) {
|
|
5640
|
-
|
|
5648
|
+
cs += " dhx_cal_event_selected";
|
|
5641
5649
|
}
|
|
5642
5650
|
var cse = scheduler2.templates.event_class(ev.start_date, ev.end_date, ev);
|
|
5643
5651
|
if (cse)
|
|
5644
|
-
|
|
5652
|
+
cs = cs + " " + cse;
|
|
5645
5653
|
if (this.config.cascade_event_display) {
|
|
5646
|
-
|
|
5654
|
+
cs += " dhx_cal_event_cascade";
|
|
5647
5655
|
}
|
|
5648
5656
|
var boxWidth = w - 1;
|
|
5649
|
-
var html = `<div event_id="${
|
|
5657
|
+
var html = `<div event_id="${id}" ${this.config.event_attribute}="${id}" class="${cs}"
|
|
5650
5658
|
style="position:absolute; top:${y}px; ${this.config.rtl ? "right:" : "left:"}${x}px; width:${boxWidth}px; height:${h}px; ${style || ""}"
|
|
5651
5659
|
data-bar-start="${ev.start_date.valueOf()}" data-bar-end="${ev.end_date.valueOf()}">
|
|
5652
5660
|
</div>`;
|
|
@@ -5744,16 +5752,16 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5744
5752
|
var resize_left = resizable && (ev._timed || left_chunk);
|
|
5745
5753
|
var resize_right = resizable && (ev._timed || right_chunk);
|
|
5746
5754
|
var timed = true;
|
|
5747
|
-
var
|
|
5755
|
+
var cs = "dhx_cal_event_clear";
|
|
5748
5756
|
if (!ev._timed || resizable) {
|
|
5749
5757
|
timed = false;
|
|
5750
|
-
|
|
5758
|
+
cs = "dhx_cal_event_line";
|
|
5751
5759
|
}
|
|
5752
5760
|
if (left_chunk) {
|
|
5753
|
-
|
|
5761
|
+
cs += " dhx_cal_event_line_start";
|
|
5754
5762
|
}
|
|
5755
5763
|
if (right_chunk) {
|
|
5756
|
-
|
|
5764
|
+
cs += " dhx_cal_event_line_end";
|
|
5757
5765
|
}
|
|
5758
5766
|
if (resize_left) {
|
|
5759
5767
|
resize_handle += "<div class='dhx_event_resize dhx_event_resize_start'></div>";
|
|
@@ -5763,12 +5771,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5763
5771
|
}
|
|
5764
5772
|
var cse = scheduler2.templates.event_class(ev.start_date, ev.end_date, ev);
|
|
5765
5773
|
if (cse) {
|
|
5766
|
-
|
|
5774
|
+
cs += " " + cse;
|
|
5767
5775
|
}
|
|
5768
5776
|
var bg_color = ev.color ? "--dhx-scheduler-event-background:" + ev.color + ";" : "";
|
|
5769
5777
|
var color = ev.textColor ? "--dhx-scheduler-event-color:" + ev.textColor + ";" : "";
|
|
5770
5778
|
var style_text = ["position:absolute", "top:" + y + "px", "left:" + x + "px", "width:" + (x2 - x - (timed ? 1 : 0)) + "px", "height:" + (this.xy.bar_height - 2) + "px", color, bg_color, ev._text_style || ""].join(";");
|
|
5771
|
-
var html = "<div event_id='" + ev.id + "' " + this.config.event_attribute + "='" + ev.id + "' class='" +
|
|
5779
|
+
var html = "<div event_id='" + ev.id + "' " + this.config.event_attribute + "='" + ev.id + "' class='" + cs + "' style='" + style_text + "'" + this._waiAria.eventBarAttrString(ev) + ">";
|
|
5772
5780
|
if (resizable) {
|
|
5773
5781
|
html += resize_handle;
|
|
5774
5782
|
}
|
|
@@ -5787,22 +5795,22 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5787
5795
|
parent.appendChild(d.firstChild);
|
|
5788
5796
|
};
|
|
5789
5797
|
scheduler2._locate_event = function(node) {
|
|
5790
|
-
var
|
|
5791
|
-
while (node && !
|
|
5792
|
-
|
|
5798
|
+
var id = null;
|
|
5799
|
+
while (node && !id && node.getAttribute) {
|
|
5800
|
+
id = node.getAttribute(this.config.event_attribute);
|
|
5793
5801
|
node = node.parentNode;
|
|
5794
5802
|
}
|
|
5795
|
-
return
|
|
5803
|
+
return id;
|
|
5796
5804
|
};
|
|
5797
|
-
scheduler2.edit = function(
|
|
5798
|
-
if (this._edit_id ==
|
|
5805
|
+
scheduler2.edit = function(id) {
|
|
5806
|
+
if (this._edit_id == id)
|
|
5799
5807
|
return;
|
|
5800
|
-
this.editStop(false,
|
|
5801
|
-
this._edit_id =
|
|
5802
|
-
this.updateEvent(
|
|
5808
|
+
this.editStop(false, id);
|
|
5809
|
+
this._edit_id = id;
|
|
5810
|
+
this.updateEvent(id);
|
|
5803
5811
|
};
|
|
5804
|
-
scheduler2.editStop = function(mode,
|
|
5805
|
-
if (
|
|
5812
|
+
scheduler2.editStop = function(mode, id) {
|
|
5813
|
+
if (id && this._edit_id == id)
|
|
5806
5814
|
return;
|
|
5807
5815
|
var ev = this.getEvent(this._edit_id);
|
|
5808
5816
|
if (ev) {
|
|
@@ -5822,6 +5830,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5822
5830
|
} else {
|
|
5823
5831
|
this.callEvent("onEventAdded", [ev.id, ev]);
|
|
5824
5832
|
}
|
|
5833
|
+
delete ev.$new;
|
|
5825
5834
|
this._new_event = null;
|
|
5826
5835
|
} else {
|
|
5827
5836
|
if (mode) {
|
|
@@ -5838,26 +5847,26 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
5838
5847
|
}
|
|
5839
5848
|
return result;
|
|
5840
5849
|
};
|
|
5841
|
-
scheduler2.getRenderedEvent = function(
|
|
5842
|
-
if (!
|
|
5850
|
+
scheduler2.getRenderedEvent = function(id) {
|
|
5851
|
+
if (!id)
|
|
5843
5852
|
return;
|
|
5844
5853
|
var rendered_events = scheduler2._rendered;
|
|
5845
5854
|
for (var i = 0; i < rendered_events.length; i++) {
|
|
5846
5855
|
var rendered_event = rendered_events[i];
|
|
5847
|
-
if (rendered_event.getAttribute(scheduler2.config.event_attribute) ==
|
|
5856
|
+
if (rendered_event.getAttribute(scheduler2.config.event_attribute) == id) {
|
|
5848
5857
|
return rendered_event;
|
|
5849
5858
|
}
|
|
5850
5859
|
}
|
|
5851
5860
|
return null;
|
|
5852
5861
|
};
|
|
5853
|
-
scheduler2.showEvent = function(
|
|
5862
|
+
scheduler2.showEvent = function(id, mode) {
|
|
5854
5863
|
var section;
|
|
5855
|
-
if (
|
|
5856
|
-
mode =
|
|
5857
|
-
section =
|
|
5858
|
-
|
|
5864
|
+
if (id && typeof id === "object") {
|
|
5865
|
+
mode = id.mode;
|
|
5866
|
+
section = id.section;
|
|
5867
|
+
id = id.section;
|
|
5859
5868
|
}
|
|
5860
|
-
var ev = typeof
|
|
5869
|
+
var ev = typeof id == "number" || typeof id == "string" ? scheduler2.getEvent(id) : id;
|
|
5861
5870
|
mode = mode || scheduler2._mode;
|
|
5862
5871
|
if (!ev || this.checkEvent("onBeforeEventDisplay") && !this.callEvent("onBeforeEventDisplay", [ev, mode]))
|
|
5863
5872
|
return;
|
|
@@ -6660,23 +6669,27 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
6660
6669
|
this.show_cover();
|
|
6661
6670
|
this._cover.style.display = "";
|
|
6662
6671
|
};
|
|
6663
|
-
scheduler2.showLightbox = function(
|
|
6664
|
-
if (!
|
|
6672
|
+
scheduler2.showLightbox = function(id) {
|
|
6673
|
+
if (!id)
|
|
6665
6674
|
return;
|
|
6666
|
-
if (!this.callEvent("onBeforeLightbox", [
|
|
6667
|
-
if (this._new_event)
|
|
6675
|
+
if (!this.callEvent("onBeforeLightbox", [id])) {
|
|
6676
|
+
if (this._new_event) {
|
|
6668
6677
|
this._new_event = null;
|
|
6678
|
+
if (scheduler2.getEvent(id)) {
|
|
6679
|
+
delete scheduler2.getEvent(id).$new;
|
|
6680
|
+
}
|
|
6681
|
+
}
|
|
6669
6682
|
return;
|
|
6670
6683
|
}
|
|
6671
6684
|
this.showCover(box);
|
|
6672
6685
|
var box = this.getLightbox();
|
|
6673
6686
|
this._setLbPosition(box);
|
|
6674
|
-
this._fill_lightbox(
|
|
6687
|
+
this._fill_lightbox(id, box);
|
|
6675
6688
|
this._waiAria.lightboxVisibleAttr(box);
|
|
6676
|
-
this.callEvent("onLightbox", [
|
|
6689
|
+
this.callEvent("onLightbox", [id]);
|
|
6677
6690
|
};
|
|
6678
|
-
scheduler2._fill_lightbox = function(
|
|
6679
|
-
var ev = this.getEvent(
|
|
6691
|
+
scheduler2._fill_lightbox = function(id, box) {
|
|
6692
|
+
var ev = this.getEvent(id);
|
|
6680
6693
|
var s = box.getElementsByTagName("span");
|
|
6681
6694
|
var lightboxHeader = [];
|
|
6682
6695
|
if (scheduler2.templates.lightbox_header) {
|
|
@@ -6704,7 +6717,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
6704
6717
|
if (sns[i].focus)
|
|
6705
6718
|
block.focus.call(this, node);
|
|
6706
6719
|
}
|
|
6707
|
-
scheduler2._lightbox_id =
|
|
6720
|
+
scheduler2._lightbox_id = id;
|
|
6708
6721
|
};
|
|
6709
6722
|
scheduler2._get_lightbox_section_node = function(section) {
|
|
6710
6723
|
return scheduler2._lightbox.querySelector(`#${section.id}`).nextSibling;
|
|
@@ -6722,14 +6735,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
6722
6735
|
return ev;
|
|
6723
6736
|
};
|
|
6724
6737
|
scheduler2._empty_lightbox = function(data) {
|
|
6725
|
-
var
|
|
6726
|
-
var ev = this.getEvent(
|
|
6738
|
+
var id = scheduler2._lightbox_id;
|
|
6739
|
+
var ev = this.getEvent(id);
|
|
6727
6740
|
this._lame_copy(ev, data);
|
|
6728
6741
|
this.setEvent(ev.id, ev);
|
|
6729
6742
|
this._edit_stop_event(ev, true);
|
|
6730
6743
|
this.render_view_data();
|
|
6731
6744
|
};
|
|
6732
|
-
scheduler2.hide_lightbox = function(
|
|
6745
|
+
scheduler2.hide_lightbox = function(id) {
|
|
6733
6746
|
scheduler2.endLightbox(false, this.getLightbox());
|
|
6734
6747
|
};
|
|
6735
6748
|
scheduler2.hideCover = function(box) {
|
|
@@ -6764,8 +6777,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
6764
6777
|
this._empty_lightbox(data);
|
|
6765
6778
|
this.hide_lightbox();
|
|
6766
6779
|
};
|
|
6767
|
-
scheduler2.startLightbox = function(
|
|
6768
|
-
this._lightbox_id =
|
|
6780
|
+
scheduler2.startLightbox = function(id, box) {
|
|
6781
|
+
this._lightbox_id = id;
|
|
6769
6782
|
this._custom_lightbox = true;
|
|
6770
6783
|
this._temp_lightbox = this._lightbox;
|
|
6771
6784
|
this._lightbox = box;
|
|
@@ -6800,6 +6813,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
6800
6813
|
this.hide_lightbox();
|
|
6801
6814
|
};
|
|
6802
6815
|
scheduler2.hideLightbox = scheduler2.cancel_lightbox;
|
|
6816
|
+
scheduler2._delete_event_confirm = function({ event: event2, message: message2, title, callback, ok }) {
|
|
6817
|
+
scheduler2._dhtmlx_confirm({ message: message2, title, callback, ok });
|
|
6818
|
+
};
|
|
6803
6819
|
scheduler2._init_lightbox_events = function() {
|
|
6804
6820
|
if (this.getLightbox().$_eventAttached) {
|
|
6805
6821
|
return;
|
|
@@ -6835,7 +6851,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
6835
6851
|
return;
|
|
6836
6852
|
}
|
|
6837
6853
|
var c = scheduler2.locale.labels.confirm_deleting;
|
|
6838
|
-
scheduler2.
|
|
6854
|
+
scheduler2._delete_event_confirm({ event: scheduler2.getEvent(scheduler2._lightbox_id), message: c, title: scheduler2.locale.labels.title_confirm_deleting, callback: function() {
|
|
6839
6855
|
let ev = scheduler2.getEvent(scheduler2._lightbox_id);
|
|
6840
6856
|
if (ev._thisAndFollowing) {
|
|
6841
6857
|
ev._removeFollowing = true;
|
|
@@ -6844,6 +6860,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
6844
6860
|
scheduler2.deleteEvent(scheduler2._lightbox_id);
|
|
6845
6861
|
}
|
|
6846
6862
|
scheduler2._new_event = null;
|
|
6863
|
+
delete ev.$new;
|
|
6847
6864
|
scheduler2.hide_lightbox();
|
|
6848
6865
|
}, config: { ok: scheduler2.locale.labels.icon_delete } });
|
|
6849
6866
|
break;
|
|
@@ -7175,8 +7192,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7175
7192
|
var original_render = scheduler2.render_view_data;
|
|
7176
7193
|
if (dnd == "create" && timeline) {
|
|
7177
7194
|
scheduler2.render_view_data = function() {
|
|
7178
|
-
var
|
|
7179
|
-
var ev = scheduler2.getEvent(
|
|
7195
|
+
var id = scheduler2.getState().drag_id;
|
|
7196
|
+
var ev = scheduler2.getEvent(id);
|
|
7180
7197
|
var property = timeline.y_property;
|
|
7181
7198
|
var evs = scheduler2.getEvents(ev.start_date, ev.end_date);
|
|
7182
7199
|
for (var i = 0; i < evs.length; i++) {
|
|
@@ -7626,7 +7643,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7626
7643
|
};
|
|
7627
7644
|
}
|
|
7628
7645
|
function extend$2(scheduler2) {
|
|
7629
|
-
if (window.jQuery) {
|
|
7646
|
+
if (typeof window !== "undefined" && window.jQuery) {
|
|
7630
7647
|
(function($) {
|
|
7631
7648
|
var counter = 0;
|
|
7632
7649
|
var methods = [];
|
|
@@ -7734,28 +7751,28 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7734
7751
|
this.attach = function() {
|
|
7735
7752
|
var dp2 = this.$dp;
|
|
7736
7753
|
var scheduler3 = this.$scheduler;
|
|
7737
|
-
this._dataProcessorHandlers.push(scheduler3.attachEvent("onEventAdded", function(
|
|
7738
|
-
if (!this._loading && this._validId(
|
|
7739
|
-
dp2.setUpdated(
|
|
7754
|
+
this._dataProcessorHandlers.push(scheduler3.attachEvent("onEventAdded", function(id) {
|
|
7755
|
+
if (!this._loading && this._validId(id))
|
|
7756
|
+
dp2.setUpdated(id, true, "inserted");
|
|
7740
7757
|
}));
|
|
7741
|
-
this._dataProcessorHandlers.push(scheduler3.attachEvent("onConfirmedBeforeEventDelete", function(
|
|
7742
|
-
if (!this._validId(
|
|
7758
|
+
this._dataProcessorHandlers.push(scheduler3.attachEvent("onConfirmedBeforeEventDelete", function(id) {
|
|
7759
|
+
if (!this._validId(id))
|
|
7743
7760
|
return;
|
|
7744
|
-
var z = dp2.getState(
|
|
7761
|
+
var z = dp2.getState(id);
|
|
7745
7762
|
if (z == "inserted" || this._new_event) {
|
|
7746
|
-
dp2.setUpdated(
|
|
7763
|
+
dp2.setUpdated(id, false);
|
|
7747
7764
|
return true;
|
|
7748
7765
|
}
|
|
7749
7766
|
if (z == "deleted")
|
|
7750
7767
|
return false;
|
|
7751
7768
|
if (z == "true_deleted")
|
|
7752
7769
|
return true;
|
|
7753
|
-
dp2.setUpdated(
|
|
7770
|
+
dp2.setUpdated(id, true, "deleted");
|
|
7754
7771
|
return false;
|
|
7755
7772
|
}));
|
|
7756
|
-
this._dataProcessorHandlers.push(scheduler3.attachEvent("onEventChanged", function(
|
|
7757
|
-
if (!this._loading && this._validId(
|
|
7758
|
-
dp2.setUpdated(
|
|
7773
|
+
this._dataProcessorHandlers.push(scheduler3.attachEvent("onEventChanged", function(id) {
|
|
7774
|
+
if (!this._loading && this._validId(id))
|
|
7775
|
+
dp2.setUpdated(id, true, "updated");
|
|
7759
7776
|
}));
|
|
7760
7777
|
this._dataProcessorHandlers.push(scheduler3.attachEvent("onClearAll", function() {
|
|
7761
7778
|
dp2._in_progress = {};
|
|
@@ -7765,12 +7782,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7765
7782
|
}));
|
|
7766
7783
|
dp2.attachEvent("insertCallback", scheduler3._update_callback);
|
|
7767
7784
|
dp2.attachEvent("updateCallback", scheduler3._update_callback);
|
|
7768
|
-
dp2.attachEvent("deleteCallback", function(upd,
|
|
7769
|
-
if (scheduler3.getEvent(
|
|
7770
|
-
scheduler3.setUserData(
|
|
7771
|
-
scheduler3.deleteEvent(
|
|
7785
|
+
dp2.attachEvent("deleteCallback", function(upd, id) {
|
|
7786
|
+
if (scheduler3.getEvent(id)) {
|
|
7787
|
+
scheduler3.setUserData(id, this.action_param, "true_deleted");
|
|
7788
|
+
scheduler3.deleteEvent(id);
|
|
7772
7789
|
} else if (scheduler3._add_rec_marker)
|
|
7773
|
-
scheduler3._update_callback(upd,
|
|
7790
|
+
scheduler3._update_callback(upd, id);
|
|
7774
7791
|
});
|
|
7775
7792
|
};
|
|
7776
7793
|
this.detach = function() {
|
|
@@ -7782,24 +7799,24 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7782
7799
|
};
|
|
7783
7800
|
}
|
|
7784
7801
|
function extendScheduler(scheduler2, dp) {
|
|
7785
|
-
scheduler2._validId = function(
|
|
7802
|
+
scheduler2._validId = function(id) {
|
|
7786
7803
|
if (this._is_virtual_event) {
|
|
7787
|
-
return !this._is_virtual_event(
|
|
7804
|
+
return !this._is_virtual_event(id);
|
|
7788
7805
|
}
|
|
7789
7806
|
return true;
|
|
7790
7807
|
};
|
|
7791
|
-
scheduler2.setUserData = function(
|
|
7792
|
-
if (
|
|
7793
|
-
var ev = this.getEvent(
|
|
7808
|
+
scheduler2.setUserData = function(id, name, value) {
|
|
7809
|
+
if (id) {
|
|
7810
|
+
var ev = this.getEvent(id);
|
|
7794
7811
|
if (ev)
|
|
7795
7812
|
ev[name] = value;
|
|
7796
7813
|
} else {
|
|
7797
7814
|
this._userdata[name] = value;
|
|
7798
7815
|
}
|
|
7799
7816
|
};
|
|
7800
|
-
scheduler2.getUserData = function(
|
|
7801
|
-
if (
|
|
7802
|
-
var ev = this.getEvent(
|
|
7817
|
+
scheduler2.getUserData = function(id, name) {
|
|
7818
|
+
if (id) {
|
|
7819
|
+
var ev = this.getEvent(id);
|
|
7803
7820
|
if (ev)
|
|
7804
7821
|
return ev[name];
|
|
7805
7822
|
else
|
|
@@ -7808,17 +7825,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7808
7825
|
return this._userdata[name];
|
|
7809
7826
|
}
|
|
7810
7827
|
};
|
|
7811
|
-
scheduler2._set_event_text_style = function(
|
|
7812
|
-
if (!scheduler2.getEvent(
|
|
7828
|
+
scheduler2._set_event_text_style = function(id, style) {
|
|
7829
|
+
if (!scheduler2.getEvent(id))
|
|
7813
7830
|
return;
|
|
7814
|
-
this.for_rendered(
|
|
7831
|
+
this.for_rendered(id, function(r) {
|
|
7815
7832
|
r.style.cssText += ";" + style;
|
|
7816
7833
|
});
|
|
7817
|
-
var ev = this.getEvent(
|
|
7834
|
+
var ev = this.getEvent(id);
|
|
7818
7835
|
ev["_text_style"] = style;
|
|
7819
7836
|
this.event_updated(ev);
|
|
7820
7837
|
};
|
|
7821
|
-
scheduler2._update_callback = function(upd,
|
|
7838
|
+
scheduler2._update_callback = function(upd, id) {
|
|
7822
7839
|
var data = scheduler2._xmlNodeToJSON(upd.firstChild);
|
|
7823
7840
|
if (data.rec_type == "none")
|
|
7824
7841
|
data.rec_pattern = "none";
|
|
@@ -7829,18 +7846,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7829
7846
|
if (scheduler2._add_rec_marker)
|
|
7830
7847
|
scheduler2.setCurrentView();
|
|
7831
7848
|
};
|
|
7832
|
-
scheduler2._dp_change_event_id = function(
|
|
7833
|
-
if (!scheduler2.getEvent(
|
|
7849
|
+
scheduler2._dp_change_event_id = function(id, new_id) {
|
|
7850
|
+
if (!scheduler2.getEvent(id))
|
|
7834
7851
|
return;
|
|
7835
|
-
scheduler2.changeEventId(
|
|
7852
|
+
scheduler2.changeEventId(id, new_id);
|
|
7836
7853
|
};
|
|
7837
|
-
scheduler2._dp_hook_delete = function(
|
|
7838
|
-
if (!scheduler2.getEvent(
|
|
7854
|
+
scheduler2._dp_hook_delete = function(id, new_id) {
|
|
7855
|
+
if (!scheduler2.getEvent(id))
|
|
7839
7856
|
return;
|
|
7840
|
-
if (new_id &&
|
|
7841
|
-
if (this.getUserData(
|
|
7842
|
-
this.setUserData(
|
|
7843
|
-
this.changeEventId(
|
|
7857
|
+
if (new_id && id != new_id) {
|
|
7858
|
+
if (this.getUserData(id, dp.action_param) == "true_deleted")
|
|
7859
|
+
this.setUserData(id, dp.action_param, "updated");
|
|
7860
|
+
this.changeEventId(id, new_id);
|
|
7844
7861
|
}
|
|
7845
7862
|
return this.deleteEvent(new_id, true);
|
|
7846
7863
|
};
|
|
@@ -7949,21 +7966,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7949
7966
|
this.markRow(rowId, state, mode);
|
|
7950
7967
|
if (state && this.autoUpdate)
|
|
7951
7968
|
this.sendData(rowId);
|
|
7952
|
-
}, markRow: function(
|
|
7969
|
+
}, markRow: function(id, state, mode) {
|
|
7953
7970
|
var str = "";
|
|
7954
|
-
var invalid = this.is_invalid(
|
|
7971
|
+
var invalid = this.is_invalid(id);
|
|
7955
7972
|
if (invalid) {
|
|
7956
7973
|
str = this.styles[invalid];
|
|
7957
7974
|
state = true;
|
|
7958
7975
|
}
|
|
7959
|
-
if (this.callEvent("onRowMark", [
|
|
7976
|
+
if (this.callEvent("onRowMark", [id, state, mode, invalid])) {
|
|
7960
7977
|
str = this.styles[state ? mode : "clear"] + str;
|
|
7961
|
-
this.$scheduler[this._methods[0]](
|
|
7978
|
+
this.$scheduler[this._methods[0]](id, str);
|
|
7962
7979
|
if (invalid && invalid.details) {
|
|
7963
7980
|
str += this.styles[invalid + "_cell"];
|
|
7964
7981
|
for (var i = 0; i < invalid.details.length; i++)
|
|
7965
7982
|
if (invalid.details[i])
|
|
7966
|
-
this.$scheduler[this._methods[1]](
|
|
7983
|
+
this.$scheduler[this._methods[1]](id, i, str);
|
|
7967
7984
|
}
|
|
7968
7985
|
}
|
|
7969
7986
|
}, getActionByState: function(state) {
|
|
@@ -7977,16 +7994,16 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
7977
7994
|
return "delete";
|
|
7978
7995
|
}
|
|
7979
7996
|
return "update";
|
|
7980
|
-
}, getState: function(
|
|
7981
|
-
return this.$scheduler.getUserData(
|
|
7982
|
-
}, is_invalid: function(
|
|
7983
|
-
return this._invalid[
|
|
7984
|
-
}, set_invalid: function(
|
|
7997
|
+
}, getState: function(id) {
|
|
7998
|
+
return this.$scheduler.getUserData(id, this.action_param);
|
|
7999
|
+
}, is_invalid: function(id) {
|
|
8000
|
+
return this._invalid[id];
|
|
8001
|
+
}, set_invalid: function(id, mode, details) {
|
|
7985
8002
|
if (details)
|
|
7986
8003
|
mode = { value: mode, details, toString: function() {
|
|
7987
8004
|
return this.value.toString();
|
|
7988
8005
|
} };
|
|
7989
|
-
this._invalid[
|
|
8006
|
+
this._invalid[id] = mode;
|
|
7990
8007
|
}, checkBeforeUpdate: function(rowId) {
|
|
7991
8008
|
return true;
|
|
7992
8009
|
}, sendData: function(rowId) {
|
|
@@ -8004,13 +8021,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8004
8021
|
if (!this.callEvent("onBeforeUpdate", [rowId, this.getState(rowId), data]))
|
|
8005
8022
|
return false;
|
|
8006
8023
|
this._sendData(data, rowId);
|
|
8007
|
-
}, serialize: function(data,
|
|
8024
|
+
}, serialize: function(data, id) {
|
|
8008
8025
|
if (this._serializeAsJson) {
|
|
8009
8026
|
return this._serializeAsJSON(data);
|
|
8010
8027
|
}
|
|
8011
8028
|
if (typeof data == "string")
|
|
8012
8029
|
return data;
|
|
8013
|
-
if (typeof
|
|
8030
|
+
if (typeof id != "undefined")
|
|
8014
8031
|
return this.serialize_one(data, "");
|
|
8015
8032
|
else {
|
|
8016
8033
|
var stack = [];
|
|
@@ -8063,6 +8080,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8063
8080
|
if (this._tMode === "CUSTOM") {
|
|
8064
8081
|
var state = this.getState(rowId);
|
|
8065
8082
|
var action = this.getActionByState(state);
|
|
8083
|
+
delete dataToSend[this.action_param];
|
|
8066
8084
|
var _onResolvedCreateUpdate = function(tag) {
|
|
8067
8085
|
var resultState = state;
|
|
8068
8086
|
if (tag && tag.responseText && tag.setRequestHeader) {
|
|
@@ -8211,17 +8229,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8211
8229
|
}, _getAllData: function(rowId) {
|
|
8212
8230
|
var out = {};
|
|
8213
8231
|
var has_one = false;
|
|
8214
|
-
this._forEachUpdatedRow(function(
|
|
8215
|
-
if (this._in_progress[
|
|
8232
|
+
this._forEachUpdatedRow(function(id) {
|
|
8233
|
+
if (this._in_progress[id] || this.is_invalid(id)) {
|
|
8216
8234
|
return;
|
|
8217
8235
|
}
|
|
8218
|
-
var row = this._getRowData(
|
|
8219
|
-
if (!this.callEvent("onBeforeUpdate", [
|
|
8236
|
+
var row = this._getRowData(id);
|
|
8237
|
+
if (!this.callEvent("onBeforeUpdate", [id, this.getState(id), row])) {
|
|
8220
8238
|
return;
|
|
8221
8239
|
}
|
|
8222
|
-
out[
|
|
8240
|
+
out[id] = row;
|
|
8223
8241
|
has_one = true;
|
|
8224
|
-
this._in_progress[
|
|
8242
|
+
this._in_progress[id] = (/* @__PURE__ */ new Date()).valueOf();
|
|
8225
8243
|
});
|
|
8226
8244
|
return has_one ? out : null;
|
|
8227
8245
|
}, findRow: function(pattern) {
|
|
@@ -8276,21 +8294,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8276
8294
|
this.setUpdated(tid, true, this.$scheduler.getUserData(sid, this.action_param));
|
|
8277
8295
|
}
|
|
8278
8296
|
this.callEvent("onAfterUpdate", [originalSid, action, tid, btag]);
|
|
8279
|
-
}, _errorResponse: function(xml,
|
|
8297
|
+
}, _errorResponse: function(xml, id) {
|
|
8280
8298
|
if (this.$scheduler && this.$scheduler.callEvent) {
|
|
8281
|
-
this.$scheduler.callEvent("onSaveError", [
|
|
8299
|
+
this.$scheduler.callEvent("onSaveError", [id, xml.xmlDoc]);
|
|
8282
8300
|
}
|
|
8283
|
-
return this.cleanUpdate(
|
|
8301
|
+
return this.cleanUpdate(id);
|
|
8284
8302
|
}, _setDefaultTransactionMode: function() {
|
|
8285
8303
|
if (this.serverProcessor) {
|
|
8286
8304
|
this.setTransactionMode("POST", true);
|
|
8287
8305
|
this.serverProcessor += (this.serverProcessor.indexOf("?") !== -1 ? "&" : "?") + "editing=true";
|
|
8288
8306
|
this._serverProcessor = this.serverProcessor;
|
|
8289
8307
|
}
|
|
8290
|
-
}, afterUpdate: function(that, xml,
|
|
8308
|
+
}, afterUpdate: function(that, xml, id) {
|
|
8291
8309
|
var ajax = this.$scheduler.ajax;
|
|
8292
8310
|
if (xml.xmlDoc.status !== 200) {
|
|
8293
|
-
this._errorResponse(xml,
|
|
8311
|
+
this._errorResponse(xml, id);
|
|
8294
8312
|
return;
|
|
8295
8313
|
}
|
|
8296
8314
|
var tag;
|
|
@@ -8302,20 +8320,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8302
8320
|
}
|
|
8303
8321
|
}
|
|
8304
8322
|
if (tag) {
|
|
8305
|
-
var action = tag.action || this.getState(
|
|
8306
|
-
var sid = tag.sid ||
|
|
8307
|
-
var tid = tag.tid ||
|
|
8323
|
+
var action = tag.action || this.getState(id) || "updated";
|
|
8324
|
+
var sid = tag.sid || id[0];
|
|
8325
|
+
var tid = tag.tid || id[0];
|
|
8308
8326
|
that.afterUpdateCallback(sid, tid, action, tag);
|
|
8309
8327
|
that.finalizeUpdate();
|
|
8310
8328
|
return;
|
|
8311
8329
|
}
|
|
8312
8330
|
var top = ajax.xmltop("data", xml.xmlDoc);
|
|
8313
8331
|
if (!top) {
|
|
8314
|
-
return this._errorResponse(xml,
|
|
8332
|
+
return this._errorResponse(xml, id);
|
|
8315
8333
|
}
|
|
8316
8334
|
var atag = ajax.xpath("//data/action", top);
|
|
8317
8335
|
if (!atag.length) {
|
|
8318
|
-
return this._errorResponse(xml,
|
|
8336
|
+
return this._errorResponse(xml, id);
|
|
8319
8337
|
}
|
|
8320
8338
|
for (var i = 0; i < atag.length; i++) {
|
|
8321
8339
|
var btag = atag[i];
|
|
@@ -8325,10 +8343,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8325
8343
|
that.afterUpdateCallback(sid, tid, action, btag);
|
|
8326
8344
|
}
|
|
8327
8345
|
that.finalizeUpdate();
|
|
8328
|
-
}, cleanUpdate: function(
|
|
8329
|
-
if (
|
|
8330
|
-
for (var i = 0; i <
|
|
8331
|
-
delete this._in_progress[
|
|
8346
|
+
}, cleanUpdate: function(id) {
|
|
8347
|
+
if (id)
|
|
8348
|
+
for (var i = 0; i < id.length; i++)
|
|
8349
|
+
delete this._in_progress[id[i]];
|
|
8332
8350
|
}, finalizeUpdate: function() {
|
|
8333
8351
|
if (this._waitMode)
|
|
8334
8352
|
this._waitMode--;
|
|
@@ -8422,17 +8440,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8422
8440
|
self2._silent_mode = true;
|
|
8423
8441
|
for (var i = 0; i < updates.length; i++) {
|
|
8424
8442
|
var status = updates[i].getAttribute("status");
|
|
8425
|
-
var
|
|
8443
|
+
var id = updates[i].getAttribute("id");
|
|
8426
8444
|
var parent = updates[i].getAttribute("parent");
|
|
8427
8445
|
switch (status) {
|
|
8428
8446
|
case "inserted":
|
|
8429
|
-
this.callEvent("insertCallback", [updates[i],
|
|
8447
|
+
this.callEvent("insertCallback", [updates[i], id, parent]);
|
|
8430
8448
|
break;
|
|
8431
8449
|
case "updated":
|
|
8432
|
-
this.callEvent("updateCallback", [updates[i],
|
|
8450
|
+
this.callEvent("updateCallback", [updates[i], id, parent]);
|
|
8433
8451
|
break;
|
|
8434
8452
|
case "deleted":
|
|
8435
|
-
this.callEvent("deleteCallback", [updates[i],
|
|
8453
|
+
this.callEvent("deleteCallback", [updates[i], id, parent]);
|
|
8436
8454
|
break;
|
|
8437
8455
|
}
|
|
8438
8456
|
}
|
|
@@ -8543,10 +8561,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8543
8561
|
} else {
|
|
8544
8562
|
return this._prepareItemForForm(item);
|
|
8545
8563
|
}
|
|
8546
|
-
}, _getRowData: function(
|
|
8547
|
-
var dataItem = this.$scheduler.getEvent(
|
|
8564
|
+
}, _getRowData: function(id) {
|
|
8565
|
+
var dataItem = this.$scheduler.getEvent(id);
|
|
8548
8566
|
if (!dataItem) {
|
|
8549
|
-
dataItem = { id
|
|
8567
|
+
dataItem = { id };
|
|
8550
8568
|
}
|
|
8551
8569
|
return this._prepareDataItem(dataItem);
|
|
8552
8570
|
} };
|
|
@@ -8761,9 +8779,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8761
8779
|
}
|
|
8762
8780
|
return text;
|
|
8763
8781
|
}
|
|
8764
|
-
function params(text, type, expire,
|
|
8782
|
+
function params(text, type, expire, id, callback2) {
|
|
8765
8783
|
if (typeof text != "object")
|
|
8766
|
-
text = { text, type, expire, id
|
|
8784
|
+
text = { text, type, expire, id, callback: callback2 };
|
|
8767
8785
|
text.id = text.id || utils.uid();
|
|
8768
8786
|
text.expire = text.expire || messageBox.expire;
|
|
8769
8787
|
return text;
|
|
@@ -8801,7 +8819,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8801
8819
|
}
|
|
8802
8820
|
}, 1);
|
|
8803
8821
|
};
|
|
8804
|
-
var messageBox = function(text, type, expire,
|
|
8822
|
+
var messageBox = function(text, type, expire, id) {
|
|
8805
8823
|
text = params.apply(this, arguments);
|
|
8806
8824
|
text.type = text.type || "info";
|
|
8807
8825
|
var subtype = text.type.split("-")[0];
|
|
@@ -8827,17 +8845,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8827
8845
|
for (var key in messageBox.pull)
|
|
8828
8846
|
messageBox.hide(key);
|
|
8829
8847
|
};
|
|
8830
|
-
messageBox.hide = function(
|
|
8831
|
-
var obj = messageBox.pull[
|
|
8848
|
+
messageBox.hide = function(id) {
|
|
8849
|
+
var obj = messageBox.pull[id];
|
|
8832
8850
|
if (obj && obj.parentNode) {
|
|
8833
8851
|
window.setTimeout(function() {
|
|
8834
8852
|
obj.parentNode.removeChild(obj);
|
|
8835
8853
|
obj = null;
|
|
8836
8854
|
}, 2e3);
|
|
8837
8855
|
obj.className += " hidden";
|
|
8838
|
-
if (messageBox.timers[
|
|
8839
|
-
window.clearTimeout(messageBox.timers[
|
|
8840
|
-
delete messageBox.pull[
|
|
8856
|
+
if (messageBox.timers[id])
|
|
8857
|
+
window.clearTimeout(messageBox.timers[id]);
|
|
8858
|
+
delete messageBox.pull[id];
|
|
8841
8859
|
}
|
|
8842
8860
|
};
|
|
8843
8861
|
var popups = [];
|
|
@@ -8869,23 +8887,6 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8869
8887
|
});
|
|
8870
8888
|
return { alert: alertBox, confirm: confirmBox, message: messageBox, modalbox: modalBox };
|
|
8871
8889
|
}
|
|
8872
|
-
const ar = { date: { month_full: ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"], month_short: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], day_full: ["الأحد", "الأثنين", "ألثلاثاء", "الأربعاء", "ألحميس", "ألجمعة", "السبت"], day_short: ["احد", "اثنين", "ثلاثاء", "اربعاء", "خميس", "جمعة", "سبت"] }, labels: { dhx_cal_today_button: "اليوم", day_tab: "يوم", week_tab: "أسبوع", month_tab: "شهر", new_event: "حدث جديد", icon_save: "اخزن", icon_cancel: "الغاء", icon_details: "تفاصيل", icon_edit: "تحرير", icon_delete: "حذف", confirm_closing: "التغييرات سوف تضيع, هل انت متأكد؟", confirm_deleting: "الحدث سيتم حذفها نهائيا ، هل أنت متأكد؟", section_description: "الوصف", section_time: "الفترة الزمنية", full_day: "طوال اليوم", confirm_recurring: "هل تريد تحرير مجموعة كاملة من الأحداث المتكررة؟", section_recurring: "تكرار الحدث", button_recurring: "تعطيل", button_recurring_open: "تمكين", button_edit_series: "تحرير سلسلة", button_edit_occurrence: "تعديل نسخة", button_edit_occurrence_and_following: "This and following events", grid_tab: "جدول", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "يومي", repeat_radio_week: "أسبوعي", repeat_radio_month: "شهري", repeat_radio_year: "سنوي", repeat_radio_day_type: "كل", repeat_text_day_count: "يوم", repeat_radio_day_type2: "كل يوم عمل", repeat_week: " تكرار كل", repeat_text_week_count: "أسبوع في الأيام التالية:", repeat_radio_month_type: "تكرار", repeat_radio_month_start: "في", repeat_text_month_day: "يوم كل", repeat_text_month_count: "شهر", repeat_text_month_count2_before: "كل", repeat_text_month_count2_after: "شهر", repeat_year_label: "في", select_year_day2: "من", repeat_text_year_day: "يوم", select_year_month: "شهر", repeat_radio_end: "بدون تاريخ انتهاء", repeat_text_occurrences_count: "تكرارات", repeat_radio_end2: "بعد", repeat_radio_end3: "ينتهي في", repeat_never: "أبداً", repeat_daily: "كل يوم", repeat_workdays: "كل يوم عمل", repeat_weekly: "كل أسبوع", repeat_monthly: "كل شهر", repeat_yearly: "كل سنة", repeat_custom: "تخصيص", repeat_freq_day: "يوم", repeat_freq_week: "أسبوع", repeat_freq_month: "شهر", repeat_freq_year: "سنة", repeat_on_date: "في التاريخ", repeat_ends: "ينتهي", month_for_recurring: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], day_for_recurring: ["الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"] } };
|
|
8873
|
-
const be = { date: { month_full: ["Студзень", "Люты", "Сакавік", "Красавік", "Maй", "Чэрвень", "Ліпень", "Жнівень", "Верасень", "Кастрычнік", "Лістапад", "Снежань"], month_short: ["Студз", "Лют", "Сак", "Крас", "Maй", "Чэр", "Ліп", "Жнів", "Вер", "Каст", "Ліст", "Снеж"], day_full: ["Нядзеля", "Панядзелак", "Аўторак", "Серада", "Чацвер", "Пятніца", "Субота"], day_short: ["Нд", "Пн", "Аўт", "Ср", "Чцв", "Пт", "Сб"] }, labels: { dhx_cal_today_button: "Сёння", day_tab: "Дзень", week_tab: "Тыдзень", month_tab: "Месяц", new_event: "Новая падзея", icon_save: "Захаваць", icon_cancel: "Адмяніць", icon_details: "Дэталі", icon_edit: "Змяніць", icon_delete: "Выдаліць", confirm_closing: "", confirm_deleting: "Падзея будзе выдалена незваротна, працягнуць?", section_description: "Апісанне", section_time: "Перыяд часу", full_day: "Увесь дзень", confirm_recurring: "Вы хочаце змяніць усю серыю паўтаральных падзей?", section_recurring: "Паўтарэнне", button_recurring: "Адключана", button_recurring_open: "Уключана", button_edit_series: "Рэдагаваць серыю", button_edit_occurrence: "Рэдагаваць асобнік", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Спіс", date: "Дата", description: "Апісанне", year_tab: "Год", week_agenda_tab: "Спіс", grid_tab: "Спic", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Дзень", repeat_radio_week: "Тыдзень", repeat_radio_month: "Месяц", repeat_radio_year: "Год", repeat_radio_day_type: "Кожны", repeat_text_day_count: "дзень", repeat_radio_day_type2: "Кожны працоўны дзень", repeat_week: " Паўтараць кожны", repeat_text_week_count: "тыдзень", repeat_radio_month_type: "Паўтараць", repeat_radio_month_start: "", repeat_text_month_day: " чысла кожнага", repeat_text_month_count: "месяцу", repeat_text_month_count2_before: "кожны ", repeat_text_month_count2_after: "месяц", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "дзень", select_year_month: "", repeat_radio_end: "Без даты заканчэння", repeat_text_occurrences_count: "паўтораў", repeat_radio_end2: "", repeat_radio_end3: "Да ", repeat_never: "Ніколі", repeat_daily: "Кожны дзень", repeat_workdays: "Кожны працоўны дзень", repeat_weekly: "Кожны тыдзень", repeat_monthly: "Кожны месяц", repeat_yearly: "Кожны год", repeat_custom: "Наладжвальны", repeat_freq_day: "Дзень", repeat_freq_week: "Тыдзень", repeat_freq_month: "Месяц", repeat_freq_year: "Год", repeat_on_date: "На дату", repeat_ends: "Заканчваецца", month_for_recurring: ["Студзеня", "Лютага", "Сакавіка", "Красавіка", "Мая", "Чэрвеня", "Ліпeня", "Жніўня", "Верасня", "Кастрычніка", "Лістапада", "Снежня"], day_for_recurring: ["Нядзелю", "Панядзелак", "Аўторак", "Сераду", "Чацвер", "Пятніцу", "Суботу"] } };
|
|
8874
|
-
const ca = { date: { month_full: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], month_short: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], day_full: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"], day_short: ["Dg", "Dl", "Dm", "Dc", "Dj", "Dv", "Ds"] }, labels: { dhx_cal_today_button: "Hui", day_tab: "Dia", week_tab: "Setmana", month_tab: "Mes", new_event: "Nou esdeveniment", icon_save: "Guardar", icon_cancel: "Cancel·lar", icon_details: "Detalls", icon_edit: "Editar", icon_delete: "Esborrar", confirm_closing: "", confirm_deleting: "L'esdeveniment s'esborrarà definitivament, continuar ?", section_description: "Descripció", section_time: "Periode de temps", full_day: "Tot el dia", confirm_recurring: "¿Desitja modificar el conjunt d'esdeveniments repetits?", section_recurring: "Repeteixca l'esdeveniment", button_recurring: "Impedit", button_recurring_open: "Permés", button_edit_series: "Edit sèrie", button_edit_occurrence: "Edita Instància", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descripció", year_tab: "Any", week_agenda_tab: "Agenda", grid_tab: "Taula", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diari", repeat_radio_week: "Setmanal", repeat_radio_month: "Mensual", repeat_radio_year: "Anual", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada dia laborable", repeat_week: " Repetir cada", repeat_text_week_count: "setmana els dies següents:", repeat_radio_month_type: "Repetir", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "de", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sense data de finalització", repeat_text_occurrences_count: "ocurrències", repeat_radio_end2: "Després", repeat_radio_end3: "Finalitzar el", repeat_never: "Mai", repeat_daily: "Cada dia", repeat_workdays: "Cada dia laborable", repeat_weekly: "Cada setmana", repeat_monthly: "Cada mes", repeat_yearly: "Cada any", repeat_custom: "Personalitzat", repeat_freq_day: "Dia", repeat_freq_week: "Setmana", repeat_freq_month: "Mes", repeat_freq_year: "Any", repeat_on_date: "En la data", repeat_ends: "Finalitza", month_for_recurring: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], day_for_recurring: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"] } };
|
|
8875
|
-
const cn = { date: { month_full: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], month_short: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_full: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], day_short: ["日", "一", "二", "三", "四", "五", "六"] }, labels: { dhx_cal_today_button: "今天", day_tab: "日", week_tab: "周", month_tab: "月", new_event: "新建日程", icon_save: "保存", icon_cancel: "关闭", icon_details: "详细", icon_edit: "编辑", icon_delete: "删除", confirm_closing: "请确认是否撤销修改!", confirm_deleting: "是否删除日程?", section_description: "描述", section_time: "时间范围", full_day: "整天", confirm_recurring: "请确认是否将日程设为重复模式?", section_recurring: "重复周期", button_recurring: "禁用", button_recurring_open: "启用", button_edit_series: "编辑系列", button_edit_occurrence: "编辑实例", button_edit_occurrence_and_following: "This and following events", agenda_tab: "议程", date: "日期", description: "说明", year_tab: "今年", week_agenda_tab: "议程", grid_tab: "电网", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "按天", repeat_radio_week: "按周", repeat_radio_month: "按月", repeat_radio_year: "按年", repeat_radio_day_type: "每", repeat_text_day_count: "天", repeat_radio_day_type2: "每个工作日", repeat_week: " 重复 每", repeat_text_week_count: "星期的:", repeat_radio_month_type: "重复", repeat_radio_month_start: "在", repeat_text_month_day: "日 每", repeat_text_month_count: "月", repeat_text_month_count2_before: "每", repeat_text_month_count2_after: "月", repeat_year_label: "在", select_year_day2: "的", repeat_text_year_day: "日", select_year_month: "月", repeat_radio_end: "无结束日期", repeat_text_occurrences_count: "次结束", repeat_radio_end2: "重复", repeat_radio_end3: "结束于", repeat_never: "从不", repeat_daily: "每天", repeat_workdays: "每个工作日", repeat_weekly: "每周", repeat_monthly: "每月", repeat_yearly: "每年", repeat_custom: "自定义", repeat_freq_day: "天", repeat_freq_week: "周", repeat_freq_month: "月", repeat_freq_year: "年", repeat_on_date: "在日期", repeat_ends: "结束", month_for_recurring: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], day_for_recurring: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] } };
|
|
8876
|
-
const cs = { date: { month_full: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], month_short: ["Led", "Ún", "Bře", "Dub", "Kvě", "Čer", "Čec", "Srp", "Září", "Říj", "List", "Pro"], day_full: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"], day_short: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"] }, labels: { dhx_cal_today_button: "Dnes", day_tab: "Den", week_tab: "Týden", month_tab: "Měsíc", new_event: "Nová událost", icon_save: "Uložit", icon_cancel: "Zpět", icon_details: "Detail", icon_edit: "Edituj", icon_delete: "Smazat", confirm_closing: "", confirm_deleting: "Událost bude trvale smazána, opravdu?", section_description: "Poznámky", section_time: "Doba platnosti", confirm_recurring: "Přejete si upravit celou řadu opakovaných událostí?", section_recurring: "Opakování události", button_recurring: "Vypnuto", button_recurring_open: "Zapnuto", button_edit_series: "Edit series", button_edit_occurrence: "Upravit instance", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Program", date: "Datum", description: "Poznámka", year_tab: "Rok", full_day: "Full day", week_agenda_tab: "Program", grid_tab: "Mřížka", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Denně", repeat_radio_week: "Týdně", repeat_radio_month: "Měsíčně", repeat_radio_year: "Ročně", repeat_radio_day_type: "každý", repeat_text_day_count: "Den", repeat_radio_day_type2: "pracovní dny", repeat_week: "Opakuje každých", repeat_text_week_count: "Týdnů na:", repeat_radio_month_type: "u každého", repeat_radio_month_start: "na", repeat_text_month_day: "Den každého", repeat_text_month_count: "Měsíc", repeat_text_month_count2_before: "každý", repeat_text_month_count2_after: "Měsíc", repeat_year_label: "na", select_year_day2: "v", repeat_text_year_day: "Den v", select_year_month: "", repeat_radio_end: "bez data ukončení", repeat_text_occurrences_count: "Události", repeat_radio_end2: "po", repeat_radio_end3: "Konec", repeat_never: "Nikdy", repeat_daily: "Každý den", repeat_workdays: "Každý pracovní den", repeat_weekly: "Každý týden", repeat_monthly: "Každý měsíc", repeat_yearly: "Každý rok", repeat_custom: "Vlastní", repeat_freq_day: "Den", repeat_freq_week: "Týden", repeat_freq_month: "Měsíc", repeat_freq_year: "Rok", repeat_on_date: "Na datum", repeat_ends: "Končí", month_for_recurring: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], day_for_recurring: ["Neděle ", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"] } };
|
|
8877
|
-
const da = { date: { month_full: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Uge", month_tab: "Måned", new_event: "Ny begivenhed", icon_save: "Gem", icon_cancel: "Fortryd", icon_details: "Detaljer", icon_edit: "Tilret", icon_delete: "Slet", confirm_closing: "Dine rettelser vil gå tabt.. Er dy sikker?", confirm_deleting: "Bigivenheden vil blive slettet permanent. Er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", confirm_recurring: "Vil du tilrette hele serien af gentagne begivenheder?", section_recurring: "Gentag begivenhed", button_recurring: "Frakoblet", button_recurring_open: "Tilkoblet", button_edit_series: "Rediger serien", button_edit_occurrence: "Rediger en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dagsorden", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Dagsorden", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ugenlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "På hver arbejdsdag", repeat_week: " Gentager sig hver", repeat_text_week_count: "uge på følgende dage:", repeat_radio_month_type: "Hver den", repeat_radio_month_start: "Den", repeat_text_month_day: " i hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "Den", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "", repeat_radio_end: "Ingen slutdato", repeat_text_occurrences_count: "gentagelse", repeat_radio_end2: "Efter", repeat_radio_end3: "Slut", repeat_never: "Aldrig", repeat_daily: "Hver dag", repeat_workdays: "Hver hverdag", repeat_weekly: "Hver uge", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Brugerdefineret", repeat_freq_day: "Dag", repeat_freq_week: "Uge", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: "På dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
|
|
8878
|
-
const de = { date: { month_full: [" Januar", " Februar", " März ", " April", " Mai", " Juni", " Juli", " August", " September ", " Oktober", " November ", " Dezember"], month_short: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], day_full: ["Sonntag", "Montag", "Dienstag", " Mittwoch", " Donnerstag", "Freitag", "Samstag"], day_short: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"] }, labels: { dhx_cal_today_button: "Heute", day_tab: "Tag", week_tab: "Woche", month_tab: "Monat", new_event: "neuer Eintrag", icon_save: "Speichern", icon_cancel: "Abbrechen", icon_details: "Details", icon_edit: "Ändern", icon_delete: "Löschen", confirm_closing: "", confirm_deleting: "Der Eintrag wird gelöscht", section_description: "Beschreibung", section_time: "Zeitspanne", full_day: "Ganzer Tag", confirm_recurring: "Wollen Sie alle Einträge bearbeiten oder nur diesen einzelnen Eintrag?", section_recurring: "Wiederholung", button_recurring: "Aus", button_recurring_open: "An", button_edit_series: "Bearbeiten Sie die Serie", button_edit_occurrence: "Bearbeiten Sie eine Kopie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Datum", description: "Beschreibung", year_tab: "Jahre", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Täglich", repeat_radio_week: "Wöchentlich", repeat_radio_month: "Monatlich", repeat_radio_year: "Jährlich", repeat_radio_day_type: "jeden", repeat_text_day_count: "Tag", repeat_radio_day_type2: "an jedem Arbeitstag", repeat_week: " Wiederholt sich jede", repeat_text_week_count: "Woche am:", repeat_radio_month_type: "an jedem", repeat_radio_month_start: "am", repeat_text_month_day: "Tag eines jeden", repeat_text_month_count: "Monats", repeat_text_month_count2_before: "jeden", repeat_text_month_count2_after: "Monats", repeat_year_label: "am", select_year_day2: "im", repeat_text_year_day: "Tag im", select_year_month: "", repeat_radio_end: "kein Enddatum", repeat_text_occurrences_count: "Ereignissen", repeat_radio_end3: "Schluß", repeat_radio_end2: "nach", repeat_never: "Nie", repeat_daily: "Jeden Tag", repeat_workdays: "Jeden Werktag", repeat_weekly: "Jede Woche", repeat_monthly: "Jeden Monat", repeat_yearly: "Jedes Jahr", repeat_custom: "Benutzerdefiniert", repeat_freq_day: "Tag", repeat_freq_week: "Woche", repeat_freq_month: "Monat", repeat_freq_year: "Jahr", repeat_on_date: "Am Datum", repeat_ends: "Endet", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"] } };
|
|
8879
|
-
const el = { date: { month_full: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], month_short: ["ΙΑΝ", "ΦΕΒ", "ΜΑΡ", "ΑΠΡ", "ΜΑΙ", "ΙΟΥΝ", "ΙΟΥΛ", "ΑΥΓ", "ΣΕΠ", "ΟΚΤ", "ΝΟΕ", "ΔΕΚ"], day_full: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"], day_short: ["ΚΥ", "ΔΕ", "ΤΡ", "ΤΕ", "ΠΕ", "ΠΑ", "ΣΑ"] }, labels: { dhx_cal_today_button: "Σήμερα", day_tab: "Ημέρα", week_tab: "Εβδομάδα", month_tab: "Μήνας", new_event: "Νέο έργο", icon_save: "Αποθήκευση", icon_cancel: "Άκυρο", icon_details: "Λεπτομέρειες", icon_edit: "Επεξεργασία", icon_delete: "Διαγραφή", confirm_closing: "", confirm_deleting: "Το έργο θα διαγραφεί οριστικά. Θέλετε να συνεχίσετε;", section_description: "Περιγραφή", section_time: "Χρονική περίοδος", full_day: "Πλήρης Ημέρα", confirm_recurring: "Θέλετε να επεξεργασθείτε ολόκληρη την ομάδα των επαναλαμβανόμενων έργων;", section_recurring: "Επαναλαμβανόμενο έργο", button_recurring: "Ανενεργό", button_recurring_open: "Ενεργό", button_edit_series: "Επεξεργαστείτε τη σειρά", button_edit_occurrence: "Επεξεργασία ένα αντίγραφο", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Ημερήσια Διάταξη", date: "Ημερομηνία", description: "Περιγραφή", year_tab: "Έτος", week_agenda_tab: "Ημερήσια Διάταξη", grid_tab: "Πλέγμα", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Ημερησίως", repeat_radio_week: "Εβδομαδιαίως", repeat_radio_month: "Μηνιαίως", repeat_radio_year: "Ετησίως", repeat_radio_day_type: "Κάθε", repeat_text_day_count: "ημέρα", repeat_radio_day_type2: "Κάθε εργάσιμη", repeat_week: " Επανάληψη κάθε", repeat_text_week_count: "εβδομάδα τις επόμενες ημέρες:", repeat_radio_month_type: "Επανάληψη", repeat_radio_month_start: "Την", repeat_text_month_day: "ημέρα κάθε", repeat_text_month_count: "μήνα", repeat_text_month_count2_before: "κάθε", repeat_text_month_count2_after: "μήνα", repeat_year_label: "Την", select_year_day2: "του", repeat_text_year_day: "ημέρα", select_year_month: "μήνα", repeat_radio_end: "Χωρίς ημερομηνία λήξεως", repeat_text_occurrences_count: "επαναλήψεις", repeat_radio_end3: "Λήγει την", repeat_radio_end2: "Μετά από", repeat_never: "Ποτέ", repeat_daily: "Κάθε μέρα", repeat_workdays: "Κάθε εργάσιμη μέρα", repeat_weekly: "Κάθε εβδομάδα", repeat_monthly: "Κάθε μήνα", repeat_yearly: "Κάθε χρόνο", repeat_custom: "Προσαρμοσμένο", repeat_freq_day: "Ημέρα", repeat_freq_week: "Εβδομάδα", repeat_freq_month: "Μήνας", repeat_freq_year: "Χρόνος", repeat_on_date: "Σε ημερομηνία", repeat_ends: "Λήγει", month_for_recurring: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], day_for_recurring: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] } };
|
|
8880
|
-
const en = { date: { month_full: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], day_full: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], day_short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] }, labels: { dhx_cal_today_button: "Today", day_tab: "Day", week_tab: "Week", month_tab: "Month", new_event: "New event", icon_save: "Save", icon_cancel: "Cancel", icon_details: "Details", icon_edit: "Edit", icon_delete: "Delete", confirm_closing: "", confirm_deleting: "Event will be deleted permanently, are you sure?", section_description: "Description", section_time: "Time period", full_day: "Full day", confirm_recurring: "Edit recurring event", section_recurring: "Repeat event", button_recurring: "Disabled", button_recurring_open: "Enabled", button_edit_series: "All events", button_edit_occurrence: "This event", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Date", description: "Description", year_tab: "Year", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daily", repeat_radio_week: "Weekly", repeat_radio_month: "Monthly", repeat_radio_year: "Yearly", repeat_radio_day_type: "Every", repeat_text_day_count: "day", repeat_radio_day_type2: "Every workday", repeat_week: " Repeat every", repeat_text_week_count: "week next days:", repeat_radio_month_type: "Repeat", repeat_radio_month_start: "On", repeat_text_month_day: "day every", repeat_text_month_count: "month", repeat_text_month_count2_before: "every", repeat_text_month_count2_after: "month", repeat_year_label: "On", select_year_day2: "of", repeat_text_year_day: "day", select_year_month: "month", repeat_radio_end: "No end date", repeat_text_occurrences_count: "occurrences", repeat_radio_end2: "After", repeat_radio_end3: "End by", repeat_never: "Never", repeat_daily: "Every day", repeat_workdays: "Every weekday", repeat_weekly: "Every week", repeat_monthly: "Every month", repeat_yearly: "Every year", repeat_custom: "Custom", repeat_freq_day: "Day", repeat_freq_week: "Week", repeat_freq_month: "Month", repeat_freq_year: "Year", repeat_on_date: "On date", repeat_ends: "Ends", month_for_recurring: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], day_for_recurring: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] } };
|
|
8881
|
-
const es = { date: { month_full: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], month_short: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], day_full: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"], day_short: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"] }, labels: { dhx_cal_today_button: "Hoy", day_tab: "Día", week_tab: "Semana", month_tab: "Mes", new_event: "Nuevo evento", icon_save: "Guardar", icon_cancel: "Cancelar", icon_details: "Detalles", icon_edit: "Editar", icon_delete: "Eliminar", confirm_closing: "", confirm_deleting: "El evento se borrará definitivamente, ¿continuar?", section_description: "Descripción", section_time: "Período", full_day: "Todo el día", confirm_recurring: "¿Desea modificar el conjunto de eventos repetidos?", section_recurring: "Repita el evento", button_recurring: "Impedido", button_recurring_open: "Permitido", button_edit_series: "Editar la serie", button_edit_occurrence: "Editar este evento", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Día", date: "Fecha", description: "Descripción", year_tab: "Año", week_agenda_tab: "Día", grid_tab: "Reja", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diariamente", repeat_radio_week: "Semanalmente", repeat_radio_month: "Mensualmente", repeat_radio_year: "Anualmente", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada jornada de trabajo", repeat_week: " Repetir cada", repeat_text_week_count: "semana:", repeat_radio_month_type: "Repita", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada ", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "del", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sin fecha de finalización", repeat_text_occurrences_count: "ocurrencias", repeat_radio_end3: "Fin", repeat_radio_end2: "Después de", repeat_never: "Nunca", repeat_daily: "Cada día", repeat_workdays: "Cada día laborable", repeat_weekly: "Cada semana", repeat_monthly: "Cada mes", repeat_yearly: "Cada año", repeat_custom: "Personalizado", repeat_freq_day: "Día", repeat_freq_week: "Semana", repeat_freq_month: "Mes", repeat_freq_year: "Año", repeat_on_date: "En la fecha", repeat_ends: "Termina", month_for_recurring: ["Enero", "Febrero", "Маrzo", "Аbril", "Mayo", "Junio", "Julio", "Аgosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"], day_for_recurring: ["Domingo", "Lunes", "Martes", "Miércoles", "Jeuves", "Viernes", "Sabado"] } };
|
|
8882
|
-
const fi = { date: { month_full: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], month_short: ["Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou"], day_full: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"], day_short: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"] }, labels: { dhx_cal_today_button: "Tänään", day_tab: "Päivä", week_tab: "Viikko", month_tab: "Kuukausi", new_event: "Uusi tapahtuma", icon_save: "Tallenna", icon_cancel: "Peru", icon_details: "Tiedot", icon_edit: "Muokkaa", icon_delete: "Poista", confirm_closing: "", confirm_deleting: "Haluatko varmasti poistaa tapahtuman?", section_description: "Kuvaus", section_time: "Aikajakso", full_day: "Koko päivä", confirm_recurring: "Haluatko varmasti muokata toistuvan tapahtuman kaikkia jaksoja?", section_recurring: "Toista tapahtuma", button_recurring: "Ei käytössä", button_recurring_open: "Käytössä", button_edit_series: "Muokkaa sarja", button_edit_occurrence: "Muokkaa kopio", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Esityslista", date: "Päivämäärä", description: "Kuvaus", year_tab: "Vuoden", week_agenda_tab: "Esityslista", grid_tab: "Ritilä", drag_to_create: "Luo uusi vetämällä", drag_to_move: "Siirrä vetämällä", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Päivittäin", repeat_radio_week: "Viikoittain", repeat_radio_month: "Kuukausittain", repeat_radio_year: "Vuosittain", repeat_radio_day_type: "Joka", repeat_text_day_count: "päivä", repeat_radio_day_type2: "Joka arkipäivä", repeat_week: "Toista joka", repeat_text_week_count: "viikko näinä päivinä:", repeat_radio_month_type: "Toista", repeat_radio_month_start: "", repeat_text_month_day: "päivänä joka", repeat_text_month_count: "kuukausi", repeat_text_month_count2_before: "joka", repeat_text_month_count2_after: "kuukausi", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "päivä", select_year_month: "kuukausi", repeat_radio_end: "Ei loppumisaikaa", repeat_text_occurrences_count: "Toiston jälkeen", repeat_radio_end3: "Loppuu", repeat_radio_end2: "", repeat_never: "Ei koskaan", repeat_daily: "Joka päivä", repeat_workdays: "Joka arkipäivä", repeat_weekly: "Joka viikko", repeat_monthly: "Joka kuukausi", repeat_yearly: "Joka vuosi", repeat_custom: "Mukautettu", repeat_freq_day: "Päivä", repeat_freq_week: "Viikko", repeat_freq_month: "Kuukausi", repeat_freq_year: "Vuosi", repeat_on_date: "Tiettynä päivänä", repeat_ends: "Päättyy", month_for_recurring: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], day_for_recurring: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"] } };
|
|
8883
|
-
const fr = { date: { month_full: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], month_short: ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Aoû", "Sep", "Oct", "Nov", "Déc"], day_full: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], day_short: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"] }, labels: { dhx_cal_today_button: "Aujourd'hui", day_tab: "Jour", week_tab: "Semaine", month_tab: "Mois", new_event: "Nouvel événement", icon_save: "Enregistrer", icon_cancel: "Annuler", icon_details: "Détails", icon_edit: "Modifier", icon_delete: "Effacer", confirm_closing: "", confirm_deleting: "L'événement sera effacé sans appel, êtes-vous sûr ?", section_description: "Description", section_time: "Période", full_day: "Journée complète", confirm_recurring: "Voulez-vous éditer toute une série d'évènements répétés?", section_recurring: "Périodicité", button_recurring: "Désactivé", button_recurring_open: "Activé", button_edit_series: "Modifier la série", button_edit_occurrence: "Modifier une copie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Jour", date: "Date", description: "Description", year_tab: "Année", week_agenda_tab: "Jour", grid_tab: "Grille", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Quotidienne", repeat_radio_week: "Hebdomadaire", repeat_radio_month: "Mensuelle", repeat_radio_year: "Annuelle", repeat_radio_day_type: "Chaque", repeat_text_day_count: "jour", repeat_radio_day_type2: "Chaque journée de travail", repeat_week: " Répéter toutes les", repeat_text_week_count: "semaine:", repeat_radio_month_type: "Répéter", repeat_radio_month_start: "Le", repeat_text_month_day: "jour chaque", repeat_text_month_count: "mois", repeat_text_month_count2_before: "chaque", repeat_text_month_count2_after: "mois", repeat_year_label: "Le", select_year_day2: "du", repeat_text_year_day: "jour", select_year_month: "mois", repeat_radio_end: "Pas de date d"achèvement", repeat_text_occurrences_count: "occurrences", repeat_radio_end3: "Fin", repeat_radio_end2: "Après", repeat_never: "Jamais", repeat_daily: "Chaque jour", repeat_workdays: "Chaque jour ouvrable", repeat_weekly: "Chaque semaine", repeat_monthly: "Chaque mois", repeat_yearly: "Chaque année", repeat_custom: "Personnalisé", repeat_freq_day: "Jour", repeat_freq_week: "Semaine", repeat_freq_month: "Mois", repeat_freq_year: "Année", repeat_on_date: "À la date", repeat_ends: "Se termine", month_for_recurring: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], day_for_recurring: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"] } };
|
|
8884
|
-
const he = { date: { month_full: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], month_short: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], day_full: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"], day_short: ["א", "ב", "ג", "ד", "ה", "ו", "ש"] }, labels: { dhx_cal_today_button: "היום", day_tab: "יום", week_tab: "שבוע", month_tab: "חודש", new_event: "ארוע חדש", icon_save: "שמור", icon_cancel: "בטל", icon_details: "פרטים", icon_edit: "ערוך", icon_delete: "מחק", confirm_closing: "", confirm_deleting: "ארוע ימחק סופית.להמשיך?", section_description: "תיאור", section_time: "תקופה", confirm_recurring: "האם ברצונך לשנות כל סדרת ארועים מתמשכים?", section_recurring: "להעתיק ארוע", button_recurring: "לא פעיל", button_recurring_open: "פעיל", full_day: "יום שלם", button_edit_series: "ערוך את הסדרה", button_edit_occurrence: "עריכת עותק", button_edit_occurrence_and_following: "This and following events", agenda_tab: "סדר יום", date: "תאריך", description: "תיאור", year_tab: "לשנה", week_agenda_tab: "סדר יום", grid_tab: "סורג", drag_to_create: "Drag to create", drag_to_move: "גרור כדי להזיז", message_ok: "OK", message_cancel: "בטל", next: "הבא", prev: "הקודם", year: "שנה", month: "חודש", day: "יום", hour: "שעה", minute: "דקה", repeat_radio_day: "יומי", repeat_radio_week: "שבועי", repeat_radio_month: "חודשי", repeat_radio_year: "שנתי", repeat_radio_day_type: "חזור כל", repeat_text_day_count: "ימים", repeat_radio_day_type2: "חזור כל יום עבודה", repeat_week: " חזור כל", repeat_text_week_count: "שבוע לפי ימים:", repeat_radio_month_type: "חזור כל", repeat_radio_month_start: "כל", repeat_text_month_day: "ימים כל", repeat_text_month_count: "חודשים", repeat_text_month_count2_before: "חזור כל", repeat_text_month_count2_after: "חודש", repeat_year_label: "כל", select_year_day2: "בחודש", repeat_text_year_day: "ימים", select_year_month: "חודש", repeat_radio_end: "לעולם לא מסתיים", repeat_text_occurrences_count: "אירועים", repeat_radio_end3: "מסתיים ב", repeat_radio_end2: "אחרי", repeat_never: "אף פעם", repeat_daily: "כל יום", repeat_workdays: "כל יום עבודה", repeat_weekly: "כל שבוע", repeat_monthly: "כל חודש", repeat_yearly: "כל שנה", repeat_custom: "מותאם אישית", repeat_freq_day: "יום", repeat_freq_week: "שבוע", repeat_freq_month: "חודש", repeat_freq_year: "שנה", repeat_on_date: "בתאריך", repeat_ends: "מסתיים", month_for_recurring: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], day_for_recurring: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"] } };
|
|
8885
|
-
const hu = { date: { month_full: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], month_short: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Vasárnap", "Hétfõ", "Kedd", "Szerda", "Csütörtök", "Péntek", "szombat"], day_short: ["Va", "Hé", "Ke", "Sze", "Csü", "Pé", "Szo"] }, labels: { dhx_cal_today_button: "Ma", day_tab: "Nap", week_tab: "Hét", month_tab: "Hónap", new_event: "Új esemény", icon_save: "Mentés", icon_cancel: "Mégse", icon_details: "Részletek", icon_edit: "Szerkesztés", icon_delete: "Törlés", confirm_closing: "", confirm_deleting: "Az esemény törölve lesz, biztosan folytatja?", section_description: "Leírás", section_time: "Idõszak", full_day: "Egesz napos", confirm_recurring: "Biztosan szerkeszteni akarod az összes ismétlõdõ esemény beállítását?", section_recurring: "Esemény ismétlése", button_recurring: "Tiltás", button_recurring_open: "Engedélyezés", button_edit_series: "Edit series", button_edit_occurrence: "Szerkesztés bíróság", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Napirend", date: "Dátum", description: "Leírás", year_tab: "Év", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Napi", repeat_radio_week: "Heti", repeat_radio_month: "Havi", repeat_radio_year: "Éves", repeat_radio_day_type: "Minden", repeat_text_day_count: "nap", repeat_radio_day_type2: "Minden munkanap", repeat_week: " Ismételje meg minden", repeat_text_week_count: "héten a következő napokon:", repeat_radio_month_type: "Ismétlés", repeat_radio_month_start: "Ekkor", repeat_text_month_day: "nap minden", repeat_text_month_count: "hónapban", repeat_text_month_count2_before: "minden", repeat_text_month_count2_after: "hónapban", repeat_year_label: "Ekkor", select_year_day2: "-án/-én", repeat_text_year_day: "nap", select_year_month: "hónap", repeat_radio_end: "Nincs befejezési dátum", repeat_text_occurrences_count: "esemény", repeat_radio_end2: "Után", repeat_radio_end3: "Befejező dátum", repeat_never: "Soha", repeat_daily: "Minden nap", repeat_workdays: "Minden munkanap", repeat_weekly: "Minden héten", repeat_monthly: "Minden hónapban", repeat_yearly: "Minden évben", repeat_custom: "Egyedi", repeat_freq_day: "Nap", repeat_freq_week: "Hét", repeat_freq_month: "Hónap", repeat_freq_year: "Év", repeat_on_date: "Dátum szerint", repeat_ends: "Befejeződik", month_for_recurring: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], day_for_recurring: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"] } };
|
|
8886
|
-
const id = { date: { month_full: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], day_full: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], day_short: ["Ming", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"] }, labels: { dhx_cal_today_button: "Hari Ini", day_tab: "Hari", week_tab: "Minggu", month_tab: "Bulan", new_event: "Acara Baru", icon_save: "Simpan", icon_cancel: "Batal", icon_details: "Detail", icon_edit: "Edit", icon_delete: "Hapus", confirm_closing: "", confirm_deleting: "Acara akan dihapus", section_description: "Keterangan", section_time: "Periode", full_day: "Hari penuh", confirm_recurring: "Apakah acara ini akan berulang?", section_recurring: "Acara Rutin", button_recurring: "Tidak Difungsikan", button_recurring_open: "Difungsikan", button_edit_series: "Mengedit seri", button_edit_occurrence: "Mengedit salinan", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Tanggal", description: "Keterangan", year_tab: "Tahun", week_agenda_tab: "Agenda", grid_tab: "Tabel", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Harian", repeat_radio_week: "Mingguan", repeat_radio_month: "Bulanan", repeat_radio_year: "Tahunan", repeat_radio_day_type: "Setiap", repeat_text_day_count: "hari", repeat_radio_day_type2: "Setiap hari kerja", repeat_week: " Ulangi setiap", repeat_text_week_count: "minggu pada hari berikut:", repeat_radio_month_type: "Ulangi", repeat_radio_month_start: "Pada", repeat_text_month_day: "hari setiap", repeat_text_month_count: "bulan", repeat_text_month_count2_before: "setiap", repeat_text_month_count2_after: "bulan", repeat_year_label: "Pada", select_year_day2: "dari", repeat_text_year_day: "hari", select_year_month: "bulan", repeat_radio_end: "Tanpa tanggal akhir", repeat_text_occurrences_count: "kejadian", repeat_radio_end2: "Setelah", repeat_radio_end3: "Berakhir pada", repeat_never: "Tidak pernah", repeat_daily: "Setiap hari", repeat_workdays: "Setiap hari kerja", repeat_weekly: "Setiap minggu", repeat_monthly: "Setiap bulan", repeat_yearly: "Setiap tahun", repeat_custom: "Kustom", repeat_freq_day: "Hari", repeat_freq_week: "Minggu", repeat_freq_month: "Bulan", repeat_freq_year: "Tahun", repeat_on_date: "Pada tanggal", repeat_ends: "Berakhir", month_for_recurring: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"] } };
|
|
8887
|
-
const it = { date: { month_full: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], month_short: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], day_full: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"], day_short: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"] }, labels: { dhx_cal_today_button: "Oggi", day_tab: "Giorno", week_tab: "Settimana", month_tab: "Mese", new_event: "Nuovo evento", icon_save: "Salva", icon_cancel: "Chiudi", icon_details: "Dettagli", icon_edit: "Modifica", icon_delete: "Elimina", confirm_closing: "", confirm_deleting: "L'evento sarà eliminato, siete sicuri?", section_description: "Descrizione", section_time: "Periodo di tempo", full_day: "Intera giornata", confirm_recurring: "Vuoi modificare l'intera serie di eventi?", section_recurring: "Ripetere l'evento", button_recurring: "Disattivato", button_recurring_open: "Attivato", button_edit_series: "Modificare la serie", button_edit_occurrence: "Modificare una copia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descrizione", year_tab: "Anno", week_agenda_tab: "Agenda", grid_tab: "Griglia", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Quotidiano", repeat_radio_week: "Settimanale", repeat_radio_month: "Mensile", repeat_radio_year: "Annuale", repeat_radio_day_type: "Ogni", repeat_text_day_count: "giorno", repeat_radio_day_type2: "Ogni giornata lavorativa", repeat_week: " Ripetere ogni", repeat_text_week_count: "settimana:", repeat_radio_month_type: "Ripetere", repeat_radio_month_start: "Il", repeat_text_month_day: "giorno ogni", repeat_text_month_count: "mese", repeat_text_month_count2_before: "ogni", repeat_text_month_count2_after: "mese", repeat_year_label: "Il", select_year_day2: "del", repeat_text_year_day: "giorno", select_year_month: "mese", repeat_radio_end: "Senza data finale", repeat_text_occurrences_count: "occorenze", repeat_radio_end3: "Fine", repeat_radio_end2: "Dopo", repeat_never: "Mai", repeat_daily: "Ogni giorno", repeat_workdays: "Ogni giorno feriale", repeat_weekly: "Ogni settimana", repeat_monthly: "Ogni mese", repeat_yearly: "Ogni anno", repeat_custom: "Personalizzato", repeat_freq_day: "Giorno", repeat_freq_week: "Settimana", repeat_freq_month: "Mese", repeat_freq_year: "Anno", repeat_on_date: "Alla data", repeat_ends: "Finisce", month_for_recurring: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Jiugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], day_for_recurring: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Jovedì", "Venerdì", "Sabato"] } };
|
|
8888
|
-
const jp = { date: { month_full: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], month_short: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_full: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"], day_short: ["日", "月", "火", "水", "木", "金", "土"] }, labels: { dhx_cal_today_button: "今日", day_tab: "日", week_tab: "週", month_tab: "月", new_event: "新イベント", icon_save: "保存", icon_cancel: "キャンセル", icon_details: "詳細", icon_edit: "編集", icon_delete: "削除", confirm_closing: "", confirm_deleting: "イベント完全に削除されます、宜しいですか?", section_description: "デスクリプション", section_time: "期間", confirm_recurring: "繰り返されているイベントを全て編集しますか?", section_recurring: "イベントを繰り返す", button_recurring: "無効", button_recurring_open: "有効", full_day: "終日", button_edit_series: "シリーズを編集します", button_edit_occurrence: "コピーを編集", button_edit_occurrence_and_following: "This and following events", agenda_tab: "議題は", date: "日付", description: "説明", year_tab: "今年", week_agenda_tab: "議題は", grid_tab: "グリッド", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "毎日", repeat_radio_week: "毎週", repeat_radio_month: "毎月", repeat_radio_year: "毎年", repeat_radio_day_type: "毎", repeat_text_day_count: "日", repeat_radio_day_type2: "毎営業日", repeat_week: " 繰り返し毎", repeat_text_week_count: "週 次の日:", repeat_radio_month_type: "繰り返し", repeat_radio_month_start: "オン", repeat_text_month_day: "日毎", repeat_text_month_count: "月", repeat_text_month_count2_before: "毎", repeat_text_month_count2_after: "月", repeat_year_label: "オン", select_year_day2: "の", repeat_text_year_day: "日", select_year_month: "月", repeat_radio_end: "終了日なし", repeat_text_occurrences_count: "回数", repeat_radio_end2: "後", repeat_radio_end3: "終了日まで", repeat_never: "決して", repeat_daily: "毎日", repeat_workdays: "毎営業日", repeat_weekly: "毎週", repeat_monthly: "毎月", repeat_yearly: "毎年", repeat_custom: "カスタム", repeat_freq_day: "日", repeat_freq_week: "週", repeat_freq_month: "月", repeat_freq_year: "年", repeat_on_date: "日にち", repeat_ends: "終了", month_for_recurring: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_for_recurring: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"] } };
|
|
8889
8890
|
class LocaleManager {
|
|
8890
8891
|
constructor(config) {
|
|
8891
8892
|
this._locales = {};
|
|
@@ -8900,20 +8901,38 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
8900
8901
|
return this._locales[name];
|
|
8901
8902
|
}
|
|
8902
8903
|
}
|
|
8903
|
-
const
|
|
8904
|
-
const
|
|
8905
|
-
const
|
|
8906
|
-
const
|
|
8907
|
-
const
|
|
8908
|
-
const
|
|
8909
|
-
const
|
|
8910
|
-
const
|
|
8911
|
-
const
|
|
8912
|
-
const
|
|
8913
|
-
const
|
|
8914
|
-
const
|
|
8904
|
+
const locale_ar = { date: { month_full: ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"], month_short: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], day_full: ["الأحد", "الأثنين", "ألثلاثاء", "الأربعاء", "ألحميس", "ألجمعة", "السبت"], day_short: ["احد", "اثنين", "ثلاثاء", "اربعاء", "خميس", "جمعة", "سبت"] }, labels: { dhx_cal_today_button: "اليوم", day_tab: "يوم", week_tab: "أسبوع", month_tab: "شهر", new_event: "حدث جديد", icon_save: "اخزن", icon_cancel: "الغاء", icon_details: "تفاصيل", icon_edit: "تحرير", icon_delete: "حذف", confirm_closing: "التغييرات سوف تضيع, هل انت متأكد؟", confirm_deleting: "الحدث سيتم حذفها نهائيا ، هل أنت متأكد؟", section_description: "الوصف", section_time: "الفترة الزمنية", full_day: "طوال اليوم", confirm_recurring: "هل تريد تحرير مجموعة كاملة من الأحداث المتكررة؟", section_recurring: "تكرار الحدث", button_recurring: "تعطيل", button_recurring_open: "تمكين", button_edit_series: "تحرير سلسلة", button_edit_occurrence: "تعديل نسخة", button_edit_occurrence_and_following: "This and following events", grid_tab: "جدول", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "يومي", repeat_radio_week: "أسبوعي", repeat_radio_month: "شهري", repeat_radio_year: "سنوي", repeat_radio_day_type: "كل", repeat_text_day_count: "يوم", repeat_radio_day_type2: "كل يوم عمل", repeat_week: " تكرار كل", repeat_text_week_count: "أسبوع في الأيام التالية:", repeat_radio_month_type: "تكرار", repeat_radio_month_start: "في", repeat_text_month_day: "يوم كل", repeat_text_month_count: "شهر", repeat_text_month_count2_before: "كل", repeat_text_month_count2_after: "شهر", repeat_year_label: "في", select_year_day2: "من", repeat_text_year_day: "يوم", select_year_month: "شهر", repeat_radio_end: "بدون تاريخ انتهاء", repeat_text_occurrences_count: "تكرارات", repeat_radio_end2: "بعد", repeat_radio_end3: "ينتهي في", repeat_never: "أبداً", repeat_daily: "كل يوم", repeat_workdays: "كل يوم عمل", repeat_weekly: "كل أسبوع", repeat_monthly: "كل شهر", repeat_yearly: "كل سنة", repeat_custom: "تخصيص", repeat_freq_day: "يوم", repeat_freq_week: "أسبوع", repeat_freq_month: "شهر", repeat_freq_year: "سنة", repeat_on_date: "في التاريخ", repeat_ends: "ينتهي", month_for_recurring: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], day_for_recurring: ["الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"] } };
|
|
8905
|
+
const locale_be = { date: { month_full: ["Студзень", "Люты", "Сакавік", "Красавік", "Maй", "Чэрвень", "Ліпень", "Жнівень", "Верасень", "Кастрычнік", "Лістапад", "Снежань"], month_short: ["Студз", "Лют", "Сак", "Крас", "Maй", "Чэр", "Ліп", "Жнів", "Вер", "Каст", "Ліст", "Снеж"], day_full: ["Нядзеля", "Панядзелак", "Аўторак", "Серада", "Чацвер", "Пятніца", "Субота"], day_short: ["Нд", "Пн", "Аўт", "Ср", "Чцв", "Пт", "Сб"] }, labels: { dhx_cal_today_button: "Сёння", day_tab: "Дзень", week_tab: "Тыдзень", month_tab: "Месяц", new_event: "Новая падзея", icon_save: "Захаваць", icon_cancel: "Адмяніць", icon_details: "Дэталі", icon_edit: "Змяніць", icon_delete: "Выдаліць", confirm_closing: "", confirm_deleting: "Падзея будзе выдалена незваротна, працягнуць?", section_description: "Апісанне", section_time: "Перыяд часу", full_day: "Увесь дзень", confirm_recurring: "Вы хочаце змяніць усю серыю паўтаральных падзей?", section_recurring: "Паўтарэнне", button_recurring: "Адключана", button_recurring_open: "Уключана", button_edit_series: "Рэдагаваць серыю", button_edit_occurrence: "Рэдагаваць асобнік", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Спіс", date: "Дата", description: "Апісанне", year_tab: "Год", week_agenda_tab: "Спіс", grid_tab: "Спic", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Дзень", repeat_radio_week: "Тыдзень", repeat_radio_month: "Месяц", repeat_radio_year: "Год", repeat_radio_day_type: "Кожны", repeat_text_day_count: "дзень", repeat_radio_day_type2: "Кожны працоўны дзень", repeat_week: " Паўтараць кожны", repeat_text_week_count: "тыдзень", repeat_radio_month_type: "Паўтараць", repeat_radio_month_start: "", repeat_text_month_day: " чысла кожнага", repeat_text_month_count: "месяцу", repeat_text_month_count2_before: "кожны ", repeat_text_month_count2_after: "месяц", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "дзень", select_year_month: "", repeat_radio_end: "Без даты заканчэння", repeat_text_occurrences_count: "паўтораў", repeat_radio_end2: "", repeat_radio_end3: "Да ", repeat_never: "Ніколі", repeat_daily: "Кожны дзень", repeat_workdays: "Кожны працоўны дзень", repeat_weekly: "Кожны тыдзень", repeat_monthly: "Кожны месяц", repeat_yearly: "Кожны год", repeat_custom: "Наладжвальны", repeat_freq_day: "Дзень", repeat_freq_week: "Тыдзень", repeat_freq_month: "Месяц", repeat_freq_year: "Год", repeat_on_date: "На дату", repeat_ends: "Заканчваецца", month_for_recurring: ["Студзеня", "Лютага", "Сакавіка", "Красавіка", "Мая", "Чэрвеня", "Ліпeня", "Жніўня", "Верасня", "Кастрычніка", "Лістапада", "Снежня"], day_for_recurring: ["Нядзелю", "Панядзелак", "Аўторак", "Сераду", "Чацвер", "Пятніцу", "Суботу"] } };
|
|
8906
|
+
const locale_ca = { date: { month_full: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], month_short: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], day_full: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"], day_short: ["Dg", "Dl", "Dm", "Dc", "Dj", "Dv", "Ds"] }, labels: { dhx_cal_today_button: "Hui", day_tab: "Dia", week_tab: "Setmana", month_tab: "Mes", new_event: "Nou esdeveniment", icon_save: "Guardar", icon_cancel: "Cancel·lar", icon_details: "Detalls", icon_edit: "Editar", icon_delete: "Esborrar", confirm_closing: "", confirm_deleting: "L'esdeveniment s'esborrarà definitivament, continuar ?", section_description: "Descripció", section_time: "Periode de temps", full_day: "Tot el dia", confirm_recurring: "¿Desitja modificar el conjunt d'esdeveniments repetits?", section_recurring: "Repeteixca l'esdeveniment", button_recurring: "Impedit", button_recurring_open: "Permés", button_edit_series: "Edit sèrie", button_edit_occurrence: "Edita Instància", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descripció", year_tab: "Any", week_agenda_tab: "Agenda", grid_tab: "Taula", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diari", repeat_radio_week: "Setmanal", repeat_radio_month: "Mensual", repeat_radio_year: "Anual", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada dia laborable", repeat_week: " Repetir cada", repeat_text_week_count: "setmana els dies següents:", repeat_radio_month_type: "Repetir", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "de", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sense data de finalització", repeat_text_occurrences_count: "ocurrències", repeat_radio_end2: "Després", repeat_radio_end3: "Finalitzar el", repeat_never: "Mai", repeat_daily: "Cada dia", repeat_workdays: "Cada dia laborable", repeat_weekly: "Cada setmana", repeat_monthly: "Cada mes", repeat_yearly: "Cada any", repeat_custom: "Personalitzat", repeat_freq_day: "Dia", repeat_freq_week: "Setmana", repeat_freq_month: "Mes", repeat_freq_year: "Any", repeat_on_date: "En la data", repeat_ends: "Finalitza", month_for_recurring: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], day_for_recurring: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"] } };
|
|
8907
|
+
const locale_cn = { date: { month_full: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], month_short: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_full: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], day_short: ["日", "一", "二", "三", "四", "五", "六"] }, labels: { dhx_cal_today_button: "今天", day_tab: "日", week_tab: "周", month_tab: "月", new_event: "新建日程", icon_save: "保存", icon_cancel: "关闭", icon_details: "详细", icon_edit: "编辑", icon_delete: "删除", confirm_closing: "请确认是否撤销修改!", confirm_deleting: "是否删除日程?", section_description: "描述", section_time: "时间范围", full_day: "整天", confirm_recurring: "请确认是否将日程设为重复模式?", section_recurring: "重复周期", button_recurring: "禁用", button_recurring_open: "启用", button_edit_series: "编辑系列", button_edit_occurrence: "编辑实例", button_edit_occurrence_and_following: "This and following events", agenda_tab: "议程", date: "日期", description: "说明", year_tab: "今年", week_agenda_tab: "议程", grid_tab: "电网", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "按天", repeat_radio_week: "按周", repeat_radio_month: "按月", repeat_radio_year: "按年", repeat_radio_day_type: "每", repeat_text_day_count: "天", repeat_radio_day_type2: "每个工作日", repeat_week: " 重复 每", repeat_text_week_count: "星期的:", repeat_radio_month_type: "重复", repeat_radio_month_start: "在", repeat_text_month_day: "日 每", repeat_text_month_count: "月", repeat_text_month_count2_before: "每", repeat_text_month_count2_after: "月", repeat_year_label: "在", select_year_day2: "的", repeat_text_year_day: "日", select_year_month: "月", repeat_radio_end: "无结束日期", repeat_text_occurrences_count: "次结束", repeat_radio_end2: "重复", repeat_radio_end3: "结束于", repeat_never: "从不", repeat_daily: "每天", repeat_workdays: "每个工作日", repeat_weekly: "每周", repeat_monthly: "每月", repeat_yearly: "每年", repeat_custom: "自定义", repeat_freq_day: "天", repeat_freq_week: "周", repeat_freq_month: "月", repeat_freq_year: "年", repeat_on_date: "在日期", repeat_ends: "结束", month_for_recurring: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], day_for_recurring: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] } };
|
|
8908
|
+
const locale_cs = { date: { month_full: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], month_short: ["Led", "Ún", "Bře", "Dub", "Kvě", "Čer", "Čec", "Srp", "Září", "Říj", "List", "Pro"], day_full: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"], day_short: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"] }, labels: { dhx_cal_today_button: "Dnes", day_tab: "Den", week_tab: "Týden", month_tab: "Měsíc", new_event: "Nová událost", icon_save: "Uložit", icon_cancel: "Zpět", icon_details: "Detail", icon_edit: "Edituj", icon_delete: "Smazat", confirm_closing: "", confirm_deleting: "Událost bude trvale smazána, opravdu?", section_description: "Poznámky", section_time: "Doba platnosti", confirm_recurring: "Přejete si upravit celou řadu opakovaných událostí?", section_recurring: "Opakování události", button_recurring: "Vypnuto", button_recurring_open: "Zapnuto", button_edit_series: "Edit series", button_edit_occurrence: "Upravit instance", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Program", date: "Datum", description: "Poznámka", year_tab: "Rok", full_day: "Full day", week_agenda_tab: "Program", grid_tab: "Mřížka", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Denně", repeat_radio_week: "Týdně", repeat_radio_month: "Měsíčně", repeat_radio_year: "Ročně", repeat_radio_day_type: "každý", repeat_text_day_count: "Den", repeat_radio_day_type2: "pracovní dny", repeat_week: "Opakuje každých", repeat_text_week_count: "Týdnů na:", repeat_radio_month_type: "u každého", repeat_radio_month_start: "na", repeat_text_month_day: "Den každého", repeat_text_month_count: "Měsíc", repeat_text_month_count2_before: "každý", repeat_text_month_count2_after: "Měsíc", repeat_year_label: "na", select_year_day2: "v", repeat_text_year_day: "Den v", select_year_month: "", repeat_radio_end: "bez data ukončení", repeat_text_occurrences_count: "Události", repeat_radio_end2: "po", repeat_radio_end3: "Konec", repeat_never: "Nikdy", repeat_daily: "Každý den", repeat_workdays: "Každý pracovní den", repeat_weekly: "Každý týden", repeat_monthly: "Každý měsíc", repeat_yearly: "Každý rok", repeat_custom: "Vlastní", repeat_freq_day: "Den", repeat_freq_week: "Týden", repeat_freq_month: "Měsíc", repeat_freq_year: "Rok", repeat_on_date: "Na datum", repeat_ends: "Končí", month_for_recurring: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], day_for_recurring: ["Neděle ", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"] } };
|
|
8909
|
+
const locale_da = { date: { month_full: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Uge", month_tab: "Måned", new_event: "Ny begivenhed", icon_save: "Gem", icon_cancel: "Fortryd", icon_details: "Detaljer", icon_edit: "Tilret", icon_delete: "Slet", confirm_closing: "Dine rettelser vil gå tabt.. Er dy sikker?", confirm_deleting: "Bigivenheden vil blive slettet permanent. Er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", confirm_recurring: "Vil du tilrette hele serien af gentagne begivenheder?", section_recurring: "Gentag begivenhed", button_recurring: "Frakoblet", button_recurring_open: "Tilkoblet", button_edit_series: "Rediger serien", button_edit_occurrence: "Rediger en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dagsorden", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Dagsorden", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ugenlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "På hver arbejdsdag", repeat_week: " Gentager sig hver", repeat_text_week_count: "uge på følgende dage:", repeat_radio_month_type: "Hver den", repeat_radio_month_start: "Den", repeat_text_month_day: " i hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "Den", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "", repeat_radio_end: "Ingen slutdato", repeat_text_occurrences_count: "gentagelse", repeat_radio_end2: "Efter", repeat_radio_end3: "Slut", repeat_never: "Aldrig", repeat_daily: "Hver dag", repeat_workdays: "Hver hverdag", repeat_weekly: "Hver uge", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Brugerdefineret", repeat_freq_day: "Dag", repeat_freq_week: "Uge", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: "På dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
|
|
8910
|
+
const locale_de = { date: { month_full: [" Januar", " Februar", " März ", " April", " Mai", " Juni", " Juli", " August", " September ", " Oktober", " November ", " Dezember"], month_short: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], day_full: ["Sonntag", "Montag", "Dienstag", " Mittwoch", " Donnerstag", "Freitag", "Samstag"], day_short: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"] }, labels: { dhx_cal_today_button: "Heute", day_tab: "Tag", week_tab: "Woche", month_tab: "Monat", new_event: "neuer Eintrag", icon_save: "Speichern", icon_cancel: "Abbrechen", icon_details: "Details", icon_edit: "Ändern", icon_delete: "Löschen", confirm_closing: "", confirm_deleting: "Der Eintrag wird gelöscht", section_description: "Beschreibung", section_time: "Zeitspanne", full_day: "Ganzer Tag", confirm_recurring: "Wollen Sie alle Einträge bearbeiten oder nur diesen einzelnen Eintrag?", section_recurring: "Wiederholung", button_recurring: "Aus", button_recurring_open: "An", button_edit_series: "Bearbeiten Sie die Serie", button_edit_occurrence: "Bearbeiten Sie eine Kopie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Datum", description: "Beschreibung", year_tab: "Jahre", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Täglich", repeat_radio_week: "Wöchentlich", repeat_radio_month: "Monatlich", repeat_radio_year: "Jährlich", repeat_radio_day_type: "jeden", repeat_text_day_count: "Tag", repeat_radio_day_type2: "an jedem Arbeitstag", repeat_week: " Wiederholt sich jede", repeat_text_week_count: "Woche am:", repeat_radio_month_type: "an jedem", repeat_radio_month_start: "am", repeat_text_month_day: "Tag eines jeden", repeat_text_month_count: "Monats", repeat_text_month_count2_before: "jeden", repeat_text_month_count2_after: "Monats", repeat_year_label: "am", select_year_day2: "im", repeat_text_year_day: "Tag im", select_year_month: "", repeat_radio_end: "kein Enddatum", repeat_text_occurrences_count: "Ereignissen", repeat_radio_end3: "Schluß", repeat_radio_end2: "nach", repeat_never: "Nie", repeat_daily: "Jeden Tag", repeat_workdays: "Jeden Werktag", repeat_weekly: "Jede Woche", repeat_monthly: "Jeden Monat", repeat_yearly: "Jedes Jahr", repeat_custom: "Benutzerdefiniert", repeat_freq_day: "Tag", repeat_freq_week: "Woche", repeat_freq_month: "Monat", repeat_freq_year: "Jahr", repeat_on_date: "Am Datum", repeat_ends: "Endet", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"] } };
|
|
8911
|
+
const locale_el = { date: { month_full: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], month_short: ["ΙΑΝ", "ΦΕΒ", "ΜΑΡ", "ΑΠΡ", "ΜΑΙ", "ΙΟΥΝ", "ΙΟΥΛ", "ΑΥΓ", "ΣΕΠ", "ΟΚΤ", "ΝΟΕ", "ΔΕΚ"], day_full: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"], day_short: ["ΚΥ", "ΔΕ", "ΤΡ", "ΤΕ", "ΠΕ", "ΠΑ", "ΣΑ"] }, labels: { dhx_cal_today_button: "Σήμερα", day_tab: "Ημέρα", week_tab: "Εβδομάδα", month_tab: "Μήνας", new_event: "Νέο έργο", icon_save: "Αποθήκευση", icon_cancel: "Άκυρο", icon_details: "Λεπτομέρειες", icon_edit: "Επεξεργασία", icon_delete: "Διαγραφή", confirm_closing: "", confirm_deleting: "Το έργο θα διαγραφεί οριστικά. Θέλετε να συνεχίσετε;", section_description: "Περιγραφή", section_time: "Χρονική περίοδος", full_day: "Πλήρης Ημέρα", confirm_recurring: "Θέλετε να επεξεργασθείτε ολόκληρη την ομάδα των επαναλαμβανόμενων έργων;", section_recurring: "Επαναλαμβανόμενο έργο", button_recurring: "Ανενεργό", button_recurring_open: "Ενεργό", button_edit_series: "Επεξεργαστείτε τη σειρά", button_edit_occurrence: "Επεξεργασία ένα αντίγραφο", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Ημερήσια Διάταξη", date: "Ημερομηνία", description: "Περιγραφή", year_tab: "Έτος", week_agenda_tab: "Ημερήσια Διάταξη", grid_tab: "Πλέγμα", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Ημερησίως", repeat_radio_week: "Εβδομαδιαίως", repeat_radio_month: "Μηνιαίως", repeat_radio_year: "Ετησίως", repeat_radio_day_type: "Κάθε", repeat_text_day_count: "ημέρα", repeat_radio_day_type2: "Κάθε εργάσιμη", repeat_week: " Επανάληψη κάθε", repeat_text_week_count: "εβδομάδα τις επόμενες ημέρες:", repeat_radio_month_type: "Επανάληψη", repeat_radio_month_start: "Την", repeat_text_month_day: "ημέρα κάθε", repeat_text_month_count: "μήνα", repeat_text_month_count2_before: "κάθε", repeat_text_month_count2_after: "μήνα", repeat_year_label: "Την", select_year_day2: "του", repeat_text_year_day: "ημέρα", select_year_month: "μήνα", repeat_radio_end: "Χωρίς ημερομηνία λήξεως", repeat_text_occurrences_count: "επαναλήψεις", repeat_radio_end3: "Λήγει την", repeat_radio_end2: "Μετά από", repeat_never: "Ποτέ", repeat_daily: "Κάθε μέρα", repeat_workdays: "Κάθε εργάσιμη μέρα", repeat_weekly: "Κάθε εβδομάδα", repeat_monthly: "Κάθε μήνα", repeat_yearly: "Κάθε χρόνο", repeat_custom: "Προσαρμοσμένο", repeat_freq_day: "Ημέρα", repeat_freq_week: "Εβδομάδα", repeat_freq_month: "Μήνας", repeat_freq_year: "Χρόνος", repeat_on_date: "Σε ημερομηνία", repeat_ends: "Λήγει", month_for_recurring: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], day_for_recurring: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] } };
|
|
8912
|
+
const locale_en = { date: { month_full: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], day_full: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], day_short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] }, labels: { dhx_cal_today_button: "Today", day_tab: "Day", week_tab: "Week", month_tab: "Month", new_event: "New event", icon_save: "Save", icon_cancel: "Cancel", icon_details: "Details", icon_edit: "Edit", icon_delete: "Delete", confirm_closing: "", confirm_deleting: "Event will be deleted permanently, are you sure?", section_description: "Description", section_time: "Time period", full_day: "Full day", confirm_recurring: "Edit recurring event", section_recurring: "Repeat event", button_recurring: "Disabled", button_recurring_open: "Enabled", button_edit_series: "All events", button_edit_occurrence: "This event", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Date", description: "Description", year_tab: "Year", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daily", repeat_radio_week: "Weekly", repeat_radio_month: "Monthly", repeat_radio_year: "Yearly", repeat_radio_day_type: "Every", repeat_text_day_count: "day", repeat_radio_day_type2: "Every workday", repeat_week: " Repeat every", repeat_text_week_count: "week next days:", repeat_radio_month_type: "Repeat", repeat_radio_month_start: "On", repeat_text_month_day: "day every", repeat_text_month_count: "month", repeat_text_month_count2_before: "every", repeat_text_month_count2_after: "month", repeat_year_label: "On", select_year_day2: "of", repeat_text_year_day: "day", select_year_month: "month", repeat_radio_end: "No end date", repeat_text_occurrences_count: "occurrences", repeat_radio_end2: "After", repeat_radio_end3: "End by", repeat_never: "Never", repeat_daily: "Every day", repeat_workdays: "Every weekday", repeat_weekly: "Every week", repeat_monthly: "Every month", repeat_yearly: "Every year", repeat_custom: "Custom", repeat_freq_day: "Day", repeat_freq_week: "Week", repeat_freq_month: "Month", repeat_freq_year: "Year", repeat_on_date: "On date", repeat_ends: "Ends", month_for_recurring: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], day_for_recurring: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] } };
|
|
8913
|
+
const locale_es = { date: { month_full: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], month_short: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], day_full: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"], day_short: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"] }, labels: { dhx_cal_today_button: "Hoy", day_tab: "Día", week_tab: "Semana", month_tab: "Mes", new_event: "Nuevo evento", icon_save: "Guardar", icon_cancel: "Cancelar", icon_details: "Detalles", icon_edit: "Editar", icon_delete: "Eliminar", confirm_closing: "", confirm_deleting: "El evento se borrará definitivamente, ¿continuar?", section_description: "Descripción", section_time: "Período", full_day: "Todo el día", confirm_recurring: "¿Desea modificar el conjunto de eventos repetidos?", section_recurring: "Repita el evento", button_recurring: "Impedido", button_recurring_open: "Permitido", button_edit_series: "Editar la serie", button_edit_occurrence: "Editar este evento", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Día", date: "Fecha", description: "Descripción", year_tab: "Año", week_agenda_tab: "Día", grid_tab: "Reja", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diariamente", repeat_radio_week: "Semanalmente", repeat_radio_month: "Mensualmente", repeat_radio_year: "Anualmente", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada jornada de trabajo", repeat_week: " Repetir cada", repeat_text_week_count: "semana:", repeat_radio_month_type: "Repita", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada ", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "del", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sin fecha de finalización", repeat_text_occurrences_count: "ocurrencias", repeat_radio_end3: "Fin", repeat_radio_end2: "Después de", repeat_never: "Nunca", repeat_daily: "Cada día", repeat_workdays: "Cada día laborable", repeat_weekly: "Cada semana", repeat_monthly: "Cada mes", repeat_yearly: "Cada año", repeat_custom: "Personalizado", repeat_freq_day: "Día", repeat_freq_week: "Semana", repeat_freq_month: "Mes", repeat_freq_year: "Año", repeat_on_date: "En la fecha", repeat_ends: "Termina", month_for_recurring: ["Enero", "Febrero", "Маrzo", "Аbril", "Mayo", "Junio", "Julio", "Аgosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"], day_for_recurring: ["Domingo", "Lunes", "Martes", "Miércoles", "Jeuves", "Viernes", "Sabado"] } };
|
|
8914
|
+
const locale_fi = { date: { month_full: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], month_short: ["Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou"], day_full: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"], day_short: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"] }, labels: { dhx_cal_today_button: "Tänään", day_tab: "Päivä", week_tab: "Viikko", month_tab: "Kuukausi", new_event: "Uusi tapahtuma", icon_save: "Tallenna", icon_cancel: "Peru", icon_details: "Tiedot", icon_edit: "Muokkaa", icon_delete: "Poista", confirm_closing: "", confirm_deleting: "Haluatko varmasti poistaa tapahtuman?", section_description: "Kuvaus", section_time: "Aikajakso", full_day: "Koko päivä", confirm_recurring: "Haluatko varmasti muokata toistuvan tapahtuman kaikkia jaksoja?", section_recurring: "Toista tapahtuma", button_recurring: "Ei käytössä", button_recurring_open: "Käytössä", button_edit_series: "Muokkaa sarja", button_edit_occurrence: "Muokkaa kopio", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Esityslista", date: "Päivämäärä", description: "Kuvaus", year_tab: "Vuoden", week_agenda_tab: "Esityslista", grid_tab: "Ritilä", drag_to_create: "Luo uusi vetämällä", drag_to_move: "Siirrä vetämällä", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Päivittäin", repeat_radio_week: "Viikoittain", repeat_radio_month: "Kuukausittain", repeat_radio_year: "Vuosittain", repeat_radio_day_type: "Joka", repeat_text_day_count: "päivä", repeat_radio_day_type2: "Joka arkipäivä", repeat_week: "Toista joka", repeat_text_week_count: "viikko näinä päivinä:", repeat_radio_month_type: "Toista", repeat_radio_month_start: "", repeat_text_month_day: "päivänä joka", repeat_text_month_count: "kuukausi", repeat_text_month_count2_before: "joka", repeat_text_month_count2_after: "kuukausi", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "päivä", select_year_month: "kuukausi", repeat_radio_end: "Ei loppumisaikaa", repeat_text_occurrences_count: "Toiston jälkeen", repeat_radio_end3: "Loppuu", repeat_radio_end2: "", repeat_never: "Ei koskaan", repeat_daily: "Joka päivä", repeat_workdays: "Joka arkipäivä", repeat_weekly: "Joka viikko", repeat_monthly: "Joka kuukausi", repeat_yearly: "Joka vuosi", repeat_custom: "Mukautettu", repeat_freq_day: "Päivä", repeat_freq_week: "Viikko", repeat_freq_month: "Kuukausi", repeat_freq_year: "Vuosi", repeat_on_date: "Tiettynä päivänä", repeat_ends: "Päättyy", month_for_recurring: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], day_for_recurring: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"] } };
|
|
8915
|
+
const locale_fr = { date: { month_full: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], month_short: ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Aoû", "Sep", "Oct", "Nov", "Déc"], day_full: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], day_short: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"] }, labels: { dhx_cal_today_button: "Aujourd'hui", day_tab: "Jour", week_tab: "Semaine", month_tab: "Mois", new_event: "Nouvel événement", icon_save: "Enregistrer", icon_cancel: "Annuler", icon_details: "Détails", icon_edit: "Modifier", icon_delete: "Effacer", confirm_closing: "", confirm_deleting: "L'événement sera effacé sans appel, êtes-vous sûr ?", section_description: "Description", section_time: "Période", full_day: "Journée complète", confirm_recurring: "Voulez-vous éditer toute une série d'évènements répétés?", section_recurring: "Périodicité", button_recurring: "Désactivé", button_recurring_open: "Activé", button_edit_series: "Modifier la série", button_edit_occurrence: "Modifier une copie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Jour", date: "Date", description: "Description", year_tab: "Année", week_agenda_tab: "Jour", grid_tab: "Grille", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Quotidienne", repeat_radio_week: "Hebdomadaire", repeat_radio_month: "Mensuelle", repeat_radio_year: "Annuelle", repeat_radio_day_type: "Chaque", repeat_text_day_count: "jour", repeat_radio_day_type2: "Chaque journée de travail", repeat_week: " Répéter toutes les", repeat_text_week_count: "semaine:", repeat_radio_month_type: "Répéter", repeat_radio_month_start: "Le", repeat_text_month_day: "jour chaque", repeat_text_month_count: "mois", repeat_text_month_count2_before: "chaque", repeat_text_month_count2_after: "mois", repeat_year_label: "Le", select_year_day2: "du", repeat_text_year_day: "jour", select_year_month: "mois", repeat_radio_end: "Pas de date d"achèvement", repeat_text_occurrences_count: "occurrences", repeat_radio_end3: "Fin", repeat_radio_end2: "Après", repeat_never: "Jamais", repeat_daily: "Chaque jour", repeat_workdays: "Chaque jour ouvrable", repeat_weekly: "Chaque semaine", repeat_monthly: "Chaque mois", repeat_yearly: "Chaque année", repeat_custom: "Personnalisé", repeat_freq_day: "Jour", repeat_freq_week: "Semaine", repeat_freq_month: "Mois", repeat_freq_year: "Année", repeat_on_date: "À la date", repeat_ends: "Se termine", month_for_recurring: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], day_for_recurring: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"] } };
|
|
8916
|
+
const locale_he = { date: { month_full: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], month_short: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], day_full: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"], day_short: ["א", "ב", "ג", "ד", "ה", "ו", "ש"] }, labels: { dhx_cal_today_button: "היום", day_tab: "יום", week_tab: "שבוע", month_tab: "חודש", new_event: "ארוע חדש", icon_save: "שמור", icon_cancel: "בטל", icon_details: "פרטים", icon_edit: "ערוך", icon_delete: "מחק", confirm_closing: "", confirm_deleting: "ארוע ימחק סופית.להמשיך?", section_description: "תיאור", section_time: "תקופה", confirm_recurring: "האם ברצונך לשנות כל סדרת ארועים מתמשכים?", section_recurring: "להעתיק ארוע", button_recurring: "לא פעיל", button_recurring_open: "פעיל", full_day: "יום שלם", button_edit_series: "ערוך את הסדרה", button_edit_occurrence: "עריכת עותק", button_edit_occurrence_and_following: "This and following events", agenda_tab: "סדר יום", date: "תאריך", description: "תיאור", year_tab: "לשנה", week_agenda_tab: "סדר יום", grid_tab: "סורג", drag_to_create: "Drag to create", drag_to_move: "גרור כדי להזיז", message_ok: "OK", message_cancel: "בטל", next: "הבא", prev: "הקודם", year: "שנה", month: "חודש", day: "יום", hour: "שעה", minute: "דקה", repeat_radio_day: "יומי", repeat_radio_week: "שבועי", repeat_radio_month: "חודשי", repeat_radio_year: "שנתי", repeat_radio_day_type: "חזור כל", repeat_text_day_count: "ימים", repeat_radio_day_type2: "חזור כל יום עבודה", repeat_week: " חזור כל", repeat_text_week_count: "שבוע לפי ימים:", repeat_radio_month_type: "חזור כל", repeat_radio_month_start: "כל", repeat_text_month_day: "ימים כל", repeat_text_month_count: "חודשים", repeat_text_month_count2_before: "חזור כל", repeat_text_month_count2_after: "חודש", repeat_year_label: "כל", select_year_day2: "בחודש", repeat_text_year_day: "ימים", select_year_month: "חודש", repeat_radio_end: "לעולם לא מסתיים", repeat_text_occurrences_count: "אירועים", repeat_radio_end3: "מסתיים ב", repeat_radio_end2: "אחרי", repeat_never: "אף פעם", repeat_daily: "כל יום", repeat_workdays: "כל יום עבודה", repeat_weekly: "כל שבוע", repeat_monthly: "כל חודש", repeat_yearly: "כל שנה", repeat_custom: "מותאם אישית", repeat_freq_day: "יום", repeat_freq_week: "שבוע", repeat_freq_month: "חודש", repeat_freq_year: "שנה", repeat_on_date: "בתאריך", repeat_ends: "מסתיים", month_for_recurring: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], day_for_recurring: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"] } };
|
|
8917
|
+
const locale_hu = { date: { month_full: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], month_short: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Vasárnap", "Hétfõ", "Kedd", "Szerda", "Csütörtök", "Péntek", "szombat"], day_short: ["Va", "Hé", "Ke", "Sze", "Csü", "Pé", "Szo"] }, labels: { dhx_cal_today_button: "Ma", day_tab: "Nap", week_tab: "Hét", month_tab: "Hónap", new_event: "Új esemény", icon_save: "Mentés", icon_cancel: "Mégse", icon_details: "Részletek", icon_edit: "Szerkesztés", icon_delete: "Törlés", confirm_closing: "", confirm_deleting: "Az esemény törölve lesz, biztosan folytatja?", section_description: "Leírás", section_time: "Idõszak", full_day: "Egesz napos", confirm_recurring: "Biztosan szerkeszteni akarod az összes ismétlõdõ esemény beállítását?", section_recurring: "Esemény ismétlése", button_recurring: "Tiltás", button_recurring_open: "Engedélyezés", button_edit_series: "Edit series", button_edit_occurrence: "Szerkesztés bíróság", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Napirend", date: "Dátum", description: "Leírás", year_tab: "Év", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Napi", repeat_radio_week: "Heti", repeat_radio_month: "Havi", repeat_radio_year: "Éves", repeat_radio_day_type: "Minden", repeat_text_day_count: "nap", repeat_radio_day_type2: "Minden munkanap", repeat_week: " Ismételje meg minden", repeat_text_week_count: "héten a következő napokon:", repeat_radio_month_type: "Ismétlés", repeat_radio_month_start: "Ekkor", repeat_text_month_day: "nap minden", repeat_text_month_count: "hónapban", repeat_text_month_count2_before: "minden", repeat_text_month_count2_after: "hónapban", repeat_year_label: "Ekkor", select_year_day2: "-án/-én", repeat_text_year_day: "nap", select_year_month: "hónap", repeat_radio_end: "Nincs befejezési dátum", repeat_text_occurrences_count: "esemény", repeat_radio_end2: "Után", repeat_radio_end3: "Befejező dátum", repeat_never: "Soha", repeat_daily: "Minden nap", repeat_workdays: "Minden munkanap", repeat_weekly: "Minden héten", repeat_monthly: "Minden hónapban", repeat_yearly: "Minden évben", repeat_custom: "Egyedi", repeat_freq_day: "Nap", repeat_freq_week: "Hét", repeat_freq_month: "Hónap", repeat_freq_year: "Év", repeat_on_date: "Dátum szerint", repeat_ends: "Befejeződik", month_for_recurring: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], day_for_recurring: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"] } };
|
|
8918
|
+
const locale_id = { date: { month_full: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], day_full: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], day_short: ["Ming", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"] }, labels: { dhx_cal_today_button: "Hari Ini", day_tab: "Hari", week_tab: "Minggu", month_tab: "Bulan", new_event: "Acara Baru", icon_save: "Simpan", icon_cancel: "Batal", icon_details: "Detail", icon_edit: "Edit", icon_delete: "Hapus", confirm_closing: "", confirm_deleting: "Acara akan dihapus", section_description: "Keterangan", section_time: "Periode", full_day: "Hari penuh", confirm_recurring: "Apakah acara ini akan berulang?", section_recurring: "Acara Rutin", button_recurring: "Tidak Difungsikan", button_recurring_open: "Difungsikan", button_edit_series: "Mengedit seri", button_edit_occurrence: "Mengedit salinan", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Tanggal", description: "Keterangan", year_tab: "Tahun", week_agenda_tab: "Agenda", grid_tab: "Tabel", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Harian", repeat_radio_week: "Mingguan", repeat_radio_month: "Bulanan", repeat_radio_year: "Tahunan", repeat_radio_day_type: "Setiap", repeat_text_day_count: "hari", repeat_radio_day_type2: "Setiap hari kerja", repeat_week: " Ulangi setiap", repeat_text_week_count: "minggu pada hari berikut:", repeat_radio_month_type: "Ulangi", repeat_radio_month_start: "Pada", repeat_text_month_day: "hari setiap", repeat_text_month_count: "bulan", repeat_text_month_count2_before: "setiap", repeat_text_month_count2_after: "bulan", repeat_year_label: "Pada", select_year_day2: "dari", repeat_text_year_day: "hari", select_year_month: "bulan", repeat_radio_end: "Tanpa tanggal akhir", repeat_text_occurrences_count: "kejadian", repeat_radio_end2: "Setelah", repeat_radio_end3: "Berakhir pada", repeat_never: "Tidak pernah", repeat_daily: "Setiap hari", repeat_workdays: "Setiap hari kerja", repeat_weekly: "Setiap minggu", repeat_monthly: "Setiap bulan", repeat_yearly: "Setiap tahun", repeat_custom: "Kustom", repeat_freq_day: "Hari", repeat_freq_week: "Minggu", repeat_freq_month: "Bulan", repeat_freq_year: "Tahun", repeat_on_date: "Pada tanggal", repeat_ends: "Berakhir", month_for_recurring: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"] } };
|
|
8919
|
+
const locale_it = { date: { month_full: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], month_short: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], day_full: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"], day_short: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"] }, labels: { dhx_cal_today_button: "Oggi", day_tab: "Giorno", week_tab: "Settimana", month_tab: "Mese", new_event: "Nuovo evento", icon_save: "Salva", icon_cancel: "Chiudi", icon_details: "Dettagli", icon_edit: "Modifica", icon_delete: "Elimina", confirm_closing: "", confirm_deleting: "L'evento sarà eliminato, siete sicuri?", section_description: "Descrizione", section_time: "Periodo di tempo", full_day: "Intera giornata", confirm_recurring: "Vuoi modificare l'intera serie di eventi?", section_recurring: "Ripetere l'evento", button_recurring: "Disattivato", button_recurring_open: "Attivato", button_edit_series: "Modificare la serie", button_edit_occurrence: "Modificare una copia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descrizione", year_tab: "Anno", week_agenda_tab: "Agenda", grid_tab: "Griglia", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Quotidiano", repeat_radio_week: "Settimanale", repeat_radio_month: "Mensile", repeat_radio_year: "Annuale", repeat_radio_day_type: "Ogni", repeat_text_day_count: "giorno", repeat_radio_day_type2: "Ogni giornata lavorativa", repeat_week: " Ripetere ogni", repeat_text_week_count: "settimana:", repeat_radio_month_type: "Ripetere", repeat_radio_month_start: "Il", repeat_text_month_day: "giorno ogni", repeat_text_month_count: "mese", repeat_text_month_count2_before: "ogni", repeat_text_month_count2_after: "mese", repeat_year_label: "Il", select_year_day2: "del", repeat_text_year_day: "giorno", select_year_month: "mese", repeat_radio_end: "Senza data finale", repeat_text_occurrences_count: "occorenze", repeat_radio_end3: "Fine", repeat_radio_end2: "Dopo", repeat_never: "Mai", repeat_daily: "Ogni giorno", repeat_workdays: "Ogni giorno feriale", repeat_weekly: "Ogni settimana", repeat_monthly: "Ogni mese", repeat_yearly: "Ogni anno", repeat_custom: "Personalizzato", repeat_freq_day: "Giorno", repeat_freq_week: "Settimana", repeat_freq_month: "Mese", repeat_freq_year: "Anno", repeat_on_date: "Alla data", repeat_ends: "Finisce", month_for_recurring: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Jiugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], day_for_recurring: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Jovedì", "Venerdì", "Sabato"] } };
|
|
8920
|
+
const locale_jp = { date: { month_full: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], month_short: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_full: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"], day_short: ["日", "月", "火", "水", "木", "金", "土"] }, labels: { dhx_cal_today_button: "今日", day_tab: "日", week_tab: "週", month_tab: "月", new_event: "新イベント", icon_save: "保存", icon_cancel: "キャンセル", icon_details: "詳細", icon_edit: "編集", icon_delete: "削除", confirm_closing: "", confirm_deleting: "イベント完全に削除されます、宜しいですか?", section_description: "デスクリプション", section_time: "期間", confirm_recurring: "繰り返されているイベントを全て編集しますか?", section_recurring: "イベントを繰り返す", button_recurring: "無効", button_recurring_open: "有効", full_day: "終日", button_edit_series: "シリーズを編集します", button_edit_occurrence: "コピーを編集", button_edit_occurrence_and_following: "This and following events", agenda_tab: "議題は", date: "日付", description: "説明", year_tab: "今年", week_agenda_tab: "議題は", grid_tab: "グリッド", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "毎日", repeat_radio_week: "毎週", repeat_radio_month: "毎月", repeat_radio_year: "毎年", repeat_radio_day_type: "毎", repeat_text_day_count: "日", repeat_radio_day_type2: "毎営業日", repeat_week: " 繰り返し毎", repeat_text_week_count: "週 次の日:", repeat_radio_month_type: "繰り返し", repeat_radio_month_start: "オン", repeat_text_month_day: "日毎", repeat_text_month_count: "月", repeat_text_month_count2_before: "毎", repeat_text_month_count2_after: "月", repeat_year_label: "オン", select_year_day2: "の", repeat_text_year_day: "日", select_year_month: "月", repeat_radio_end: "終了日なし", repeat_text_occurrences_count: "回数", repeat_radio_end2: "後", repeat_radio_end3: "終了日まで", repeat_never: "決して", repeat_daily: "毎日", repeat_workdays: "毎営業日", repeat_weekly: "毎週", repeat_monthly: "毎月", repeat_yearly: "毎年", repeat_custom: "カスタム", repeat_freq_day: "日", repeat_freq_week: "週", repeat_freq_month: "月", repeat_freq_year: "年", repeat_on_date: "日にち", repeat_ends: "終了", month_for_recurring: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_for_recurring: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"] } };
|
|
8921
|
+
const locale_nb = { date: { month_full: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Mon", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "I dag", day_tab: "Dag", week_tab: "Uke", month_tab: "Måned", new_event: "Ny hendelse", icon_save: "Lagre", icon_cancel: "Avbryt", icon_details: "Detaljer", icon_edit: "Rediger", icon_delete: "Slett", confirm_closing: "", confirm_deleting: "Hendelsen vil bli slettet permanent. Er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", confirm_recurring: "Vil du forandre hele dette settet av repeterende hendelser?", section_recurring: "Repeter hendelsen", button_recurring: "Av", button_recurring_open: "På", button_edit_series: "Rediger serien", button_edit_occurrence: "Redigere en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ukentlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "Alle hverdager", repeat_week: " Gjentas hver", repeat_text_week_count: "uke på:", repeat_radio_month_type: "På hver", repeat_radio_month_start: "På", repeat_text_month_day: "dag hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "på", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "", repeat_radio_end: "Ingen sluttdato", repeat_text_occurrences_count: "forekomst", repeat_radio_end3: "Stop den", repeat_radio_end2: "Etter", repeat_never: "Aldri", repeat_daily: "Hver dag", repeat_workdays: "Hver ukedag", repeat_weekly: "Hver uke", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Tilpasset", repeat_freq_day: "Dag", repeat_freq_week: "Uke", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: "På dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Sondag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
|
|
8922
|
+
const locale_nl = { date: { month_full: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"], day_short: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"] }, labels: { dhx_cal_today_button: "Vandaag", day_tab: "Dag", week_tab: "Week", month_tab: "Maand", new_event: "Nieuw item", icon_save: "Opslaan", icon_cancel: "Annuleren", icon_details: "Details", icon_edit: "Bewerken", icon_delete: "Verwijderen", confirm_closing: "", confirm_deleting: "Item zal permanent worden verwijderd, doorgaan?", section_description: "Beschrijving", section_time: "Tijd periode", full_day: "Hele dag", confirm_recurring: "Wilt u alle terugkerende items bijwerken?", section_recurring: "Item herhalen", button_recurring: "Uit", button_recurring_open: "Aan", button_edit_series: "Bewerk de serie", button_edit_occurrence: "Bewerk een kopie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Datum", description: "Omschrijving", year_tab: "Jaar", week_agenda_tab: "Agenda", grid_tab: "Tabel", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dagelijks", repeat_radio_week: "Wekelijks", repeat_radio_month: "Maandelijks", repeat_radio_year: "Jaarlijks", repeat_radio_day_type: "Elke", repeat_text_day_count: "dag(en)", repeat_radio_day_type2: "Elke werkdag", repeat_week: " Herhaal elke", repeat_text_week_count: "week op de volgende dagen:", repeat_radio_month_type: "Herhaal", repeat_radio_month_start: "Op", repeat_text_month_day: "dag iedere", repeat_text_month_count: "maanden", repeat_text_month_count2_before: "iedere", repeat_text_month_count2_after: "maanden", repeat_year_label: "Op", select_year_day2: "van", repeat_text_year_day: "dag", select_year_month: "maand", repeat_radio_end: "Geen eind datum", repeat_text_occurrences_count: "keren", repeat_radio_end3: "Eindigd per", repeat_radio_end2: "Na", repeat_never: "Nooit", repeat_daily: "Elke dag", repeat_workdays: "Elke werkdag", repeat_weekly: "Elke week", repeat_monthly: "Elke maand", repeat_yearly: "Elk jaar", repeat_custom: "Aangepast", repeat_freq_day: "Dag", repeat_freq_week: "Week", repeat_freq_month: "Maand", repeat_freq_year: "Jaar", repeat_on_date: "Op datum", repeat_ends: "Eindigt", month_for_recurring: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], day_for_recurring: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"] } };
|
|
8923
|
+
const locale_no = { date: { month_full: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Uke", month_tab: "Måned", new_event: "Ny", icon_save: "Lagre", icon_cancel: "Avbryt", icon_details: "Detaljer", icon_edit: "Endre", icon_delete: "Slett", confirm_closing: "Endringer blir ikke lagret, er du sikker?", confirm_deleting: "Oppføringen vil bli slettet, er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", full_day: "Full dag", confirm_recurring: "Vil du endre hele settet med repeterende oppføringer?", section_recurring: "Repeterende oppføring", button_recurring: "Ikke aktiv", button_recurring_open: "Aktiv", button_edit_series: "Rediger serien", button_edit_occurrence: "Redigere en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ukentlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "Hver arbeidsdag", repeat_week: " Gjenta hver", repeat_text_week_count: "uke neste dager:", repeat_radio_month_type: "Gjenta", repeat_radio_month_start: "På", repeat_text_month_day: "dag hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "På", select_year_day2: "av", repeat_text_year_day: "dag", select_year_month: "måned", repeat_radio_end: "Ingen sluttdato", repeat_text_occurrences_count: "forekomster", repeat_radio_end2: "Etter", repeat_radio_end3: "Slutt innen", repeat_never: "Aldri", repeat_daily: "Hver dag", repeat_workdays: "Hver ukedag", repeat_weekly: "Hver uke", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Tilpasset", repeat_freq_day: "Dag", repeat_freq_week: "Uke", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: "På dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
|
|
8924
|
+
const locale_pl = { date: { month_full: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], month_short: ["Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru"], day_full: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"], day_short: ["Nie", "Pon", "Wto", "Śro", "Czw", "Pią", "Sob"] }, labels: { dhx_cal_today_button: "Dziś", day_tab: "Dzień", week_tab: "Tydzień", month_tab: "Miesiąc", new_event: "Nowe zdarzenie", icon_save: "Zapisz", icon_cancel: "Anuluj", icon_details: "Szczegóły", icon_edit: "Edytuj", icon_delete: "Usuń", confirm_closing: "", confirm_deleting: "Zdarzenie zostanie usunięte na zawsze, kontynuować?", section_description: "Opis", section_time: "Okres czasu", full_day: "Cały dzień", confirm_recurring: "Czy chcesz edytować cały zbiór powtarzających się zdarzeń?", section_recurring: "Powtórz zdarzenie", button_recurring: "Nieaktywne", button_recurring_open: "Aktywne", button_edit_series: "Edytuj serię", button_edit_occurrence: "Edytuj kopię", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Opis", year_tab: "Rok", week_agenda_tab: "Agenda", grid_tab: "Tabela", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Codziennie", repeat_radio_week: "Co tydzie", repeat_radio_month: "Co miesic", repeat_radio_year: "Co rok", repeat_radio_day_type: "Kadego", repeat_text_day_count: "dnia", repeat_radio_day_type2: "Kadego dnia roboczego", repeat_week: " Powtarzaj kadego", repeat_text_week_count: "tygodnia w dni:", repeat_radio_month_type: "Powtrz", repeat_radio_month_start: "W", repeat_text_month_day: "dnia kadego", repeat_text_month_count: "miesica", repeat_text_month_count2_before: "kadego", repeat_text_month_count2_after: "miesica", repeat_year_label: "W", select_year_day2: "miesica", repeat_text_year_day: "dnia miesica", select_year_month: "", repeat_radio_end: "Bez daty kocowej", repeat_text_occurrences_count: "wystpieniu/ach", repeat_radio_end3: "Zakocz w", repeat_radio_end2: "Po", repeat_never: "Nigdy", repeat_daily: "Codziennie", repeat_workdays: "Każdy dzień roboczy", repeat_weekly: "Co tydzień", repeat_monthly: "Co miesiąc", repeat_yearly: "Co rok", repeat_custom: "Niestandardowy", repeat_freq_day: "Dzień", repeat_freq_week: "Tydzień", repeat_freq_month: "Miesiąc", repeat_freq_year: "Rok", repeat_on_date: "W dniu", repeat_ends: "Kończy się", month_for_recurring: ["Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwca", "Lipca", "Sierpnia", "Wrzenia", "Padziernka", "Listopada", "Grudnia"], day_for_recurring: ["Niedziela", "Poniedziaek", "Wtorek", "roda", "Czwartek", "Pitek", "Sobota"] } };
|
|
8925
|
+
const locale_pt = { date: { month_full: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], month_short: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], day_full: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], day_short: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"] }, labels: { dhx_cal_today_button: "Hoje", day_tab: "Dia", week_tab: "Semana", month_tab: "Mês", new_event: "Novo evento", icon_save: "Salvar", icon_cancel: "Cancelar", icon_details: "Detalhes", icon_edit: "Editar", icon_delete: "Deletar", confirm_closing: "", confirm_deleting: "Tem certeza que deseja excluir?", section_description: "Descrição", section_time: "Período de tempo", full_day: "Dia inteiro", confirm_recurring: "Deseja editar todos esses eventos repetidos?", section_recurring: "Repetir evento", button_recurring: "Desabilitar", button_recurring_open: "Habilitar", button_edit_series: "Editar a série", button_edit_occurrence: "Editar uma cópia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dia", date: "Data", description: "Descrição", year_tab: "Ano", week_agenda_tab: "Dia", grid_tab: "Grade", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diário", repeat_radio_week: "Semanal", repeat_radio_month: "Mensal", repeat_radio_year: "Anual", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia(s)", repeat_radio_day_type2: "Cada trabalho diário", repeat_week: " Repita cada", repeat_text_week_count: "semana:", repeat_radio_month_type: "Repetir", repeat_radio_month_start: "Em", repeat_text_month_day: "todo dia", repeat_text_month_count: "mês", repeat_text_month_count2_before: "todo", repeat_text_month_count2_after: "mês", repeat_year_label: "Em", select_year_day2: "of", repeat_text_year_day: "dia", select_year_month: "mês", repeat_radio_end: "Sem data final", repeat_text_occurrences_count: "ocorrências", repeat_radio_end3: "Fim", repeat_radio_end2: "Depois", repeat_never: "Nunca", repeat_daily: "Todos os dias", repeat_workdays: "Todos os dias úteis", repeat_weekly: "Toda semana", repeat_monthly: "Todo mês", repeat_yearly: "Todo ano", repeat_custom: "Personalizado", repeat_freq_day: "Dia", repeat_freq_week: "Semana", repeat_freq_month: "Mês", repeat_freq_year: "Ano", repeat_on_date: "Na data", repeat_ends: "Termina", month_for_recurring: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], day_for_recurring: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"] } };
|
|
8926
|
+
const locale_ro = { date: { month_full: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "November", "December"], month_short: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"], day_full: ["Duminica", "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata"], day_short: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sa"] }, labels: { dhx_cal_today_button: "Astazi", day_tab: "Zi", week_tab: "Saptamana", month_tab: "Luna", new_event: "Eveniment nou", icon_save: "Salveaza", icon_cancel: "Anuleaza", icon_details: "Detalii", icon_edit: "Editeaza", icon_delete: "Sterge", confirm_closing: "Schimbarile nu vor fi salvate, esti sigur?", confirm_deleting: "Evenimentul va fi sters permanent, esti sigur?", section_description: "Descriere", section_time: "Interval", full_day: "Toata ziua", confirm_recurring: "Vrei sa editezi toata seria de evenimente repetate?", section_recurring: "Repetare", button_recurring: "Dezactivata", button_recurring_open: "Activata", button_edit_series: "Editeaza serie", button_edit_occurrence: "Editeaza doar intrare", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descriere", year_tab: "An", week_agenda_tab: "Agenda", grid_tab: "Lista", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Zilnic", repeat_radio_week: "Saptamanal", repeat_radio_month: "Lunar", repeat_radio_year: "Anual", repeat_radio_day_type: "La fiecare", repeat_text_day_count: "zi(le)", repeat_radio_day_type2: "Fiecare zi lucratoare", repeat_week: " Repeta la fiecare", repeat_text_week_count: "saptamana in urmatoarele zile:", repeat_radio_month_type: "Repeta in", repeat_radio_month_start: "In a", repeat_text_month_day: "zi la fiecare", repeat_text_month_count: "luni", repeat_text_month_count2_before: "la fiecare", repeat_text_month_count2_after: "luni", repeat_year_label: "In", select_year_day2: "a lunii", repeat_text_year_day: "zi a lunii", select_year_month: "", repeat_radio_end: "Fara data de sfarsit", repeat_text_occurrences_count: "evenimente", repeat_radio_end3: "La data", repeat_radio_end2: "Dupa", repeat_never: "Niciodată", repeat_daily: "În fiecare zi", repeat_workdays: "În fiecare zi lucrătoare", repeat_weekly: "În fiecare săptămână", repeat_monthly: "În fiecare lună", repeat_yearly: "În fiecare an", repeat_custom: "Personalizat", repeat_freq_day: "Zi", repeat_freq_week: "Săptămână", repeat_freq_month: "Lună", repeat_freq_year: "An", repeat_on_date: "La data", repeat_ends: "Se termină", month_for_recurring: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], day_for_recurring: ["Duminica", "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata"] } };
|
|
8927
|
+
const locale_ru = { date: { month_full: ["Январь", "Февраль", "Март", "Апрель", "Maй", "Июнь", "Июль", "Август", "Сентябрь", "Oктябрь", "Ноябрь", "Декабрь"], month_short: ["Янв", "Фев", "Maр", "Aпр", "Maй", "Июн", "Июл", "Aвг", "Сен", "Окт", "Ноя", "Дек"], day_full: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], day_short: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"] }, labels: { dhx_cal_today_button: "Сегодня", day_tab: "День", week_tab: "Неделя", month_tab: "Месяц", new_event: "Новое событие", icon_save: "Сохранить", icon_cancel: "Отменить", icon_details: "Детали", icon_edit: "Изменить", icon_delete: "Удалить", confirm_closing: "", confirm_deleting: "Событие будет удалено безвозвратно, продолжить?", section_description: "Описание", section_time: "Период времени", full_day: "Весь день", confirm_recurring: "Вы хотите изменить всю серию повторяющихся событий?", section_recurring: "Повторение", button_recurring: "Отключено", button_recurring_open: "Включено", button_edit_series: "Редактировать серию", button_edit_occurrence: "Редактировать экземпляр", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Список", date: "Дата", description: "Описание", year_tab: "Год", week_agenda_tab: "Список", grid_tab: "Таблица", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "День", repeat_radio_week: "Неделя", repeat_radio_month: "Месяц", repeat_radio_year: "Год", repeat_radio_day_type: "Каждый", repeat_text_day_count: "день", repeat_radio_day_type2: "Каждый рабочий день", repeat_week: " Повторять каждую", repeat_text_week_count: "неделю , в:", repeat_radio_month_type: "Повторять", repeat_radio_month_start: "", repeat_text_month_day: " числа каждый ", repeat_text_month_count: "месяц", repeat_text_month_count2_before: "каждый ", repeat_text_month_count2_after: "месяц", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "день", select_year_month: "", repeat_radio_end: "Без даты окончания", repeat_text_occurrences_count: "повторений", repeat_radio_end3: "До ", repeat_radio_end2: "", repeat_never: "Никогда", repeat_daily: "Каждый день", repeat_workdays: "Каждый будний день", repeat_weekly: "Каждую неделю", repeat_monthly: "Каждый месяц", repeat_yearly: "Каждый год", repeat_custom: "Настроить", repeat_freq_day: "День", repeat_freq_week: "Неделя", repeat_freq_month: "Месяц", repeat_freq_year: "Год", repeat_on_date: "В дату", repeat_ends: "Заканчивается", month_for_recurring: ["Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"], day_for_recurring: ["Воскресенье", "Понедельник", "Вторник", "Среду", "Четверг", "Пятницу", "Субботу"] } };
|
|
8928
|
+
const locale_si = { date: { month_full: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"], day_short: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"] }, labels: { dhx_cal_today_button: "Danes", day_tab: "Dan", week_tab: "Teden", month_tab: "Mesec", new_event: "Nov dogodek", icon_save: "Shrani", icon_cancel: "Prekliči", icon_details: "Podrobnosti", icon_edit: "Uredi", icon_delete: "Izbriši", confirm_closing: "", confirm_deleting: "Dogodek bo izbrisan. Želite nadaljevati?", section_description: "Opis", section_time: "Časovni okvir", full_day: "Ves dan", confirm_recurring: "Želite urediti celoten set ponavljajočih dogodkov?", section_recurring: "Ponovi dogodek", button_recurring: "Onemogočeno", button_recurring_open: "Omogočeno", button_edit_series: "Edit series", button_edit_occurrence: "Edit occurrence", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Zadeva", date: "Datum", description: "Opis", year_tab: "Leto", week_agenda_tab: "Zadeva", grid_tab: "Miza", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dnevno", repeat_radio_week: "Tedensko", repeat_radio_month: "Mesečno", repeat_radio_year: "Letno", repeat_radio_day_type: "Vsak", repeat_text_day_count: "dan", repeat_radio_day_type2: "Vsak delovni dan", repeat_week: " Ponavljaj vsak", repeat_text_week_count: "teden na naslednje dni:", repeat_radio_month_type: "Ponavljaj", repeat_radio_month_start: "Na", repeat_text_month_day: "dan vsak", repeat_text_month_count: "mesec", repeat_text_month_count2_before: "vsak", repeat_text_month_count2_after: "mesec", repeat_year_label: "Na", select_year_day2: "od", repeat_text_year_day: "dan", select_year_month: "mesec", repeat_radio_end: "Brez končnega datuma", repeat_text_occurrences_count: "pojavitve", repeat_radio_end2: "Po", repeat_radio_end3: "Končaj do", repeat_never: "Nikoli", repeat_daily: "Vsak dan", repeat_workdays: "Vsak delovni dan", repeat_weekly: "Vsak teden", repeat_monthly: "Vsak mesec", repeat_yearly: "Vsako leto", repeat_custom: "Po meri", repeat_freq_day: "Dan", repeat_freq_week: "Teden", repeat_freq_month: "Mesec", repeat_freq_year: "Leto", repeat_on_date: "Na datum", repeat_ends: "Konča se", month_for_recurring: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], day_for_recurring: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"] } };
|
|
8929
|
+
const locale_sk = { date: { month_full: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sept", "Okt", "Nov", "Dec"], day_full: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"], day_short: ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"] }, labels: { dhx_cal_today_button: "Dnes", day_tab: "Deň", week_tab: "Týždeň", month_tab: "Mesiac", new_event: "Nová udalosť", icon_save: "Uložiť", icon_cancel: "Späť", icon_details: "Detail", icon_edit: "Edituj", icon_delete: "Zmazať", confirm_closing: "Vaše zmeny nebudú uložené. Skutočne?", confirm_deleting: "Udalosť bude natrvalo vymazaná. Skutočne?", section_description: "Poznámky", section_time: "Doba platnosti", confirm_recurring: "Prajete si upraviť celú radu opakovaných udalostí?", section_recurring: "Opakovanie udalosti", button_recurring: "Vypnuté", button_recurring_open: "Zapnuté", button_edit_series: "Upraviť opakovania", button_edit_occurrence: "Upraviť inštancie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Program", date: "Dátum", description: "Poznámka", year_tab: "Rok", full_day: "Celý deň", week_agenda_tab: "Program", grid_tab: "Mriežka", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Denne", repeat_radio_week: "Týždenne", repeat_radio_month: "Mesaène", repeat_radio_year: "Roène", repeat_radio_day_type: "Každý", repeat_text_day_count: "deò", repeat_radio_day_type2: "Každý prac. deò", repeat_week: "Opakova každý", repeat_text_week_count: "týždeò v dòoch:", repeat_radio_month_type: "Opakova", repeat_radio_month_start: "On", repeat_text_month_day: "deò každý", repeat_text_month_count: "mesiac", repeat_text_month_count2_before: "každý", repeat_text_month_count2_after: "mesiac", repeat_year_label: "On", select_year_day2: "poèas", repeat_text_year_day: "deò", select_year_month: "mesiac", repeat_radio_end: "Bez dátumu ukonèenia", repeat_text_occurrences_count: "udalostiach", repeat_radio_end3: "Ukonèi", repeat_radio_end2: "Po", repeat_never: "Nikdy", repeat_daily: "Každý deň", repeat_workdays: "Každý pracovný deň", repeat_weekly: "Každý týždeň", repeat_monthly: "Každý mesiac", repeat_yearly: "Každý rok", repeat_custom: "Vlastné", repeat_freq_day: "Deň", repeat_freq_week: "Týždeň", repeat_freq_month: "Mesiac", repeat_freq_year: "Rok", repeat_on_date: "Na dátum", repeat_ends: "Koniec", month_for_recurring: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], day_for_recurring: ["Nede¾a", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"] } };
|
|
8930
|
+
const locale_sv = { date: { month_full: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"], day_short: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Vecka", month_tab: "Månad", new_event: "Ny händelse", icon_save: "Spara", icon_cancel: "Ångra", icon_details: "Detaljer", icon_edit: "Ändra", icon_delete: "Ta bort", confirm_closing: "", confirm_deleting: "Är du säker på att du vill ta bort händelsen permanent?", section_description: "Beskrivning", section_time: "Tid", full_day: "Hela dagen", confirm_recurring: "Vill du redigera hela serien med repeterande händelser?", section_recurring: "Upprepa händelse", button_recurring: "Inaktiverat", button_recurring_open: "Aktiverat", button_edit_series: "Redigera serien", button_edit_occurrence: "Redigera en kopia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dagordning", date: "Datum", description: "Beskrivning", year_tab: "År", week_agenda_tab: "Dagordning", grid_tab: "Galler", drag_to_create: "Dra för att skapa ny", drag_to_move: "Dra för att flytta", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dagligen", repeat_radio_week: "Veckovis", repeat_radio_month: "Månadsvis", repeat_radio_year: "Årligen", repeat_radio_day_type: "Var", repeat_text_day_count: "dag", repeat_radio_day_type2: "Varje arbetsdag", repeat_week: " Upprepa var", repeat_text_week_count: "vecka dessa dagar:", repeat_radio_month_type: "Upprepa", repeat_radio_month_start: "Den", repeat_text_month_day: "dagen var", repeat_text_month_count: "månad", repeat_text_month_count2_before: "var", repeat_text_month_count2_after: "månad", repeat_year_label: "Den", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "månad", repeat_radio_end: "Inget slutdatum", repeat_text_occurrences_count: "upprepningar", repeat_radio_end3: "Sluta efter", repeat_radio_end2: "Efter", repeat_never: "Aldrig", repeat_daily: "Varje dag", repeat_workdays: "Varje vardag", repeat_weekly: "Varje vecka", repeat_monthly: "Varje månad", repeat_yearly: "Varje år", repeat_custom: "Anpassad", repeat_freq_day: "Dag", repeat_freq_week: "Vecka", repeat_freq_month: "Månad", repeat_freq_year: "År", repeat_on_date: "På datum", repeat_ends: "Slutar", month_for_recurring: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], day_for_recurring: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"] } };
|
|
8931
|
+
const locale_tr = { date: { month_full: ["Ocak", "Þubat", "Mart", "Nisan", "Mayýs", "Haziran", "Temmuz", "Aðustos", "Eylül", "Ekim", "Kasým", "Aralýk"], month_short: ["Oca", "Þub", "Mar", "Nis", "May", "Haz", "Tem", "Aðu", "Eyl", "Eki", "Kas", "Ara"], day_full: ["Pazar", "Pazartes,", "Salý", "Çarþamba", "Perþembe", "Cuma", "Cumartesi"], day_short: ["Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts"] }, labels: { dhx_cal_today_button: "Bugün", day_tab: "Gün", week_tab: "Hafta", month_tab: "Ay", new_event: "Uygun", icon_save: "Kaydet", icon_cancel: "Ýptal", icon_details: "Detaylar", icon_edit: "Düzenle", icon_delete: "Sil", confirm_closing: "", confirm_deleting: "Etkinlik silinecek, devam?", section_description: "Açýklama", section_time: "Zaman aralýðý", full_day: "Tam gün", confirm_recurring: "Tüm tekrar eden etkinlikler silinecek, devam?", section_recurring: "Etkinliði tekrarla", button_recurring: "Pasif", button_recurring_open: "Aktif", button_edit_series: "Dizi düzenleme", button_edit_occurrence: "Bir kopyasını düzenleyin", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Ajanda", date: "Tarih", description: "Açýklama", year_tab: "Yýl", week_agenda_tab: "Ajanda", grid_tab: "Izgara", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Günlük", repeat_radio_week: "Haftalık", repeat_radio_month: "Aylık", repeat_radio_year: "Yıllık", repeat_radio_day_type: "Her", repeat_text_day_count: "gün", repeat_radio_day_type2: "Her iş günü", repeat_week: " Tekrar her", repeat_text_week_count: "hafta şu günlerde:", repeat_radio_month_type: "Tekrar et", repeat_radio_month_start: "Tarihinde", repeat_text_month_day: "gün her", repeat_text_month_count: "ay", repeat_text_month_count2_before: "her", repeat_text_month_count2_after: "ay", repeat_year_label: "Tarihinde", select_year_day2: "ayın", repeat_text_year_day: "günü", select_year_month: "ay", repeat_radio_end: "Bitiş tarihi yok", repeat_text_occurrences_count: "olay", repeat_radio_end2: "Sonra", repeat_radio_end3: "Tarihinde bitir", repeat_never: "Asla", repeat_daily: "Her gün", repeat_workdays: "Her iş günü", repeat_weekly: "Her hafta", repeat_monthly: "Her ay", repeat_yearly: "Her yıl", repeat_custom: "Özel", repeat_freq_day: "Gün", repeat_freq_week: "Hafta", repeat_freq_month: "Ay", repeat_freq_year: "Yıl", repeat_on_date: "Tarihinde", repeat_ends: "Biter", month_for_recurring: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], day_for_recurring: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"] } };
|
|
8932
|
+
const locale_ua = { date: { month_full: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], month_short: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], day_full: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"], day_short: ["Нед", "Пон", "Вів", "Сер", "Чет", "Птн", "Суб"] }, labels: { dhx_cal_today_button: "Сьогодні", day_tab: "День", week_tab: "Тиждень", month_tab: "Місяць", new_event: "Нова подія", icon_save: "Зберегти", icon_cancel: "Відміна", icon_details: "Деталі", icon_edit: "Редагувати", icon_delete: "Вилучити", confirm_closing: "", confirm_deleting: "Подія вилучиться назавжди. Ви впевнені?", section_description: "Опис", section_time: "Часовий проміжок", full_day: "Весь день", confirm_recurring: "Хочете редагувати весь перелік повторюваних подій?", section_recurring: "Повторювана подія", button_recurring: "Відключено", button_recurring_open: "Включено", button_edit_series: "Редагувати серію", button_edit_occurrence: "Редагувати примірник", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Перелік", date: "Дата", description: "Опис", year_tab: "Рік", week_agenda_tab: "Перелік", grid_tab: "Таблиця", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "День", repeat_radio_week: "Тиждень", repeat_radio_month: "Місяць", repeat_radio_year: "Рік", repeat_radio_day_type: "Кожний", repeat_text_day_count: "день", repeat_radio_day_type2: "Кожний робочий день", repeat_week: " Повторювати кожен", repeat_text_week_count: "тиждень , по:", repeat_radio_month_type: "Повторювати", repeat_radio_month_start: "", repeat_text_month_day: " числа кожний ", repeat_text_month_count: "місяць", repeat_text_month_count2_before: "кожен ", repeat_text_month_count2_after: "місяць", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "день", select_year_month: "", repeat_radio_end: "Без дати закінчення", repeat_text_occurrences_count: "повторень", repeat_radio_end3: "До ", repeat_radio_end2: "", repeat_never: "Ніколи", repeat_daily: "Щодня", repeat_workdays: "Щодня в робочі дні", repeat_weekly: "Щотижня", repeat_monthly: "Щомісяця", repeat_yearly: "Щороку", repeat_custom: "Налаштоване", repeat_freq_day: "День", repeat_freq_week: "Тиждень", repeat_freq_month: "Місяць", repeat_freq_year: "Рік", repeat_on_date: "На дату", repeat_ends: "Закінчується", month_for_recurring: ["січня", "лютого", "березня", "квітня", "травня", "червня", "липня", "серпня", "вересня", "жовтня", "листопада", "грудня"], day_for_recurring: ["Неділям", "Понеділкам", "Вівторкам", "Середам", "Четвергам", "П'ятницям", "Суботам"] } };
|
|
8933
|
+
const locales = Object.freeze(Object.defineProperty({ __proto__: null, ar: locale_ar, be: locale_be, ca: locale_ca, cn: locale_cn, cs: locale_cs, da: locale_da, de: locale_de, el: locale_el, en: locale_en, es: locale_es, fi: locale_fi, fr: locale_fr, he: locale_he, hu: locale_hu, id: locale_id, it: locale_it, jp: locale_jp, nb: locale_nb, nl: locale_nl, no: locale_no, pl: locale_pl, pt: locale_pt, ro: locale_ro, ru: locale_ru, si: locale_si, sk: locale_sk, sv: locale_sv, tr: locale_tr, ua: locale_ua }, Symbol.toStringTag, { value: "Module" }));
|
|
8915
8934
|
function i18nFactory() {
|
|
8916
|
-
return new LocaleManager(
|
|
8935
|
+
return new LocaleManager(locales);
|
|
8917
8936
|
}
|
|
8918
8937
|
class DatePicker {
|
|
8919
8938
|
constructor(scheduler2, container, state = {}) {
|
|
@@ -9200,7 +9219,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
9200
9219
|
}
|
|
9201
9220
|
}
|
|
9202
9221
|
function factoryMethod(extensionManager) {
|
|
9203
|
-
const scheduler2 = { version: "7.2.
|
|
9222
|
+
const scheduler2 = { version: "7.2.8" };
|
|
9204
9223
|
scheduler2.$stateProvider = StateService();
|
|
9205
9224
|
scheduler2.getState = scheduler2.$stateProvider.getState;
|
|
9206
9225
|
extend$n(scheduler2);
|
|
@@ -9224,7 +9243,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
9224
9243
|
const messageApi = message(scheduler2);
|
|
9225
9244
|
scheduler2.utils.mixin(scheduler2, messageApi);
|
|
9226
9245
|
scheduler2.env = scheduler2.$env = env;
|
|
9227
|
-
scheduler2.Promise =
|
|
9246
|
+
scheduler2.Promise = Promise;
|
|
9228
9247
|
extend$g(scheduler2);
|
|
9229
9248
|
extend$f(scheduler2);
|
|
9230
9249
|
extend$e(scheduler2);
|
|
@@ -9289,6 +9308,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
9289
9308
|
}
|
|
9290
9309
|
}
|
|
9291
9310
|
});
|
|
9311
|
+
return activePlugins;
|
|
9292
9312
|
};
|
|
9293
9313
|
function getExtensionList(config, dependencies, priorities) {
|
|
9294
9314
|
const result = [];
|
|
@@ -9815,12 +9835,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
9815
9835
|
return scheduler2.ext.allTimed.isMainAreaEvent(ev);
|
|
9816
9836
|
};
|
|
9817
9837
|
var oldUpdate = scheduler2.updateEvent;
|
|
9818
|
-
scheduler2.updateEvent = function(
|
|
9819
|
-
var ev = scheduler2.getEvent(
|
|
9838
|
+
scheduler2.updateEvent = function(id) {
|
|
9839
|
+
var ev = scheduler2.getEvent(id);
|
|
9820
9840
|
var fullRedrawNeeded;
|
|
9821
9841
|
var initial;
|
|
9822
9842
|
if (ev) {
|
|
9823
|
-
fullRedrawNeeded = scheduler2.config.all_timed && !(scheduler2.isOneDayEvent(scheduler2._events[
|
|
9843
|
+
fullRedrawNeeded = scheduler2.config.all_timed && !(scheduler2.isOneDayEvent(scheduler2._events[id]) || scheduler2.getState().drag_id);
|
|
9824
9844
|
if (fullRedrawNeeded) {
|
|
9825
9845
|
initial = scheduler2.config.update_render;
|
|
9826
9846
|
scheduler2.config.update_render = true;
|
|
@@ -9844,20 +9864,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
9844
9864
|
temp_section = scheduler2.getEvent(event_id)[scheduler2._get_section_property()];
|
|
9845
9865
|
}
|
|
9846
9866
|
}
|
|
9847
|
-
scheduler2.attachEvent("onBeforeDrag", function(
|
|
9848
|
-
_setTempSection(
|
|
9867
|
+
scheduler2.attachEvent("onBeforeDrag", function(id) {
|
|
9868
|
+
_setTempSection(id);
|
|
9849
9869
|
return true;
|
|
9850
9870
|
});
|
|
9851
|
-
scheduler2.attachEvent("onBeforeLightbox", function(
|
|
9852
|
-
const ev = scheduler2.getEvent(
|
|
9871
|
+
scheduler2.attachEvent("onBeforeLightbox", function(id) {
|
|
9872
|
+
const ev = scheduler2.getEvent(id);
|
|
9853
9873
|
before = [ev.start_date, ev.end_date];
|
|
9854
|
-
_setTempSection(
|
|
9874
|
+
_setTempSection(id);
|
|
9855
9875
|
return true;
|
|
9856
9876
|
});
|
|
9857
|
-
scheduler2.attachEvent("onEventChanged", function(
|
|
9858
|
-
if (!
|
|
9877
|
+
scheduler2.attachEvent("onEventChanged", function(id) {
|
|
9878
|
+
if (!id || !scheduler2.getEvent(id))
|
|
9859
9879
|
return true;
|
|
9860
|
-
const ev = scheduler2.getEvent(
|
|
9880
|
+
const ev = scheduler2.getEvent(id);
|
|
9861
9881
|
if (!scheduler2.checkCollision(ev)) {
|
|
9862
9882
|
if (!before)
|
|
9863
9883
|
return false;
|
|
@@ -9870,16 +9890,16 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
9870
9890
|
scheduler2.attachEvent("onBeforeEventChanged", function(ev, e, is_new) {
|
|
9871
9891
|
return scheduler2.checkCollision(ev);
|
|
9872
9892
|
});
|
|
9873
|
-
scheduler2.attachEvent("onEventAdded", function(
|
|
9893
|
+
scheduler2.attachEvent("onEventAdded", function(id, ev) {
|
|
9874
9894
|
const result = scheduler2.checkCollision(ev);
|
|
9875
9895
|
if (!result)
|
|
9876
|
-
scheduler2.deleteEvent(
|
|
9896
|
+
scheduler2.deleteEvent(id);
|
|
9877
9897
|
});
|
|
9878
|
-
scheduler2.attachEvent("onEventSave", function(
|
|
9898
|
+
scheduler2.attachEvent("onEventSave", function(id, edited_ev, is_new) {
|
|
9879
9899
|
edited_ev = scheduler2._lame_clone(edited_ev);
|
|
9880
|
-
edited_ev.id =
|
|
9900
|
+
edited_ev.id = id;
|
|
9881
9901
|
if (!(edited_ev.start_date && edited_ev.end_date)) {
|
|
9882
|
-
const ev = scheduler2.getEvent(
|
|
9902
|
+
const ev = scheduler2.getEvent(id);
|
|
9883
9903
|
edited_ev.start_date = new Date(ev.start_date);
|
|
9884
9904
|
edited_ev.end_date = new Date(ev.end_date);
|
|
9885
9905
|
}
|
|
@@ -10242,8 +10262,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
10242
10262
|
}
|
|
10243
10263
|
function cookie(scheduler2) {
|
|
10244
10264
|
function setCookie(name, cookie_param, value) {
|
|
10245
|
-
|
|
10246
|
-
document.cookie = str;
|
|
10265
|
+
const str = `${name}=${value}${cookie_param ? `; ${cookie_param}` : ""}`;
|
|
10266
|
+
document.cookie = `${str}; Secure`;
|
|
10247
10267
|
}
|
|
10248
10268
|
function getCookie(name) {
|
|
10249
10269
|
var search = name + "=";
|
|
@@ -10332,9 +10352,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
10332
10352
|
}, set_value: function(node, value, ev, config) {
|
|
10333
10353
|
(function() {
|
|
10334
10354
|
resetCombo();
|
|
10335
|
-
var
|
|
10355
|
+
var id = scheduler2.attachEvent("onAfterLightbox", function() {
|
|
10336
10356
|
resetCombo();
|
|
10337
|
-
scheduler2.detachEvent(
|
|
10357
|
+
scheduler2.detachEvent(id);
|
|
10338
10358
|
});
|
|
10339
10359
|
function resetCombo() {
|
|
10340
10360
|
if (node._combo && node._combo.DOMParent) {
|
|
@@ -10410,8 +10430,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
10410
10430
|
var res = "";
|
|
10411
10431
|
res += `<div class='dhx_cal_ltext dhx_cal_radio ${sns.vertical ? "dhx_cal_radio_vertical" : ""}' style='height:${sns.height}px;'>`;
|
|
10412
10432
|
for (var i = 0; i < sns.options.length; i++) {
|
|
10413
|
-
var
|
|
10414
|
-
res += "<label class='dhx_cal_radio_item' for='" +
|
|
10433
|
+
var id = scheduler2.uid();
|
|
10434
|
+
res += "<label class='dhx_cal_radio_item' for='" + id + "'><input id='" + id + "' type='radio' name='" + sns.name + "' value='" + sns.options[i].key + "'><span> " + sns.options[i].label + "</span></label>";
|
|
10415
10435
|
}
|
|
10416
10436
|
res += "</div>";
|
|
10417
10437
|
return res;
|
|
@@ -10443,11 +10463,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
10443
10463
|
if (config.height) {
|
|
10444
10464
|
node.style.height = `${config.height}px`;
|
|
10445
10465
|
}
|
|
10446
|
-
var
|
|
10466
|
+
var id = scheduler2.uid();
|
|
10447
10467
|
var isChecked = typeof config.checked_value != "undefined" ? value == config.checked_value : !!value;
|
|
10448
10468
|
node.className += " dhx_cal_checkbox";
|
|
10449
|
-
var check_html = "<input id='" +
|
|
10450
|
-
var label_html = "<label for='" +
|
|
10469
|
+
var check_html = "<input id='" + id + "' type='checkbox' value='true' name='" + config.name + "'" + (isChecked ? "checked='true'" : "") + "'>";
|
|
10470
|
+
var label_html = "<label for='" + id + "'>" + (scheduler2.locale.labels["section_" + config.name] || config.name) + "</label>";
|
|
10451
10471
|
if (scheduler2.config.wide_form) {
|
|
10452
10472
|
node.innerHTML = label_html;
|
|
10453
10473
|
node.nextSibling.innerHTML = check_html;
|
|
@@ -10565,14 +10585,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
10565
10585
|
scheduler2.attachEvent("onTemplatesReady", function() {
|
|
10566
10586
|
var els = document.body.getElementsByTagName("DIV");
|
|
10567
10587
|
for (var i = 0; i < els.length; i++) {
|
|
10568
|
-
var
|
|
10569
|
-
|
|
10570
|
-
if (
|
|
10588
|
+
var cs = els[i].className || "";
|
|
10589
|
+
cs = cs.split(":");
|
|
10590
|
+
if (cs.length == 2 && cs[0] == "template") {
|
|
10571
10591
|
var code = 'return "' + (els[i].innerHTML || "").replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/[\n\r]+/g, "") + '";';
|
|
10572
10592
|
code = unescape(code).replace(/\{event\.([a-z]+)\}/g, function(all, mask) {
|
|
10573
10593
|
return '"+ev.' + mask + '+"';
|
|
10574
10594
|
});
|
|
10575
|
-
scheduler2.templates[
|
|
10595
|
+
scheduler2.templates[cs[1]] = Function("start", "end", "ev", code);
|
|
10576
10596
|
els[i].style.display = "none";
|
|
10577
10597
|
}
|
|
10578
10598
|
}
|
|
@@ -11075,15 +11095,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
11075
11095
|
return evs[i];
|
|
11076
11096
|
}
|
|
11077
11097
|
return null;
|
|
11078
|
-
}, nextEventHandler: function(
|
|
11098
|
+
}, nextEventHandler: function(id) {
|
|
11079
11099
|
var activeNode = scheduler2.$keyboardNavigation.dispatcher.activeNode;
|
|
11080
|
-
var startId =
|
|
11100
|
+
var startId = id || activeNode && activeNode.eventId;
|
|
11081
11101
|
var nextEvent = null;
|
|
11082
11102
|
if (startId && scheduler2.getEvent(startId)) {
|
|
11083
11103
|
var currEvent = scheduler2.getEvent(startId);
|
|
11084
11104
|
nextEvent = scheduler2.$keyboardNavigation.SchedulerNode.prototype._pickEvent(currEvent.start_date, scheduler2.date.add(currEvent.start_date, 1, "year"), currEvent.id, false);
|
|
11085
11105
|
}
|
|
11086
|
-
if (!nextEvent && !
|
|
11106
|
+
if (!nextEvent && !id) {
|
|
11087
11107
|
var visibleDates = scheduler2.getState();
|
|
11088
11108
|
nextEvent = scheduler2.$keyboardNavigation.SchedulerNode.prototype._pickEvent(visibleDates.min_date, scheduler2.date.add(visibleDates.min_date, 1, "year"), null, false);
|
|
11089
11109
|
}
|
|
@@ -11098,15 +11118,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
11098
11118
|
scheduler2.$keyboardNavigation.dispatcher.setActiveNode(nextEv);
|
|
11099
11119
|
}
|
|
11100
11120
|
}
|
|
11101
|
-
}, prevEventHandler: function(
|
|
11121
|
+
}, prevEventHandler: function(id) {
|
|
11102
11122
|
var activeNode = scheduler2.$keyboardNavigation.dispatcher.activeNode;
|
|
11103
|
-
var startId =
|
|
11123
|
+
var startId = id || activeNode && activeNode.eventId;
|
|
11104
11124
|
var nextEvent = null;
|
|
11105
11125
|
if (startId && scheduler2.getEvent(startId)) {
|
|
11106
11126
|
var currEvent = scheduler2.getEvent(startId);
|
|
11107
11127
|
nextEvent = scheduler2.$keyboardNavigation.SchedulerNode.prototype._pickEvent(scheduler2.date.add(currEvent.end_date, -1, "year"), currEvent.end_date, currEvent.id, true);
|
|
11108
11128
|
}
|
|
11109
|
-
if (!nextEvent && !
|
|
11129
|
+
if (!nextEvent && !id) {
|
|
11110
11130
|
var visibleDates = scheduler2.getState();
|
|
11111
11131
|
nextEvent = scheduler2.$keyboardNavigation.SchedulerNode.prototype._pickEvent(scheduler2.date.add(visibleDates.max_date, -1, "year"), visibleDates.max_date, null, true);
|
|
11112
11132
|
}
|
|
@@ -11247,14 +11267,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
11247
11267
|
scheduler2.$keyboardNavigation.HeaderCell.prototype.bindAll(scheduler2.$keyboardNavigation.HeaderCell.prototype.keys);
|
|
11248
11268
|
}
|
|
11249
11269
|
function event(scheduler2) {
|
|
11250
|
-
scheduler2.$keyboardNavigation.Event = function(
|
|
11270
|
+
scheduler2.$keyboardNavigation.Event = function(id) {
|
|
11251
11271
|
this.eventId = null;
|
|
11252
|
-
if (scheduler2.getEvent(
|
|
11253
|
-
var ev = scheduler2.getEvent(
|
|
11272
|
+
if (scheduler2.getEvent(id)) {
|
|
11273
|
+
var ev = scheduler2.getEvent(id);
|
|
11254
11274
|
this.start = new Date(ev.start_date);
|
|
11255
11275
|
this.end = new Date(ev.end_date);
|
|
11256
11276
|
this.section = this._getSection(ev);
|
|
11257
|
-
this.eventId =
|
|
11277
|
+
this.eventId = id;
|
|
11258
11278
|
}
|
|
11259
11279
|
};
|
|
11260
11280
|
scheduler2.$keyboardNavigation.Event.prototype = scheduler2._compose(scheduler2.$keyboardNavigation.KeyNavNode, { _getNodes: function() {
|
|
@@ -11267,12 +11287,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
11267
11287
|
if (!eventNode || !scheduler2._locate_event(eventNode)) {
|
|
11268
11288
|
defaultElement = new scheduler2.$keyboardNavigation.TimeSlot();
|
|
11269
11289
|
} else {
|
|
11270
|
-
var
|
|
11271
|
-
defaultElement = new scheduler2.$keyboardNavigation.Event(
|
|
11290
|
+
var id = scheduler2._locate_event(eventNode);
|
|
11291
|
+
defaultElement = new scheduler2.$keyboardNavigation.Event(id);
|
|
11272
11292
|
}
|
|
11273
11293
|
return defaultElement;
|
|
11274
|
-
}, isScrolledIntoView: function(
|
|
11275
|
-
var eventBox =
|
|
11294
|
+
}, isScrolledIntoView: function(el) {
|
|
11295
|
+
var eventBox = el.getBoundingClientRect();
|
|
11276
11296
|
var viewPort = scheduler2.$container.querySelector(".dhx_cal_data").getBoundingClientRect();
|
|
11277
11297
|
if (eventBox.bottom < viewPort.top || eventBox.top > viewPort.bottom) {
|
|
11278
11298
|
return false;
|
|
@@ -12285,32 +12305,32 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
12285
12305
|
}, focusGlobalNode: function() {
|
|
12286
12306
|
this.blurNode(this.globalNode);
|
|
12287
12307
|
this.focusNode(this.globalNode);
|
|
12288
|
-
}, setActiveNode: function(
|
|
12289
|
-
if (!
|
|
12308
|
+
}, setActiveNode: function(el) {
|
|
12309
|
+
if (!el || !el.isValid())
|
|
12290
12310
|
return;
|
|
12291
12311
|
if (this.activeNode) {
|
|
12292
|
-
if (this.activeNode.compareTo(
|
|
12312
|
+
if (this.activeNode.compareTo(el)) {
|
|
12293
12313
|
return;
|
|
12294
12314
|
}
|
|
12295
12315
|
}
|
|
12296
12316
|
if (this.isEnabled()) {
|
|
12297
12317
|
this.blurNode(this.activeNode);
|
|
12298
|
-
this.activeNode =
|
|
12318
|
+
this.activeNode = el;
|
|
12299
12319
|
this.focusNode(this.activeNode);
|
|
12300
12320
|
}
|
|
12301
|
-
}, focusNode: function(
|
|
12302
|
-
if (
|
|
12303
|
-
|
|
12304
|
-
if (
|
|
12321
|
+
}, focusNode: function(el) {
|
|
12322
|
+
if (el && el.focus) {
|
|
12323
|
+
el.focus();
|
|
12324
|
+
if (el.getNode && document.activeElement != el.getNode()) {
|
|
12305
12325
|
this.setActiveNode(new scheduler2.$keyboardNavigation.DataArea());
|
|
12306
12326
|
}
|
|
12307
12327
|
}
|
|
12308
|
-
}, blurNode: function(
|
|
12309
|
-
if (
|
|
12310
|
-
|
|
12328
|
+
}, blurNode: function(el) {
|
|
12329
|
+
if (el && el.blur) {
|
|
12330
|
+
el.blur();
|
|
12311
12331
|
}
|
|
12312
|
-
}, getInlineEditor: function(
|
|
12313
|
-
var editor = scheduler2.$container.querySelector(".dhx_cal_editor[" + scheduler2.config.event_attribute + "='" +
|
|
12332
|
+
}, getInlineEditor: function(id) {
|
|
12333
|
+
var editor = scheduler2.$container.querySelector(".dhx_cal_editor[" + scheduler2.config.event_attribute + "='" + id + "'] textarea");
|
|
12314
12334
|
if (editor && editor.offsetWidth) {
|
|
12315
12335
|
return editor;
|
|
12316
12336
|
}
|
|
@@ -12371,7 +12391,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
12371
12391
|
keyNavPointer = scheduler2.$keyboardNavigation.dispatcher.isEnabled();
|
|
12372
12392
|
return mousePointer || keyNavPointer;
|
|
12373
12393
|
}
|
|
12374
|
-
scheduler2.attachEvent("onMouseMove", function(
|
|
12394
|
+
scheduler2.attachEvent("onMouseMove", function(id, e) {
|
|
12375
12395
|
var state = scheduler2.getState();
|
|
12376
12396
|
if (!(state.mode && state.min_date)) {
|
|
12377
12397
|
return;
|
|
@@ -12595,11 +12615,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
12595
12615
|
}
|
|
12596
12616
|
}
|
|
12597
12617
|
var updateEvent = scheduler2.updateEvent;
|
|
12598
|
-
scheduler2.updateEvent = function(
|
|
12618
|
+
scheduler2.updateEvent = function(id) {
|
|
12599
12619
|
var res = updateEvent.apply(this, arguments);
|
|
12600
12620
|
if (scheduler2.config.key_nav && dispatcher.isEnabled()) {
|
|
12601
|
-
if (scheduler2.getState().select_id ==
|
|
12602
|
-
var element = new scheduler2.$keyboardNavigation.Event(
|
|
12621
|
+
if (scheduler2.getState().select_id == id) {
|
|
12622
|
+
var element = new scheduler2.$keyboardNavigation.Event(id);
|
|
12603
12623
|
if (!scheduler2.getState().lightbox_id) {
|
|
12604
12624
|
focusEvent(element);
|
|
12605
12625
|
}
|
|
@@ -12607,12 +12627,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
12607
12627
|
}
|
|
12608
12628
|
return res;
|
|
12609
12629
|
};
|
|
12610
|
-
scheduler2.attachEvent("onEventDeleted", function(
|
|
12630
|
+
scheduler2.attachEvent("onEventDeleted", function(id) {
|
|
12611
12631
|
if (!scheduler2.config.key_nav)
|
|
12612
12632
|
return true;
|
|
12613
12633
|
if (dispatcher.isEnabled()) {
|
|
12614
12634
|
var activeNode = dispatcher.getActiveNode();
|
|
12615
|
-
if (activeNode.eventId ==
|
|
12635
|
+
if (activeNode.eventId == id) {
|
|
12616
12636
|
dispatcher.setActiveNode(new scheduler2.$keyboardNavigation.TimeSlot());
|
|
12617
12637
|
}
|
|
12618
12638
|
}
|
|
@@ -12660,7 +12680,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
12660
12680
|
var rowIndex = 0;
|
|
12661
12681
|
var cellIndex = 0;
|
|
12662
12682
|
if (cell) {
|
|
12663
|
-
var
|
|
12683
|
+
var tr;
|
|
12664
12684
|
var td;
|
|
12665
12685
|
var current = target;
|
|
12666
12686
|
while (current && current.tagName.toLowerCase() != "td") {
|
|
@@ -12668,17 +12688,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
12668
12688
|
}
|
|
12669
12689
|
if (current) {
|
|
12670
12690
|
td = current;
|
|
12671
|
-
|
|
12691
|
+
tr = td.parentNode;
|
|
12672
12692
|
}
|
|
12673
|
-
if (
|
|
12674
|
-
var rows =
|
|
12693
|
+
if (tr && td) {
|
|
12694
|
+
var rows = tr.parentNode.querySelectorAll("tr");
|
|
12675
12695
|
for (var i = 0; i < rows.length; i++) {
|
|
12676
|
-
if (rows[i] ==
|
|
12696
|
+
if (rows[i] == tr) {
|
|
12677
12697
|
rowIndex = i;
|
|
12678
12698
|
break;
|
|
12679
12699
|
}
|
|
12680
12700
|
}
|
|
12681
|
-
var cells =
|
|
12701
|
+
var cells = tr.querySelectorAll("td");
|
|
12682
12702
|
for (var i = 0; i < cells.length; i++) {
|
|
12683
12703
|
if (cells[i] == td) {
|
|
12684
12704
|
cellIndex = i;
|
|
@@ -12899,34 +12919,34 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
12899
12919
|
});
|
|
12900
12920
|
scheduler2._dp_init = function(dp) {
|
|
12901
12921
|
dp._methods = ["_set_event_text_style", "", "changeEventId", "deleteEvent"];
|
|
12902
|
-
this.attachEvent("onEventAdded", function(
|
|
12903
|
-
if (!this._loading && this.validId(
|
|
12904
|
-
dp.setUpdated(
|
|
12922
|
+
this.attachEvent("onEventAdded", function(id) {
|
|
12923
|
+
if (!this._loading && this.validId(id) && this.getEvent(id) && this.getEvent(id).layer == dp.layer)
|
|
12924
|
+
dp.setUpdated(id, true, "inserted");
|
|
12905
12925
|
});
|
|
12906
|
-
this.attachEvent("onBeforeEventDelete", function(
|
|
12907
|
-
if (this.getEvent(
|
|
12908
|
-
if (!this.validId(
|
|
12926
|
+
this.attachEvent("onBeforeEventDelete", function(id) {
|
|
12927
|
+
if (this.getEvent(id) && this.getEvent(id).layer == dp.layer) {
|
|
12928
|
+
if (!this.validId(id))
|
|
12909
12929
|
return;
|
|
12910
|
-
var z = dp.getState(
|
|
12930
|
+
var z = dp.getState(id);
|
|
12911
12931
|
if (z == "inserted" || this._new_event) {
|
|
12912
|
-
dp.setUpdated(
|
|
12932
|
+
dp.setUpdated(id, false);
|
|
12913
12933
|
return true;
|
|
12914
12934
|
}
|
|
12915
12935
|
if (z == "deleted")
|
|
12916
12936
|
return false;
|
|
12917
12937
|
if (z == "true_deleted")
|
|
12918
12938
|
return true;
|
|
12919
|
-
dp.setUpdated(
|
|
12939
|
+
dp.setUpdated(id, true, "deleted");
|
|
12920
12940
|
return false;
|
|
12921
12941
|
} else
|
|
12922
12942
|
return true;
|
|
12923
12943
|
});
|
|
12924
|
-
this.attachEvent("onEventChanged", function(
|
|
12925
|
-
if (!this._loading && this.validId(
|
|
12926
|
-
dp.setUpdated(
|
|
12944
|
+
this.attachEvent("onEventChanged", function(id) {
|
|
12945
|
+
if (!this._loading && this.validId(id) && this.getEvent(id) && this.getEvent(id).layer == dp.layer)
|
|
12946
|
+
dp.setUpdated(id, true, "updated");
|
|
12927
12947
|
});
|
|
12928
|
-
dp._getRowData = function(
|
|
12929
|
-
var ev = this.obj.getEvent(
|
|
12948
|
+
dp._getRowData = function(id, pref) {
|
|
12949
|
+
var ev = this.obj.getEvent(id);
|
|
12930
12950
|
var data = {};
|
|
12931
12951
|
for (var a in ev) {
|
|
12932
12952
|
if (a.indexOf("_") === 0)
|
|
@@ -12942,9 +12962,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
12942
12962
|
};
|
|
12943
12963
|
dp.attachEvent("insertCallback", scheduler2._update_callback);
|
|
12944
12964
|
dp.attachEvent("updateCallback", scheduler2._update_callback);
|
|
12945
|
-
dp.attachEvent("deleteCallback", function(upd,
|
|
12946
|
-
this.obj.setUserData(
|
|
12947
|
-
this.obj.deleteEvent(
|
|
12965
|
+
dp.attachEvent("deleteCallback", function(upd, id) {
|
|
12966
|
+
this.obj.setUserData(id, this.action_param, "true_deleted");
|
|
12967
|
+
this.obj.deleteEvent(id);
|
|
12948
12968
|
});
|
|
12949
12969
|
};
|
|
12950
12970
|
(function() {
|
|
@@ -13019,14 +13039,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13019
13039
|
}
|
|
13020
13040
|
return count >= scheduler2.config.collision_limit;
|
|
13021
13041
|
});
|
|
13022
|
-
scheduler2.addEvent = function(start_date, end_date, text,
|
|
13042
|
+
scheduler2.addEvent = function(start_date, end_date, text, id, extra_data) {
|
|
13023
13043
|
var ev = start_date;
|
|
13024
13044
|
if (arguments.length != 1) {
|
|
13025
13045
|
ev = extra_data || {};
|
|
13026
13046
|
ev.start_date = start_date;
|
|
13027
13047
|
ev.end_date = end_date;
|
|
13028
13048
|
ev.text = text;
|
|
13029
|
-
ev.id =
|
|
13049
|
+
ev.id = id;
|
|
13030
13050
|
ev.layer = this.defaultLayer;
|
|
13031
13051
|
}
|
|
13032
13052
|
ev.id = ev.id || scheduler2.uid();
|
|
@@ -13127,21 +13147,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13127
13147
|
}
|
|
13128
13148
|
};
|
|
13129
13149
|
scheduler2._render_v_bar = function(ev, x, y, w, h, style, contentA, contentB, bottom) {
|
|
13130
|
-
var
|
|
13150
|
+
var id = ev.id;
|
|
13131
13151
|
if (contentA.indexOf("<div class=") == -1)
|
|
13132
13152
|
contentA = scheduler2.templates["event_header_" + ev.layer] ? scheduler2.templates["event_header_" + ev.layer](ev.start_date, ev.end_date, ev) : contentA;
|
|
13133
13153
|
if (contentB.indexOf("<div class=") == -1)
|
|
13134
13154
|
contentB = scheduler2.templates["event_text_" + ev.layer] ? scheduler2.templates["event_text_" + ev.layer](ev.start_date, ev.end_date, ev) : contentB;
|
|
13135
13155
|
var d = document.createElement("div");
|
|
13136
|
-
var
|
|
13156
|
+
var cs = "dhx_cal_event";
|
|
13137
13157
|
var cse = scheduler2.templates["event_class_" + ev.layer] ? scheduler2.templates["event_class_" + ev.layer](ev.start_date, ev.end_date, ev) : scheduler2.templates.event_class(ev.start_date, ev.end_date, ev);
|
|
13138
13158
|
if (cse)
|
|
13139
|
-
|
|
13159
|
+
cs = cs + " " + cse;
|
|
13140
13160
|
var borderBox = scheduler2._border_box_events();
|
|
13141
13161
|
var borderBoxWidth = w - 2;
|
|
13142
13162
|
var boxWidth = borderBox ? borderBoxWidth : w - 4, headerWidth = borderBox ? borderBoxWidth : w - 6, bodyWidth = borderBox ? borderBoxWidth : w - 14, footerWidth = borderBox ? borderBoxWidth - 2 : w - 8;
|
|
13143
13163
|
var bodyHeight = borderBox ? h - this.xy.event_header_height : h - 30 + 1;
|
|
13144
|
-
var html = '<div event_id="' +
|
|
13164
|
+
var html = '<div event_id="' + id + '" ' + scheduler2.config.event_attribute + '="' + id + '" class="' + cs + '" style="position:absolute; top:' + y + "px; left:" + x + "px; width:" + boxWidth + "px; height:" + h + "px;" + (style || "") + '">';
|
|
13145
13165
|
html += '<div class="dhx_header" style=" width:' + headerWidth + 'px;" > </div>';
|
|
13146
13166
|
html += '<div class="dhx_title">' + contentA + "</div>";
|
|
13147
13167
|
html += '<div class="dhx_body" style=" width:' + bodyWidth + "px; height:" + bodyHeight + 'px;">' + contentB + "</div>";
|
|
@@ -13159,11 +13179,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13159
13179
|
var hb = this.xy.bar_height;
|
|
13160
13180
|
var y = this._colsS.heights[ev._sweek] + (this._colsS.height ? this.xy.month_scale_height + 2 : 2) + ev._sorder * hb;
|
|
13161
13181
|
var d = document.createElement("div");
|
|
13162
|
-
var
|
|
13182
|
+
var cs = ev._timed ? "dhx_cal_event_clear" : "dhx_cal_event_line";
|
|
13163
13183
|
var cse = scheduler2.templates["event_class_" + ev.layer] ? scheduler2.templates["event_class_" + ev.layer](ev.start_date, ev.end_date, ev) : scheduler2.templates.event_class(ev.start_date, ev.end_date, ev);
|
|
13164
13184
|
if (cse)
|
|
13165
|
-
|
|
13166
|
-
var html = '<div event_id="' + ev.id + '" ' + this.config.event_attribute + '="' + ev.id + '" class="' +
|
|
13185
|
+
cs = cs + " " + cse;
|
|
13186
|
+
var html = '<div event_id="' + ev.id + '" ' + this.config.event_attribute + '="' + ev.id + '" class="' + cs + '" style="position:absolute; top:' + y + "px; left:" + x + "px; width:" + (x2 - x - 15) + "px;" + (ev._text_style || "") + '">';
|
|
13167
13187
|
if (ev._timed)
|
|
13168
13188
|
html += scheduler2.templates["event_bar_date_" + ev.layer] ? scheduler2.templates["event_bar_date_" + ev.layer](ev.start_date, ev.end_date, ev) : scheduler2.templates.event_bar_date(ev.start_date, ev.end_date, ev);
|
|
13169
13189
|
html += scheduler2.templates["event_bar_text_" + ev.layer] ? scheduler2.templates["event_bar_text_" + ev.layer](ev.start_date, ev.end_date, ev) : scheduler2.templates.event_bar_text(ev.start_date, ev.end_date, ev) + "</div>)";
|
|
@@ -13244,7 +13264,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13244
13264
|
this._rendered.push(obj);
|
|
13245
13265
|
}
|
|
13246
13266
|
};
|
|
13247
|
-
scheduler2.filter_agenda = function(
|
|
13267
|
+
scheduler2.filter_agenda = function(id, event2) {
|
|
13248
13268
|
var layer2 = scheduler2.getLayer(event2.layer);
|
|
13249
13269
|
return layer2 && layer2.visible;
|
|
13250
13270
|
};
|
|
@@ -13282,22 +13302,22 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13282
13302
|
scheduler2.attachEvent("onMouseDown", function(classname) {
|
|
13283
13303
|
return !(classname == dhx_time_block);
|
|
13284
13304
|
});
|
|
13285
|
-
scheduler2.attachEvent("onBeforeDrag", function(
|
|
13286
|
-
if (!
|
|
13305
|
+
scheduler2.attachEvent("onBeforeDrag", function(id) {
|
|
13306
|
+
if (!id)
|
|
13287
13307
|
return true;
|
|
13288
|
-
return scheduler2.checkLimitViolation(scheduler2.getEvent(
|
|
13308
|
+
return scheduler2.checkLimitViolation(scheduler2.getEvent(id));
|
|
13289
13309
|
});
|
|
13290
13310
|
scheduler2.attachEvent("onClick", function(event_id, native_event_object) {
|
|
13291
13311
|
return scheduler2.checkLimitViolation(scheduler2.getEvent(event_id));
|
|
13292
13312
|
});
|
|
13293
|
-
scheduler2.attachEvent("onBeforeLightbox", function(
|
|
13294
|
-
var ev = scheduler2.getEvent(
|
|
13313
|
+
scheduler2.attachEvent("onBeforeLightbox", function(id) {
|
|
13314
|
+
var ev = scheduler2.getEvent(id);
|
|
13295
13315
|
before = [ev.start_date, ev.end_date];
|
|
13296
13316
|
return scheduler2.checkLimitViolation(ev);
|
|
13297
13317
|
});
|
|
13298
|
-
scheduler2.attachEvent("onEventSave", function(
|
|
13318
|
+
scheduler2.attachEvent("onEventSave", function(id, data, is_new_event) {
|
|
13299
13319
|
if (!(data.start_date && data.end_date)) {
|
|
13300
|
-
var ev = scheduler2.getEvent(
|
|
13320
|
+
var ev = scheduler2.getEvent(id);
|
|
13301
13321
|
data.start_date = new Date(ev.start_date);
|
|
13302
13322
|
data.end_date = new Date(ev.end_date);
|
|
13303
13323
|
}
|
|
@@ -13308,10 +13328,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13308
13328
|
}
|
|
13309
13329
|
return scheduler2.checkLimitViolation(data);
|
|
13310
13330
|
});
|
|
13311
|
-
scheduler2.attachEvent("onEventAdded", function(
|
|
13312
|
-
if (!
|
|
13331
|
+
scheduler2.attachEvent("onEventAdded", function(id) {
|
|
13332
|
+
if (!id)
|
|
13313
13333
|
return true;
|
|
13314
|
-
var ev = scheduler2.getEvent(
|
|
13334
|
+
var ev = scheduler2.getEvent(id);
|
|
13315
13335
|
if (!scheduler2.checkLimitViolation(ev) && scheduler2.config.limit_start && scheduler2.config.limit_end) {
|
|
13316
13336
|
if (ev.start_date < scheduler2.config.limit_start) {
|
|
13317
13337
|
ev.start_date = new Date(scheduler2.config.limit_start);
|
|
@@ -13332,10 +13352,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13332
13352
|
}
|
|
13333
13353
|
return true;
|
|
13334
13354
|
});
|
|
13335
|
-
scheduler2.attachEvent("onEventChanged", function(
|
|
13336
|
-
if (!
|
|
13355
|
+
scheduler2.attachEvent("onEventChanged", function(id) {
|
|
13356
|
+
if (!id)
|
|
13337
13357
|
return true;
|
|
13338
|
-
var ev = scheduler2.getEvent(
|
|
13358
|
+
var ev = scheduler2.getEvent(id);
|
|
13339
13359
|
if (!scheduler2.checkLimitViolation(ev)) {
|
|
13340
13360
|
if (!before)
|
|
13341
13361
|
return false;
|
|
@@ -13817,13 +13837,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13817
13837
|
}
|
|
13818
13838
|
};
|
|
13819
13839
|
function attachSchedulerEvents() {
|
|
13820
|
-
eventHandlerIds.push(scheduler2.attachEvent("onEventSave", function(
|
|
13821
|
-
let unmodifiedEvent = scheduler2.getEvent(
|
|
13840
|
+
eventHandlerIds.push(scheduler2.attachEvent("onEventSave", function(id, ev, is_new) {
|
|
13841
|
+
let unmodifiedEvent = scheduler2.getEvent(id);
|
|
13822
13842
|
if (unmodifiedEvent && unmodifiedEvent.event_location != ev.event_location) {
|
|
13823
13843
|
scheduler2._eventLocationChanged = true;
|
|
13824
13844
|
}
|
|
13825
13845
|
return true;
|
|
13826
|
-
}), scheduler2.attachEvent("onEventChanged", (
|
|
13846
|
+
}), scheduler2.attachEvent("onEventChanged", (id, event2) => {
|
|
13827
13847
|
const { start_date, end_date } = event2;
|
|
13828
13848
|
const { min_date, max_date } = scheduler2.getState();
|
|
13829
13849
|
if (start_date.valueOf() < max_date.valueOf() && end_date.valueOf() > min_date.valueOf()) {
|
|
@@ -13841,7 +13861,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13841
13861
|
let newIdEvent = scheduler2.getEvent(new_id);
|
|
13842
13862
|
mapAdapter == null ? void 0 : mapAdapter.removeEventMarker(old_id);
|
|
13843
13863
|
mapAdapter == null ? void 0 : mapAdapter.addEventMarker(newIdEvent);
|
|
13844
|
-
}), scheduler2.attachEvent("onEventAdded", (
|
|
13864
|
+
}), scheduler2.attachEvent("onEventAdded", (id, event2) => {
|
|
13845
13865
|
const { start_date, end_date } = event2;
|
|
13846
13866
|
const { min_date, max_date } = scheduler2.getState();
|
|
13847
13867
|
if (start_date.valueOf() < max_date.valueOf() && end_date.valueOf() > min_date.valueOf()) {
|
|
@@ -13855,20 +13875,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
13855
13875
|
}
|
|
13856
13876
|
}
|
|
13857
13877
|
}
|
|
13858
|
-
}), scheduler2.attachEvent("onClick", function(
|
|
13859
|
-
const event2 = scheduler2.getEvent(
|
|
13878
|
+
}), scheduler2.attachEvent("onClick", function(id, e) {
|
|
13879
|
+
const event2 = scheduler2.getEvent(id);
|
|
13860
13880
|
if (mapAdapter && event2)
|
|
13861
13881
|
mapAdapter.onEventClick(event2);
|
|
13862
13882
|
return false;
|
|
13863
|
-
}), scheduler2.attachEvent("onBeforeEventDelete", (
|
|
13883
|
+
}), scheduler2.attachEvent("onBeforeEventDelete", (id, event2) => {
|
|
13864
13884
|
if (mapAdapter) {
|
|
13865
|
-
mapAdapter.removeEventMarker(
|
|
13885
|
+
mapAdapter.removeEventMarker(id);
|
|
13866
13886
|
}
|
|
13867
13887
|
return true;
|
|
13868
13888
|
}));
|
|
13869
13889
|
}
|
|
13870
13890
|
function detachSchedulerEvents() {
|
|
13871
|
-
eventHandlerIds.forEach((
|
|
13891
|
+
eventHandlerIds.forEach((id) => scheduler2.detachEvent(id));
|
|
13872
13892
|
eventHandlerIds = [];
|
|
13873
13893
|
}
|
|
13874
13894
|
scheduler2.attachEvent("onSchedulerReady", function() {
|
|
@@ -14012,7 +14032,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
14012
14032
|
scheduler2.set_sizes();
|
|
14013
14033
|
}
|
|
14014
14034
|
}
|
|
14015
|
-
scheduler2.attachEvent("onLocationError", function(
|
|
14035
|
+
scheduler2.attachEvent("onLocationError", function(id) {
|
|
14016
14036
|
alert("Location can't be found");
|
|
14017
14037
|
return google.maps.LatLng(51.47784, -1492e-6);
|
|
14018
14038
|
});
|
|
@@ -14209,10 +14229,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
14209
14229
|
css = css || "dhx_calendar_click";
|
|
14210
14230
|
if (!date)
|
|
14211
14231
|
return;
|
|
14212
|
-
var
|
|
14213
|
-
if (!
|
|
14232
|
+
var el = this._locateCalendar(cal, date);
|
|
14233
|
+
if (!el)
|
|
14214
14234
|
return;
|
|
14215
|
-
|
|
14235
|
+
el.className = (el.className || "").replace(RegExp(css, "g"));
|
|
14216
14236
|
};
|
|
14217
14237
|
scheduler2._week_template = function(width) {
|
|
14218
14238
|
var summ = width || 250;
|
|
@@ -14755,36 +14775,36 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
14755
14775
|
if (obj instanceof Backbone.Collection)
|
|
14756
14776
|
_finish_ext_load(scheduler2);
|
|
14757
14777
|
});
|
|
14758
|
-
scheduler2.attachEvent("onEventCreated", function(
|
|
14759
|
-
var ev = new events.model(scheduler2.getEvent(
|
|
14760
|
-
scheduler2._events[
|
|
14761
|
-
scheduler2._events[
|
|
14778
|
+
scheduler2.attachEvent("onEventCreated", function(id) {
|
|
14779
|
+
var ev = new events.model(scheduler2.getEvent(id));
|
|
14780
|
+
scheduler2._events[id] = ev.toJSON();
|
|
14781
|
+
scheduler2._events[id].id = id;
|
|
14762
14782
|
return true;
|
|
14763
14783
|
});
|
|
14764
|
-
scheduler2.attachEvent("onEventAdded", function(
|
|
14765
|
-
if (!events.get(
|
|
14766
|
-
var data = sanitize(scheduler2.getEvent(
|
|
14784
|
+
scheduler2.attachEvent("onEventAdded", function(id) {
|
|
14785
|
+
if (!events.get(id)) {
|
|
14786
|
+
var data = sanitize(scheduler2.getEvent(id));
|
|
14767
14787
|
var model = new events.model(data);
|
|
14768
14788
|
var cid = _get_id(model);
|
|
14769
|
-
if (cid !=
|
|
14770
|
-
this.changeEventId(
|
|
14789
|
+
if (cid != id)
|
|
14790
|
+
this.changeEventId(id, cid);
|
|
14771
14791
|
events.add(model);
|
|
14772
14792
|
events.trigger("scheduler:add", model);
|
|
14773
14793
|
}
|
|
14774
14794
|
return true;
|
|
14775
14795
|
});
|
|
14776
|
-
scheduler2.attachEvent("onEventChanged", function(
|
|
14777
|
-
var ev = events.get(
|
|
14778
|
-
var upd = sanitize(scheduler2.getEvent(
|
|
14796
|
+
scheduler2.attachEvent("onEventChanged", function(id) {
|
|
14797
|
+
var ev = events.get(id);
|
|
14798
|
+
var upd = sanitize(scheduler2.getEvent(id));
|
|
14779
14799
|
ev.set(upd);
|
|
14780
14800
|
events.trigger("scheduler:change", ev);
|
|
14781
14801
|
return true;
|
|
14782
14802
|
});
|
|
14783
|
-
scheduler2.attachEvent("onEventDeleted", function(
|
|
14784
|
-
var model = events.get(
|
|
14803
|
+
scheduler2.attachEvent("onEventDeleted", function(id) {
|
|
14804
|
+
var model = events.get(id);
|
|
14785
14805
|
if (model) {
|
|
14786
14806
|
events.trigger("scheduler:remove", model);
|
|
14787
|
-
events.remove(
|
|
14807
|
+
events.remove(id);
|
|
14788
14808
|
}
|
|
14789
14809
|
return true;
|
|
14790
14810
|
});
|
|
@@ -14802,10 +14822,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
14802
14822
|
function on_drop(sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml) {
|
|
14803
14823
|
if (scheduler2.checkEvent("onBeforeExternalDragIn") && !scheduler2.callEvent("onBeforeExternalDragIn", [sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml, last_event]))
|
|
14804
14824
|
return;
|
|
14805
|
-
var temp = scheduler2.attachEvent("onEventCreated", function(
|
|
14806
|
-
if (!scheduler2.callEvent("onExternalDragIn", [
|
|
14825
|
+
var temp = scheduler2.attachEvent("onEventCreated", function(id) {
|
|
14826
|
+
if (!scheduler2.callEvent("onExternalDragIn", [id, sourceHtmlObject, last_event])) {
|
|
14807
14827
|
this._drag_mode = this._drag_id = null;
|
|
14808
|
-
this.deleteEvent(
|
|
14828
|
+
this.deleteEvent(id);
|
|
14809
14829
|
}
|
|
14810
14830
|
});
|
|
14811
14831
|
var action_data = scheduler2.getActionData(last_event);
|
|
@@ -14869,8 +14889,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
14869
14889
|
var header = scheduler2._els.dhx_cal_header[0].childNodes;
|
|
14870
14890
|
var els = header[1] ? header[1].childNodes : header[0].childNodes;
|
|
14871
14891
|
for (var i = 0; i < els.length; i++) {
|
|
14872
|
-
var
|
|
14873
|
-
var w = parseFloat(
|
|
14892
|
+
var el = els[i].style ? els[i] : els[i].parentNode;
|
|
14893
|
+
var w = parseFloat(el.style.width);
|
|
14874
14894
|
if (width > w) {
|
|
14875
14895
|
width -= w + 1;
|
|
14876
14896
|
r += w + 1;
|
|
@@ -14950,8 +14970,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
14950
14970
|
if (scheduler2.matrix && scheduler2.matrix[scheduler2._mode]) {
|
|
14951
14971
|
xml += "<y>";
|
|
14952
14972
|
for (var i = 0; i < yh.firstChild.rows.length; i++) {
|
|
14953
|
-
var
|
|
14954
|
-
xml += "<row><![CDATA[" + clean_html(
|
|
14973
|
+
var el = yh.firstChild.rows[i];
|
|
14974
|
+
xml += "<row><![CDATA[" + clean_html(el.cells[0].innerHTML) + "]]></row>";
|
|
14955
14975
|
}
|
|
14956
14976
|
xml += "</y>";
|
|
14957
14977
|
dy = yh.firstChild.rows[0].cells[0].offsetHeight;
|
|
@@ -15076,8 +15096,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
15076
15096
|
week = de_week(evs[i], week);
|
|
15077
15097
|
} else if (scheduler2.matrix && scheduler2.matrix[scheduler2._mode]) {
|
|
15078
15098
|
day = 0;
|
|
15079
|
-
var
|
|
15080
|
-
week =
|
|
15099
|
+
var el = evs[i].parentNode.parentNode.parentNode;
|
|
15100
|
+
week = el.rowIndex;
|
|
15081
15101
|
var dy_copy = dy;
|
|
15082
15102
|
dy = evs[i].parentNode.offsetHeight;
|
|
15083
15103
|
zy = y_norm(evs[i].style.top);
|
|
@@ -15193,11 +15213,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
15193
15213
|
});
|
|
15194
15214
|
}
|
|
15195
15215
|
});
|
|
15196
|
-
scheduler2.attachEvent("onClick", function(
|
|
15216
|
+
scheduler2.attachEvent("onClick", function(id) {
|
|
15197
15217
|
if (!scheduler2.config.show_quick_info) {
|
|
15198
15218
|
return;
|
|
15199
15219
|
}
|
|
15200
|
-
scheduler2.showQuickInfo(
|
|
15220
|
+
scheduler2.showQuickInfo(id);
|
|
15201
15221
|
return true;
|
|
15202
15222
|
});
|
|
15203
15223
|
(function() {
|
|
@@ -15227,24 +15247,24 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
15227
15247
|
return scheduler2.templates.week_date(start, end, ev);
|
|
15228
15248
|
}
|
|
15229
15249
|
};
|
|
15230
|
-
scheduler2.showQuickInfo = function(
|
|
15231
|
-
if (
|
|
15250
|
+
scheduler2.showQuickInfo = function(id) {
|
|
15251
|
+
if (id == this._quick_info_box_id)
|
|
15232
15252
|
return;
|
|
15233
15253
|
this.hideQuickInfo(true);
|
|
15234
|
-
if (this.callEvent("onBeforeQuickInfo", [
|
|
15254
|
+
if (this.callEvent("onBeforeQuickInfo", [id]) === false) {
|
|
15235
15255
|
return;
|
|
15236
15256
|
}
|
|
15237
15257
|
let pos;
|
|
15238
|
-
if (clickedElementPosition && clickedElementPosition.id ==
|
|
15258
|
+
if (clickedElementPosition && clickedElementPosition.id == id) {
|
|
15239
15259
|
pos = clickedElementPosition.position;
|
|
15240
15260
|
} else {
|
|
15241
|
-
pos = this._get_event_counter_part(
|
|
15261
|
+
pos = this._get_event_counter_part(id);
|
|
15242
15262
|
}
|
|
15243
15263
|
if (pos) {
|
|
15244
15264
|
this._quick_info_box = this._init_quick_info(pos);
|
|
15245
|
-
this._fill_quick_data(
|
|
15265
|
+
this._fill_quick_data(id);
|
|
15246
15266
|
this._show_quick_info(pos);
|
|
15247
|
-
this.callEvent("onQuickInfo", [
|
|
15267
|
+
this.callEvent("onQuickInfo", [id]);
|
|
15248
15268
|
}
|
|
15249
15269
|
};
|
|
15250
15270
|
(function() {
|
|
@@ -15422,8 +15442,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
15422
15442
|
}
|
|
15423
15443
|
var mask = scheduler2._getClassName(node);
|
|
15424
15444
|
if (mask.indexOf("_icon") != -1) {
|
|
15425
|
-
var
|
|
15426
|
-
scheduler2._click.buttons[mask.split(" ")[1].replace("icon_", "")](
|
|
15445
|
+
var id = scheduler2._quick_info_box_id;
|
|
15446
|
+
scheduler2._click.buttons[mask.split(" ")[1].replace("icon_", "")](id);
|
|
15427
15447
|
} else
|
|
15428
15448
|
scheduler2._qi_button_click(node.parentNode);
|
|
15429
15449
|
};
|
|
@@ -15443,14 +15463,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
15443
15463
|
}
|
|
15444
15464
|
return 0;
|
|
15445
15465
|
}
|
|
15446
|
-
scheduler2._get_event_counter_part = function(
|
|
15447
|
-
var domEv = scheduler2.getRenderedEvent(
|
|
15466
|
+
scheduler2._get_event_counter_part = function(id) {
|
|
15467
|
+
var domEv = scheduler2.getRenderedEvent(id);
|
|
15448
15468
|
return getPositionInsideScheduler(domEv);
|
|
15449
15469
|
};
|
|
15450
|
-
scheduler2._fill_quick_data = function(
|
|
15451
|
-
var ev = scheduler2.getEvent(
|
|
15470
|
+
scheduler2._fill_quick_data = function(id) {
|
|
15471
|
+
var ev = scheduler2.getEvent(id);
|
|
15452
15472
|
var qi = scheduler2._quick_info_box;
|
|
15453
|
-
scheduler2._quick_info_box_id =
|
|
15473
|
+
scheduler2._quick_info_box_id = id;
|
|
15454
15474
|
var header = { content: scheduler2.templates.quick_info_title(ev.start_date, ev.end_date, ev), date: scheduler2.templates.quick_info_date(ev.start_date, ev.end_date, ev) };
|
|
15455
15475
|
var titleContent = qi.querySelector(".dhx_cal_qi_tcontent");
|
|
15456
15476
|
titleContent.innerHTML = `<span>${header.content}</span>`;
|
|
@@ -15475,8 +15495,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
15475
15495
|
}
|
|
15476
15496
|
var original_left_buttons = scheduler2.config.buttons_left.slice();
|
|
15477
15497
|
var original_right_buttons = scheduler2.config.buttons_right.slice();
|
|
15478
|
-
scheduler2.attachEvent("onBeforeLightbox", function(
|
|
15479
|
-
if (this.config.readonly_form || this.getEvent(
|
|
15498
|
+
scheduler2.attachEvent("onBeforeLightbox", function(id) {
|
|
15499
|
+
if (this.config.readonly_form || this.getEvent(id).readonly) {
|
|
15480
15500
|
this.config.readonly_active = true;
|
|
15481
15501
|
} else {
|
|
15482
15502
|
this.config.readonly_active = false;
|
|
@@ -15864,14 +15884,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
15864
15884
|
};
|
|
15865
15885
|
function __spreadArray(to, from, pack) {
|
|
15866
15886
|
if (pack || arguments.length === 2)
|
|
15867
|
-
for (var i = 0, l = from.length,
|
|
15868
|
-
if (
|
|
15869
|
-
if (!
|
|
15870
|
-
|
|
15871
|
-
|
|
15887
|
+
for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15888
|
+
if (ar || !(i in from)) {
|
|
15889
|
+
if (!ar)
|
|
15890
|
+
ar = Array.prototype.slice.call(from, 0, i);
|
|
15891
|
+
ar[i] = from[i];
|
|
15872
15892
|
}
|
|
15873
15893
|
}
|
|
15874
|
-
return to.concat(
|
|
15894
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
15875
15895
|
}
|
|
15876
15896
|
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message2) {
|
|
15877
15897
|
var e = new Error(message2);
|
|
@@ -15897,8 +15917,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
15897
15917
|
var contains = function(arr, val) {
|
|
15898
15918
|
return arr.indexOf(val) !== -1;
|
|
15899
15919
|
};
|
|
15900
|
-
var defaultGetText = function(
|
|
15901
|
-
return
|
|
15920
|
+
var defaultGetText = function(id) {
|
|
15921
|
+
return id.toString();
|
|
15902
15922
|
};
|
|
15903
15923
|
var defaultDateFormatter = function(year, month, day) {
|
|
15904
15924
|
return "".concat(month, " ").concat(day, ", ").concat(year);
|
|
@@ -18159,13 +18179,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18159
18179
|
event2.deleted = null;
|
|
18160
18180
|
}
|
|
18161
18181
|
function createException(ev) {
|
|
18162
|
-
let
|
|
18182
|
+
let id = ev.id.split("#");
|
|
18163
18183
|
let nid = scheduler2.uid();
|
|
18164
18184
|
scheduler2._not_render = true;
|
|
18165
18185
|
let nev = scheduler2._copy_event(ev);
|
|
18166
18186
|
nev.id = nid;
|
|
18167
|
-
nev.recurring_event_id =
|
|
18168
|
-
let timestamp =
|
|
18187
|
+
nev.recurring_event_id = id[0];
|
|
18188
|
+
let timestamp = id[1];
|
|
18169
18189
|
nev.original_start = new Date(Number(timestamp));
|
|
18170
18190
|
scheduler2._add_rec_marker(nev, timestamp);
|
|
18171
18191
|
scheduler2.addEvent(nev);
|
|
@@ -18177,18 +18197,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18177
18197
|
function setUTCPartsToDate(d) {
|
|
18178
18198
|
return new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds());
|
|
18179
18199
|
}
|
|
18180
|
-
function
|
|
18200
|
+
function updateFollowingRRULEOnSave(ev) {
|
|
18181
18201
|
if (ev.rrule.includes(";UNTIL=")) {
|
|
18182
18202
|
ev.rrule = ev.rrule.split(";UNTIL=")[0];
|
|
18183
18203
|
}
|
|
18184
|
-
let parsedRRule = rrulestr(`RRULE:${ev.rrule};UNTIL=${toIcalString(ev._end_date || ev.end_date)}`, { dtstart: ev.start_date });
|
|
18204
|
+
let parsedRRule = rrulestr(`RRULE:${ev.rrule};UNTIL=${toIcalString(setUTCPartsToDate(ev._end_date || ev.end_date))}`, { dtstart: ev.start_date });
|
|
18185
18205
|
let newRRULE = new RRule(parsedRRule.origOptions).toString().replace("RRULE:", "");
|
|
18186
18206
|
newRRULE = newRRULE.split("\n")[1];
|
|
18187
18207
|
ev.rrule = newRRULE;
|
|
18188
18208
|
}
|
|
18189
|
-
function
|
|
18209
|
+
function updateFollowingRRULE(id, ev) {
|
|
18190
18210
|
if (!ev) {
|
|
18191
|
-
ev = scheduler2.getEvent(
|
|
18211
|
+
ev = scheduler2.getEvent(id);
|
|
18192
18212
|
}
|
|
18193
18213
|
let rruleStringparts = ev.rrule.split(";");
|
|
18194
18214
|
let updatedRRULE = [];
|
|
@@ -18201,6 +18221,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18201
18221
|
continue;
|
|
18202
18222
|
}
|
|
18203
18223
|
}
|
|
18224
|
+
if (code === "UNTIL") {
|
|
18225
|
+
const rule = rrulestr(ev.rrule);
|
|
18226
|
+
const untilDate = rule.options.until;
|
|
18227
|
+
if (untilDate.valueOf() < ev.start_date.valueOf()) {
|
|
18228
|
+
ev._end_date = ev.end_date;
|
|
18229
|
+
}
|
|
18230
|
+
}
|
|
18204
18231
|
updatedRRULE.push(code);
|
|
18205
18232
|
updatedRRULE.push("=");
|
|
18206
18233
|
updatedRRULE.push(name);
|
|
@@ -18209,8 +18236,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18209
18236
|
updatedRRULE.pop();
|
|
18210
18237
|
ev.rrule = updatedRRULE.join("");
|
|
18211
18238
|
}
|
|
18212
|
-
scheduler2._isFollowing = function(
|
|
18213
|
-
let ev = scheduler2.getEvent(
|
|
18239
|
+
scheduler2._isFollowing = function(id) {
|
|
18240
|
+
let ev = scheduler2.getEvent(id);
|
|
18214
18241
|
return !!(ev && ev._thisAndFollowing);
|
|
18215
18242
|
};
|
|
18216
18243
|
scheduler2._isFirstOccurrence = function(ev) {
|
|
@@ -18237,18 +18264,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18237
18264
|
this._rec_markers_pull[ev.event_pid] = {};
|
|
18238
18265
|
this._rec_markers_pull[ev.event_pid][time] = ev;
|
|
18239
18266
|
};
|
|
18240
|
-
scheduler2._get_rec_marker = function(time,
|
|
18241
|
-
let ch = this._rec_markers_pull[
|
|
18267
|
+
scheduler2._get_rec_marker = function(time, id) {
|
|
18268
|
+
let ch = this._rec_markers_pull[id];
|
|
18242
18269
|
if (ch)
|
|
18243
18270
|
return ch[time];
|
|
18244
18271
|
return null;
|
|
18245
18272
|
};
|
|
18246
|
-
scheduler2._get_rec_markers = function(
|
|
18247
|
-
return this._rec_markers_pull[
|
|
18273
|
+
scheduler2._get_rec_markers = function(id) {
|
|
18274
|
+
return this._rec_markers_pull[id] || [];
|
|
18248
18275
|
};
|
|
18249
18276
|
(function() {
|
|
18250
18277
|
var old_add_event = scheduler2.addEvent;
|
|
18251
|
-
scheduler2.addEvent = function(start_date, end_date, text,
|
|
18278
|
+
scheduler2.addEvent = function(start_date, end_date, text, id, extra_data) {
|
|
18252
18279
|
var ev_id = old_add_event.apply(this, arguments);
|
|
18253
18280
|
if (ev_id && scheduler2.getEvent(ev_id)) {
|
|
18254
18281
|
var ev = scheduler2.getEvent(ev_id);
|
|
@@ -18268,35 +18295,35 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18268
18295
|
}
|
|
18269
18296
|
return true;
|
|
18270
18297
|
});
|
|
18271
|
-
scheduler2.attachEvent("onEventIdChange", function(
|
|
18298
|
+
scheduler2.attachEvent("onEventIdChange", function(id, new_id) {
|
|
18272
18299
|
if (this._ignore_call)
|
|
18273
18300
|
return;
|
|
18274
18301
|
this._ignore_call = true;
|
|
18275
|
-
if (scheduler2._rec_markers[
|
|
18276
|
-
scheduler2._rec_markers[new_id] = scheduler2._rec_markers[
|
|
18277
|
-
delete scheduler2._rec_markers[
|
|
18302
|
+
if (scheduler2._rec_markers[id]) {
|
|
18303
|
+
scheduler2._rec_markers[new_id] = scheduler2._rec_markers[id];
|
|
18304
|
+
delete scheduler2._rec_markers[id];
|
|
18278
18305
|
}
|
|
18279
|
-
if (scheduler2._rec_markers_pull[
|
|
18280
|
-
scheduler2._rec_markers_pull[new_id] = scheduler2._rec_markers_pull[
|
|
18281
|
-
delete scheduler2._rec_markers_pull[
|
|
18306
|
+
if (scheduler2._rec_markers_pull[id]) {
|
|
18307
|
+
scheduler2._rec_markers_pull[new_id] = scheduler2._rec_markers_pull[id];
|
|
18308
|
+
delete scheduler2._rec_markers_pull[id];
|
|
18282
18309
|
}
|
|
18283
18310
|
for (var i = 0; i < this._rec_temp.length; i++) {
|
|
18284
18311
|
var tev = this._rec_temp[i];
|
|
18285
|
-
if (this._is_virtual_event(tev.id) && tev.id.split("#")[0] ==
|
|
18312
|
+
if (this._is_virtual_event(tev.id) && tev.id.split("#")[0] == id) {
|
|
18286
18313
|
tev.recurring_event_id = new_id;
|
|
18287
18314
|
this.changeEventId(tev.id, new_id + "#" + tev.id.split("#")[1]);
|
|
18288
18315
|
}
|
|
18289
18316
|
}
|
|
18290
18317
|
for (var i in this._rec_markers) {
|
|
18291
18318
|
var tev = this._rec_markers[i];
|
|
18292
|
-
if (tev.recurring_event_id ==
|
|
18319
|
+
if (tev.recurring_event_id == id) {
|
|
18293
18320
|
tev.recurring_event_id = new_id;
|
|
18294
18321
|
tev._pid_changed = true;
|
|
18295
18322
|
}
|
|
18296
18323
|
}
|
|
18297
|
-
var
|
|
18298
|
-
if (
|
|
18299
|
-
delete
|
|
18324
|
+
var el = scheduler2._rec_markers[new_id];
|
|
18325
|
+
if (el && el._pid_changed) {
|
|
18326
|
+
delete el._pid_changed;
|
|
18300
18327
|
setTimeout(function() {
|
|
18301
18328
|
if (scheduler2.$destroyed) {
|
|
18302
18329
|
return true;
|
|
@@ -18336,19 +18363,19 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18336
18363
|
}
|
|
18337
18364
|
}
|
|
18338
18365
|
}
|
|
18339
|
-
function updateTextEvents(
|
|
18366
|
+
function updateTextEvents(id, data) {
|
|
18340
18367
|
for (let i in scheduler2._events) {
|
|
18341
18368
|
let tev = scheduler2._events[i];
|
|
18342
|
-
if (tev.recurring_event_id ==
|
|
18369
|
+
if (tev.recurring_event_id == id || scheduler2._is_virtual_event(tev.id) && tev.id.split("#")[0] == id) {
|
|
18343
18370
|
tev.text = data.text;
|
|
18344
18371
|
scheduler2.updateEvent(tev.id);
|
|
18345
18372
|
}
|
|
18346
18373
|
}
|
|
18347
18374
|
}
|
|
18348
18375
|
function deleteEventFromSeries(idTimestamp, ev) {
|
|
18349
|
-
let
|
|
18376
|
+
let id = idTimestamp;
|
|
18350
18377
|
let originalStartTimestamp = new Date(ev.original_start).valueOf();
|
|
18351
|
-
idTimestamp = String(
|
|
18378
|
+
idTimestamp = String(id).split("#") || ev._pid_time || originalStartTimestamp;
|
|
18352
18379
|
let nid = scheduler2.uid();
|
|
18353
18380
|
let tid = idTimestamp[1] ? idTimestamp[1] : ev._pid_time || originalStartTimestamp;
|
|
18354
18381
|
let nev = scheduler2._copy_event(ev);
|
|
@@ -18358,29 +18385,29 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18358
18385
|
nev.deleted = true;
|
|
18359
18386
|
scheduler2.addEvent(nev);
|
|
18360
18387
|
}
|
|
18361
|
-
scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(
|
|
18362
|
-
var ev = this.getEvent(
|
|
18363
|
-
if (this._is_virtual_event(
|
|
18364
|
-
deleteEventFromSeries(
|
|
18388
|
+
scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id) {
|
|
18389
|
+
var ev = this.getEvent(id);
|
|
18390
|
+
if (this._is_virtual_event(id) || this._is_modified_occurrence(ev) && !isDeletedOccurrence(ev)) {
|
|
18391
|
+
deleteEventFromSeries(id, ev);
|
|
18365
18392
|
} else {
|
|
18366
18393
|
if (isSeries(ev) && this._lightbox_id)
|
|
18367
18394
|
this._roll_back_dates(ev);
|
|
18368
|
-
var sub = this._get_rec_markers(
|
|
18395
|
+
var sub = this._get_rec_markers(id);
|
|
18369
18396
|
for (var i in sub) {
|
|
18370
18397
|
if (sub.hasOwnProperty(i)) {
|
|
18371
|
-
|
|
18372
|
-
if (this.getEvent(
|
|
18373
|
-
this.deleteEvent(
|
|
18398
|
+
id = sub[i].id;
|
|
18399
|
+
if (this.getEvent(id))
|
|
18400
|
+
this.deleteEvent(id, true);
|
|
18374
18401
|
}
|
|
18375
18402
|
}
|
|
18376
18403
|
}
|
|
18377
18404
|
return true;
|
|
18378
18405
|
});
|
|
18379
|
-
scheduler2.attachEvent("onEventDeleted", function(
|
|
18380
|
-
if (!this._is_virtual_event(
|
|
18381
|
-
if (!scheduler2._events[
|
|
18406
|
+
scheduler2.attachEvent("onEventDeleted", function(id, ev) {
|
|
18407
|
+
if (!this._is_virtual_event(id) && this._is_modified_occurrence(ev)) {
|
|
18408
|
+
if (!scheduler2._events[id]) {
|
|
18382
18409
|
ev.deleted = true;
|
|
18383
|
-
this.setEvent(
|
|
18410
|
+
this.setEvent(id, ev);
|
|
18384
18411
|
scheduler2.render();
|
|
18385
18412
|
}
|
|
18386
18413
|
}
|
|
@@ -18408,11 +18435,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18408
18435
|
}
|
|
18409
18436
|
return true;
|
|
18410
18437
|
});
|
|
18411
|
-
scheduler2.attachEvent("onEventChanged", function(
|
|
18438
|
+
scheduler2.attachEvent("onEventChanged", function(id, event2) {
|
|
18412
18439
|
if (this._loading)
|
|
18413
18440
|
return true;
|
|
18414
|
-
let ev = this.getEvent(
|
|
18415
|
-
if (this._is_virtual_event(
|
|
18441
|
+
let ev = this.getEvent(id);
|
|
18442
|
+
if (this._is_virtual_event(id)) {
|
|
18416
18443
|
createException(ev);
|
|
18417
18444
|
} else {
|
|
18418
18445
|
if (ev.start_date) {
|
|
@@ -18422,23 +18449,23 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18422
18449
|
ev.end_date = clearMilliseconds(ev.end_date);
|
|
18423
18450
|
}
|
|
18424
18451
|
if (isSeries(ev) && this._lightbox_id) {
|
|
18425
|
-
if (ev._removeFollowing || this._isFollowing(
|
|
18452
|
+
if (ev._removeFollowing || this._isFollowing(id)) {
|
|
18426
18453
|
ev._removeFollowing = null;
|
|
18427
18454
|
} else {
|
|
18428
18455
|
this._roll_back_dates(ev);
|
|
18429
18456
|
}
|
|
18430
18457
|
}
|
|
18431
|
-
var sub = this._get_rec_markers(
|
|
18458
|
+
var sub = this._get_rec_markers(id);
|
|
18432
18459
|
for (var i in sub) {
|
|
18433
18460
|
if (sub.hasOwnProperty(i)) {
|
|
18434
18461
|
delete this._rec_markers[sub[i].id];
|
|
18435
18462
|
this.deleteEvent(sub[i].id, true);
|
|
18436
18463
|
}
|
|
18437
18464
|
}
|
|
18438
|
-
delete this._rec_markers_pull[
|
|
18465
|
+
delete this._rec_markers_pull[id];
|
|
18439
18466
|
var isEventFound = false;
|
|
18440
18467
|
for (var k = 0; k < this._rendered.length; k++) {
|
|
18441
|
-
if (this._rendered[k].getAttribute(this.config.event_attribute) ==
|
|
18468
|
+
if (this._rendered[k].getAttribute(this.config.event_attribute) == id)
|
|
18442
18469
|
isEventFound = true;
|
|
18443
18470
|
}
|
|
18444
18471
|
if (!isEventFound)
|
|
@@ -18447,21 +18474,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18447
18474
|
removeTempDraggedEvent();
|
|
18448
18475
|
return true;
|
|
18449
18476
|
});
|
|
18450
|
-
scheduler2.attachEvent("onEventAdded", function(
|
|
18477
|
+
scheduler2.attachEvent("onEventAdded", function(id) {
|
|
18451
18478
|
if (!this._loading) {
|
|
18452
|
-
var ev = this.getEvent(
|
|
18479
|
+
var ev = this.getEvent(id);
|
|
18453
18480
|
if (isSeries(ev)) {
|
|
18454
18481
|
this._roll_back_dates(ev);
|
|
18455
18482
|
}
|
|
18456
18483
|
}
|
|
18457
18484
|
return true;
|
|
18458
18485
|
});
|
|
18459
|
-
scheduler2.attachEvent("onEventSave", function(
|
|
18460
|
-
let ev = this.getEvent(
|
|
18486
|
+
scheduler2.attachEvent("onEventSave", function(id, data, is_new_event) {
|
|
18487
|
+
let ev = this.getEvent(id);
|
|
18461
18488
|
let tempEvent = scheduler2._lame_clone(ev);
|
|
18462
18489
|
let tempDataRRULE = data.rrule;
|
|
18463
18490
|
if (ev && isSeries(ev)) {
|
|
18464
|
-
if (!is_new_event && this._isFollowing(
|
|
18491
|
+
if (!is_new_event && this._isFollowing(id)) {
|
|
18465
18492
|
if (ev._removeFollowing) {
|
|
18466
18493
|
let occurrence = scheduler2.getEvent(ev._thisAndFollowing);
|
|
18467
18494
|
if (occurrence && (ev._firstOccurrence || ev._modified)) {
|
|
@@ -18473,13 +18500,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18473
18500
|
ev._end_date = ev._shorten_end_date;
|
|
18474
18501
|
ev.start_date = ev._start_date;
|
|
18475
18502
|
ev._shorten = true;
|
|
18476
|
-
|
|
18503
|
+
updateFollowingRRULEOnSave(ev);
|
|
18477
18504
|
scheduler2.callEvent("onEventChanged", [ev.id, ev]);
|
|
18478
18505
|
let occurrence2 = scheduler2.getEvent(ev._thisAndFollowing);
|
|
18479
18506
|
if (occurrence2) {
|
|
18480
18507
|
for (const i in scheduler2._events) {
|
|
18481
18508
|
let tev = scheduler2._events[i];
|
|
18482
|
-
if (tev.recurring_event_id ===
|
|
18509
|
+
if (tev.recurring_event_id === id) {
|
|
18483
18510
|
if (tev.start_date.valueOf() > tempEvent.start_date.valueOf()) {
|
|
18484
18511
|
deleteEventFromSeries(tev.id, tev);
|
|
18485
18512
|
}
|
|
@@ -18501,7 +18528,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18501
18528
|
} else if (occurrence && ev._modified) {
|
|
18502
18529
|
for (const i in scheduler2._events) {
|
|
18503
18530
|
let tev = scheduler2._events[i];
|
|
18504
|
-
if (tev.recurring_event_id ==
|
|
18531
|
+
if (tev.recurring_event_id == id && tev.id == tempEvent._thisAndFollowing) {
|
|
18505
18532
|
setPropsForStorageEvent(i, data, ev, tempEvent);
|
|
18506
18533
|
}
|
|
18507
18534
|
}
|
|
@@ -18513,7 +18540,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18513
18540
|
ev._end_date = ev._shorten_end_date;
|
|
18514
18541
|
ev.start_date = ev._start_date;
|
|
18515
18542
|
ev._shorten = true;
|
|
18516
|
-
|
|
18543
|
+
updateFollowingRRULEOnSave(ev);
|
|
18517
18544
|
scheduler2.callEvent("onEventChanged", [ev.id, ev]);
|
|
18518
18545
|
let followingEv = { ...tempEvent };
|
|
18519
18546
|
followingEv.text = data.text;
|
|
@@ -18524,7 +18551,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18524
18551
|
scheduler2.addEvent(followingEv.start_date, followingEv.end_date, followingEv.text, followingEv.id, followingEv);
|
|
18525
18552
|
}
|
|
18526
18553
|
if (!is_new_event) {
|
|
18527
|
-
updateTextEvents(
|
|
18554
|
+
updateTextEvents(id, data);
|
|
18528
18555
|
}
|
|
18529
18556
|
scheduler2.hideLightbox();
|
|
18530
18557
|
return false;
|
|
@@ -18532,7 +18559,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18532
18559
|
}
|
|
18533
18560
|
}
|
|
18534
18561
|
if (!is_new_event) {
|
|
18535
|
-
updateTextEvents(
|
|
18562
|
+
updateTextEvents(id, data);
|
|
18536
18563
|
}
|
|
18537
18564
|
if (tempEvent._ocr && tempEvent._beforeEventChangedFlag) {
|
|
18538
18565
|
ev.start_date = tempEvent.start_date;
|
|
@@ -18546,21 +18573,33 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18546
18573
|
removeTempDraggedEvent();
|
|
18547
18574
|
return true;
|
|
18548
18575
|
});
|
|
18549
|
-
scheduler2.attachEvent("onEventCreated", function(
|
|
18550
|
-
var ev = this.getEvent(
|
|
18576
|
+
scheduler2.attachEvent("onEventCreated", function(id) {
|
|
18577
|
+
var ev = this.getEvent(id);
|
|
18551
18578
|
if (!isSeries(ev)) {
|
|
18552
18579
|
clearRecurringProperties(ev);
|
|
18553
18580
|
}
|
|
18554
18581
|
return true;
|
|
18555
18582
|
});
|
|
18556
|
-
scheduler2.attachEvent("onEventCancel", function(
|
|
18557
|
-
var ev = this.getEvent(
|
|
18583
|
+
scheduler2.attachEvent("onEventCancel", function(id) {
|
|
18584
|
+
var ev = this.getEvent(id);
|
|
18558
18585
|
if (isSeries(ev)) {
|
|
18559
18586
|
this._roll_back_dates(ev);
|
|
18560
18587
|
this.render_view_data();
|
|
18561
18588
|
}
|
|
18562
18589
|
removeTempDraggedEvent();
|
|
18563
18590
|
});
|
|
18591
|
+
scheduler2.attachEvent("onLightbox", function(id) {
|
|
18592
|
+
const event2 = scheduler2.getEvent(id);
|
|
18593
|
+
if (scheduler2._is_virtual_event(event2.id)) {
|
|
18594
|
+
const body = scheduler2.formSection("recurring");
|
|
18595
|
+
if (body && body.node) {
|
|
18596
|
+
const select = body.node.querySelector("select");
|
|
18597
|
+
if (select) {
|
|
18598
|
+
select.disabled = true;
|
|
18599
|
+
}
|
|
18600
|
+
}
|
|
18601
|
+
}
|
|
18602
|
+
});
|
|
18564
18603
|
scheduler2._roll_back_dates = function(ev) {
|
|
18565
18604
|
if (ev.start_date) {
|
|
18566
18605
|
ev.start_date = clearMilliseconds(ev.start_date);
|
|
@@ -18595,24 +18634,24 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18595
18634
|
if (ev._modified)
|
|
18596
18635
|
ev._modified = null;
|
|
18597
18636
|
};
|
|
18598
|
-
scheduler2._is_virtual_event = function(
|
|
18599
|
-
return
|
|
18637
|
+
scheduler2._is_virtual_event = function(id) {
|
|
18638
|
+
return id.toString().indexOf("#") != -1;
|
|
18600
18639
|
};
|
|
18601
18640
|
scheduler2._is_modified_occurrence = function(ev) {
|
|
18602
18641
|
return ev.recurring_event_id && ev.recurring_event_id != "0";
|
|
18603
18642
|
};
|
|
18604
18643
|
scheduler2.showLightbox_rec = scheduler2.showLightbox;
|
|
18605
|
-
scheduler2.showLightbox = function(
|
|
18644
|
+
scheduler2.showLightbox = function(id) {
|
|
18606
18645
|
const locale = this.locale;
|
|
18607
18646
|
let formSetting = scheduler2.config.lightbox_recurring;
|
|
18608
|
-
let ev = this.getEvent(
|
|
18647
|
+
let ev = this.getEvent(id);
|
|
18609
18648
|
let pid = ev.recurring_event_id;
|
|
18610
|
-
let isVirtual = this._is_virtual_event(
|
|
18649
|
+
let isVirtual = this._is_virtual_event(id);
|
|
18611
18650
|
if (isVirtual) {
|
|
18612
|
-
pid =
|
|
18651
|
+
pid = id.split("#")[0];
|
|
18613
18652
|
}
|
|
18614
|
-
const showRequiredLightbox = function(
|
|
18615
|
-
const occurrence = scheduler2.getEvent(
|
|
18653
|
+
const showRequiredLightbox = function(id2, type) {
|
|
18654
|
+
const occurrence = scheduler2.getEvent(id2);
|
|
18616
18655
|
const event2 = scheduler2.getEvent(pid);
|
|
18617
18656
|
const view = scheduler2.getView();
|
|
18618
18657
|
if (view && occurrence[view.y_property]) {
|
|
@@ -18622,7 +18661,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18622
18661
|
event2[view.property] = occurrence[view.property];
|
|
18623
18662
|
}
|
|
18624
18663
|
if (type === "Occurrence") {
|
|
18625
|
-
return scheduler2.showLightbox_rec(
|
|
18664
|
+
return scheduler2.showLightbox_rec(id2);
|
|
18626
18665
|
}
|
|
18627
18666
|
if (type === "Following") {
|
|
18628
18667
|
if (scheduler2._isExceptionFirstOccurrence(occurrence)) {
|
|
@@ -18668,14 +18707,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18668
18707
|
}
|
|
18669
18708
|
};
|
|
18670
18709
|
if ((pid || pid * 1 === 0) && isSeries(ev)) {
|
|
18671
|
-
return showRequiredLightbox(
|
|
18710
|
+
return showRequiredLightbox(id, "AllEvents");
|
|
18672
18711
|
}
|
|
18673
18712
|
if (!pid || pid === "0" || (!locale.labels.confirm_recurring || formSetting == "instance" || formSetting == "series" && !isVirtual)) {
|
|
18674
|
-
return this.showLightbox_rec(
|
|
18713
|
+
return this.showLightbox_rec(id);
|
|
18675
18714
|
}
|
|
18676
18715
|
if (formSetting === "ask") {
|
|
18677
18716
|
const locale2 = scheduler2.locale;
|
|
18678
|
-
showModalbox([{ value: "Occurrence", label: locale2.labels.button_edit_occurrence, checked: true, callback: () => showRequiredLightbox(
|
|
18717
|
+
showModalbox([{ value: "Occurrence", label: locale2.labels.button_edit_occurrence, checked: true, callback: () => showRequiredLightbox(id, "Occurrence") }, { value: "Following", label: locale2.labels.button_edit_occurrence_and_following, callback: () => showRequiredLightbox(id, "Following") }, { value: "AllEvents", label: locale2.labels.button_edit_series, callback: () => showRequiredLightbox(id, "AllEvents") }]);
|
|
18679
18718
|
}
|
|
18680
18719
|
};
|
|
18681
18720
|
function showModalbox(options, callback) {
|
|
@@ -18711,10 +18750,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18711
18750
|
}
|
|
18712
18751
|
} });
|
|
18713
18752
|
}
|
|
18714
|
-
scheduler2._showRequiredModalBox = function(
|
|
18753
|
+
scheduler2._showRequiredModalBox = function(id, type) {
|
|
18715
18754
|
let buttons;
|
|
18716
18755
|
const locale = scheduler2.locale;
|
|
18717
|
-
let occurrence = scheduler2.getEvent(
|
|
18756
|
+
let occurrence = scheduler2.getEvent(id);
|
|
18718
18757
|
let pid = occurrence.recurring_event_id;
|
|
18719
18758
|
let isVirtual = scheduler2._is_virtual_event(occurrence.id);
|
|
18720
18759
|
if (isVirtual) {
|
|
@@ -18772,7 +18811,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18772
18811
|
tempEvent.duration = (+occurrence2.end_date - +occurrence2.start_date) / 1e3;
|
|
18773
18812
|
tempEvent._beforeEventChangedFlag = occurrence2._beforeEventChangedFlag;
|
|
18774
18813
|
if (tempEvent.rrule) {
|
|
18775
|
-
|
|
18814
|
+
updateFollowingRRULE(tempEvent.id, tempEvent);
|
|
18776
18815
|
}
|
|
18777
18816
|
if (!scheduler2.config.collision_limit || scheduler2.checkCollision(tempEvent)) {
|
|
18778
18817
|
for (const i in scheduler2._events) {
|
|
@@ -18792,7 +18831,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18792
18831
|
tempEvent.start_date = occurrence2.start_date;
|
|
18793
18832
|
tempEvent._thisAndFollowing = occurrence2.id;
|
|
18794
18833
|
if (tempEvent.rrule) {
|
|
18795
|
-
|
|
18834
|
+
updateFollowingRRULE(tempEvent.id, tempEvent);
|
|
18796
18835
|
}
|
|
18797
18836
|
let tempEnd = tempEvent.end_date;
|
|
18798
18837
|
tempEvent.end_date = tempEvent._end_date;
|
|
@@ -18898,12 +18937,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18898
18937
|
return old.call(this, ev);
|
|
18899
18938
|
};
|
|
18900
18939
|
var old_update_event = scheduler2.updateEvent;
|
|
18901
|
-
scheduler2.updateEvent = function(
|
|
18902
|
-
var ev = scheduler2.getEvent(
|
|
18903
|
-
if (ev && isSeries(ev) && !this._is_virtual_event(
|
|
18940
|
+
scheduler2.updateEvent = function(id) {
|
|
18941
|
+
var ev = scheduler2.getEvent(id);
|
|
18942
|
+
if (ev && isSeries(ev) && !this._is_virtual_event(id)) {
|
|
18904
18943
|
scheduler2.update_view();
|
|
18905
18944
|
} else {
|
|
18906
|
-
old_update_event.call(this,
|
|
18945
|
+
old_update_event.call(this, id);
|
|
18907
18946
|
}
|
|
18908
18947
|
};
|
|
18909
18948
|
})();
|
|
@@ -18992,8 +19031,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
18992
19031
|
}
|
|
18993
19032
|
return new Date(default_date.valueOf());
|
|
18994
19033
|
};
|
|
18995
|
-
scheduler2.getRecDates = function(
|
|
18996
|
-
var ev = typeof
|
|
19034
|
+
scheduler2.getRecDates = function(id, max) {
|
|
19035
|
+
var ev = typeof id == "object" ? id : scheduler2.getEvent(id);
|
|
18997
19036
|
var recurrings = [];
|
|
18998
19037
|
max = max || 100;
|
|
18999
19038
|
if (!isSeries(ev)) {
|
|
@@ -19608,7 +19647,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
19608
19647
|
return html;
|
|
19609
19648
|
}
|
|
19610
19649
|
var loc = scheduler2.locale.labels;
|
|
19611
|
-
return '<div class="dhx_form_repeat"> <form> <div class="dhx_repeat_left"> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="day" />' + loc.repeat_radio_day + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="week"/>' + loc.repeat_radio_week + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="month" checked />' + loc.repeat_radio_month + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="year" />' + loc.repeat_radio_year + '</label></div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_center"> <div style="display:none;" id="dhx_repeat_day"> <div><label><input class="dhx_repeat_radio" type="radio" name="day_type" value="d"/>' + loc.repeat_radio_day_type + '</label><label><input class="dhx_repeat_text" type="text" name="day_count" value="1" />' + loc.repeat_text_day_count + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="day_type" checked value="w"/>' + loc.repeat_radio_day_type2 + '</label></div> </div> <div style="display:none;" id="dhx_repeat_week"><div><label>' + loc.repeat_week + '<input class="dhx_repeat_text" type="text" name="week_count" value="1" /></label><span>' + loc.repeat_text_week_count + '</span></div> <table class="dhx_repeat_days"> <tr> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="1" />' + loc.day_for_recurring[1] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="4" />' + loc.day_for_recurring[4] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="2" />' + loc.day_for_recurring[2] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="5" />' + loc.day_for_recurring[5] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="3" />' + loc.day_for_recurring[3] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="6" />' + loc.day_for_recurring[6] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="0" />' + loc.day_for_recurring[0] + '</label></div> </td> </tr> </table> </div> <div id="dhx_repeat_month"> <div><label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" value="d"/>' + loc.repeat_radio_month_type + '</label><label><input class="dhx_repeat_text" type="text" name="month_day" value="1" />' + loc.repeat_text_month_day + '</label><label><input class="dhx_repeat_text" type="text" name="month_count" value="1" />' + loc.repeat_text_month_count + '</label></div> <div><label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" checked value="w"/>' + loc.repeat_radio_month_start + '</label><input class="dhx_repeat_text" type="text" name="month_week2" value="1" /><label><select name="month_day2"> <option value="1" selected >' + scheduler2.locale.date.day_full[1] + '<option value="2">' + scheduler2.locale.date.day_full[2] + '<option value="3">' + scheduler2.locale.date.day_full[3] + '<option value="4">' + scheduler2.locale.date.day_full[4] + '<option value="5">' + scheduler2.locale.date.day_full[5] + '<option value="6">' + scheduler2.locale.date.day_full[6] + '<option value="0">' + scheduler2.locale.date.day_full[0] + "</select>" + loc.repeat_text_month_count2_before + '</label><label><input class="dhx_repeat_text" type="text" name="month_count2" value="1" />' + loc.repeat_text_month_count2_after + '</label></div> </div> <div style="display:none;" id="dhx_repeat_year"> <div><label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" value="d"/>' + loc.repeat_radio_day_type + '</label><label><input class="dhx_repeat_text" type="text" name="year_day" value="1" />' + loc.repeat_text_year_day + '</label><label><select name="year_month"><option value="0" selected >' + loc.month_for_recurring[0] + '<option value="1">' + loc.month_for_recurring[1] + '<option value="2">' + loc.month_for_recurring[2] + '<option value="3">' + loc.month_for_recurring[3] + '<option value="4">' + loc.month_for_recurring[4] + '<option value="5">' + loc.month_for_recurring[5] + '<option value="6">' + loc.month_for_recurring[6] + '<option value="7">' + loc.month_for_recurring[7] + '<option value="8">' + loc.month_for_recurring[8] + '<option value="9">' + loc.month_for_recurring[9] + '<option value="10">' + loc.month_for_recurring[10] + '<option value="11">' + loc.month_for_recurring[11] + "</select>" + loc.select_year_month + '</label></div> <div><label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" checked value="w"/>' + loc.repeat_year_label + '</label><input class="dhx_repeat_text" type="text" name="year_week2" value="1" /><select name="year_day2"><option value="1" selected >' + scheduler2.locale.date.day_full[1] + '<option value="2">' + scheduler2.locale.date.day_full[2] + '<option value="3">' + scheduler2.locale.date.day_full[3] + '<option value="4">' + scheduler2.locale.date.day_full[4] + '<option value="5">' + scheduler2.locale.date.day_full[5] + '<option value="6">' + scheduler2.locale.date.day_full[6] + '<option value="7">' + scheduler2.locale.date.day_full[0] + "</select>" + loc.select_year_day2 + '<select name="year_month2"><option value="0" selected >' + loc.month_for_recurring[0] + '<option value="1">' + loc.month_for_recurring[1] + '<option value="2">' + loc.month_for_recurring[2] + '<option value="3">' + loc.month_for_recurring[3] + '<option value="4">' + loc.month_for_recurring[4] + '<option value="5">' + loc.month_for_recurring[5] + '<option value="6">' + loc.month_for_recurring[6] + '<option value="7">' + loc.month_for_recurring[7] + '<option value="8">' + loc.month_for_recurring[8] + '<option value="9">' + loc.month_for_recurring[9] + '<option value="10">' + loc.month_for_recurring[10] + '<option value="11">' + loc.month_for_recurring[11] + '</select></div> </div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_right"> <div><label><input class="dhx_repeat_radio" type="radio" name="end" checked/>' + loc.repeat_radio_end + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="end" />' + loc.repeat_radio_end2 + '</label><input class="dhx_repeat_text" type="text" name="occurences_count" value="1" />' + loc.
|
|
19650
|
+
return '<div class="dhx_form_repeat"> <form> <div class="dhx_repeat_left"> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="day" />' + loc.repeat_radio_day + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="week"/>' + loc.repeat_radio_week + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="month" checked />' + loc.repeat_radio_month + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="year" />' + loc.repeat_radio_year + '</label></div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_center"> <div style="display:none;" id="dhx_repeat_day"> <div><label><input class="dhx_repeat_radio" type="radio" name="day_type" value="d"/>' + loc.repeat_radio_day_type + '</label><label><input class="dhx_repeat_text" type="text" name="day_count" value="1" />' + loc.repeat_text_day_count + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="day_type" checked value="w"/>' + loc.repeat_radio_day_type2 + '</label></div> </div> <div style="display:none;" id="dhx_repeat_week"><div><label>' + loc.repeat_week + '<input class="dhx_repeat_text" type="text" name="week_count" value="1" /></label><span>' + loc.repeat_text_week_count + '</span></div> <table class="dhx_repeat_days"> <tr> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="1" />' + loc.day_for_recurring[1] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="4" />' + loc.day_for_recurring[4] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="2" />' + loc.day_for_recurring[2] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="5" />' + loc.day_for_recurring[5] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="3" />' + loc.day_for_recurring[3] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="6" />' + loc.day_for_recurring[6] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="0" />' + loc.day_for_recurring[0] + '</label></div> </td> </tr> </table> </div> <div id="dhx_repeat_month"> <div><label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" value="d"/>' + loc.repeat_radio_month_type + '</label><label><input class="dhx_repeat_text" type="text" name="month_day" value="1" />' + loc.repeat_text_month_day + '</label><label><input class="dhx_repeat_text" type="text" name="month_count" value="1" />' + loc.repeat_text_month_count + '</label></div> <div><label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" checked value="w"/>' + loc.repeat_radio_month_start + '</label><input class="dhx_repeat_text" type="text" name="month_week2" value="1" /><label><select name="month_day2"> <option value="1" selected >' + scheduler2.locale.date.day_full[1] + '<option value="2">' + scheduler2.locale.date.day_full[2] + '<option value="3">' + scheduler2.locale.date.day_full[3] + '<option value="4">' + scheduler2.locale.date.day_full[4] + '<option value="5">' + scheduler2.locale.date.day_full[5] + '<option value="6">' + scheduler2.locale.date.day_full[6] + '<option value="0">' + scheduler2.locale.date.day_full[0] + "</select>" + loc.repeat_text_month_count2_before + '</label><label><input class="dhx_repeat_text" type="text" name="month_count2" value="1" />' + loc.repeat_text_month_count2_after + '</label></div> </div> <div style="display:none;" id="dhx_repeat_year"> <div><label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" value="d"/>' + loc.repeat_radio_day_type + '</label><label><input class="dhx_repeat_text" type="text" name="year_day" value="1" />' + loc.repeat_text_year_day + '</label><label><select name="year_month"><option value="0" selected >' + loc.month_for_recurring[0] + '<option value="1">' + loc.month_for_recurring[1] + '<option value="2">' + loc.month_for_recurring[2] + '<option value="3">' + loc.month_for_recurring[3] + '<option value="4">' + loc.month_for_recurring[4] + '<option value="5">' + loc.month_for_recurring[5] + '<option value="6">' + loc.month_for_recurring[6] + '<option value="7">' + loc.month_for_recurring[7] + '<option value="8">' + loc.month_for_recurring[8] + '<option value="9">' + loc.month_for_recurring[9] + '<option value="10">' + loc.month_for_recurring[10] + '<option value="11">' + loc.month_for_recurring[11] + "</select>" + loc.select_year_month + '</label></div> <div><label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" checked value="w"/>' + loc.repeat_year_label + '</label><input class="dhx_repeat_text" type="text" name="year_week2" value="1" /><select name="year_day2"><option value="1" selected >' + scheduler2.locale.date.day_full[1] + '<option value="2">' + scheduler2.locale.date.day_full[2] + '<option value="3">' + scheduler2.locale.date.day_full[3] + '<option value="4">' + scheduler2.locale.date.day_full[4] + '<option value="5">' + scheduler2.locale.date.day_full[5] + '<option value="6">' + scheduler2.locale.date.day_full[6] + '<option value="7">' + scheduler2.locale.date.day_full[0] + "</select>" + loc.select_year_day2 + '<select name="year_month2"><option value="0" selected >' + loc.month_for_recurring[0] + '<option value="1">' + loc.month_for_recurring[1] + '<option value="2">' + loc.month_for_recurring[2] + '<option value="3">' + loc.month_for_recurring[3] + '<option value="4">' + loc.month_for_recurring[4] + '<option value="5">' + loc.month_for_recurring[5] + '<option value="6">' + loc.month_for_recurring[6] + '<option value="7">' + loc.month_for_recurring[7] + '<option value="8">' + loc.month_for_recurring[8] + '<option value="9">' + loc.month_for_recurring[9] + '<option value="10">' + loc.month_for_recurring[10] + '<option value="11">' + loc.month_for_recurring[11] + '</select></div> </div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_right"> <div><label><input class="dhx_repeat_radio" type="radio" name="end" checked/>' + loc.repeat_radio_end + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="end" />' + loc.repeat_radio_end2 + '</label><input class="dhx_repeat_text" type="text" name="occurences_count" value="1" />' + loc.repeat_text_occurrences_count + '</div> <div><label><input class="dhx_repeat_radio" type="radio" name="end" />' + loc.repeat_radio_end3 + '</label><input class="dhx_repeat_date" type="text" name="date_of_end" value="' + scheduler2.config.repeat_date_of_end + '" /></div> </div> </form> </div> </div>';
|
|
19612
19651
|
}, _ds: {}, _get_form_node: function(els, name, value) {
|
|
19613
19652
|
var col = els[name];
|
|
19614
19653
|
if (!col)
|
|
@@ -19918,15 +19957,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
19918
19957
|
}
|
|
19919
19958
|
scheduler2.form_blocks["recurring"]._set_repeat_code = set_repeat_code;
|
|
19920
19959
|
for (var i = 0; i < top.elements.length; i++) {
|
|
19921
|
-
var
|
|
19922
|
-
switch (
|
|
19960
|
+
var el = top.elements[i];
|
|
19961
|
+
switch (el.name) {
|
|
19923
19962
|
case "repeat":
|
|
19924
|
-
if (
|
|
19925
|
-
|
|
19926
|
-
|
|
19927
|
-
} else if (!
|
|
19928
|
-
|
|
19929
|
-
|
|
19963
|
+
if (el.nodeName == "SELECT" && !el.$_eventAttached) {
|
|
19964
|
+
el.$_eventAttached = true;
|
|
19965
|
+
el.addEventListener("change", change_current_view);
|
|
19966
|
+
} else if (!el.$_eventAttached) {
|
|
19967
|
+
el.$_eventAttached = true;
|
|
19968
|
+
el.addEventListener("click", change_current_view);
|
|
19930
19969
|
}
|
|
19931
19970
|
break;
|
|
19932
19971
|
}
|
|
@@ -19982,18 +20021,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
19982
20021
|
block._toggle_block();
|
|
19983
20022
|
}, _toggle_block: function() {
|
|
19984
20023
|
var block = scheduler2.form_blocks.recurring;
|
|
19985
|
-
var cont = block._get_form(),
|
|
20024
|
+
var cont = block._get_form(), el = block._get_button();
|
|
19986
20025
|
if (!cont.open && !cont.blocked) {
|
|
19987
20026
|
cont.style.height = "auto";
|
|
19988
|
-
if (
|
|
19989
|
-
|
|
19990
|
-
|
|
20027
|
+
if (el) {
|
|
20028
|
+
el.style.backgroundPosition = "-5px 0px";
|
|
20029
|
+
el.nextSibling.innerHTML = scheduler2.locale.labels.button_recurring_open;
|
|
19991
20030
|
}
|
|
19992
20031
|
} else {
|
|
19993
20032
|
cont.style.height = "0px";
|
|
19994
|
-
if (
|
|
19995
|
-
|
|
19996
|
-
|
|
20033
|
+
if (el) {
|
|
20034
|
+
el.style.backgroundPosition = "-5px 20px";
|
|
20035
|
+
el.nextSibling.innerHTML = scheduler2.locale.labels.button_recurring;
|
|
19997
20036
|
}
|
|
19998
20037
|
}
|
|
19999
20038
|
cont.open = !cont.open;
|
|
@@ -20046,14 +20085,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20046
20085
|
this._rec_markers_pull[ev.event_pid] = {};
|
|
20047
20086
|
this._rec_markers_pull[ev.event_pid][time] = ev;
|
|
20048
20087
|
};
|
|
20049
|
-
scheduler2._get_rec_marker = function(time,
|
|
20050
|
-
var ch = this._rec_markers_pull[
|
|
20088
|
+
scheduler2._get_rec_marker = function(time, id) {
|
|
20089
|
+
var ch = this._rec_markers_pull[id];
|
|
20051
20090
|
if (ch)
|
|
20052
20091
|
return ch[time];
|
|
20053
20092
|
return null;
|
|
20054
20093
|
};
|
|
20055
|
-
scheduler2._get_rec_markers = function(
|
|
20056
|
-
return this._rec_markers_pull[
|
|
20094
|
+
scheduler2._get_rec_markers = function(id) {
|
|
20095
|
+
return this._rec_markers_pull[id] || [];
|
|
20057
20096
|
};
|
|
20058
20097
|
function clearMilliseconds(date) {
|
|
20059
20098
|
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
|
|
@@ -20061,7 +20100,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20061
20100
|
scheduler2._rec_temp = [];
|
|
20062
20101
|
(function() {
|
|
20063
20102
|
var old_add_event = scheduler2.addEvent;
|
|
20064
|
-
scheduler2.addEvent = function(start_date, end_date, text,
|
|
20103
|
+
scheduler2.addEvent = function(start_date, end_date, text, id, extra_data) {
|
|
20065
20104
|
var ev_id = old_add_event.apply(this, arguments);
|
|
20066
20105
|
if (ev_id && scheduler2.getEvent(ev_id)) {
|
|
20067
20106
|
var ev = scheduler2.getEvent(ev_id);
|
|
@@ -20079,35 +20118,35 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20079
20118
|
return ev_id;
|
|
20080
20119
|
};
|
|
20081
20120
|
})();
|
|
20082
|
-
scheduler2.attachEvent("onEventIdChange", function(
|
|
20121
|
+
scheduler2.attachEvent("onEventIdChange", function(id, new_id) {
|
|
20083
20122
|
if (this._ignore_call)
|
|
20084
20123
|
return;
|
|
20085
20124
|
this._ignore_call = true;
|
|
20086
|
-
if (scheduler2._rec_markers[
|
|
20087
|
-
scheduler2._rec_markers[new_id] = scheduler2._rec_markers[
|
|
20088
|
-
delete scheduler2._rec_markers[
|
|
20125
|
+
if (scheduler2._rec_markers[id]) {
|
|
20126
|
+
scheduler2._rec_markers[new_id] = scheduler2._rec_markers[id];
|
|
20127
|
+
delete scheduler2._rec_markers[id];
|
|
20089
20128
|
}
|
|
20090
|
-
if (scheduler2._rec_markers_pull[
|
|
20091
|
-
scheduler2._rec_markers_pull[new_id] = scheduler2._rec_markers_pull[
|
|
20092
|
-
delete scheduler2._rec_markers_pull[
|
|
20129
|
+
if (scheduler2._rec_markers_pull[id]) {
|
|
20130
|
+
scheduler2._rec_markers_pull[new_id] = scheduler2._rec_markers_pull[id];
|
|
20131
|
+
delete scheduler2._rec_markers_pull[id];
|
|
20093
20132
|
}
|
|
20094
20133
|
for (var i = 0; i < this._rec_temp.length; i++) {
|
|
20095
20134
|
var tev = this._rec_temp[i];
|
|
20096
|
-
if (tev.event_pid ==
|
|
20135
|
+
if (tev.event_pid == id) {
|
|
20097
20136
|
tev.event_pid = new_id;
|
|
20098
20137
|
this.changeEventId(tev.id, new_id + "#" + tev.id.split("#")[1]);
|
|
20099
20138
|
}
|
|
20100
20139
|
}
|
|
20101
20140
|
for (var i in this._rec_markers) {
|
|
20102
20141
|
var tev = this._rec_markers[i];
|
|
20103
|
-
if (tev.event_pid ==
|
|
20142
|
+
if (tev.event_pid == id) {
|
|
20104
20143
|
tev.event_pid = new_id;
|
|
20105
20144
|
tev._pid_changed = true;
|
|
20106
20145
|
}
|
|
20107
20146
|
}
|
|
20108
|
-
var
|
|
20109
|
-
if (
|
|
20110
|
-
delete
|
|
20147
|
+
var el = scheduler2._rec_markers[new_id];
|
|
20148
|
+
if (el && el._pid_changed) {
|
|
20149
|
+
delete el._pid_changed;
|
|
20111
20150
|
setTimeout(function() {
|
|
20112
20151
|
if (scheduler2.$destroyed) {
|
|
20113
20152
|
return true;
|
|
@@ -20117,15 +20156,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20117
20156
|
}
|
|
20118
20157
|
delete this._ignore_call;
|
|
20119
20158
|
});
|
|
20120
|
-
scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(
|
|
20121
|
-
var ev = this.getEvent(
|
|
20122
|
-
if (this._is_virtual_event(
|
|
20123
|
-
|
|
20159
|
+
scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id) {
|
|
20160
|
+
var ev = this.getEvent(id);
|
|
20161
|
+
if (this._is_virtual_event(id) || this._is_modified_occurence(ev) && ev.rec_type && ev.rec_type != "none") {
|
|
20162
|
+
id = id.split("#");
|
|
20124
20163
|
var nid = this.uid();
|
|
20125
|
-
var tid =
|
|
20164
|
+
var tid = id[1] ? id[1] : Math.round(ev._pid_time / 1e3);
|
|
20126
20165
|
var nev = this._copy_event(ev);
|
|
20127
20166
|
nev.id = nid;
|
|
20128
|
-
nev.event_pid = ev.event_pid ||
|
|
20167
|
+
nev.event_pid = ev.event_pid || id[0];
|
|
20129
20168
|
var timestamp = tid;
|
|
20130
20169
|
nev.event_length = timestamp;
|
|
20131
20170
|
nev.rec_type = nev.rec_pattern = "none";
|
|
@@ -20134,37 +20173,37 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20134
20173
|
} else {
|
|
20135
20174
|
if (ev.rec_type && this._lightbox_id)
|
|
20136
20175
|
this._roll_back_dates(ev);
|
|
20137
|
-
var sub = this._get_rec_markers(
|
|
20176
|
+
var sub = this._get_rec_markers(id);
|
|
20138
20177
|
for (var i in sub) {
|
|
20139
20178
|
if (sub.hasOwnProperty(i)) {
|
|
20140
|
-
|
|
20141
|
-
if (this.getEvent(
|
|
20142
|
-
this.deleteEvent(
|
|
20179
|
+
id = sub[i].id;
|
|
20180
|
+
if (this.getEvent(id))
|
|
20181
|
+
this.deleteEvent(id, true);
|
|
20143
20182
|
}
|
|
20144
20183
|
}
|
|
20145
20184
|
}
|
|
20146
20185
|
return true;
|
|
20147
20186
|
});
|
|
20148
|
-
scheduler2.attachEvent("onEventDeleted", function(
|
|
20149
|
-
if (!this._is_virtual_event(
|
|
20150
|
-
if (!scheduler2._events[
|
|
20187
|
+
scheduler2.attachEvent("onEventDeleted", function(id, ev) {
|
|
20188
|
+
if (!this._is_virtual_event(id) && this._is_modified_occurence(ev)) {
|
|
20189
|
+
if (!scheduler2._events[id]) {
|
|
20151
20190
|
ev.rec_type = ev.rec_pattern = "none";
|
|
20152
|
-
this.setEvent(
|
|
20191
|
+
this.setEvent(id, ev);
|
|
20153
20192
|
}
|
|
20154
20193
|
}
|
|
20155
20194
|
});
|
|
20156
|
-
scheduler2.attachEvent("onEventChanged", function(
|
|
20195
|
+
scheduler2.attachEvent("onEventChanged", function(id, event2) {
|
|
20157
20196
|
if (this._loading)
|
|
20158
20197
|
return true;
|
|
20159
|
-
var ev = this.getEvent(
|
|
20160
|
-
if (this._is_virtual_event(
|
|
20161
|
-
var
|
|
20198
|
+
var ev = this.getEvent(id);
|
|
20199
|
+
if (this._is_virtual_event(id)) {
|
|
20200
|
+
var id = id.split("#");
|
|
20162
20201
|
var nid = this.uid();
|
|
20163
20202
|
this._not_render = true;
|
|
20164
20203
|
var nev = this._copy_event(event2);
|
|
20165
20204
|
nev.id = nid;
|
|
20166
|
-
nev.event_pid =
|
|
20167
|
-
var timestamp =
|
|
20205
|
+
nev.event_pid = id[0];
|
|
20206
|
+
var timestamp = id[1];
|
|
20168
20207
|
nev.event_length = timestamp;
|
|
20169
20208
|
nev.rec_type = nev.rec_pattern = "";
|
|
20170
20209
|
this._add_rec_marker(nev, timestamp * 1e3);
|
|
@@ -20180,17 +20219,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20180
20219
|
if (ev.rec_type && this._lightbox_id) {
|
|
20181
20220
|
this._roll_back_dates(ev);
|
|
20182
20221
|
}
|
|
20183
|
-
var sub = this._get_rec_markers(
|
|
20222
|
+
var sub = this._get_rec_markers(id);
|
|
20184
20223
|
for (var i in sub) {
|
|
20185
20224
|
if (sub.hasOwnProperty(i)) {
|
|
20186
20225
|
delete this._rec_markers[sub[i].id];
|
|
20187
20226
|
this.deleteEvent(sub[i].id, true);
|
|
20188
20227
|
}
|
|
20189
20228
|
}
|
|
20190
|
-
delete this._rec_markers_pull[
|
|
20229
|
+
delete this._rec_markers_pull[id];
|
|
20191
20230
|
var isEventFound = false;
|
|
20192
20231
|
for (var k = 0; k < this._rendered.length; k++) {
|
|
20193
|
-
if (this._rendered[k].getAttribute(this.config.event_attribute) ==
|
|
20232
|
+
if (this._rendered[k].getAttribute(this.config.event_attribute) == id)
|
|
20194
20233
|
isEventFound = true;
|
|
20195
20234
|
}
|
|
20196
20235
|
if (!isEventFound)
|
|
@@ -20198,29 +20237,29 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20198
20237
|
}
|
|
20199
20238
|
return true;
|
|
20200
20239
|
});
|
|
20201
|
-
scheduler2.attachEvent("onEventAdded", function(
|
|
20240
|
+
scheduler2.attachEvent("onEventAdded", function(id) {
|
|
20202
20241
|
if (!this._loading) {
|
|
20203
|
-
var ev = this.getEvent(
|
|
20242
|
+
var ev = this.getEvent(id);
|
|
20204
20243
|
if (ev.rec_type && !ev.event_length) {
|
|
20205
20244
|
this._roll_back_dates(ev);
|
|
20206
20245
|
}
|
|
20207
20246
|
}
|
|
20208
20247
|
return true;
|
|
20209
20248
|
});
|
|
20210
|
-
scheduler2.attachEvent("onEventSave", function(
|
|
20211
|
-
var ev = this.getEvent(
|
|
20212
|
-
if (!ev.rec_type && data.rec_type && !this._is_virtual_event(
|
|
20249
|
+
scheduler2.attachEvent("onEventSave", function(id, data, is_new_event) {
|
|
20250
|
+
var ev = this.getEvent(id);
|
|
20251
|
+
if (!ev.rec_type && data.rec_type && !this._is_virtual_event(id))
|
|
20213
20252
|
this._select_id = null;
|
|
20214
20253
|
return true;
|
|
20215
20254
|
});
|
|
20216
|
-
scheduler2.attachEvent("onEventCreated", function(
|
|
20217
|
-
var ev = this.getEvent(
|
|
20255
|
+
scheduler2.attachEvent("onEventCreated", function(id) {
|
|
20256
|
+
var ev = this.getEvent(id);
|
|
20218
20257
|
if (!ev.rec_type)
|
|
20219
20258
|
ev.rec_type = ev.rec_pattern = ev.event_length = ev.event_pid = "";
|
|
20220
20259
|
return true;
|
|
20221
20260
|
});
|
|
20222
|
-
scheduler2.attachEvent("onEventCancel", function(
|
|
20223
|
-
var ev = this.getEvent(
|
|
20261
|
+
scheduler2.attachEvent("onEventCancel", function(id) {
|
|
20262
|
+
var ev = this.getEvent(id);
|
|
20224
20263
|
if (ev.rec_type) {
|
|
20225
20264
|
this._roll_back_dates(ev);
|
|
20226
20265
|
this.render_view_data();
|
|
@@ -20242,32 +20281,32 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20242
20281
|
ev.start_date.setFullYear(ev._start_date.getFullYear());
|
|
20243
20282
|
}
|
|
20244
20283
|
};
|
|
20245
|
-
scheduler2._is_virtual_event = function(
|
|
20246
|
-
return
|
|
20284
|
+
scheduler2._is_virtual_event = function(id) {
|
|
20285
|
+
return id.toString().indexOf("#") != -1;
|
|
20247
20286
|
};
|
|
20248
20287
|
scheduler2._is_modified_occurence = function(ev) {
|
|
20249
20288
|
return ev.event_pid && ev.event_pid != "0";
|
|
20250
20289
|
};
|
|
20251
20290
|
scheduler2.showLightbox_rec = scheduler2.showLightbox;
|
|
20252
|
-
scheduler2.showLightbox = function(
|
|
20291
|
+
scheduler2.showLightbox = function(id) {
|
|
20253
20292
|
var locale = this.locale;
|
|
20254
20293
|
var c = scheduler2.config.lightbox_recurring;
|
|
20255
|
-
var ev = this.getEvent(
|
|
20294
|
+
var ev = this.getEvent(id);
|
|
20256
20295
|
var pid = ev.event_pid;
|
|
20257
|
-
var isVirtual = this._is_virtual_event(
|
|
20296
|
+
var isVirtual = this._is_virtual_event(id);
|
|
20258
20297
|
if (isVirtual)
|
|
20259
|
-
pid =
|
|
20260
|
-
var showSeries = function(
|
|
20261
|
-
var event2 = scheduler2.getEvent(
|
|
20298
|
+
pid = id.split("#")[0];
|
|
20299
|
+
var showSeries = function(id2) {
|
|
20300
|
+
var event2 = scheduler2.getEvent(id2);
|
|
20262
20301
|
event2._end_date = event2.end_date;
|
|
20263
20302
|
event2.end_date = new Date(event2.start_date.valueOf() + event2.event_length * 1e3);
|
|
20264
|
-
return scheduler2.showLightbox_rec(
|
|
20303
|
+
return scheduler2.showLightbox_rec(id2);
|
|
20265
20304
|
};
|
|
20266
20305
|
if ((pid || pid * 1 === 0) && ev.rec_type) {
|
|
20267
|
-
return showSeries(
|
|
20306
|
+
return showSeries(id);
|
|
20268
20307
|
}
|
|
20269
20308
|
if (!pid || pid === "0" || (!locale.labels.confirm_recurring || c == "instance" || c == "series" && !isVirtual)) {
|
|
20270
|
-
return this.showLightbox_rec(
|
|
20309
|
+
return this.showLightbox_rec(id);
|
|
20271
20310
|
}
|
|
20272
20311
|
if (c == "ask") {
|
|
20273
20312
|
var that = this;
|
|
@@ -20276,7 +20315,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20276
20315
|
case 0:
|
|
20277
20316
|
return showSeries(pid);
|
|
20278
20317
|
case 1:
|
|
20279
|
-
return that.showLightbox_rec(
|
|
20318
|
+
return that.showLightbox_rec(id);
|
|
20280
20319
|
case 2:
|
|
20281
20320
|
return;
|
|
20282
20321
|
}
|
|
@@ -20309,15 +20348,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20309
20348
|
return old.call(this, ev);
|
|
20310
20349
|
};
|
|
20311
20350
|
var old_update_event = scheduler2.updateEvent;
|
|
20312
|
-
scheduler2.updateEvent = function(
|
|
20313
|
-
var ev = scheduler2.getEvent(
|
|
20351
|
+
scheduler2.updateEvent = function(id) {
|
|
20352
|
+
var ev = scheduler2.getEvent(id);
|
|
20314
20353
|
if (ev && ev.rec_type) {
|
|
20315
20354
|
ev.rec_pattern = (ev.rec_type || "").split("#")[0];
|
|
20316
20355
|
}
|
|
20317
|
-
if (ev && ev.rec_type && !this._is_virtual_event(
|
|
20356
|
+
if (ev && ev.rec_type && !this._is_virtual_event(id)) {
|
|
20318
20357
|
scheduler2.update_view();
|
|
20319
20358
|
} else {
|
|
20320
|
-
old_update_event.call(this,
|
|
20359
|
+
old_update_event.call(this, id);
|
|
20321
20360
|
}
|
|
20322
20361
|
};
|
|
20323
20362
|
})();
|
|
@@ -20474,8 +20513,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
20474
20513
|
}
|
|
20475
20514
|
return new Date(default_date.valueOf());
|
|
20476
20515
|
};
|
|
20477
|
-
scheduler2.getRecDates = function(
|
|
20478
|
-
var ev = typeof
|
|
20516
|
+
scheduler2.getRecDates = function(id, max) {
|
|
20517
|
+
var ev = typeof id == "object" ? id : scheduler2.getEvent(id);
|
|
20479
20518
|
var recurrings = [];
|
|
20480
20519
|
max = max || 100;
|
|
20481
20520
|
if (!ev.rec_type) {
|
|
@@ -21059,8 +21098,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
21059
21098
|
t2.addEventListener("click", scheduler2._click.dhx_cal_data);
|
|
21060
21099
|
t2.addEventListener("click", function(e2) {
|
|
21061
21100
|
if (e2.target.closest(`[${scheduler2.config.event_attribute}]`)) {
|
|
21062
|
-
const
|
|
21063
|
-
scheduler2.showLightbox(
|
|
21101
|
+
const id = e2.target.closest(`[${scheduler2.config.event_attribute}]`).getAttribute(scheduler2.config.event_attribute);
|
|
21102
|
+
scheduler2.showLightbox(id);
|
|
21064
21103
|
}
|
|
21065
21104
|
});
|
|
21066
21105
|
}
|
|
@@ -21216,17 +21255,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
|
|
|
21216
21255
|
};
|
|
21217
21256
|
var locateEvent = scheduler2._locate_event;
|
|
21218
21257
|
scheduler2._locate_event = function(node) {
|
|
21219
|
-
var
|
|
21220
|
-
if (!
|
|
21258
|
+
var id = locateEvent.apply(scheduler2, arguments);
|
|
21259
|
+
if (!id) {
|
|
21221
21260
|
var date = getCellDate(node);
|
|
21222
21261
|
if (!date)
|
|
21223
21262
|
return null;
|
|
21224
21263
|
var evs = scheduler2.getEvents(date, scheduler2.date.add(date, 1, "day"));
|
|
21225
21264
|
if (!evs.length)
|
|
21226
21265
|
return null;
|
|
21227
|
-
|
|
21266
|
+
id = evs[0].id;
|
|
21228
21267
|
}
|
|
21229
|
-
return
|
|
21268
|
+
return id;
|
|
21230
21269
|
};
|
|
21231
21270
|
scheduler2.attachEvent("onDestroy", function() {
|
|
21232
21271
|
scheduler2._hideToolTip();
|