diff --git a/addons/web_calendar/contacts_view.xml b/addons/web_calendar/contacts_view.xml
index 6f59193be2b..e168ba08fe1 100644
--- a/addons/web_calendar/contacts_view.xml
+++ b/addons/web_calendar/contacts_view.xml
@@ -16,7 +16,15 @@
+ Click to add your first contact.
+
+ Add your contacts here to see the events which are created by them.
+ Each contact will have it own color on calendar, to see easily who is busy...
+ ';
-
- }
+
+ style = 'style="border:2px solid '+self.get_color((the_attendee_people in self.allFilters) ? the_attendee_people : '-1')+'"';
+
+ // if (the_attendee_people in self.allFilters && (!self.colorIsAttendee || temp_ret[self.color_field]!=the_attendee_people)) { //&& the_attendee_people != this.colorIsAttendee
+ the_title += '
';
}
);
}
@@ -601,10 +605,28 @@ openerp.web_calendar = function(instance) {
console.log("Consecutive ``do_search`` called. Cancelling.");
return;
}
- // We should make sure that *2many used in title of event have
- // their extended form [ID, NAME]...
+ // We should make sure that *2many used in title of event have their extended form [ID, NAME]...
- if (!self.useContacts) {
+ events = $.map(events, function (e) {
+
+ if (self.attendee_people != undefined) { //If we filter on contacts...
+ if (self.isInArray(self.selected_filters,e[self.attendee_people]) || (self.selected_filters.indexOf(-1) > -1)) {
+ return e;
+ }
+ else {
+ return null;
+ }
+ }
+ else { //We adds all events # TO TEST ? if (self.isInArray(self.selected_filters,e[self.color_field])){
+
+ return e;
+ }
+ return null;
+ });
+
+
+
+ if (!self.useContacts) { // If we use all peoples as filter in sidebars
var now_filters = {};
var filter_value;
var filter_item;
@@ -621,36 +643,30 @@ openerp.web_calendar = function(instance) {
});
self.allFilters = now_filters;
- self.sidebar.filter.events_loaded(now_filters);
+ self.sidebar.filter.events_loaded(now_filters);
+ return self.perform_necessary_name_gets(events).then(callback);
+ }
+ else {
+ var all_attendees = [];
+
+ _.each(events, function (e) {
+ all_attendees.push(e[self.attendee_people]);
+ });
+
+ self.all_attendees = {}
+
+ all_attendees = _.chain(all_attendees).flatten().uniq().value();
+ new instance.web.Model("res.partner").query(["name"]).filter([["id", "in",all_attendees]]).all().then(function(result) {
+ _.each(result, function(item) {
+ self.all_attendees[item.id] = item.name;
+ });
+ }).done(function() {
+ return self.perform_necessary_name_gets(events).then(callback);
+ });
}
- events = $.map(events, function (e) {
-
- if (self.attendee_people != undefined) {
- if (self.isInArray(self.selected_filters,e[self.attendee_people])
- || (self.selected_filters.indexOf(-1) > -1)) {
- console.log(e.name + 'is show');
- console.log(self.isInArray(self.selected_filters,e[self.attendee_people]));
- console.log(self.selected_filters.indexOf(-1) > -1);
-
- return e;
- }
- else {
- console.log(e.name + 'is hidden');
- console.log(self.isInArray(self.selected_filters,e[self.attendee_people]));
- console.log(self.selected_filters.indexOf(-1) > -1);
- console.log(self.selected_filters);
- return null;
- }
- }
- else if (self.isInArray(self.selected_filters,e[self.color_field])){
- return e;
- }
- return null;
- });
-
- return self.perform_necessary_name_gets(events).then(callback);
+
});
},
eventDataTransform: function (event) {
@@ -697,11 +713,63 @@ openerp.web_calendar = function(instance) {
}
return false;
},
- open_event: function(id) {
- var index = this.dataset.get_id_index(id);
- this.dataset.index = index;
- this.do_switch_view('form');
- return false;
+ open_event: function(id,title) {
+ if (! this.open_popup_action) {
+ var index = this.dataset.get_id_index(id);
+ this.dataset.index = index;
+ this.do_switch_view('form');
+ }
+ else {
+
+ var self = this;
+
+ var pop = new instance.web.form.FormOpenPopup(this);
+ pop.show_element(this.dataset.model, id, this.dataset.get_context(), {
+ title: _.str.sprintf(_t("View: %s"),title),
+ view_id: this.open_popup_action,
+ res_id: id,
+ target: 'new',
+ readonly:true
+ });
+
+ var form_controller = pop.view_form;
+ form_controller.on("load_record", self, function(){
+ button_delete = _.str.sprintf("",_t("Delete"));
+ button_edit = _.str.sprintf("",_t("Edit event >>"));
+
+
+ pop.$el.closest(".ui-dialog").find(".ui-dialog-buttonpane").prepend(button_delete)
+ pop.$el.closest(".ui-dialog").find(".ui-dialog-buttonpane").prepend(button_edit)
+
+ $('.delme').click(
+ function() {
+ $('.oe_form_button_cancel').trigger('click');
+ self.remove_event(id);
+ }
+ );
+ $('.editme').click(
+ function() {
+ var action = {
+ type: 'ir.actions.act_window',
+ res_model: 'crm.meeting',
+ view_mode: 'form',
+ view_type: 'form',
+ views: [[false, 'form']],
+ res_id: id,
+ context: {},
+ };
+ $('.oe_form_button_cancel').trigger('click');
+ self.do_action(action);
+ }
+ );
+
+
+ });
+
+ }
+
+ return false;
+
},
do_show: function() {
@@ -748,17 +816,6 @@ openerp.web_calendar = function(instance) {
self.$calendar.fullCalendar('refetchEvents');
},
- append_deletion_handle: function (event, element, view) {
- var self = this;
- var $x = $("