X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=Pman.Lock.js;h=9636ada9b685aa3e8005488f9879dd835bff7eb5;hp=e51c21173471086486f0f9fe035678b75a4c4782;hb=HEAD;hpb=09c5637ec03a45d8f329c009083ca44f8eb3648c diff --git a/Pman.Lock.js b/Pman.Lock.js index e51c2117..9636ada9 100644 --- a/Pman.Lock.js +++ b/Pman.Lock.js @@ -34,92 +34,87 @@ * */ Pman.Lock = function (cfg) { - this.cfg = cfg; - var _t = this; - Pman.Request({ - url : baseURL + 'Core/Lock/lock', - params : { - on_table : cfg.table, - on_id : cfg.id - }, - failure : function() { - Roo.MessageBox.alert("Error", "Lock Request failed, please try again"); - }, - success : function(data) - { - Roo.log(data); - - if (typeof(data) == 'object') { - this.confirmBreak(); - - - - } - - _t.cfg.success.call(_t,_t); - - - } - }) - - - }, + this.cfg = cfg; + Roo.log('ctor-callLock'); + this.callLock(); +} + +Roo.apply(Pman.Lock.prototype, { + cfg : false, + id : false, // the id of the lock.. - attempt : function() + callLock : function(force) { - var _t = this - Pman.Request({ - url : baseURL + 'Core/Lock/lock', + Roo.log('callLock'); + force = force || 0; + var _t = this; + 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); - - if (typeof(data) == 'object') { + 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.. } }) }, - confirmBreak : 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() { - Pman.Request({ - url : baseURL + 'Core/Lock/unlock', + unlock : function(id) { + id = id || this.id; + new Pman.Request({ + url : baseURL + '/Core/Lock/unlock', params : { - id : this.lock_id, - on_id : cfg.id + id : id }, failure : function() { - Roo.MessageBox.alert("Error", "Lock Request failed, please try again"); + Roo.MessageBox.alert("Error", "UnLock Request failed, you may get a warning when trying to edit again"); }, success : function(data) { - Roo.log(data); - - if (typeof(data) == 'object') { - _t.confirmBreak(data); - } - - _t.cfg.success(_t); //dont care about scope.. - + // don nothing } - }) + }); } -} +}); \ No newline at end of file