From 55f92d7e8cfe32e4040ebcd55612ad3dec244640 Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Sun, 6 Feb 2011 10:03:34 +0100
Subject: [PATCH] moved locktimer class to its own file

I also adjusted the coding style to match our other JS classes
---
 lib/exe/js.php           |   1 +
 lib/scripts/edit.js      | 101 ---------------------------------------
 lib/scripts/locktimer.js |  98 +++++++++++++++++++++++++++++++++++++
 3 files changed, 99 insertions(+), 101 deletions(-)
 create mode 100644 lib/scripts/locktimer.js

diff --git a/lib/exe/js.php b/lib/exe/js.php
index 117021308..645ab3cc4 100644
--- a/lib/exe/js.php
+++ b/lib/exe/js.php
@@ -48,6 +48,7 @@ function js_out(){
                 DOKU_INC.'lib/scripts/textselection.js',
                 DOKU_INC.'lib/scripts/toolbar.js',
                 DOKU_INC.'lib/scripts/edit.js',
+                DOKU_INC.'lib/scripts/locktimer.js',
                 DOKU_INC.'lib/scripts/linkwiz.js',
                 DOKU_INC.'lib/scripts/media.js',
                 DOKU_INC.'lib/scripts/subscriptions.js',
diff --git a/lib/scripts/edit.js b/lib/scripts/edit.js
index 01262bcef..3276c9e06 100644
--- a/lib/scripts/edit.js
+++ b/lib/scripts/edit.js
@@ -341,104 +341,3 @@ function summaryCheck(){
     }
 }
 
-
-/**
- * Class managing the timer to display a warning on a expiring lock
- */
-function locktimer_class(){
-        this.sack     = null;
-        this.timeout  = 0;
-        this.timerID  = null;
-        this.lasttime = null;
-        this.msg      = '';
-        this.pageid   = '';
-};
-var locktimer = new locktimer_class();
-    locktimer.init = function(timeout,msg,draft){
-        // init values
-        locktimer.timeout  = timeout*1000;
-        locktimer.msg      = msg;
-        locktimer.draft    = draft;
-        locktimer.lasttime = new Date();
-
-        if(!$('dw__editform')) return;
-        locktimer.pageid = $('dw__editform').elements.id.value;
-        if(!locktimer.pageid) return;
-
-        // init ajax component
-        locktimer.sack = new sack(DOKU_BASE + 'lib/exe/ajax.php');
-        locktimer.sack.AjaxFailedAlert = '';
-        locktimer.sack.encodeURIString = false;
-        locktimer.sack.onCompletion = locktimer.refreshed;
-
-        // register refresh event
-        addEvent($('dw__editform'),'keypress',function(){locktimer.refresh();});
-        // start timer
-        locktimer.reset();
-    };
-
-    /**
-     * (Re)start the warning timer
-     */
-    locktimer.reset = function(){
-        locktimer.clear();
-        locktimer.timerID = window.setTimeout("locktimer.warning()", locktimer.timeout);
-    };
-
-    /**
-     * Display the warning about the expiring lock
-     */
-    locktimer.warning = function(){
-        locktimer.clear();
-        alert(locktimer.msg);
-    };
-
-    /**
-     * Remove the current warning timer
-     */
-    locktimer.clear = function(){
-        if(locktimer.timerID !== null){
-            window.clearTimeout(locktimer.timerID);
-            locktimer.timerID = null;
-        }
-    };
-
-    /**
-     * Refresh the lock via AJAX
-     *
-     * Called on keypresses in the edit area
-     */
-    locktimer.refresh = function(){
-        var now = new Date();
-        // refresh every minute only
-        if(now.getTime() - locktimer.lasttime.getTime() > 30*1000){ //FIXME decide on time
-            var params = 'call=lock&id='+encodeURIComponent(locktimer.pageid);
-            var dwform = $('dw__editform');
-            if(locktimer.draft && dwform.elements.wikitext){
-                params += '&prefix='+encodeURIComponent(dwform.elements.prefix.value);
-                params += '&wikitext='+encodeURIComponent(dwform.elements.wikitext.value);
-                params += '&suffix='+encodeURIComponent(dwform.elements.suffix.value);
-                if(dwform.elements.date){
-                    params += '&date='+encodeURIComponent(dwform.elements.date.value);
-                }
-            }
-            locktimer.sack.runAJAX(params);
-            locktimer.lasttime = now;
-        }
-    };
-
-
-    /**
-     * Callback. Resets the warning timer
-     */
-    locktimer.refreshed = function(){
-        var data  = this.response;
-        var error = data.charAt(0);
-            data  = data.substring(1);
-
-        $('draft__status').innerHTML=data;
-        if(error != '1') return; // locking failed
-        locktimer.reset();
-    };
-// end of locktimer class functions
-
diff --git a/lib/scripts/locktimer.js b/lib/scripts/locktimer.js
new file mode 100644
index 000000000..1cd9d29db
--- /dev/null
+++ b/lib/scripts/locktimer.js
@@ -0,0 +1,98 @@
+/**
+ * Class managing the timer to display a warning on a expiring lock
+ */
+var locktimer = {
+    sack:     null,
+    timeout:  0,
+    timerID:  null,
+    lasttime: null,
+    msg:      '',
+    pageid:   '',
+
+    init: function(timeout,msg,draft){
+        // init values
+        locktimer.timeout  = timeout*1000;
+        locktimer.msg      = msg;
+        locktimer.draft    = draft;
+        locktimer.lasttime = new Date();
+
+        if(!$('dw__editform')) return;
+        locktimer.pageid = $('dw__editform').elements.id.value;
+        if(!locktimer.pageid) return;
+
+        // init ajax component
+        locktimer.sack = new sack(DOKU_BASE + 'lib/exe/ajax.php');
+        locktimer.sack.AjaxFailedAlert = '';
+        locktimer.sack.encodeURIString = false;
+        locktimer.sack.onCompletion = locktimer.refreshed;
+
+        // register refresh event
+        addEvent($('dw__editform'),'keypress',function(){locktimer.refresh();});
+        // start timer
+        locktimer.reset();
+    },
+
+    /**
+     * (Re)start the warning timer
+     */
+    reset: function(){
+        locktimer.clear();
+        locktimer.timerID = window.setTimeout("locktimer.warning()", locktimer.timeout);
+    },
+
+    /**
+     * Display the warning about the expiring lock
+     */
+    warning: function(){
+        locktimer.clear();
+        alert(locktimer.msg);
+    },
+
+    /**
+     * Remove the current warning timer
+     */
+    clear: function(){
+        if(locktimer.timerID !== null){
+            window.clearTimeout(locktimer.timerID);
+            locktimer.timerID = null;
+        }
+    },
+
+    /**
+     * Refresh the lock via AJAX
+     *
+     * Called on keypresses in the edit area
+     */
+    refresh: function(){
+        var now = new Date();
+        // refresh every minute only
+        if(now.getTime() - locktimer.lasttime.getTime() > 30*1000){
+            var params = 'call=lock&id='+encodeURIComponent(locktimer.pageid);
+            var dwform = $('dw__editform');
+            if(locktimer.draft && dwform.elements.wikitext){
+                params += '&prefix='+encodeURIComponent(dwform.elements.prefix.value);
+                params += '&wikitext='+encodeURIComponent(dwform.elements.wikitext.value);
+                params += '&suffix='+encodeURIComponent(dwform.elements.suffix.value);
+                if(dwform.elements.date){
+                    params += '&date='+encodeURIComponent(dwform.elements.date.value);
+                }
+            }
+            locktimer.sack.runAJAX(params);
+            locktimer.lasttime = now;
+        }
+    },
+
+    /**
+     * Callback. Resets the warning timer
+     */
+    refreshed: function(){
+        var data  = this.response;
+        var error = data.charAt(0);
+            data  = data.substring(1);
+
+        $('draft__status').innerHTML=data;
+        if(error != '1') return; // locking failed
+        locktimer.reset();
+    },
+};
+
-- 
GitLab