GIF89a;
Direktori : /home/serb/public_html/livechat/js/app/model/ |
Current File : /home/serb/public_html/livechat/js/app/model/CannedMessagesModel.js |
//============================================================================== // // Canned messages // //============================================================================== (function(app, $, config, _) { app.CannedMessagesModel = Backbone.Model.extend({ defaults : { messages : [] }, initialize : function() { // Read settings this.fetch(); }, fetch : function() { var _this = this; $.get(config.listCannedMessagesPath, function(data) { if(data.success) { // Store the data _this.set('messages', data.messages); } }); }, saveMessage : function(message) { // Notify about the started request this.trigger('request'); var _this = this; $.post(config.updateCannedMessagePath, message, function(data) { // Notify about the finished request if(data.success) { // Save operator in the local cache if(data.id) { // store ID generated on server-side (only on create action) message.id = data.id; if(!_this.getById(data.id)) { _this.get('messages').push(message); } } // Notify success _this.trigger('sync message:saved change:messages change', message); } else { // Notify failure _this.trigger('operator:saveError', data.errors); } }); }, getById : function(id) { var items = this.get('messages'); for(var i = 0; i < items.length; i++) { if(items[i].id === id) return items[i]; } return null; }, deleteMessage : function(id) { // Remove operator from the local cache var items = this.get('messages'); for(var i = 0; i < items.length; i++) { if(items[i].id === id) { items.splice(i, 1); break; } } // Remove message from the server var _this = this; $.post(config.deleteCannedMessagePath, { id : id }, function(data) { if(data.success) { // Notify success _this.trigger('change:messages message:deleted'); } else { // Notify error _this.trigger('message:deleteError'); } }) } }); })(window.Application, jQuery, window.chatConfig, _);