merge upstream

bzr revid: chs@openerp.com-20110928085150-nkupuglnbrrzixyy
This commit is contained in:
Christophe Simonis 2011-09-28 10:51:50 +02:00
commit b223c0a650
6 changed files with 48 additions and 34 deletions

View File

@ -119,7 +119,7 @@ home_template = textwrap.dedent("""<!DOCTYPE html>
%(javascript)s
<script type="text/javascript">
$(function() {
var c = new openerp.init();
var c = new openerp.init(%(modules)s);
var wc = new c.web.WebClient("oe");
wc.start();
});
@ -166,9 +166,11 @@ class WebClient(openerpweb.Controller):
if req.debug:
csslist = [i + '?debug=' + str(time.time()) for i in manifest_glob(None, 'css')]
css = "\n ".join(['<link rel="stylesheet" href="%s">'%i for i in csslist])
r = home_template % {
'javascript': js,
'css': css
'css': css,
'modules': simplejson.dumps(manifest_preload()),
}
return r

View File

@ -19,9 +19,9 @@
/**
* OpenERP instance constructor
*
* @param {Boolean} skip_init if true, skips the built-in initialization
* @param {Array} modules list of modules to initialize
*/
init: function(skip_init) {
init: function(modules) {
var new_instance = {
// links to the global openerp
_openerp: openerp,
@ -35,8 +35,9 @@
web_mobile: {}
};
openerp.sessions[new_instance._session_id] = new_instance;
if (!skip_init){
openerp.web(new_instance);
modules = modules || ["web"];
for(var i=0; i < modules.length; i++) {
openerp[modules[i]](new_instance);
}
return new_instance;
}

View File

@ -5,4 +5,5 @@
"js": ["static/*/*.js", "static/*/js/*.js"],
"css": [],
'active': False,
'web_preload': True,
}

View File

@ -13,6 +13,13 @@ openerp.web.SearchView = openerp.web.SearchView.extend({
// here you may tweak globals object, if any, and play with on_* or do_* callbacks on them
openerp.web.Login = openerp.web.Login.extend({
start: function() {
console.log('Hello there');
this._super.apply(this,arguments);
}
});
};
// vim:et fdc=0 fdl=0:

View File

@ -217,8 +217,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
},
on_record_saved: function(r) {
var id = this.form_dialog.form.datarecord.id;
// TODO fme: reload record instead of all. need refactoring
this.do_actual_search();
this.on_reload_record(id);
},
do_change_color: function(record_id, $e) {
var self = this,
@ -236,8 +235,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
var data = {};
data[$e.data('name')] = $(this).data('color');
self.dataset.write(id, data, {}, function() {
// TODO fme: reload record instead of all. need refactoring
self.on_reload_record(id, data);
self.on_reload_record(id);
});
$cpicker.remove();
});
@ -245,28 +243,32 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
/**
Reload one record in view.
record_id : reload record id.
data : change value in particular record.
*/
on_reload_record: function (record_id, data){
on_reload_record: function (record_id){
var self = this;
for (var i=0, ii=this.all_display_data.length; i < ii; i++) {
for(j=0, jj=this.all_display_data[i].records.length; j < jj; j++) {
if (this.all_display_data[i].records[j].id == record_id) {
_.extend(this.all_display_data[i].records[j], data);
this.$element.find("#main_" + record_id).children().remove();
this.$element.find("#main_" + record_id).append(this.qweb.render('kanban-box', {
record: this.do_transform_record(this.all_display_data[i].records[j]),
kanban_color: this.kanban_color,
kanban_gravatar: this.kanban_gravatar
}));
break;
this.dataset.read_ids([record_id], [], function (records) {
if (records.length > 0) {
for (var i=0, ii=self.all_display_data.length; i < ii; i++) {
for(j=0, jj=self.all_display_data[i].records.length; j < jj; j++) {
if (self.all_display_data[i].records[j].id == record_id) {
_.extend(self.all_display_data[i].records[j], records[0]);
self.$element.find("#main_" + record_id).children().remove();
self.$element.find("#main_" + record_id).append(self.qweb.render('kanban-box', {
record: self.do_transform_record(self.all_display_data[i].records[j]),
kanban_color: self.kanban_color,
kanban_gravatar: self.kanban_gravatar
}));
break;
}
}
}
self.$element.find("#main_" + record_id + " .oe_kanban_action").click(self.on_action_clicked);
self.$element.find("#main_" + record_id + " .oe_kanban_box_show_onclick_trigger").click(function() {
$(this).parent("#main_" + record_id + " .oe_kanban_box").find(".oe_kanban_box_show_onclick").toggle();
});
}
}
this.$element.find("#main_" + record_id + " .oe_kanban_action").click(this.on_action_clicked);
this.$element.find("#main_" + record_id + " .oe_kanban_box_show_onclick_trigger").click(function() {
$(this).parent("#main_" + record_id + " .oe_kanban_box").find(".oe_kanban_box_show_onclick").toggle();
});
},
do_delete: function (id) {
var self = this;
@ -304,7 +306,6 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
if (!ui.item.attr("id")) {
return false;
}
// TODO fme: check what was this sequence
if (self.fields_view.fields.sequence != undefined && ((self.source_index.index >= 0 && self.source_index.index != from) ||
(self.source_index.column && self.source_index.column != ui.item.parent().attr('id')))) {
var child_record = ui.item.parent().children();

View File

@ -11,17 +11,19 @@
<tr>
<td t-foreach="data" t-as="columns" class="oe_table_column" t-att-id="'column_' + columns.value">
<img t-att-id="columns.value" class="fold-columns-icon" src="/web_kanban/static/src/img/minus-icon.png"/>
<div class="oe_fold_column oe_column_heading" t-att-id="'column_' + columns.value">
<t t-if="columns.value and columns.header" t-esc="columns.header"/>
</div>
<div t-foreach="columns.aggregates" t-as="aggregate">
<i><u><t t-esc="aggregate"/>:</u> <t t-esc="aggregate_value"/></i>
<div class="oe_fold_column" t-att-id="'column_' + columns.value">
<div class="oe_column_heading" t-if="columns.value and columns.header">
<t t-esc="columns.header"/>
</div>
<div t-foreach="columns.aggregates or {}" t-as="aggregate">
<i><u><t t-esc="aggregate"/>:</u> <t t-esc="aggregate_value"/></i>
</div>
</div>
</td>
</tr>
<tr>
<td t-foreach="data" t-as="columns" class="oe_column oe_table_column" t-att-id="'column_' + columns.value" t-attf-style="width: #{Math.round(99 / data.length)}%">
<p class="oe_vertical_text" t-att-id="'column_' + columns.value"><t t-esc="columns.header"/></p>
<p t-if="columns.header" class="oe_vertical_text" t-att-id="'column_' + columns.value"><t t-esc="columns.header"/></p>
<div t-foreach="columns.records" t-as="record" class="oe_fold_column oe_kanban_record" t-att-id="'main_' + record.id"/>
</td>
</tr>