// JavaScript Document (function($){ $.su.Widget("status", { defaults: { proxy: null, fieldLabel: null, interval: 500, loadingText: $.su.CHAR.OPERATION.CONNECTING, loadedText: $.su.CHAR.OPERATION.CONNECTED, loadedFailedText: $.su.CHAR.OPERATION.CONNECTFAILED, unloadingText: $.su.CHAR.OPERATION.DISCONNECTING, unloadedText: $.su.CHAR.OPERATION.DISCONNECTED, unloadedFailedText: $.su.CHAR.OPERATION.DISCONNECTFAILED, showText: true }, create: function(defaults, options){ var me = this; me.each(function(i, obj){ var tar = $(obj); $.extend(obj, defaults, options); var inHTML = "
"; if (obj.fieldLabel !== null){ inHTML += "
"; inHTML += ""; if (obj.fieldLabel !== ""){ inHTML += ""+obj.separator+""; }; inHTML += "
"; }; inHTML += "
"; inHTML += ""; var textCls = obj.textCls || ""; inHTML += ""; inHTML += "
"; inHTML += "
"; var container = $(inHTML); tar.replaceWith(container); container.append(tar.addClass("hidden")); if (!obj.showText){ container.find("span.text").css("display", "none"); }; var proxy = obj.proxy; if (proxy && !proxy.isProxy){ obj.proxy = new $.su.Proxy(proxy); } }); me.status("setNormal"); return me; }, sync: function(me, param){ //data, callback_success, callback_failed var me = me || this, obj = me.get(0), proxy = obj.proxy, data = param[1] || {}, callback_success = param[2] || null, callback_failed = param[3] || null; if (!proxy || !proxy.isProxy){ return me; }; proxy.write(data, function(data, status, xhr){ //成功的回调 if (callback_success){ callback_success.call(me, data, status, xhr); }; }, function(data, errorcode, others){ //失败的回调 if (callback_failed){ callback_failed.call(me, errorcode, others); }; }); return me; }, //方便开发添加的几个方法 connect: function(me, param){ //data, callback_success, callback_failed var me = me || this, obj = me.get(0), data = param[1] || {}, callback_success = param[2] || null, callback_failed = param[3] || null, data = $.extend({ "operation": "connect" }, data); me.status("setLoading", obj.loadingText); me.status("sync", data, function(data, status, xhr){ //console.log("succ", data) me.status("setSuccess", obj.loadedText); if (callback_success){ callback_success.call(me, data, status, xhr); }; }, function(errorcode, others){ //console.log("fail", data, obj.loadedFailedText) loadedFailedTextArray me.status("setFailed", obj.loadedFailedText); if (callback_failed){ callback_failed.call(me, errorcode, others); }; }); return me; }, disconnect: function(me, param){ //data, callback, callback_success, callback_failed var me = me || this, obj = me.get(0), data = param[1] || {}, callback_success = param[2] || null, callback_failed = param[3] || null, data = $.extend({ "operation": "disconnect" }, data); me.status("setLoading", obj.unloadingText); me.status("sync", data, function(data, status, xhr){ me.status("setSuccess", obj.unloadedText); if (callback_success){ callback_success.call(me, data, status, xhr); }; }, function(errorcode, others){ me.status("setFailed", obj.unloadedFailedText); if (callback_failed){ callback_failed.call(me, errorcode, others); }; }); return me; }, refresh: function(me, param){ var me = me || this, obj = me.get(0), data = param[1] || {}, callback_success = param[2] || null, callback_failed = param[3] || null; data = $.extend({ "operation": "refresh" }, data); me.status("sync", data, function(data, status, xhr){ if (callback_success){ callback_success.call(me, data, status, xhr); }; }, function(errorcode, others){ if (callback_failed){ callback_failed.call(me, errorcode, others); }; }); return me; }, //以下几个都是样式上的修改 reset: function(me){ var me = me || this, container = me.closest("div.status-container"), textContainer = container.find("div.status-wrap span.text"); textContainer.empty(); container.removeClass("loading failed success normal"); return me; }, setNormal: function(me, text){ var me = me || this, container = me.closest("div.status-container"), text = text[1] || ""; me.status("reset"); container.addClass("normal"); me.status("setText", text); return me; }, setSuccess: function(me, text){ var me = me || this, container = me.closest("div.status-container"), text = text[1] || ""; me.status("reset"); container.addClass("success"); me.status("setText", text); return me; }, setFailed: function(me, text){ var me = me || this, container = me.closest("div.status-container"), text = text[1] || ""; me.status("reset"); container.addClass("failed"); me.status("setText", text); return me; }, setLoading: function(me, text){ var me = me || this, container = me.closest("div.status-container"), text = text[1] || ""; me.status("reset"); container.addClass("loading"); me.status("setText", text); return me; }, setText: function(me, text){ var me = me || this, container = me.closest("div.status-container"), textContainer = container.find("div.status-wrap span.text"), text = text[1] || ""; //console.log(textContainer, "text", text) textContainer.empty().html(text); return me; } }); })(jQuery);