moderation table management tests
[brisk.git] / web / room.js
index 2572555..e65606a 100644 (file)
 
 /* 
 
-   data = [ [ flags, name ],  ... ]
+   data = [ [ flags, flags_vlt, name ],  ... ]
    
 */
 
 
-var l_list_all = 0x00;
-var l_list_auth = 0x01;
-var l_list_isol = 0x02;
-
-function client_prefs()
-{
-}
-
-client_prefs.prototype = {
-    listen: -1
-}
-
-function state_add(flags)
+function state_add(flags, flags_vlt, comp)
 {
     var content = "", supercont = "";
     var st, superst, name = "", supername = "", supersfx = "";
     var tit = "", supertit = "";
 
 
-    if ((flags & 0xf00) != 0) {
-        st = flags & 0xf00;
+    if ((flags_vlt & 0xff) != 0) {
+        st = flags_vlt & 0xff;
         // MLANG 4,12,16,20,24,28
         switch (st) {
-        case 0x100:
+        case 0x01:
             name = "st_pau.png";
             tit = (g_lang == 'en' ? "I'm doing a break" : "sono in pausa");
             break;
-        case 0x200:
+        case 0x02:
             name = "st_out.png";
             tit = (g_lang == 'en' ? "I'm away" : "sono fuori");
             break;
-        case 0x300:
+        case 0x03:
             name = "st_dog.png";
             tit = (g_lang == 'en' ? "Dog time" : "sono a spasso col cane");
             break;
-        case 0x400:
+        case 0x04:
             name = "st_eat.png";
             tit = (g_lang == 'en' ? "I'm eating" : "sto mangiando");
             break;
-        case 0x500:
+        case 0x05:
             name = "st_wrk.png";
             tit = (g_lang == 'en' ? "I'm working" : "sono a lavoro");
             break;
-        case 0x600:
+        case 0x06:
             name = "st_smk.png";
             tit = (g_lang == 'en' ? "I'm smoking a sigarett (and keeping a cancer)" : "sto fumando una sigaretta (e facendomi venire il cancro)");
             break;
-        case 0x700:
+        case 0x07:
             name = "st_eye.png";
             tit = (g_lang == 'en' ? "I'm here!" : "sono presente!");
             break;
-        case 0x800:
+        case 0x08:
             name = "st_rabbit.png";
             tit = (g_lang == 'en' ? "Rabbit time" : "sono a spasso col coniglio");
             break;
-        case 0x900:
+        case 0x09:
             name = "st_soccer.png";
             tit = (g_lang == 'en' ? "Soccer time" : "c'è la partita!!");
             break;
-        case 0xa00:
+        case 0x0a:
             name = "st_baby.png";
             tit = (g_lang == 'en' ? "Children time" : "ho il pupo da accudire");
             break;
-        case 0xb00:
+        case 0x0b:
             name = "st_mop.png";
             tit = (g_lang == 'en' ? "Mop time" : "sto rassettando");
             break;
-        case 0xc00:
+        case 0x0c:
             name = "st_babbo.png";
             tit = (g_lang == 'en' ? "Sto dando i regali" : "sto dando i regali");
             break;
-        case 0xd00:
+        case 0x0d:
             name = "st_renna.png";
             tit = (g_lang == 'en' ? "in giro per regali" : "in giro per regali");
             break;
-        case 0xe00:
+        case 0x0e:
             name = "st_pupaz.png";
             tit = (g_lang == 'en' ? "Neve a gogò" : "neve a gogò");
             break;
-        case 0xf00:
+        case 0x0f:
             name = "st_visch.png";
             tit = (g_lang == 'en' ? "aspettando sotto al vischio" : "aspettando sotto al vischio");
             break;
@@ -125,14 +113,19 @@ function state_add(flags)
 
         switch (superst) {
         case 0x20000:
-            supername = "superuser"+supersfx+".png";
+            if (comp != null) {
+                supername = "suprend.php?comp="+comp+"&sfx="+supersfx;
+            }
+            else {
+                supername = "img/superuser"+supersfx+".png";
+            }
             supertit = (g_lang == 'en' ? "Brisk Supporter" : "Brisk Supporter");
             break;
         }
     }
 
     if (supername != "") {
-        content += '&nbsp;<img title="'+supertit+'" class="inline" src="img/'+supername+'">';
+        content += '&nbsp;<img title="'+supertit+'" class="inline" src="'+supername+'">';
     }
     
     if (name != "") {
@@ -270,6 +263,9 @@ function j_stand_tdcont(el)
     return (user_dec_and_state(el));
 }
 
+/*
+  ddata = [ [ <flags-int>, <flags-vlt-int>, <nick-str>, <color-str> ], ... ]
+ */
 function j_stand_cont(ddata)
 {
     var i, ii;
@@ -283,7 +279,7 @@ function j_stand_cont(ddata)
         data = new Array();
 
         for (i = 0, ii = 0 ; ii < ddata.length ; ii++) {
-            if ((ddata[ii][0] & 0x02) == 0) {
+            if ((ddata[ii][BSK_USER_FLAGS] & 0x02) == 0) {
                 continue;
             }
             data[i++] = ddata[ii];
@@ -292,9 +288,11 @@ function j_stand_cont(ddata)
     else
         data = ddata;
 
+    // WARNING:
+    //
+    //   managing update needs this branch (for few users and the else!!)
+    //
     if (standup_data_old == null || data.length < 4) {
-    // if (standup_data_old == null) {
-        
         content = '<table cols="'+(data.length < 4 ? data.length : 4)+'" class="table_standup">';
         for (i = 0 ; i < data.length ; i++) {
             if ((i % 4) == 0)
@@ -312,18 +310,6 @@ function j_stand_cont(ddata)
         
         $("standup").innerHTML = content;
 
-        // console.log("inizio");
-        // for (i = 0 , curtag = table_walk($("standup")) ; curtag != null ;  curtag = table_walk(curtag), i++ ) {
-        //     console.log("inloop["+i+"]: "+curtag.tagName+"  ID: "+curtag.id);
-        // }
-        // console.log("fine "+i);
-
-        // walktable($("standup"), nextag);
-        // console.log($("standup").firstChild);
-        // console.log($("standup").firstChild.firstChild.firstChild.firstChild);
-
-        // log_walk($("standup"));
-
         standup_data_old = data;
     }
     else {
@@ -343,7 +329,7 @@ function j_stand_cont(ddata)
         // find removed entries
         for (i = 0 ; i < standup_data_old.length ; i++) {
             for (e = 0 ; e < data.length ; e++) {
-                if (standup_data_old[i][1] == data[e][1]) {
+                if (standup_data_old[i][BSK_USER_NICK] == data[e][BSK_USER_NICK]) {
                     break;
                 }
             }
@@ -353,7 +339,10 @@ function j_stand_cont(ddata)
             }
             else {
                 /* modified entries */
-                if (standup_data_old[i][0] != data[e][0]) {
+                if (standup_data_old[i][BSK_USER_FLAGS] != data[e][BSK_USER_FLAGS] ||
+                    standup_data_old[i][BSK_USER_FLGVL] != data[e][BSK_USER_FLGVL] ||
+                    standup_data_old[i].length != data[e].length ||
+                    (data[e].length == 4 && standup_data_old[i][BSK_USER_SCOL] != data[e][BSK_USER_SCOL])) {
                     arr_mod[idx_mod_n] = data[e];
                     idx_mod[idx_mod_n++] = i;
                 }
@@ -364,12 +353,12 @@ function j_stand_cont(ddata)
         // find new entries
         for (e = 0 ; e < data.length ; e++) {
             for (i = 0 ; i < standup_data_old.length ; i++) {
-                if (data[e][1] == standup_data_old[i][1] ) {
+                if (data[e][BSK_USER_NICK] == standup_data_old[i][BSK_USER_NICK] ) {
                     break;
                 }
             }
             if (i == standup_data_old.length) {
-                // console.log("ADD: "+data[e][1]);
+                // console.log("ADD: "+data[e][BSK_USER_NICK]);
                 arr_add[idx_add_n]   = data[e];
                 map_add[idx_add_n++] = e;
             }
@@ -426,7 +415,7 @@ function j_stand_cont(ddata)
         // console.log("fineloop");
 
         for (i ; i_add < idx_add_n ; i_add++, i++) {
-            // console.log("ADD: "+i+" arr_add: "+ arr_add[i_add][1]);
+            // console.log("ADD: "+i+" arr_add: "+ arr_add[i_add][BSK_USER_NICK]);
             td = document.createElement("td");
             td.className = "room_standup";
             td.id = map_add[i_add];
@@ -456,8 +445,6 @@ function j_tab_cont(table_idx, data)
     var content = '';
 
     for (i = 0 ; i < data.length ; i++) {
-        // content += user_decorator(data[i]);
-        // content += state_add(data[i][0]);
         content += j_stand_tdcont(data[i]);
 
         content += '<br>';
@@ -704,192 +691,6 @@ function j_pollbox(form)
     return (false);
 }
 
-function prefs_assign(content)
-{
-    var prefs_new;
-    var s;
-
-    s = "prefs_new = " + content;
-    eval(s);
-
-    return (prefs_new);
-}
-
-var prefs_list_idx  = new Array( 0x00, 0x01, 0x02 );
-var prefs_list_id   = new Array( "all", "auth", "isol" );
-
-function prefs_apply(prefs_new, is_update, is_volat)
-{
-    var i;
-    var relo = false;
-
-    if (typeof(g_prefs) == 'undefined')
-        return false;
-    /* listen management */
-    if (g_prefs.listen != prefs_new.listen || is_update) {
-        for (i = 0 ; i < prefs_list_idx.length ; i++) {
-            set_checked_value($('ra_listen_'+prefs_list_id[i]), prefs_new.listen);
-            if (prefs_new.listen == prefs_list_idx[i]) {
-                if (!is_volat)
-                    $('list_'+prefs_list_id[i]).style.color = 'red';
-                $('list_info').innerHTML = mlang_commons['tit_list'][i][g_lang];
-            }
-            else {
-                if (!is_volat)
-                    $('list_'+prefs_list_id[i]).style.color = 'black';
-            }
-        }
-
-        relo = true;
-    }
-
-
-    // TO BE ANALYZED !!!
-    // if (is_update) {
-    //     createCookie("CO_list", what, 24*365, cookiepath);
-    // }
-
-
-    if (relo || !is_update) {
-        for (i = g_tables_auth_n ; i < g_tables_n ; i++) {
-            if (i % 4 == 0) {
-                $('tr_noauth'+i).style.display = (prefs_new.listen == l_list_isol ? 'none' : '');
-            }
-
-            $('td_noauth'+i).style.display = (prefs_new.listen == l_list_isol ? 'none' : '');
-        }
-        if (prefs_new.listen == l_list_isol) {
-            tra.hide_noauth();
-        }
-        else {
-            tra.show_noauth();
-        }
-
-        if (false) {
-            // ricalculation of standup area
-            if (standup_data_old != null) {
-                standup_data = standup_data_old;
-                standup_data_old = null;
-                j_stand_cont(standup_data);
-            }
-        }
-    }
-
-    g_prefs.listen = prefs_new.listen;
-}
-
-function prefs_load(content, is_update, is_volat)
-{
-    var prefs_new;
-
-    if ((prefs_new = prefs_assign(content)) == null)
-        return false;
-
-    return prefs_apply(prefs_new, is_update, is_volat);
-}
-
-function prefs_save()
-{
-    var ret;
-
-    if (typeof(g_prefs) == 'undefined')
-        return false;
-
-    ret = server_request('mesg', 'prefs','__POST__', 'prefs', JSON.stringify(g_prefs));
-
-    if (ret == 1)
-        $('preferences').style.visibility = 'hidden';
-}
-
-function prefs_update()
-{
-    var i;
-    var prefs_new;
-    var relo = false;
-
-    if (typeof(g_prefs) == 'undefined')
-        return false;
-
-    prefs_new = new client_prefs();
-
-    /* listen management */
-    for (i = 0 ; i < prefs_list_idx.length ; i++) {
-        prefs_new.listen = get_checked_value($('ra_listen_'+prefs_list_id[i]));
-        if (prefs_new.listen != '')
-            break;
-    }
-
-    /* from form to struct */
-    prefs_apply(prefs_new, true, true);
-}
-
-function list_set(what, is_update, info)
-{
-    var i;
-    var relo = false;
-    var old_st = readCookie("CO_list");
-    
-    if (what == 'auth') {
-        $('list_auth').style.color = 'red';
-        $('list_isol').style.color = 'black';
-        $('list_all').style.color = 'black';
-        if (old_st == 'isolation')
-            relo = true;
-        g_listen = l_list_auth;
-    }
-    else if (what == 'isolation') {
-        $('list_auth').style.color = 'black';
-        $('list_isol').style.color = 'red';
-        $('list_all').style.color = 'black';
-        if (old_st != 'isolation')
-            relo = true;
-        g_listen = l_list_isol;
-    }
-    else {
-        $('list_auth').style.color = 'black';
-        $('list_isol').style.color = 'black';
-        $('list_all').style.color = 'red';
-        if (old_st == 'isolation')
-            relo = true;
-        g_listen = l_list_all;
-    }
-
-    set_checked_value($('ra_listen_auth'), what);
-    set_checked_value($('ra_listen_isol'), what);
-    set_checked_value($('ra_listen_all'),  what);
-
-    $('list_info').innerHTML = info;
-    if (is_update) {
-        createCookie("CO_list", what, 24*365, cookiepath);
-    }
-
-
-    if (relo || !is_update) {
-        for (i = g_tables_auth_n ; i < g_tables_n ; i++) {
-            
-            if (i % 4 == 0) {
-                $('tr_noauth'+i).style.display = (what == 'isolation' ? 'none' : '');
-            }
-            
-            $('td_noauth'+i).style.display = (what == 'isolation' ? 'none' : '');
-        }
-        if (what == 'isolation') {
-            tra.hide_noauth();
-        }
-        else {
-            tra.show_noauth();
-        }
-            
-        if (false) {
-            // ricalculation of standup area
-            if (standup_data_old != null) {
-                standup_data = standup_data_old;
-                standup_data_old = null;
-                j_stand_cont(standup_data);
-            }
-        }
-    }
-}
 
 function sideslide(domobj, height, step)
 {