calendar fix

This commit is contained in:
Rushabh Mehta 2012-02-27 12:54:04 +05:30
parent a50b762d36
commit aa999df088
6 changed files with 42 additions and 39 deletions

View File

@ -81,9 +81,13 @@ def boot_session(bootinfo):
webnotes.conn.get_value('Website Settings', None, 'analytics_code')
bootinfo['analytics_call'] = \
webnotes.conn.get_value('Website Settings', None, 'analytics_call')
else:
bootinfo['letter_heads'] = get_letter_heads()
import webnotes.model.doctype
bootinfo['docs'] += webnotes.model.doctype.get('Event')
def get_letter_heads():
"""load letter heads with startup"""
import webnotes

View File

@ -156,9 +156,7 @@ div.cal_week_unit{
}
div.cal_event {
width: 100%;
height: 12px;
overflow: hidden;
overflow-x: hidden;
font-size: 11px;
color: #00B;
margin-bottom: 2px;

View File

@ -33,7 +33,6 @@ pscript.onload_calendar = function(wrapper) {
Calendar=function() {
this.views=[];
this.events = {};
this.has_event = {};
this.events_by_name = {};
this.weekdays = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
}
@ -57,15 +56,18 @@ Calendar.prototype.init=function (parent) {
this.views['Day'] = new Calendar.DayView(this);
// Month view as initial
this.cur_view = this.views['Day'];
this.views['Day'].show();
this.cur_view = this.views['Month'];
this.views['Month'].show();
}
Calendar.prototype.rename_notify = function(dt, old_name, new_name) {
// calendar
if(dt = 'Event' && this.has_event[old_name])
this.has_event[old_name] = false;
if(dt = 'Event'){
if(this.events_by_name[old_name]) {
delete this.events_by_name[old_name];
}
}
}
//------------------------------------------------------
@ -119,19 +121,15 @@ Calendar.prototype.show_event = function(ev, cal_ev) {
// save values
d.ev.description = d.widgets['Description'].value;
if(d.widgets['Cancel Event'].checked) d.ev.event_type='Cancel';
else if(d.widgets['Public Event'].checked) d.ev.event_type='Public';
if(d.widgets['Cancel Event'].checked)
d.ev.event_type='Cancel';
else if(d.widgets['Public Event'].checked)
d.ev.event_type='Public';
me.event_dialog.hide();
// if new event
if(d.cal_ev)
var cal_ev = d.cal_ev;
else
var cal_ev = me.set_event(d.ev);
cal_ev.save();
if(me.cur_view)me.cur_view.refresh();
me.save_event(d.ev);
}
this.event_dialog = d;
}
@ -141,6 +139,20 @@ Calendar.prototype.show_event = function(ev, cal_ev) {
}
Calendar.prototype.save_event = function(doc) {
var me = this;
save_doclist('Event', doc.name, 'Save', function(r) {
var doc = locals['Event'][r.docname];
var cal = erpnext.calendar;
cal.cur_view.refresh();
// if cancelled, hide
if(doc.event_type=='Cancel') {
$(cal.events_by_name[doc.name].body).toggle(false);
}
});
}
//------------------------------------------------------
Calendar.prototype.add_event = function() {
@ -193,7 +205,7 @@ Calendar.prototype.get_daily_event_list=function(day) {
Calendar.prototype.set_event = function(ev) {
// don't duplicate
if(this.events_by_name[ev.name]) {
return;
return this.events_by_name[ev.name];
}
var dt = dateutil.str_to_obj(ev.event_date);
@ -204,16 +216,16 @@ Calendar.prototype.set_event = function(ev) {
if(!this.events[y]) this.events[y] = [];
if(!this.events[y][m]) this.events[y][m] = [];
if(!this.events[y][m][d]) this.events[y][m][d] = [];
if(!this.events[y][m][d][cint(cint(ev.event_hour))])
if(!this.events[y][m][d][cint(ev.event_hour)])
this.events[y][m][d][cint(ev.event_hour)] = [];
var cal_ev = new Calendar.CalEvent(ev, this);
this.events[y][m][d][cint(ev.event_hour)].push(cal_ev);
this.events_by_name[ev.name] = cal_ev;
this.has_event[ev.name] = true;
return cal_ev;
}
//------------------------------------------------------
Calendar.prototype.refresh = function(viewtype){//Sets the viewtype of the Calendar and Calls the View class based on the viewtype
@ -235,14 +247,11 @@ Calendar.prototype.refresh = function(viewtype){//Sets the viewtype of the Calen
Calendar.CalEvent= function(doc, cal) {
this.body = document.createElement('div');
var v = locals['Event'][doc.name].description;
if(v==null)v='';
this.body.innerHTML = v;
this.link = $a(this.body, 'a', '', {}, locals['Event'][doc.name].description || '');
this.doc = doc;
var me = this;
this.body.onclick = function() {
this.link.onclick = function() {
if(me.doc.name) {
cal.show_event(me.doc, me);
}
@ -252,26 +261,18 @@ Calendar.CalEvent= function(doc, cal) {
Calendar.CalEvent.prototype.show = function(vu) {
var t = this.doc.event_type;
this.my_class = 'cal_event cal_event_'+ t;
this.my_class = 'cal_event_'+ t;
if(this.body.parentNode)
this.body.parentNode.removeChild(this.body);
vu.body.appendChild(this.body);
// refresh
var v = this.doc.description;
if(v==null)v='';
this.body.innerHTML = v;
this.link.innerHTML = this.doc.description || '';
this.body.className = this.my_class;
}
Calendar.CalEvent.prototype.save = function() {
var me = this;
save_doclist('Event', me.doc.name, 'Save', function(r) {
me.doc = locals['Event'][r.docname];
erpnext.calendar.has_event[r.docname] = true;
} );
}
// ----------
Calendar.View =function() { this.daystep = 0; this.monthstep = 0; }

View File

@ -1243,7 +1243,7 @@ var df=get_field(dt,key);if(df&&((!from_amend&&cint(df.no_copy)==1)||in_list(Loc
return locals[dt][newdoc];}
function make_doclist(dt,dn,deleted){var dl=[];dl[0]=locals[dt][dn];for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||(deleted&&doc.__oldparent==dn))){dl[dl.length]=doc;}}}}
return dl;}
var rename_observers=[];function notify_rename_observers(dt,old_name,new_name){try{var old=locals[dt][old_name];old.parent=null;old.__deleted=1;}catch(e){alert("[rename_from_local] No Document for: "+old_name);}
var rename_observers=[];function notify_rename_observers(dt,old_name,new_name){try{delete locals[dt][old_name];}catch(e){alert("[rename_from_local] No Document for: "+old_name);}
for(var i=0;i<rename_observers.length;i++){if(rename_observers[i])
rename_observers[i].rename_notify(dt,old_name,new_name);}}
var Meta={};var local_dt={};Meta.make_local_dt=function(dt,dn){var dl=make_doclist('DocType',dt);if(!local_dt[dt])local_dt[dt]={};if(!local_dt[dt][dn])local_dt[dt][dn]={};for(var i=0;i<dl.length;i++){var d=dl[i];if(d.doctype=='DocField'){var key=d.fieldname?d.fieldname:d.label;local_dt[dt][dn][key]=copy_dict(d);}}}

View File

@ -940,7 +940,7 @@ var df=get_field(dt,key);if(df&&((!from_amend&&cint(df.no_copy)==1)||in_list(Loc
return locals[dt][newdoc];}
function make_doclist(dt,dn,deleted){var dl=[];dl[0]=locals[dt][dn];for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||(deleted&&doc.__oldparent==dn))){dl[dl.length]=doc;}}}}
return dl;}
var rename_observers=[];function notify_rename_observers(dt,old_name,new_name){try{var old=locals[dt][old_name];old.parent=null;old.__deleted=1;}catch(e){alert("[rename_from_local] No Document for: "+old_name);}
var rename_observers=[];function notify_rename_observers(dt,old_name,new_name){try{delete locals[dt][old_name];}catch(e){alert("[rename_from_local] No Document for: "+old_name);}
for(var i=0;i<rename_observers.length;i++){if(rename_observers[i])
rename_observers[i].rename_notify(dt,old_name,new_name);}}
var Meta={};var local_dt={};Meta.make_local_dt=function(dt,dn){var dl=make_doclist('DocType',dt);if(!local_dt[dt])local_dt[dt]={};if(!local_dt[dt][dn])local_dt[dt][dn]={};for(var i=0;i<dl.length;i++){var d=dl[i];if(d.doctype=='DocField'){var key=d.fieldname?d.fieldname:d.label;local_dt[dt][dn][key]=copy_dict(d);}}}

View File

@ -1 +1 @@
687
689