Changeset 2260 in subversion


Ignore:
Timestamp:
Jan 23, 2009 2:31:41 PM (4 years ago)
Author:
thomasb
Message:

Some more jQueryfication

Location:
branches/devel-api/program
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/devel-api/program/include/rcube_template.php

    r2224 r2260  
    6767 
    6868        // don't wait for page onload. Call init at the bottom of the page (delayed) 
    69         $javascript_foot = "if (window.call_init)\n call_init('".JS_OBJECT_NAME."');"; 
     69        $javascript_foot = '$(document).ready(function(){ '.JS_OBJECT_NAME.'.init(); });'; 
    7070 
    7171        $this->add_script($javascript, 'head_top'); 
  • branches/devel-api/program/js/app.js

    r2226 r2260  
    5454  jQuery.ajaxSetup({ cache:false, 
    5555    error:function(request, status, err){ ref.http_error(request, status, err); }, 
    56     beforeSend:function(xmlhttp){ xmlhttp.setRequestHeader('X-RoundCube-Referer', bw.get_cookie('roundcube_sessid')); }, 
     56    beforeSend:function(xmlhttp){ xmlhttp.setRequestHeader('X-RoundCube-Referer', bw.get_cookie('roundcube_sessid')); } 
    5757  }); 
    5858 
     
    544544        var sort_col = a_sort[0]; 
    545545        var sort_order = a_sort[1] ? a_sort[1].toUpperCase() : null; 
    546         var header; 
    547546 
    548547        // no sort order specified: toggle 
     
    559558 
    560559        // set table header class 
    561         if (header = document.getElementById('rcm'+this.env.sort_col)) 
    562           this.set_classname(header, 'sorted'+(this.env.sort_order.toUpperCase()), false); 
    563         if (header = document.getElementById('rcm'+sort_col)) 
    564           this.set_classname(header, 'sorted'+sort_order, true); 
     560        $('#rcm'+this.env.sort_col).removeClass('sorted'+(this.env.sort_order.toUpperCase())); 
     561        $('#rcm'+sort_col).addClass('sorted'+sort_order); 
    565562 
    566563        // save new sort properties 
     
    11591156    // handle mouse release when dragging 
    11601157    if (this.drag_active && model && this.env.last_folder_target) { 
    1161       this.set_classname(this.get_folder_li(this.env.last_folder_target), 'droptarget', false); 
     1158      $(this.get_folder_li(this.env.last_folder_target)).removeClass('droptarget'); 
    11621159      this.command('moveto', model[this.env.last_folder_target].id); 
    11631160      this.env.last_folder_target = null; 
     
    12031200      if (mouse.x < pos.x1 || mouse.x >= pos.x2 || mouse.y < pos.y1 || mouse.y >= pos.y2) { 
    12041201        if (this.env.last_folder_target) { 
    1205           this.set_classname(this.get_folder_li(this.env.last_folder_target), 'droptarget', false); 
     1202          $(this.get_folder_li(this.env.last_folder_target)).removeClass('droptarget'); 
    12061203          this.env.last_folder_target = null; 
    12071204        } 
     
    12141211        if (this.check_droptarget(k) && ((mouse.x >= pos.x1) && (mouse.x < pos.x2)  
    12151212            && (mouse.y >= pos.y1) && (mouse.y < pos.y2))) { 
    1216           this.set_classname(this.get_folder_li(k), 'droptarget', true); 
     1213          $(this.get_folder_li(k)).addClass('droptarget'); 
    12171214          this.env.last_folder_target = k; 
    12181215        } 
    12191216        else 
    1220           this.set_classname(this.get_folder_li(k), 'droptarget', false); 
     1217          $(this.get_folder_li(k)).removeClass('droptarget'); 
    12211218      } 
    12221219    } 
     
    12271224    var div; 
    12281225    if ((li = this.get_folder_li(id)) && 
    1229         (div = li.getElementsByTagName("div")[0]) && 
    1230         (div.className.match(/collapsed/) || div.className.match(/expanded/))) 
    1231       { 
    1232       var ul = li.getElementsByTagName("ul")[0]; 
    1233       if (div.className.match(/collapsed/)) 
    1234         { 
    1235         ul.style.display = ''; 
    1236         this.set_classname(div, 'collapsed', false); 
    1237         this.set_classname(div, 'expanded', true); 
     1226        (div = $(li.getElementsByTagName("div")[0])) && 
     1227        (div.hasClass('collapsed') || div.hasClass('expanded'))) 
     1228      { 
     1229      var ul = $(li.getElementsByTagName("ul")[0]); 
     1230      if (div.hasClass('collapsed')) 
     1231        { 
     1232        ul.show(); 
     1233        div.removeClass('collapsed').addClass('expanded'); 
    12381234        var reg = new RegExp('&'+urlencode(id)+'&'); 
    12391235        this.set_env('collapsed_folders', this.env.collapsed_folders.replace(reg, '')); 
     
    12411237      else 
    12421238        { 
    1243         ul.style.display = 'none'; 
    1244         this.set_classname(div, 'expanded', false); 
    1245         this.set_classname(div, 'collapsed', true); 
     1239        ul.hide(); 
     1240        div.removeClass('expanded').addClass('collapsed'); 
    12461241        this.set_env('collapsed_folders', this.env.collapsed_folders+'&'+urlencode(id)+'&'); 
    12471242 
     
    12731268    else if (this.contact_list) 
    12741269        this.contact_list.focus(); 
    1275  
    1276     var mbox_li; 
    1277     if (mbox_li = this.get_folder_li()) 
    1278       this.set_classname(mbox_li, 'unfocused', true); 
    12791270 
    12801271    return rcube_event.get_button(e) == 2 ? true : rcube_event.cancel(e); 
     
    16411632      this.set_message_status(uid, flag, status); 
    16421633     
     1634    var rowobj = $(rows[uid].obj); 
    16431635    if (rows[uid].unread && rows[uid].classname.indexOf('unread')<0) 
    16441636      { 
    16451637      rows[uid].classname += ' unread'; 
    1646       this.set_classname(rows[uid].obj, 'unread', true); 
     1638      rowobj.addClass('unread'); 
    16471639      } 
    16481640    else if (!rows[uid].unread && rows[uid].classname.indexOf('unread')>=0) 
    16491641      { 
    16501642      rows[uid].classname = rows[uid].classname.replace(/\s*unread/, ''); 
    1651       this.set_classname(rows[uid].obj, 'unread', false); 
     1643      rowobj.removeClass('unread'); 
    16521644      } 
    16531645     
     
    16551647      { 
    16561648      rows[uid].classname += ' deleted'; 
    1657       this.set_classname(rows[uid].obj, 'deleted', true); 
     1649      rowobj.addClass('deleted'); 
    16581650      } 
    16591651    else if (!rows[uid].deleted && rows[uid].classname.indexOf('deleted')>=0) 
    16601652      { 
    16611653      rows[uid].classname = rows[uid].classname.replace(/\s*deleted/, ''); 
    1662       this.set_classname(rows[uid].obj, 'deleted', false); 
     1654      rowobj.removeClass('deleted'); 
    16631655      } 
    16641656 
     
    16661658      { 
    16671659      rows[uid].classname += ' flagged'; 
    1668       this.set_classname(rows[uid].obj, 'flagged', true); 
     1660      rowobj.addClass('flagged'); 
    16691661      } 
    16701662    else if (!rows[uid].flagged && rows[uid].classname.indexOf('flagged')>=0) 
    16711663      { 
    16721664      rows[uid].classname = rows[uid].classname.replace(/\s*flagged/, ''); 
    1673       this.set_classname(rows[uid].obj, 'flagged', false); 
     1665      rowobj.removeClass('flagged'); 
    16741666      } 
    16751667 
     
    22852277      return false; 
    22862278       
    2287     var li = document.createElement('LI'); 
    2288     li.id = name; 
    2289     li.innerHTML = content; 
    2290     this.gui_objects.attachmentlist.appendChild(li); 
     2279    $('<li>').attr('id', name).html(content).appendTo(this.gui_objects.attachmentlist); 
    22912280    return true; 
    22922281    }; 
     
    24242413  this.ksearch_select = function(node) 
    24252414  { 
    2426     var current = document.getElementById('rcmksearchSelected'); 
    2427     if (current && node) { 
    2428       current.removeAttribute('id'); 
    2429       this.set_classname(current, 'selected', false); 
     2415    var current = $('#rcmksearchSelected'); 
     2416    if (current[0] && node) { 
     2417      current.removeAttr('id').removeClass('selected'); 
    24302418    } 
    24312419 
    24322420    if (node) { 
    2433       node.setAttribute('id', 'rcmksearchSelected'); 
    2434       this.set_classname(node, 'selected', true); 
     2421      $(node).attr('id', 'rcmksearchSelected').addClass('selected'); 
    24352422      this.ksearch_selected = node._rcm_id; 
    24362423    } 
     
    25362523        p = find_in_array(this.ksearch_selected, a_result_ids); 
    25372524        if (p >= 0 && ul.childNodes) { 
    2538           ul.childNodes[p].setAttribute('id', 'rcmksearchSelected'); 
    2539           this.set_classname(ul.childNodes[p], 'selected', true); 
     2525          $(ul.childNodes[p]).attr('id', 'rcmksearchSelected').addClass('selected'); 
    25402526        } 
    25412527        else 
     
    25452531      // if no item selected, select the first one 
    25462532      if (this.ksearch_selected === null) { 
    2547         ul.firstChild.setAttribute('id', 'rcmksearchSelected'); 
    2548         this.set_classname(ul.firstChild, 'selected', true); 
     2533        $(ul.firstChild).attr('id', 'rcmksearchSelected').addClass('selected'); 
    25492534        this.ksearch_selected = a_result_ids[0]; 
    25502535      } 
     
    27562741      { 
    27572742      for (var c=0; c<cols_arr.length; c++) 
    2758         if (row.cells[c]) 
    2759           row.cells[c].innerHTML = cols_arr[c]; 
     2743        $(row.cells[c]).html(cols_arr[c]); 
    27602744 
    27612745      return true; 
     
    28452829        { 
    28462830        if (this.check_droptarget(folder) && 
    2847             !this.env.subscriptionrows[this.get_folder_row_id(this.env.folder)][2] &&     
    2848             (folder != this.env.folder.replace(reg, '')) && 
     2831            !this.env.subscriptionrows[this.get_folder_row_id(this.env.folder)][2] && 
     2832            (folder != this.env.folder.replace(reg, '')) && 
    28492833            (!folder.match(new RegExp('^'+RegExp.escape(this.env.folder+this.env.delimiter))))) 
    28502834          { 
    28512835          this.set_env('dstfolder', folder); 
    2852           this.set_classname(row, 'droptarget', true); 
     2836          $(row).addClass('droptarget'); 
    28532837          } 
    28542838        } 
     
    28562840        { 
    28572841        this.set_env('dstfolder', this.env.delimiter); 
    2858         this.set_classname(this.subscription_list.frame, 'droptarget', true); 
     2842        $(this.subscription_list.frame).addClass('droptarget'); 
    28592843        } 
    28602844    } 
     
    28622846  this.unfocus_subscription = function(id) 
    28632847    { 
    2864       var row; 
     2848      var row = $('#'+id); 
    28652849      this.set_env('dstfolder', null); 
    2866       if (this.env.subscriptionrows[id] && 
    2867           (row = document.getElementById(id))) 
    2868         this.set_classname(row, 'droptarget', false); 
     2850      if (this.env.subscriptionrows[id] && row[0]) 
     2851        row.removeClass('droptarget'); 
    28692852      else 
    2870         this.set_classname(this.subscription_list.frame, 'droptarget', false); 
     2853        $(this.subscription_list.frame).removeClass('droptarget'); 
    28712854    } 
    28722855 
     
    28822865       
    28832866    if (this.gui_objects.createfolderhint) 
    2884       this.gui_objects.createfolderhint.innerHTML = this.env.folder ? this.get_label('addsubfolderhint') : ''; 
     2867      $(this.gui_objects.createfolderhint).html(this.env.folder ? this.get_label('addsubfolderhint') : ''); 
    28852868    }; 
    28862869 
     
    29692952 
    29702953    if (cell && this.edit_folder && this.env.subscriptionrows[this.edit_folder]) 
    2971       cell.innerHTML = this.env.subscriptionrows[this.edit_folder][1]; 
     2954      $(cell).html(this.env.subscriptionrows[this.edit_folder][1]); 
    29722955       
    29732956    this.edit_folder = null; 
     
    30173000      this.set_env('folder', null); 
    30183001 
    3019       if (this.gui_objects.createfolderhint) 
    3020         this.gui_objects.createfolderhint.innerHTML = ''; 
     3002      $(this.gui_objects.createfolderhint).html(''); 
    30213003      } 
    30223004    }; 
     
    33413323    }; 
    33423324 
    3343   // set/unset a specific class name 
    3344   this.set_classname = function(obj, classname, set) 
    3345     { 
    3346     var reg = new RegExp('\s*'+classname, 'i'); 
    3347     if (!set && obj.className.match(reg)) 
    3348       obj.className = obj.className.replace(reg, ''); 
    3349     else if (set && !obj.className.match(reg)) 
    3350       obj.className += ' '+classname; 
    3351     }; 
    3352  
    33533325  // write to the document/window title 
    33543326  this.set_pagetitle = function(title) 
     
    33813353      cont = '<div class="'+type+'">'+cont+'</div>'; 
    33823354 
    3383     var _rcube = this; 
    3384     this.gui_objects.message.innerHTML = cont; 
    3385     this.gui_objects.message.style.display = 'block'; 
     3355    var obj = $(this.gui_objects.message).html(cont).show(); 
    33863356     
    33873357    if (type!='loading') 
    3388       this.gui_objects.message.onmousedown = function(){ _rcube.hide_message(); return true; }; 
     3358      obj.bind('mousedown', function(){ ref.hide_message(); return true; }); 
    33893359     
    33903360    if (!hold) 
    3391       this.message_timer = window.setTimeout(function(){ ref.hide_message(); }, this.message_time); 
     3361      this.message_timer = window.setTimeout(function(){ ref.hide_message(true); }, this.message_time); 
    33923362    }; 
    33933363 
    33943364  // make a message row disapear 
    3395   this.hide_message = function() 
     3365  this.hide_message = function(fade) 
    33963366    { 
    33973367    if (this.gui_objects.message) 
    3398       { 
    3399       this.gui_objects.message.style.display = 'none'; 
    3400       this.gui_objects.message.onmousedown = null; 
    3401       } 
     3368      $(this.gui_objects.message).unbind()[(fade?'fadeOut':'hide')](); 
    34023369    }; 
    34033370 
     
    34093376      var current_li, target_li; 
    34103377       
    3411       if ((current_li = this.get_folder_li(old))) 
    3412       { 
    3413         this.set_classname(current_li, 'selected', false); 
    3414         this.set_classname(current_li, 'unfocused', false); 
    3415       } 
    3416  
    3417       if ((target_li = this.get_folder_li(name))) 
    3418       { 
    3419         this.set_classname(target_li, 'unfocused', false); 
    3420         this.set_classname(target_li, 'selected', true); 
     3378      if ((current_li = this.get_folder_li(old))) { 
     3379        $(current_li).removeClass('selected').removeClass('unfocused'); 
     3380      } 
     3381 
     3382      if ((target_li = this.get_folder_li(name))) { 
     3383        $(target_li).removeClass('unfocused').addClass('selected'); 
    34213384      } 
    34223385    } 
     
    34753438    var even = rowcount%2; 
    34763439     
    3477     this.env.messages[uid] = {deleted:flags.deleted?1:0, 
    3478                               replied:flags.replied?1:0, 
    3479                               unread:flags.unread?1:0, 
    3480                               forwarded:flags.forwarded?1:0, 
    3481                               flagged:flags.flagged?1:0}; 
    3482      
    3483     var row = document.createElement('TR'); 
    3484     row.id = 'rcmrow'+uid; 
    3485     row.className = 'message' 
    3486         + (even ? ' even' : ' odd') 
     3440    this.env.messages[uid] = { 
     3441      deleted: flags.deleted?1:0, 
     3442      replied: flags.replied?1:0, 
     3443      unread: flags.unread?1:0, 
     3444      forwarded: flags.forwarded?1:0, 
     3445      flagged:flags.flagged?1:0 
     3446    }; 
     3447 
     3448    var css_class = 'message' 
     3449        + (even ? ' even' : ' odd') 
    34873450        + (flags.unread ? ' unread' : '') 
    3488         + (flags.deleted ? ' deleted' : '') 
    3489         + (flags.flagged ? ' flagged' : '');                 
     3451        + (flags.deleted ? ' deleted' : '') 
     3452        + (flags.flagged ? ' flagged' : ''); 
     3453 
     3454    var row = $('<tr>').attr('id', 'rcmrow'+uid).attr('class', css_class); 
    34903455 
    34913456    if (this.message_list.in_selection(uid)) 
    3492       row.className += ' selected'; 
     3457      row.addClass('selected'); 
    34933458 
    34943459    var icon = this.env.messageicon; 
     
    35073472      icon = this.env.unreadicon; 
    35083473     
    3509     var col = document.createElement('TD'); 
    3510     col.className = 'icon'; 
    3511     col.innerHTML = icon ? '<img src="'+icon+'" alt="" />' : ''; 
    3512     row.appendChild(col); 
     3474    // add icon col 
     3475    $('<td>').addClass('icon').html(icon ? '<img src="'+icon+'" alt="" />' : '').appendTo(row); 
    35133476 
    35143477    // add each submitted col 
    3515     for (var n = 0; n < this.coltypes.length; n++)  
    3516       {  
     3478    for (var n = 0; n < this.coltypes.length; n++) { 
    35173479      var c = this.coltypes[n]; 
    3518       col = document.createElement('TD'); 
    3519       col.className = String(c).toLowerCase(); 
     3480      col = $('<td>').addClass(String(c).toLowerCase()); 
    35203481       
    3521       if (c=='flag') 
    3522         { 
     3482      if (c=='flag') { 
    35233483        if (flags.flagged && this.env.flaggedicon) 
    3524           col.innerHTML = '<img src="'+this.env.flaggedicon+'" alt="" />'; 
     3484          col.html('<img src="'+this.env.flaggedicon+'" alt="" />'); 
    35253485        else if(!flags.flagged && this.env.unflaggedicon) 
    3526           col.innerHTML = '<img src="'+this.env.unflaggedicon+'" alt="" />'; 
     3486          col.html('<img src="'+this.env.unflaggedicon+'" alt="" />'); 
    35273487      } 
    35283488      else if (c=='attachment') 
    3529         col.innerHTML = attachment && this.env.attachmenticon ? '<img src="'+this.env.attachmenticon+'" alt="" />' : '&nbsp;'; 
     3489        col.html(attachment && this.env.attachmenticon ? '<img src="'+this.env.attachmenticon+'" alt="" />' : '&nbsp;'); 
    35303490      else 
    3531         col.innerHTML = cols[c]; 
    3532  
    3533       row.appendChild(col); 
     3491        col.html(cols[c]); 
     3492 
     3493      col.appendTo(row); 
    35343494      } 
    35353495 
     
    35373497 
    35383498    // remove 'old' row 
    3539     if (attop && this.env.pagesize && this.message_list.rowcount > this.env.pagesize) 
    3540       { 
    3541         var uid = this.message_list.get_last_row(); 
    3542         this.message_list.remove_row(uid); 
    3543         this.message_list.clear_selection(uid); 
    3544       } 
    3545     }; 
     3499    if (attop && this.env.pagesize && this.message_list.rowcount > this.env.pagesize) { 
     3500      var uid = this.message_list.get_last_row(); 
     3501      this.message_list.remove_row(uid); 
     3502      this.message_list.clear_selection(uid); 
     3503    } 
     3504  }; 
    35463505 
    35473506  // replace content of row count display 
    35483507  this.set_rowcount = function(text) 
    35493508    { 
    3550     if (this.gui_objects.countdisplay) 
    3551       this.gui_objects.countdisplay.innerHTML = text; 
     3509    $(this.gui_objects.countdisplay).html(text); 
    35523510 
    35533511    // update page navigation buttons 
     
    35653523  this.set_quota = function(content) 
    35663524    { 
    3567     if (this.gui_objects.quotadisplay && content) 
    3568       this.gui_objects.quotadisplay.innerHTML = content; 
     3525    if (content) 
     3526      $(this.gui_objects.quotadisplay).html(content); 
    35693527    }; 
    35703528 
     
    35953553        // add children's counters 
    35963554        for (var k in this.env.unread_counts)  
    3597           if (k.indexOf(mbox + this.env.delimiter) == 0) { 
     3555          if (k.indexOf(mbox + this.env.delimiter) == 0) 
    35983556            childcount += this.env.unread_counts[k]; 
    3599           } 
    36003557        } 
    36013558 
     
    36133570 
    36143571      // set the right classes 
    3615       this.set_classname(item, 'unread', (mycount+childcount)>0 ? true : false); 
     3572      if ((mycount+childcount)>0) 
     3573        $(item).addClass('unread'); 
     3574      else 
     3575        $(item).removeClass('unread'); 
    36163576      } 
    36173577 
     
    36543614    var even = rowcount%2; 
    36553615     
    3656     var row = document.createElement('TR'); 
    3657     row.id = 'rcmrow'+cid; 
    3658     row.className = 'contact '+(even ? 'even' : 'odd'); 
     3616    var row = $('<tr>').attr('id', 'rcmrow'+cid).addClass('class').addClass(even ? 'even' : 'odd'); 
    36593617     
    36603618    if (this.contact_list.in_selection(cid)) 
    3661       row.className += ' selected'; 
     3619      row.addClass('selected'); 
    36623620 
    36633621    // add each submitted col 
    3664     for (var c in cols) 
    3665       { 
    3666       col = document.createElement('TD'); 
    3667       col.className = String(c).toLowerCase(); 
    3668       col.innerHTML = cols[c]; 
    3669       row.appendChild(col); 
    3670       } 
     3622    for (var c in cols) { 
     3623      col = $('<td>').addClass(String(c).toLowerCase()).html(cols[c]).appendTo(row); 
     3624    } 
    36713625     
    36723626    this.contact_list.insert_row(row); 
     
    36833637  // display fetched raw headers 
    36843638  this.set_headers = function(content) 
    3685     { 
    3686     if (this.gui_objects.all_headers_row && this.gui_objects.all_headers_box && content) 
    3687       { 
    3688       var box = this.gui_objects.all_headers_box; 
    3689       box.innerHTML = content; 
    3690       box.style.display = 'block'; 
     3639  { 
     3640    if (this.gui_objects.all_headers_row && this.gui_objects.all_headers_box && content) { 
     3641      $(this.gui_objects.all_headers_box).html(content).show(); 
    36913642 
    36923643      if (this.env.framed && parent.rcmail) 
    3693         parent.rcmail.set_busy(false); 
     3644        parent.rcmail.set_busy(false); 
    36943645      else 
    36953646        this.set_busy(false); 
    3696       } 
    3697     }; 
     3647    } 
     3648  }; 
    36983649 
    36993650  // display all-headers row and fetch raw message headers 
     
    37033654      return; 
    37043655     
    3705     this.set_classname(elem, 'show-headers', false); 
    3706     this.set_classname(elem, 'hide-headers', true); 
    3707     this.gui_objects.all_headers_row.style.display = bw.ie ? 'block' : 'table-row'; 
     3656    $(elem).removeClass('show-headers').addClass('hide-headers'); 
     3657    $(this.gui_objects.all_headers_row).show(); 
    37083658    elem.onclick = function() { rcmail.hide_headers(elem); } 
    37093659 
     
    37113661    if (!this.gui_objects.all_headers_box.innerHTML) 
    37123662      { 
    3713       this.display_message(this.get_label('loading'), 'loading', true);  
     3663      this.display_message(this.get_label('loading'), 'loading', true); 
    37143664      this.http_post('headers', '_uid='+this.env.uid); 
    37153665      } 
     
    37223672      return; 
    37233673 
    3724     this.set_classname(elem, 'hide-headers', false); 
    3725     this.set_classname(elem, 'show-headers', true); 
    3726     this.gui_objects.all_headers_row.style.display = 'none'; 
     3674    $(elem).removeClass('hide-headers').addClass('show-headers'); 
     3675    $(this.gui_objects.all_headers_row).hide(); 
    37273676    elem.onclick = function() { rcmail.load_headers(elem); } 
    37283677    } 
     
    37933742    } 
    37943743    else 
    3795       postdata += (postdata ? '&' : '') + '_remote=1'; 
     3744      postdata += (postdata ? '&' : '') + '_remote=1' + (lock ? '&_unlock=1' : ''); 
    37963745 
    37973746    // send request 
     
    39773926  }  // end object rcube_webmail 
    39783927 
    3979  
    3980 // helper function to call the init method with a delay 
    3981 function call_init(o) 
    3982   { 
    3983     window.setTimeout('if (window[\''+o+'\'] && window[\''+o+'\'].init) { '+o+'.init(); }', 
    3984         bw.win ? 500 : 200); 
    3985   } 
    3986  
  • branches/devel-api/program/js/editor.js

    r2040 r2260  
    5050      spellchecker_languages : (rcmail.env.spellcheck_langs ? rcmail.env.spellcheck_langs : 'Dansk=da,Deutsch=de,+English=en,Espanol=es,Francais=fr,Italiano=it,Nederlands=nl,Polski=pl,Portugues=pt,Suomi=fi,Svenska=sv'), 
    5151      gecko_spellcheck : true, 
    52       rc_client: rcube_webmail_client, 
     52      rc_client: rcmail, 
    5353      oninit : 'rcmail_editor_callback' 
    5454    }); 
  • branches/devel-api/program/js/list.js

    r2150 r2260  
    161161{ 
    162162  var tbody = this.list.tBodies[0]; 
     163  if (!row.jquery) 
     164    row = $(row); 
    163165 
    164166  if (attop && tbody.rows.length) 
    165     tbody.insertBefore(row, tbody.firstChild); 
     167    row.prependTo(tbody) 
    166168  else 
    167     tbody.appendChild(row); 
    168  
    169   this.init_row(row); 
     169    row.appendTo(tbody); 
     170 
     171  this.init_row(row[0]); 
    170172  this.rowcount++; 
    171173}, 
     
    182184  { 
    183185    id = this.selection[n]; 
    184     if (this.rows[id] && this.rows[id].obj) 
    185     { 
    186       this.set_classname(this.rows[id].obj, 'selected', true); 
    187       this.set_classname(this.rows[id].obj, 'unfocused', false); 
     186    if (this.rows[id] && this.rows[id].obj) { 
     187      $(this.rows[id].obj).addClass('selected').removeClass('unfocused'); 
    188188    } 
    189189  } 
     
    204204  { 
    205205    id = this.selection[n]; 
    206     if (this.rows[id] && this.rows[id].obj) 
    207     { 
    208       this.set_classname(this.rows[id].obj, 'selected', false); 
    209       this.set_classname(this.rows[id].obj, 'unfocused', true); 
     206    if (this.rows[id] && this.rows[id].obj) { 
     207      $(this.rows[id].obj).removeClass('selected').addClass('unfocused'); 
    210208    } 
    211209  } 
     
    252250        iframedoc = iframes[n].contentDocument; 
    253251      else if (iframes[n].contentWindow) 
    254         iframedoc = iframes[n].contentWindow.document; 
     252        iframedoc = iframes[n].contentWindow.document; 
    255253      else if (iframes[n].document) 
    256254        iframedoc = iframes[n].document; 
     
    258256      if (iframedoc) 
    259257      { 
    260         var list = this; 
    261         var pos = rcube_get_object_pos(document.getElementById(iframes[n].id)); 
    262         this.iframe_events[n] = function(e) { e._offset = pos; return list.drag_mouse_move(e); } 
    263          
    264         if (iframedoc.addEventListener) 
    265           iframedoc.addEventListener('mousemove', this.iframe_events[n], false); 
    266         else if (iframes[n].attachEvent) 
    267           iframedoc.attachEvent('onmousemove', this.iframe_events[n]); 
    268         else 
    269           iframedoc['onmousemove'] = this.iframe_events[n]; 
     258        var list = this; 
     259        var pos = $('#'+iframes[n].id).offset(); 
     260        this.iframe_events[n] = function(e) { e._offset = pos; return list.drag_mouse_move(e); } 
     261 
     262        if (iframedoc.addEventListener) 
     263          iframedoc.addEventListener('mousemove', this.iframe_events[n], false); 
     264        else if (iframes[n].attachEvent) 
     265          iframedoc.attachEvent('onmousemove', this.iframe_events[n]); 
     266        else 
     267          iframedoc['onmousemove'] = this.iframe_events[n]; 
    270268 
    271269        rcube_event.add_listener({element:iframedoc, event:'mouseup', object:this, method:'drag_mouse_up'}); 
    272270      } 
    273     }                                                              
     271    } 
    274272  } 
    275273 
     
    411409 
    412410  if (this.last_selected != 0 && this.rows[this.last_selected]) 
    413     this.set_classname(this.rows[this.last_selected].obj, 'focused', false); 
     411    $(this.rows[this.last_selected].obj).removeClass('focused'); 
    414412 
    415413  // unselect if toggleselect is active and the same row was clicked again 
     
    420418  } 
    421419  else 
    422     this.set_classname(this.rows[id].obj, 'focused', true); 
     420    $(this.rows[id].obj).addClass('focused'); 
    423421 
    424422  if (!this.selection.length) 
     
    539537    { 
    540538    for (var n=0; n<this.selection.length; n++) 
    541       if (this.selection[n] == id) 
    542         { 
    543         this.selection.splice(n,1); 
    544         break; 
    545         } 
     539      if (this.selection[n] == id) { 
     540        this.selection.splice(n,1); 
     541        break; 
     542      } 
    546543    } 
    547544  // all rows 
     
    549546    { 
    550547    for (var n=0; n<this.selection.length; n++) 
    551       if (this.rows[this.selection[n]]) 
    552         { 
    553         this.set_classname(this.rows[this.selection[n]].obj, 'selected', false); 
    554         this.set_classname(this.rows[this.selection[n]].obj, 'unfocused', false); 
     548      if (this.rows[this.selection[n]]) { 
     549        $(this.rows[this.selection[n]].obj).removeClass('selected').removeClass('unfocused'); 
    555550        } 
    556551     
     
    595590      this.clear_selection(); 
    596591      this.selection[0] = id; 
    597       this.set_classname(this.rows[id].obj, 'selected', true); 
     592      $(this.rows[id].obj).addClass('selected'); 
    598593    } 
    599594  } 
     
    603598    { 
    604599      this.selection[this.selection.length] = id; 
    605       this.set_classname(this.rows[id].obj, 'selected', true); 
     600      $(this.rows[id].obj).addClass('selected'); 
    606601    } 
    607602    else  // unselect row 
     
    611606      var a_post = this.selection.slice(p+1, this.selection.length); 
    612607      this.selection = a_pre.concat(a_post); 
    613       this.set_classname(this.rows[id].obj, 'selected', false); 
    614       this.set_classname(this.rows[id].obj, 'unfocused', false); 
     608      $(this.rows[id].obj).removeClass('selected').removeClass('unfocused'); 
    615609    } 
    616610  } 
     
    828822 
    829823/** 
    830  * set/unset a specific class name 
    831  */ 
    832 set_classname: function(obj, classname, set) 
    833 { 
    834   var reg = new RegExp('\s*'+classname, 'i'); 
    835   if (!set && obj.className.match(reg)) 
    836     obj.className = obj.className.replace(reg, ''); 
    837   else if (set && !obj.className.match(reg)) 
    838     obj.className += ' '+classname; 
    839 }, 
    840  
    841  
    842 /** 
    843824 * Setter for object event handlers 
    844825 * 
Note: See TracChangeset for help on using the changeset viewer.