function LockMechanism(&$p, $table, $id) { $locked = LockCheck($table, $id); if (matches($table, "Modified")) { return; } $p->HTML('<div class="padlockarea"><span id="padlock" class="redbutton">' . '<span id="padlockface" class=""></span>' . '</span>' . '<span id="padlockmsg"></span>' . '</div>'); $p->JQ(' $.ajax({ url:"ajax.skeleton.key", data:{S:1,T:"' . $table . '",I:' . $id . '}, dataType:"html", success:function(d){ page_lock_status=parseInt(d) == 1 ? true : false; if ( page_lock_status ) { $("#padlockface").removeClass("fi-unlock"); $("#padlockface").addClass("fi-lock"); $("#padlockmsg").get(0).innerHTML=" locked"; } else { $("#padlockface").removeClass("fi-lock"); $("#padlockface").addClass("fi-unlock"); $("#padlockmsg").get(0).innerHTML=" "; } } }); var page_lock_status=' . ($locked ? 'true' : 'false') . '; $("#padlock").on("click",function(e){ $.ajax({ url:"ajax.skeleton.key", data:{T:"' . $table . '",I:' . $id . '}, dataType:"html", success:function(d){ page_lock_status=parseInt(d) == 1 ? true : false; if ( page_lock_status ) { $("#padlockface").removeClass("fi-unlock"); $("#padlockface").addClass("fi-lock"); $("#padlockmsg").get(0).innerHTML=" locked"; } else { $("#padlockface").removeClass("fi-lock"); $("#padlockface").addClass("fi-unlock"); $("#padlockmsg").get(0).innerHTML=" "; } } }); setInterval(function(){ $.ajax({ url:"ajax.skeleton.key", data:{S:1,T:"' . $table . '",I:' . $id . '}, dataType:"html", success:function(d){ page_lock_status=parseInt(d) == 1 ? true : false; if ( page_lock_status ) { $("#padlockface").removeClass("fi-unlock"); $("#padlockface").addClass("fi-lock"); $("#padlockmsg").get(0).innerHTML=" locked"; } else { $("#padlockface").removeClass("fi-lock"); $("#padlockface").addClass("fi-unlock"); $("#padlockmsg").get(0).innerHTML=" "; } } }); }, 15000 ); }); '); }
// Ajax intake for bound form elements // global $plog_level; $plog_level=1; include 'core/Page.php'; if (Session::logged_in()) { global $database; $getpost = getpost(); if (isset($getpost['I']) && isset($getpost['V']) && isset($getpost['T']) && isset($getpost['F'])) { $ID = $getpost['I']; $Table = $getpost['T']; $Field = $getpost['F']; $Value = $getpost['V']; if (!Auth::ACL('edit-' . $Table) && !Auth::ACL('edit-' . $Table . '-' . $Field) && !Auth::ACL('su')) { echo '{"result":"readonly"}'; die; } if (LockCheck($Table, $ID) === TRUE) { echo '{"result":"locked"}'; die; } if (AutoLockCheck($Table, $ID) === TRUE) { echo '{"result":"locked"}'; die; } // Update the db, but only when a valid model is provided if (class_exists($Table) && matches(get_parent_class($Table), 'Model')) { global $database; $model = new $Table($database); $model->Update(array($Field => $Value), array('ID' => $ID)); Modified(array("D" => array($Table => array("F" => $Field, "I" => $ID)))); echo '{"result":"success"}'; //var_dump($getpost);