select/unselect of a chat row added
[brisk.git] / web / commons.js
index f1bab59..793ff4e 100644 (file)
@@ -458,11 +458,41 @@ function act_logout(exitlock)
 
 function ModerateItem(item_ar)
 {
+    var tr, td, date;
+
     this.time  = item_ar[0];
     this.usrid = item_ar[1];
     this.where = item_ar[2];
     this.name  = item_ar[3];
     this.cont  = item_ar[4];
+
+    date = new Date();
+    date.setTime(this.time * 1000);
+
+    tr = document.createElement("tr");
+    td = document.createElement("td");
+    // FIXME a more readable date here
+    // td.innerHTML = date.xxxx;
+    td.innerHTML = this.time % 100000;
+    tr.appendChild(td);
+
+    td = document.createElement("td");
+    td.innerHTML = this.where;
+    tr.appendChild(td);
+
+    td = document.createElement("td");
+    td.innerHTML = this.usrid;
+    tr.appendChild(td);
+
+    td = document.createElement("td");
+    td.innerHTML = this.name;
+    tr.appendChild(td);
+
+    td = document.createElement("td");
+    td.innerHTML = this.cont;
+    tr.appendChild(td);
+
+    this.tr = tr;
 }
 
 ModerateItem.prototype = {
@@ -470,11 +500,30 @@ ModerateItem.prototype = {
     usrid: 0,
     where: -1,
     name: "",
-    cont: ""
+    cont: "",
+
+    tr: null,
+    sel: false,
+
+    tr_get: function () {
+        return this.tr;
+    },
+
+    sel_get: function () {
+        return this.sel;
+    },
+
+    sel_set: function (v) {
+        if (this.sel != v) {
+            this.sel = v;
+            this.tr.className = (v ? 'selected' : 'normal');
+        }
+    }
 }
 
 function Moderate()
 {
+    this.item = new Array();
 }
 
 Moderate.prototype = {
@@ -491,6 +540,7 @@ Moderate.prototype = {
             this.tout = 0;
         }
         if (this.win) {
+            this.win.onbeforeunload = null;
             this.win.close();
             this.win = null;
         }
@@ -503,7 +553,7 @@ Moderate.prototype = {
         if (enable) {
             this.disable();
 
-            this.win = window.open("moderation.php", "Moderazione", "width=800,height=600,toolbar=no,location=no,menubar=no,status=no");
+            this.win = window.open("moderation.php", "_blank", "width=800,height=600,toolbar=no,location=no,menubar=no,status=no");
             if (this.win == null) {
                 this.disable();
                 return false;
@@ -520,29 +570,68 @@ Moderate.prototype = {
 
     win_waitonload: function () {
         if (typeof(this.win.is_loaded)  == 'undefined' || this.win.is_loaded != true) {
-            console.log("not ready");
             this.tout = setTimeout(function (obj) { obj.win_waitonload(); }, 250, this);
         }
         else {
-            console.log("ready now!");
             this.post_onload();
         }
     },
 
     post_onload: function() {
-        $(this.win, 'mainbody').innerHTML = "GHE SEMU";
+        var tr, td, remtr;
+
+        this.win.anc = this;
+        this.table = $(this.win, 'moder_tab');
+
+        // for (i = 0 ; i < 3 ; i++) {
+        //     tr = document.createElement("tr");
+        //     for (e = 0 ; e < 2 ; e++) {
+        //         td = document.createElement("td");
+        //         td.innerHTML = "Content "+((i * 2)+e);
+        //         tr.appendChild(td);
+        //     }
+        //     this.table.appendChild(tr);
+        //     if (i == 0) 
+        //         remtr = tr;
+        // }
+        // this.table.removeChild(remtr);
+
         this.enabled = true;
     },
 
+    onunload: function() {
+        act_moderate();
+    },
+
     is_enabled: function() {
         return (this.enabled);
-    }// ,
+    },
+
+    add: function(item) {
+        var mi;
 
-    //add: function(item) {
-    //    this.item.append(new ModerateItem(item));
-    //}
-    // send_mesg("moderate|"+(enable ? "true" | "false"));
+        mi = new ModerateItem(item);
+        mi.tr.className = 'normal';
 
+        var self;
+        self = this;
+        mi.tr.onclick = function () { self.row_select(mi); };
+
+        this.item.push(mi);
+        this.table.appendChild(mi.tr_get());
+    },
+
+    row_select: function(mi) {
+        for (idx in this.item) {
+            if (this.item[idx] == mi) {
+                this.item[idx].sel_set(!this.item[idx].sel_get());
+            }
+            else {
+                this.item[idx].sel_set(false);
+            }
+        }
+        // mi.tr.className = "selected";
+    }
 }
 
 function moderate(enable)
@@ -554,15 +643,11 @@ var g_moder = new Moderate();
 
 function act_moderate()
 {
-    send_mesg("moderate|"+(g_moder.is_enabled() ? "true" : "false"));
+    send_mesg("moderate|"+(g_moder.is_enabled() ? "false" : "true"));
 }
 
 
 
-//             send_mesg("moderate|false");
-//             return false;
-//         }
-        
 //         // build table with js
         
 //         g_moder.item = new Array;
@@ -588,6 +673,9 @@ function act_moderate()
 
 function act_reloadroom()
 {
+    if (g_moder.is_enabled()) {
+        g_moder.disable();
+    }
     window.onunload = null;
     window.onbeforeunload = null;
     document.location.assign("index.php");
@@ -606,6 +694,11 @@ function act_shutdown()
 function postact_logout()
 {
     // alert("postact_logout");
+
+    if (g_moder.is_enabled()) {
+        g_moder.disable();
+    }
+
     try { 
        hstm.abort();
     } catch (e) {}