diff options
author | AlexKlimenkov <shurick.klimenkov@gmail.com> | 2015-02-03 14:29:45 +0300 |
---|---|---|
committer | AlexKlimenkov <shurick.klimenkov@gmail.com> | 2015-02-05 13:25:55 +0300 |
commit | f56a0475d90af025e92ec4716ff4e5121992b4fe (patch) | |
tree | c351eff2ed0b007eafed412a513bbec5fb4c5f91 /codebase/sources/ext/dhtmlxscheduler_url.js | |
parent | 32504c39dd0183ac30da815e4cf41ac8fa022b99 (diff) | |
download | scheduler-f56a0475d90af025e92ec4716ff4e5121992b4fe.zip scheduler-f56a0475d90af025e92ec4716ff4e5121992b4fe.tar.gz scheduler-f56a0475d90af025e92ec4716ff4e5121992b4fe.tar.bz2 |
[update] version 4.3.0v4.3.0
Diffstat (limited to 'codebase/sources/ext/dhtmlxscheduler_url.js')
-rw-r--r-- | codebase/sources/ext/dhtmlxscheduler_url.js | 103 |
1 files changed, 73 insertions, 30 deletions
diff --git a/codebase/sources/ext/dhtmlxscheduler_url.js b/codebase/sources/ext/dhtmlxscheduler_url.js index 554a5c6..9718d59 100644 --- a/codebase/sources/ext/dhtmlxscheduler_url.js +++ b/codebase/sources/ext/dhtmlxscheduler_url.js @@ -1,37 +1,80 @@ /* -dhtmlxScheduler v.4.2.0 Stardard +dhtmlxScheduler v.4.3.0 Stardard This software is covered by GPL license. You also can obtain Commercial or Enterprise license to use it in non-GPL project - please contact sales@dhtmlx.com. Usage without proper license is prohibited. (c) Dinamenta, UAB. */ -scheduler.attachEvent("onTemplatesReady",function(){ - var first = true; - var s2d = scheduler.date.str_to_date("%Y-%m-%d"); - var d2s = scheduler.date.date_to_str("%Y-%m-%d"); - scheduler.attachEvent("onBeforeViewChange",function(om,od,m,d){ - if (first){ - first = false; - var p={}; - var data=(document.location.hash||"").replace("#","").split(","); - for (var i=0; i < data.length; i++) { - var s = data[i].split("="); - if (s.length==2) - p[s[0]]=s[1]; - } - - if (p.date || p.mode){ - try{ - this.setCurrentView((p.date?s2d(p.date):null),(p.mode||null)); - } catch(e){ - //assuming that mode is not available anymore - this.setCurrentView((p.date?s2d(p.date):null),m); - } - return false; - } - } - var text = "#date="+d2s(d||od)+",mode="+(m||om); - document.location.hash = text; - return true; - }); +scheduler._get_url_nav = function(){ + var p = {}; + var data = (document.location.hash || "").replace("#", "").split(","); + for (var i = 0; i < data.length; i++) { + var s = data[i].split("="); + if (s.length == 2) + p[s[0]] = s[1]; + } + return p; +}; + +scheduler.attachEvent("onTemplatesReady", function () { + var first = true; + var s2d = scheduler.date.str_to_date("%Y-%m-%d"); + var d2s = scheduler.date.date_to_str("%Y-%m-%d"); + var select_event = scheduler._get_url_nav().event || null; + + scheduler.attachEvent("onAfterEventDisplay", function(ev){ + select_event = null; + return true; + }); + + scheduler.attachEvent("onBeforeViewChange", function (om, od, m, d) { + if (first) { + first = false; + var p = scheduler._get_url_nav(); + + if (p.event){ + try{ + if(scheduler.getEvent(p.event)){ + showEvent(p.event); + return false; + }else{ + var handler = scheduler.attachEvent("onXLE", function(){ + showEvent(p.event); + scheduler.detachEvent(handler); + }); + } + } catch (e){} + } + + if (p.date || p.mode) { + try { + this.setCurrentView((p.date ? s2d(p.date) : null), (p.mode || null)); + } catch (e) { + //assuming that mode is not available anymore + this.setCurrentView((p.date ? s2d(p.date) : null), m); + } + return false; + } + } + + var values = [ + "date=" + d2s(d || od), + "mode=" + (m || om) + ]; + + if(select_event){ + values.push("event=" + select_event); + } + + var text = "#" + values.join(","); + document.location.hash = text; + return true; + }); + + function showEvent(e){ + select_event = e; + if(scheduler.getEvent(e)){ + scheduler.showEvent(e); + } + } });
\ No newline at end of file |