PHP7 fix
[Pman.Core] / Pman.Lock.js
index 7229987..b44696d 100644 (file)
  */
 Pman.Lock = function (cfg) {
     this.cfg = cfg;
-    this.attemptLock();
+    Roo.log('ctor-callLock');
+    this.callLock();
 }
 
 Roo.apply(Pman.Lock.prototype, {
+    cfg : false,
     
-    attemptLock : function()
+    id : false, // the id of the lock..
+    
+    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..
                 
                 
@@ -69,39 +77,41 @@ Roo.apply(Pman.Lock.prototype, {
     confirmBreak : function (ar)
     {
         
-        var msg = '';
+        var msg = "This Record is Locked by the following people, <br/>" + 
+            "Do you want to continue, this will prevent these people from saving their changes<br/>";
+            
         Roo.each(ar, function(p) {
+            msg += '<br/>' + 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',
+        new Pman.Request({
+            url : baseURL + '/Core/Lock/unlock',
             params : {
-                id : this.lock_id,
-                on_id : cfg.id
+                id : this.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
                 
             }
-        })
+        });
     }