[FIX] pad: render_value broken on create of new task
[odoo/odoo.git] / addons / pad / static / src / js / pad.js
1 openerp.pad = function(instance) {
2     
3     instance.web.form.FieldPad = instance.web.form.AbstractField.extend({
4         template: 'FieldPad',
5         configured: false,
6         content: "",
7         render_value: function() {
8             var self = this;
9             if (!this.get("value")) {
10                 self.view.dataset.call('pad_generate_url',{context:{
11                         model: self.view.model,
12                         field_name: self.name,
13                         object_id: self.view.datarecord.id
14                     }}).then(function(data) {
15                     if(data && data.url){
16                         self.set_value(data.url);
17                     }
18                 });
19             }
20             self.renderElement();
21             this._dirty_flag = true;
22         },
23         renderElement: function(){
24             var self  = this;
25             var value = this.get('value');
26             if(!_.str.startsWith(value,'http')){
27                 this.configured = false;
28                 this.content = "";
29             }else{
30                 this.configured = true;
31                 if(!this.get('effective_readonly')){
32                     this.content = '<iframe width="100%" height="100%" frameborder="0" src="'+value+'?showChat=false&userName='+this.session.username+'"></iframe>';
33                 }else{
34                     this.content = '<div class="oe_pad_loading">... Loading pad ...</div>';
35                     $.get(value+'/export/html').success(function(data){
36                         self.$('.oe_pad_content').html('<div class="oe_pad_readonly">'+data+'<div>');
37                     }).error(function(){
38                         self.$('.oe_pad_content').text('Unable to load pad');
39                     });
40                 }
41             }
42             this._super();
43             this.$('.oe_pad_content').html(this.content);
44             this.$('.oe_pad_switch').click(function(){
45                 self.$el.toggleClass('oe_pad_fullscreen');
46             });
47             this.on('change:effective_readonly',this,function(){
48                 self.renderElement();
49             });
50         },
51     });
52
53     instance.web.form.widgets = instance.web.form.widgets.extend({
54         'pad': 'instance.web.form.FieldPad',
55     });
56 };