ผลต่างระหว่างรุ่นของ "Openerp/histest3"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 22: แถว 22:
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
 
openerp.histest.message = function(instance) {
 
openerp.histest.message = function(instance) {
   
+
 
 
     instance.histest.message = {};
 
     instance.histest.message = {};
 +
    instance.histest.message.popupInterval = null;
 
     instance.histest.message.MsgManagerWidget = instance.web.Widget.extend({
 
     instance.histest.message.MsgManagerWidget = instance.web.Widget.extend({
  
แถว 29: แถว 30:
 
             var self = this;
 
             var self = this;
 
             console.log("MsgMan started...");
 
             console.log("MsgMan started...");
             setInterval(function() {
+
             if(instance.histest.message.popupInterval) {
 +
                clearInterval(instance.histest.message.popupInterval);
 +
            }
 +
            instance.histest.message.popupInterval = setInterval(function() {
 
                 self.popup();
 
                 self.popup();
 
             },5000);
 
             },5000);
             this.shownMsgId = 0;  
+
             this.shownMsgId = 0;
 +
            this.fetchNewMessage(this.shownMsgId, function(msgId) {
 +
                self.shownMsgId = msgId;
 +
            });
 
         },
 
         },
  
         popup: function() {
+
         fetchNewMessage: function(recentId, callback) {
 
             var model = new instance.web.Model('histest.message');
 
             var model = new instance.web.Model('histest.message');
            var self = this;
+
             model.query().filter([['id','>',recentId]]).all().done(function(results){
             model.query().filter([['id','>',this.shownMsgId]]).all().done(function(results){
 
 
                 if (results.length > 0) {
 
                 if (results.length > 0) {
 
                     msgId = results[results.length-1].id;
 
                     msgId = results[results.length-1].id;
                     self.do_action({
+
                     callback(msgId);
                        type: 'ir.actions.act_window',
 
                        res_model: "histest.message",
 
                        res_id: msgId,
 
                        views: [[false, 'form']],
 
                        target: 'new',
 
                        context: {},
 
                    });
 
                    self.shownMsgId = msgId;
 
 
                 }
 
                 }
 +
            });
 +
        },
 +
       
 +
        popup: function() {
 +
            var self = this;
 +
            this.fetchNewMessage(this.shownMsgId, function(msgId) {
 +
                self.do_action({
 +
                    type: 'ir.actions.act_window',
 +
                    res_model: "histest.message",
 +
                    res_id: msgId,
 +
                    views: [[false, 'form']],
 +
                    target: 'new',
 +
                    context: {},
 +
                });
 +
                self.shownMsgId = msgId;
 
             });
 
             });
 
         }
 
         }

รุ่นแก้ไขเมื่อ 03:48, 3 เมษายน 2557

หน้านี้รวมข้อมูลสำหรับการทดสอบการพัฒนาระบบด้วย OpenERP

การแยกโค้ด javascript เป็นส่วน

ก่อนเริ่ม: ดาวน์โหลดโค้ด histest.zip จากครั้งก่อน

histest.js

openerp.histest = function(instance) {

    openerp.histest.message(instance);
    openerp.histest.patient(instance);
    
    instance.web.client_actions.add('histest.indexAction',
                                    'instance.histest.patient.indexAction');

};

histest_message.js

openerp.histest.message = function(instance) {

    instance.histest.message = {};
    instance.histest.message.popupInterval = null;
    instance.histest.message.MsgManagerWidget = instance.web.Widget.extend({

        start: function() {
            var self = this;
            console.log("MsgMan started...");
            if(instance.histest.message.popupInterval) {
                clearInterval(instance.histest.message.popupInterval);
            }
            instance.histest.message.popupInterval = setInterval(function() {
                self.popup();
            },5000);
            this.shownMsgId = 0;
            this.fetchNewMessage(this.shownMsgId, function(msgId) {
                self.shownMsgId = msgId;
            });
        },

        fetchNewMessage: function(recentId, callback) {
            var model = new instance.web.Model('histest.message');
            model.query().filter([['id','>',recentId]]).all().done(function(results){
                if (results.length > 0) {
                    msgId = results[results.length-1].id;
                    callback(msgId);
                }
            });
        },
        
        popup: function() {
            var self = this;
            this.fetchNewMessage(this.shownMsgId, function(msgId) {
                self.do_action({
                    type: 'ir.actions.act_window',
                    res_model: "histest.message",
                    res_id: msgId,
                    views: [[false, 'form']],
                    target: 'new',
                    context: {},
                });
                self.shownMsgId = msgId;
            });
        }
    });
};

histest_patient.js

openerp.histest.patient = function(instance) {
    
    instance.histest.patient = {};
    instance.histest.patient.indexAction = instance.web.Widget.extend({
        template: 'histest.index',
        events: {
            'click .oe_histest_patient_new_link': 'linkClick',
            'click .oe_histest_patient_query_link': 'patientQuery',
        },

        start: function() {
            var msgManager = new instance.histest.message.MsgManagerWidget(this);
            msgManager.appendTo('.oe_application');
        },

        patientQuery: function() {
            var model = new instance.web.Model('histest.patient');
            var self = this;
            self.$(".oe_histest_patient_results").html("");
            model.query().all().done(function(results) {
                for(var i=0; i < results.length; i++) {
                    self.$(".oe_histest_patient_results")
                        .append('<li>' + results[i].first_name + '</li>');
                }
            });
        },

        linkClick: function() {
            this.do_action({
                type: 'ir.actions.act_window',
                res_model: 'histest.patient',
                views: [[false,'form']],
                target: 'current',
                context: {},
            });
        }
    });
};

Responsive CSS

เนื้อหาช่วงบ่าย

เอกสารครั้งก่อน ๆ