2011-04-07 12:13:31 +00:00
|
|
|
/*---------------------------------------------------------
|
|
|
|
* OpenERP base_gantt
|
|
|
|
*---------------------------------------------------------*/
|
|
|
|
|
2011-04-13 14:20:01 +00:00
|
|
|
openerp.base_gantt = function (openerp) {
|
|
|
|
QWeb.add_template('/base_gantt/static/src/xml/base_gantt.xml');
|
|
|
|
openerp.base.views.add('gantt', 'openerp.base_gantt.GanttView');
|
|
|
|
openerp.base_gantt.GanttView = openerp.base.Controller.extend({
|
2011-04-07 12:13:31 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
init: function(view_manager, session, element_id, dataset, view_id) {
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-07 12:13:31 +00:00
|
|
|
this._super(session, element_id);
|
|
|
|
this.view_manager = view_manager;
|
|
|
|
this.dataset = dataset;
|
|
|
|
this.model = dataset.model;
|
|
|
|
this.view_id = view_id;
|
|
|
|
this.fields_views = {};
|
|
|
|
this.widgets = {};
|
|
|
|
this.widgets_counter = 0;
|
2011-04-15 09:32:53 +00:00
|
|
|
this.fields = this.dataset.fields ? this.dataset.fields: {};
|
|
|
|
this.ids = this.dataset.ids;
|
2011-04-28 11:57:03 +00:00
|
|
|
this.name = "";
|
|
|
|
this.date_start = "";
|
|
|
|
this.date_delay = "";
|
|
|
|
this.date_stop = "";
|
|
|
|
this.color_field = "";
|
|
|
|
this.colors = [];
|
|
|
|
this.color_values = [];
|
|
|
|
this.calendar_fields = {};
|
|
|
|
this.info_fields = [];
|
|
|
|
this.domain = this.dataset._domain ? this.dataset._domain: [];
|
|
|
|
this.context = {};
|
2011-04-07 12:13:31 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-07 12:13:31 +00:00
|
|
|
start: function() {
|
2011-05-13 07:19:52 +00:00
|
|
|
this.rpc("/base_gantt/ganttview/load",
|
2011-04-28 11:57:03 +00:00
|
|
|
{"model": this.model, "view_id": this.view_id}, this.on_loaded);
|
2011-04-07 12:13:31 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-07 12:13:31 +00:00
|
|
|
on_loaded: function(data) {
|
2011-04-28 11:57:03 +00:00
|
|
|
|
|
|
|
var self = this;
|
2011-04-07 12:13:31 +00:00
|
|
|
this.fields_view = data.fields_view;
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-20 06:16:50 +00:00
|
|
|
this.name = this.fields_view.arch.attrs.string;
|
2011-04-07 12:13:31 +00:00
|
|
|
this.view_id = this.fields_view.view_id;
|
|
|
|
|
|
|
|
this.date_start = this.fields_view.arch.attrs.date_start;
|
|
|
|
this.date_delay = this.fields_view.arch.attrs.date_delay;
|
|
|
|
this.date_stop = this.fields_view.arch.attrs.date_stop;
|
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
this.color_field = this.fields_view.arch.attrs.color;
|
2011-04-07 12:13:31 +00:00
|
|
|
this.day_length = this.fields_view.arch.attrs.day_length || 8;
|
|
|
|
this.colors = this.fields_view.arch.attrs.colors;
|
|
|
|
|
|
|
|
this.text = this.fields_view.arch.children[0].children[0].attrs.name;
|
|
|
|
this.parent = this.fields_view.arch.children[0].attrs.link;
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-13 07:19:52 +00:00
|
|
|
this.format = "yyyy-MM-dd";
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
self.create_gantt();
|
2011-05-13 07:19:52 +00:00
|
|
|
self.get_events();
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-07 12:13:31 +00:00
|
|
|
this.$element.html(QWeb.render("GanttView", {"view": this, "fields_view": this.fields_view}));
|
|
|
|
|
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
create_gantt: function() {
|
|
|
|
|
2011-04-28 11:57:03 +00:00
|
|
|
ganttChartControl = new GanttChart(this.day_length);
|
|
|
|
ganttChartControl.setImagePath("/base_gantt/static/lib/dhtmlxGantt/codebase/imgs/");
|
|
|
|
ganttChartControl.setEditable(true);
|
|
|
|
ganttChartControl.showTreePanel(true);
|
|
|
|
ganttChartControl.showContextMenu(true);
|
|
|
|
ganttChartControl.showDescTask(true,'d,s-f');
|
|
|
|
ganttChartControl.showDescProject(true,'n,d');
|
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-13 07:19:52 +00:00
|
|
|
get_events: function() {
|
2011-04-28 11:57:03 +00:00
|
|
|
|
|
|
|
var self = this;
|
2011-05-13 07:19:52 +00:00
|
|
|
this.dataset.read_ids(this.dataset.ids, {}, function(result) {
|
2011-04-28 11:57:03 +00:00
|
|
|
self.load_event(result);
|
|
|
|
});
|
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
load_event: function(events) {
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
var self = this;
|
|
|
|
var result = events;
|
2011-05-20 06:16:50 +00:00
|
|
|
var smalldate = "";
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-13 07:19:52 +00:00
|
|
|
COLOR_PALETTE = ['#ccccff', '#cc99ff', '#75507b', '#3465a4', '#73d216', '#c17d11', '#edd400',
|
|
|
|
'#fcaf3e', '#ef2929', '#ff00c9', '#ad7fa8', '#729fcf', '#8ae234', '#e9b96e', '#fce94f',
|
|
|
|
'#ff8e00', '#ff0000', '#b0008c', '#9000ff', '#0078ff', '#00ff00', '#e6ff00', '#ffff00',
|
|
|
|
'#905000', '#9b0000', '#840067', '#510090', '#0000c9', '#009b00', '#9abe00', '#ffc900']
|
|
|
|
|
2011-05-20 06:16:50 +00:00
|
|
|
if (result.length != 0){
|
|
|
|
var show_event = [];
|
|
|
|
for (i in result){
|
|
|
|
var res = result[i];
|
|
|
|
if (res[this.date_start] != false){
|
|
|
|
|
|
|
|
var start_date = this.convert_str_date(res[this.date_start]);
|
|
|
|
res[this.date_start] = start_date;
|
|
|
|
show_event.push(res);
|
|
|
|
if (smalldate == ""){
|
|
|
|
smalldate = start_date;
|
2011-04-28 11:57:03 +00:00
|
|
|
}
|
2011-05-20 06:16:50 +00:00
|
|
|
else{
|
|
|
|
if (start_date < smalldate){
|
|
|
|
smalldate = start_date;
|
|
|
|
}
|
2011-04-28 11:57:03 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2011-05-20 06:16:50 +00:00
|
|
|
project = new GanttProjectInfo(1, self.name, smalldate);
|
|
|
|
ganttChartControl.addProject(project);
|
2011-04-28 11:57:03 +00:00
|
|
|
}
|
|
|
|
|
2011-05-20 06:16:50 +00:00
|
|
|
//create child
|
2011-05-13 07:19:52 +00:00
|
|
|
var k = 0;
|
|
|
|
var color_box = {};
|
2011-06-06 12:01:19 +00:00
|
|
|
var parents = {};
|
|
|
|
var all_events = {};
|
|
|
|
var child_event = {};
|
|
|
|
var temp_id = "";
|
|
|
|
var final_events = [];
|
2011-05-20 06:16:50 +00:00
|
|
|
for (i in show_event) {
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-20 06:16:50 +00:00
|
|
|
var res = show_event[i];
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-20 06:16:50 +00:00
|
|
|
var id = res['id'];
|
|
|
|
var text = res[this.text];
|
|
|
|
var start_date = res[this.date_start];
|
2011-05-13 07:19:52 +00:00
|
|
|
|
2011-05-20 06:16:50 +00:00
|
|
|
var color = res[this.color_field][0] || res[this.color_field];
|
|
|
|
if (color_box[color] == undefined){
|
|
|
|
color_box[color] = COLOR_PALETTE[k];
|
|
|
|
k = k + 1;
|
|
|
|
}
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-20 06:16:50 +00:00
|
|
|
if (this.date_stop != undefined){
|
|
|
|
if (res[this.date_stop] != false){
|
|
|
|
var stop_date = this.convert_str_date(res[this.date_stop]);
|
|
|
|
var duration= self.hours_between(start_date, stop_date);
|
2011-04-28 11:57:03 +00:00
|
|
|
}
|
|
|
|
else{
|
2011-05-20 06:16:50 +00:00
|
|
|
var duration = 0;
|
2011-04-28 11:57:03 +00:00
|
|
|
}
|
|
|
|
}
|
2011-05-20 06:16:50 +00:00
|
|
|
else{
|
|
|
|
var duration = res[this.date_delay];
|
|
|
|
}
|
|
|
|
if (duration == false)
|
|
|
|
duration = 0
|
2011-06-06 12:01:19 +00:00
|
|
|
|
|
|
|
if (self.grp != undefined){
|
|
|
|
for (j in self.grp){
|
|
|
|
var grp_key = res[self.grp[j]['group_by']];
|
|
|
|
if (typeof(grp_key) == "object"){
|
|
|
|
grp_key = res[self.grp[j]['group_by']][1];
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
grp_key = res[self.grp[j]['group_by']];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (grp_key == false){
|
|
|
|
grp_key = "False";
|
|
|
|
}
|
|
|
|
|
|
|
|
if (j == 0){
|
|
|
|
if (parents[grp_key] == undefined){
|
|
|
|
var mod_id = i+ "_" +j;
|
|
|
|
parents[grp_key] = mod_id;
|
|
|
|
child_event[mod_id] = {};
|
|
|
|
all_events[mod_id] = {'parent': "", 'evt':[mod_id , grp_key, start_date, start_date, 100, "", "white"]};
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
mod_id = parents[grp_key];
|
|
|
|
}
|
|
|
|
temp_id = mod_id;
|
|
|
|
}else{
|
|
|
|
if (child_event[mod_id][grp_key] == undefined){
|
|
|
|
var ch_mod_id = i+ "_" +j;
|
|
|
|
child_event[mod_id][grp_key] = ch_mod_id;
|
|
|
|
child_event[ch_mod_id] = {};
|
|
|
|
temp_id = ch_mod_id;
|
|
|
|
all_events[ch_mod_id] = {'parent': mod_id, 'evt':[ch_mod_id , grp_key, start_date, start_date, 100, "","white"]};
|
|
|
|
mod_id = ch_mod_id;
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
mod_id = child_event[mod_id][grp_key];
|
|
|
|
temp_id = mod_id;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
all_events[id] = {'parent': temp_id, 'evt':[id , text, start_date, duration, 100, "", color_box[color]]};
|
|
|
|
final_events.push(id);
|
|
|
|
}
|
2011-04-15 09:32:53 +00:00
|
|
|
}
|
|
|
|
|
2011-06-06 12:01:19 +00:00
|
|
|
for (i in final_events){
|
|
|
|
var evt_id = final_events[i];
|
|
|
|
var evt_date = all_events[evt_id]['evt'][2];
|
|
|
|
while (all_events[evt_id]['parent'] != "") {
|
|
|
|
var parent_id =all_events[evt_id]['parent'];
|
|
|
|
if (all_events[parent_id]['evt'][2] > evt_date){
|
|
|
|
all_events[parent_id]['evt'][2] = evt_date;
|
|
|
|
}
|
|
|
|
evt_id = parent_id;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var evt_id = [];
|
|
|
|
var evt_date = "";
|
|
|
|
var evt_duration = "";
|
|
|
|
var evt_end_date = "";
|
|
|
|
|
|
|
|
for (i in final_events){
|
|
|
|
evt_id = final_events[i];
|
|
|
|
evt_date = all_events[evt_id]['evt'][2];
|
|
|
|
evt_duration = all_events[evt_id]['evt'][3];
|
|
|
|
|
|
|
|
evt_str_date = this.convert_date_str(evt_date);
|
|
|
|
evt_end_date = this.end_date(evt_str_date, evt_duration);
|
|
|
|
|
|
|
|
while (all_events[evt_id]['parent'] != "") {
|
|
|
|
var parent_id =all_events[evt_id]['parent'];
|
|
|
|
if (all_events[parent_id]['evt'][3] < evt_end_date){
|
|
|
|
all_events[parent_id]['evt'][3] = evt_end_date;
|
|
|
|
}
|
|
|
|
evt_id = parent_id;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for (i in all_events){
|
|
|
|
res = all_events[i];
|
|
|
|
|
|
|
|
if ((typeof(res['evt'][3])) == "object"){
|
|
|
|
res['evt'][3] = self.hours_between(res['evt'][2],res['evt'][3]);
|
|
|
|
}
|
|
|
|
|
2011-06-07 11:13:40 +00:00
|
|
|
if(res['parent'] == ""){
|
|
|
|
task=new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], 100, "",res['evt'][6]);
|
|
|
|
project.addTask(task);
|
|
|
|
}else{
|
|
|
|
task=new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], 100, "",res['evt'][6]);
|
|
|
|
prt = project.getTaskById(res['parent']);
|
|
|
|
prt.addChildTask(task);
|
|
|
|
}
|
|
|
|
|
2011-06-06 12:01:19 +00:00
|
|
|
}
|
2011-06-07 11:13:40 +00:00
|
|
|
|
|
|
|
ganttChartControl.create("GanttDiv");
|
|
|
|
ganttChartControl.attachEvent("onTaskStartDrag", function(task) {self.on_drag_start(task);});
|
|
|
|
ganttChartControl.attachEvent("onTaskEndResize", function(task) {self.on_resize_drag_end(task, "resize");});
|
|
|
|
ganttChartControl.attachEvent("onTaskEndDrag", function(task) {self.on_resize_drag_end(task, "drag");});
|
|
|
|
ganttChartControl.attachEvent("onTaskDblClick", function(task) {self.open_popup(task);});
|
|
|
|
|
2011-06-06 12:01:19 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
end_date: function(dat, duration) {
|
|
|
|
|
|
|
|
var self = this;
|
|
|
|
|
|
|
|
dat = this.convert_str_date(dat);
|
|
|
|
|
|
|
|
var day = Math.floor(duration/self.day_length);
|
|
|
|
var hrs = duration % self.day_length;
|
|
|
|
|
|
|
|
dat.add(day).days();
|
|
|
|
dat.add(hrs).hour();
|
|
|
|
|
|
|
|
return dat;
|
2011-04-15 09:32:53 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
hours_between: function(date1, date2) {
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-02 06:32:56 +00:00
|
|
|
var ONE_DAY = 1000 * 60 * 60 * 24;
|
|
|
|
var date1_ms = date1.getTime();
|
|
|
|
var date2_ms = date2.getTime();
|
|
|
|
var difference_ms = Math.abs(date1_ms - date2_ms);
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-02 06:32:56 +00:00
|
|
|
d = Math.round(difference_ms / ONE_DAY);
|
2011-04-28 11:57:03 +00:00
|
|
|
h = Math.round((difference_ms % ONE_DAY)/(1000 * 60 * 60));
|
2011-05-13 07:19:52 +00:00
|
|
|
|
2011-04-28 11:57:03 +00:00
|
|
|
return (d * this.day_length) + h;
|
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
},
|
2011-05-13 07:19:52 +00:00
|
|
|
|
2011-05-02 06:32:56 +00:00
|
|
|
open_popup : function(task) {
|
|
|
|
var event_id = task.getId();
|
|
|
|
if (event_id) {
|
|
|
|
event_id = parseInt(event_id, 10);
|
|
|
|
var dataset_event_index = jQuery.inArray(event_id, this.ids);
|
|
|
|
} else {
|
|
|
|
var dataset_event_index = null;
|
|
|
|
}
|
|
|
|
this.dataset.index = dataset_event_index;
|
|
|
|
var element_id = _.uniqueId("act_window_dialog");
|
|
|
|
var dialog = jQuery('<div>',
|
|
|
|
{'id': element_id
|
|
|
|
}).dialog({
|
|
|
|
title: 'Gantt Chart',
|
|
|
|
modal: true,
|
|
|
|
minWidth: 800,
|
|
|
|
position: 'top'
|
|
|
|
});
|
|
|
|
var event_form = new openerp.base.FormView(this.view_manager, this.session, element_id, this.dataset, false);
|
|
|
|
event_form.start();
|
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-13 07:19:52 +00:00
|
|
|
on_drag_start : function(task){
|
|
|
|
st_date = task.getEST();
|
|
|
|
if(st_date.getHours()){
|
|
|
|
self.hh = st_date.getHours();
|
|
|
|
self.mm = st_date.getMinutes();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
on_resize_drag_end : function(task, evt){
|
2011-04-28 11:57:03 +00:00
|
|
|
|
|
|
|
var event_id = task.getId();
|
|
|
|
var data = {};
|
|
|
|
|
|
|
|
if (evt == "drag"){
|
2011-05-13 07:19:52 +00:00
|
|
|
full_date = task.getEST().set({hour: self.hh, minute : self.mm, second:0});
|
|
|
|
data[this.date_start] = this.convert_date_str(full_date);
|
2011-04-28 11:57:03 +00:00
|
|
|
}
|
|
|
|
if (this.date_stop != undefined){
|
2011-05-13 07:19:52 +00:00
|
|
|
tm = (task.getDuration() % this.day_length);
|
|
|
|
stp = task.getFinishDate().add(tm).hour();
|
|
|
|
data[this.date_stop] = this.convert_date_str(stp);
|
2011-04-28 11:57:03 +00:00
|
|
|
}else{
|
|
|
|
data[this.date_delay] = task.getDuration();
|
|
|
|
}
|
|
|
|
this.dataset.write(event_id, data, function(result) {});
|
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
do_show: function () {
|
2011-04-28 11:57:03 +00:00
|
|
|
this.$element.show();
|
2011-04-15 09:32:53 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
do_hide: function () {
|
|
|
|
this.$element.hide();
|
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-13 07:19:52 +00:00
|
|
|
convert_str_date: function (str){
|
|
|
|
if (str.length == 19){
|
2011-05-13 15:45:22 +00:00
|
|
|
this.format = "yyyy-MM-dd HH:mm:ss";
|
2011-05-13 07:19:52 +00:00
|
|
|
return openerp.base.parse_datetime(str);
|
2011-05-13 15:45:22 +00:00
|
|
|
} else if (str.length == 10){
|
|
|
|
this.format = "yyyy-MM-dd";
|
2011-05-13 07:19:52 +00:00
|
|
|
return openerp.base.parse_date(str);
|
2011-05-13 15:45:22 +00:00
|
|
|
} else if (str.length == 8){
|
|
|
|
this.format = "HH:mm:ss";
|
2011-05-13 07:19:52 +00:00
|
|
|
return openerp.base.parse_time(str);
|
2011-04-07 12:13:31 +00:00
|
|
|
}
|
2011-05-13 15:45:22 +00:00
|
|
|
throw "Unrecognized date/time format";
|
2011-04-07 12:13:31 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-05-13 07:19:52 +00:00
|
|
|
convert_date_str: function(full_date) {
|
2011-05-13 15:45:22 +00:00
|
|
|
if (this.format == "yyyy-MM-dd HH:mm:ss"){
|
|
|
|
return openerp.base.format_datetime(full_date);
|
|
|
|
} else if (this.format == "yyyy-MM-dd"){
|
|
|
|
return openerp.base.format_date(full_date);
|
|
|
|
} else if (this.format == "HH:mm:ss"){
|
|
|
|
return openerp.base.format_time(full_date);
|
2011-04-28 11:57:03 +00:00
|
|
|
}
|
2011-05-13 15:45:22 +00:00
|
|
|
throw "Unrecognized date/time format";
|
2011-04-07 12:13:31 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-06-06 12:01:19 +00:00
|
|
|
reload_gantt: function() {
|
2011-04-28 11:57:03 +00:00
|
|
|
var self = this;
|
2011-05-13 07:19:52 +00:00
|
|
|
var ajax = {
|
|
|
|
url: '/base/dataset/search_read',
|
|
|
|
async: false
|
|
|
|
};
|
|
|
|
this.rpc(ajax, {
|
|
|
|
model: this.dataset.model,
|
|
|
|
domain: self.dataset.domain,
|
|
|
|
context :self.dataset.context
|
|
|
|
}, function(response) {
|
|
|
|
ganttChartControl.clearAll();
|
|
|
|
jQuery("#GanttDiv").children().remove();
|
|
|
|
self.load_event(response);
|
|
|
|
});
|
2011-04-07 12:13:31 +00:00
|
|
|
},
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
do_search: function (domains, contexts, groupbys) {
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-15 09:32:53 +00:00
|
|
|
var self = this;
|
2011-06-06 12:01:19 +00:00
|
|
|
this.grp = groupbys;
|
2011-04-15 09:32:53 +00:00
|
|
|
return this.rpc('/base/session/eval_domain_and_context', {
|
|
|
|
domains: domains,
|
|
|
|
contexts: contexts,
|
|
|
|
group_by_seq: groupbys
|
|
|
|
}, function (results) {
|
|
|
|
self.dataset.context = results.context;
|
|
|
|
self.dataset.domain = results.domain;
|
2011-06-06 12:01:19 +00:00
|
|
|
return self.reload_gantt();
|
2011-04-15 09:32:53 +00:00
|
|
|
});
|
2011-04-13 14:20:01 +00:00
|
|
|
}
|
2011-04-28 11:57:03 +00:00
|
|
|
|
2011-04-07 12:13:31 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
// here you may tweak globals object, if any, and play with on_* or do_* callbacks on them
|
|
|
|
|
|
|
|
};
|
|
|
|
// vim:et fdc=0 fdl=0:
|