summaryrefslogtreecommitdiffstats
path: root/codebase/sources/ext/dhtmlxscheduler_year_view.js
diff options
context:
space:
mode:
Diffstat (limited to 'codebase/sources/ext/dhtmlxscheduler_year_view.js')
-rw-r--r--codebase/sources/ext/dhtmlxscheduler_year_view.js73
1 files changed, 48 insertions, 25 deletions
diff --git a/codebase/sources/ext/dhtmlxscheduler_year_view.js b/codebase/sources/ext/dhtmlxscheduler_year_view.js
index 74e15d3..200b185 100644
--- a/codebase/sources/ext/dhtmlxscheduler_year_view.js
+++ b/codebase/sources/ext/dhtmlxscheduler_year_view.js
@@ -1,6 +1,6 @@
/*
@license
-dhtmlxScheduler v.4.3.1
+dhtmlxScheduler v.4.4.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.
@@ -27,7 +27,8 @@ scheduler.templates.year_tooltip = function(s, e, ev) {
scheduler.dblclick_dhx_month_head = function(e) {
if (is_year_mode()) {
var t = (e.target || e.srcElement);
- if (t.parentNode.className.indexOf("dhx_before") != -1 || t.parentNode.className.indexOf("dhx_after") != -1) return false;
+ var className = scheduler._getClassName(t.parentNode);
+ if (className.indexOf("dhx_before") != -1 || className.indexOf("dhx_after") != -1) return false;
var start = this.templates.xml_date(t.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute("date"));
start.setDate(parseInt(t.innerHTML, 10));
var end = this.date.add(start, 1, "day");
@@ -127,7 +128,7 @@ scheduler.templates.year_tooltip = function(s, e, ev) {
var src = e.target || e.srcElement;
if (src.tagName.toLowerCase() == 'a') // fix for active links extension (it adds links to the date in the cell)
src = src.parentNode;
- if ((src.className || "").indexOf("dhx_year_event") != -1)
+ if (scheduler._getClassName(src).indexOf("dhx_year_event") != -1)
scheduler._showToolTip(from_attr(src.getAttribute("date")), getOffset(src), e, src);
else
scheduler._hideToolTip();
@@ -151,8 +152,7 @@ scheduler.templates.year_tooltip = function(s, e, ev) {
var t = this._els["dhx_cal_data"][0].childNodes[m];
var d = this.week_starts[m] + d.getDate() - 1;
-
- return t.childNodes[2].firstChild.rows[Math.floor(d / 7)].cells[d % 7].firstChild;
+ return t.querySelector(".dhx_year_body").firstChild.rows[Math.floor(d / 7)].cells[d % 7].firstChild;
};
scheduler._year_marked_cells = {};
@@ -234,15 +234,27 @@ scheduler.templates.year_tooltip = function(s, e, ev) {
var left = 0;
var week_template = document.createElement("div");
var dummy_date = this.date.week_start(scheduler._currentDate());
+
+ this._process_ignores(dummy_date, 7, "day", 1);
+
+ var scales_count = 7 - (this._ignores_detected || 0);
+ var real_count = 0;
for (var i = 0; i < 7; i++) {
- this._cols[i] = Math.floor(summ / (7 - i));
- this._render_x_header(i, left, dummy_date, week_template);
+ if(!(this._ignores && this._ignores[i])) {
+ this._cols[i] = Math.floor(summ / (scales_count - real_count));
+ this._render_x_header(i, left, dummy_date, week_template);
+ summ -= this._cols[i];
+ left += this._cols[i];
+ real_count++;
+ }
dummy_date = this.date.add(dummy_date, 1, "day");
- summ -= this._cols[i];
- left += this._cols[i];
}
week_template.lastChild.className += " dhx_scale_bar_last";
+ for(var i = 0; i < week_template.childNodes.length; i++){
+ this._waiAria.yearHeadCell(week_template.childNodes[i]);
+ }
+
var sd = this.date[this._mode + "_start"](this.date.copy(this._date));
var ssd = sd;
var d = null;
@@ -251,24 +263,35 @@ scheduler.templates.year_tooltip = function(s, e, ev) {
d = document.createElement("DIV");
d.style.cssText = "position:absolute;";
d.setAttribute("date", this.templates.xml_format(sd));
- d.innerHTML = "<div class='dhx_year_month'></div><div class='dhx_year_week'>" + week_template.innerHTML + "</div><div class='dhx_year_body'></div>";
- d.childNodes[0].innerHTML = this.templates.year_month(sd);
+ d.innerHTML = "<div class='dhx_year_month'></div><div class='dhx_year_grid'><div class='dhx_year_week'>" + week_template.innerHTML + "</div><div class='dhx_year_body'></div></div>";
+
+ var header = d.querySelector(".dhx_year_month");
+ var grid = d.querySelector(".dhx_year_grid");
+ var weekHeader = d.querySelector(".dhx_year_week");
+ var body = d.querySelector(".dhx_year_body");
+
+ var headerId = scheduler.uid();
+ this._waiAria.yearHeader(header, headerId);
+ this._waiAria.yearGrid(grid, headerId);
+
+
+ header.innerHTML = this.templates.year_month(sd);
+
+
var dd = this.date.week_start(sd);
- var ed = this._reset_month_scale(d.childNodes[2], sd, dd);
-
- var r = d.childNodes[2].firstChild.rows;
- for (var k=r.length; k<6; k++) {
- r[0].parentNode.appendChild(r[0].cloneNode(true));
- for (var ri= 0, len = r[k].childNodes.length; ri < len; ri++) {
- r[k].childNodes[ri].className = "dhx_after";
- r[k].childNodes[ri].firstChild.innerHTML = scheduler.templates.month_day(ed);
- ed = scheduler.date.add(ed,1,"day");
- }
+ var ed = this._reset_month_scale(body, sd, dd, 6);
+
+ var days = body.querySelectorAll("td");
+ for(var day = 0; day < days.length; day++){
+ this._waiAria.yearDayCell(days[day]);
}
+
+
+
b.appendChild(d);
- d.childNodes[1].style.height = d.childNodes[1].childNodes[0].offsetHeight + "px"; // dhx_year_week should have height property so that day dates would get correct position. dhx_year_week height = height of it's child (with the day name)
+ weekHeader.style.height = weekHeader.childNodes[0].offsetHeight + "px"; // dhx_year_week should have height property so that day dates would get correct position. dhx_year_week height = height of it's child (with the day name)
var dt = Math.round((dy - 190) / 2);
d.style.marginTop = dt + "px";
this.set_xy(d, dx - 10, dy - dt - 10, dx * j + 5, dy * i + 5 + scheduler.xy.year_top);
@@ -338,10 +361,10 @@ scheduler.templates.year_tooltip = function(s, e, ev) {
if(!date)
return null;
- return scheduler.date.week_start(scheduler.templates.xml_date(date));
+ return scheduler.date.week_start(scheduler.date.month_start(from_attr(date)));
};
scheduler._locate_year_month_day = function(n){
- return n.className && n.className.indexOf("dhx_year_event") != -1 && n.hasAttribute && n.hasAttribute("date");
+ return scheduler._getClassName(n).indexOf("dhx_year_event") != -1 && n.hasAttribute && n.hasAttribute("date");
};
var locateEvent = scheduler._locate_event;
@@ -352,7 +375,7 @@ scheduler.templates.year_tooltip = function(s, e, ev) {
if(!day || !day.hasAttribute("date")) return null;
- var dat = scheduler.templates.xml_date(day.getAttribute("date"));
+ var dat = from_attr(day.getAttribute("date"));
var evs = scheduler.getEvents(dat, scheduler.date.add(dat, 1, "day"));
if(!evs.length) return null;