X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=Pman.Lock.js;h=9636ada9b685aa3e8005488f9879dd835bff7eb5;hp=823d687c91715cb66f9ec17f37a19a589435a0e7;hb=HEAD;hpb=b767a258c9c2b6f74ad40203061a4942a4b8f148 diff --git a/Pman.Lock.js b/Pman.Lock.js index 823d687c..9636ada9 100644 --- a/Pman.Lock.js +++ b/Pman.Lock.js @@ -5,7 +5,7 @@ * usage: * - * new Pman.Lock( { + new Pman.Lock( { table : 'Product', id : 123, success : function(lock) { ..show dialog etc..... @@ -34,33 +34,87 @@ * */ Pman.Lock = function (cfg) { - this.cfg = cfg; + this.cfg = cfg; + Roo.log('ctor-callLock'); + this.callLock(); +} + +Roo.apply(Pman.Lock.prototype, { + cfg : false, + + id : false, // the id of the lock.. + + callLock : function(force) + { + Roo.log('callLock'); + force = force || 0; var _t = this; - Pman.Request({ - url : baseURL + 'Core/Lock.php', + new Pman.Request({ + url : baseURL + '/Core/Lock/lock', params : { - on_table : cfg.table, - on_id : cfg.id + on_table : this.cfg.table, + on_id : this.cfg.id, + force : force }, failure : function() { Roo.MessageBox.alert("Error", "Lock Request failed, please try again"); }, - success : function(data) + success : function(res) { - Roo.log(data); - - _t.cfg.success.call(_t,_t); + var data = res.data; + Roo.log(data); + if (!force && typeof(data) == 'object') { + _t.confirmBreak(data); + return; + } + _t.id = data; + _t.cfg.success(_t); //dont care about scope.. } }) - - }, - unlock : function() { + confirmBreak : function (ar) + { + + var msg = "This Record is Locked by the following people,
" + + "Do you want to continue, this will prevent these people from saving their changes
"; + + Roo.each(ar, function(p) { + msg += '
' + p.name + ' at ' + p.lock_created ; + }); + var _t = this; + Roo.MessageBox.confirm("Confirm breaking locks", msg, function(r) { + if (r != 'yes') { + return; + } + _t.callLock(1); + }); + + + + }, + + + unlock : function(id) { + id = id || this.id; + new Pman.Request({ + url : baseURL + '/Core/Lock/unlock', + params : { + id : id + }, + failure : function() { + Roo.MessageBox.alert("Error", "UnLock Request failed, you may get a warning when trying to edit again"); + }, + success : function(data) + { + // don nothing + + } + }); } -} +}); \ No newline at end of file