| Requires: jquery.js, common.js, list.js |
+-----------------------------------------------------------------------+
- $Id: app.js 4400 2011-01-09 08:24:39Z alec $
+ $Id: app.js 4666 2011-04-17 09:34:02Z alec $
*/
// user settings commands
case 'preferences':
- this.goto_url('');
- break;
-
case 'identities':
- this.goto_url('settings/identities');
- break;
-
case 'folders':
- this.goto_url('settings/folders');
+ this.goto_url('settings/' + command);
break;
// unified command call (command name == function name)
var action = flags.mbox == this.env.drafts_mailbox ? 'compose' : 'show';
var uid_param = flags.mbox == this.env.drafts_mailbox ? '_draft_uid' : '_uid';
cols.subject = '<a href="./?_task=mail&_action='+action+'&_mbox='+urlencode(flags.mbox)+'&'+uid_param+'='+uid+'"'+
- ' onclick="return rcube_event.cancel(event)">'+cols.subject+'</a>';
+ ' onclick="return rcube_event.cancel(event)" onmouseover="rcube_webmail.long_subject_title(this,'+(message.depth+1)+')">'+cols.subject+'</a>';
}
// add each submitted col
this.compose_field_hash = function(save)
{
// check input fields
- var value_to = $("[name='_to']").val();
- var value_cc = $("[name='_cc']").val();
- var value_bcc = $("[name='_bcc']").val();
- var value_subject = $("[name='_subject']").val();
- var str = '';
+ var ed, str = '',
+ value_to = $("[name='_to']").val(),
+ value_cc = $("[name='_cc']").val(),
+ value_bcc = $("[name='_bcc']").val(),
+ value_subject = $("[name='_subject']").val();
if (value_to)
str += value_to+':';
if (value_subject)
str += value_subject+':';
- var editor = tinyMCE.get(this.env.composebody);
- if (editor)
- str += editor.getContent();
+ if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)))
+ str += ed.getContent();
else
str += $("[name='_message']").val();
this.show_contentframe(false);
}
+ if (this.env.group)
+ qs += '&_gid='+urlencode(this.env.group);
+
// also send search request to get the right records from the next page
if (this.env.search_request)
qs += '&_search='+this.env.search_request;
}
};
+ // disables subscription checkbox (for protected folder)
+ this.disable_subscription = function(folder)
+ {
+ var id = this.get_folder_row_id(folder);
+ if (id)
+ $('input[name="_subscribed[]"]', $('#'+id)).attr('disabled', true);
+ };
+
this.folder_size = function(folder)
{
var lock = this.set_busy(true, 'loading');
var current_li, target_li;
if ((current_li = this.get_folder_li(old, prefix))) {
- $(current_li).removeClass('selected').removeClass('unfocused');
+ $(current_li).removeClass('selected').addClass('unfocused');
}
if ((target_li = this.get_folder_li(name, prefix))) {
$(target_li).removeClass('unfocused').addClass('selected');
// and for setting some message list global variables
this.set_message_coltypes = function(coltypes, repl)
{
- this.env.coltypes = coltypes;
+ var list = this.message_list,
+ thead = list ? list.list.tHead : null,
+ cell, col, n, len, th, tr;
- // set correct list titles
- var thead = this.gui_objects.messagelist ? this.gui_objects.messagelist.tHead : null,
- cell, col, n, len;
+ this.env.coltypes = coltypes;
// replace old column headers
if (thead) {
if (repl) {
- var th = document.createElement('thead'),
- tr = document.createElement('tr');
+ th = document.createElement('thead');
+ tr = document.createElement('tr');
+
for (c=0, len=repl.length; c < len; c++) {
cell = document.createElement('td');
cell.innerHTML = repl[c].html;
}
th.appendChild(tr);
thead.parentNode.replaceChild(th, thead);
+ thead = th;
}
for (n=0, len=this.env.coltypes.length; n<len; n++) {
if ((n = $.inArray('subject', this.env.coltypes)) >= 0) {
this.set_env('subject_col', n);
- if (this.message_list)
- this.message_list.subject_col = n;
+ if (list)
+ list.subject_col = n;
}
if ((n = $.inArray('flag', this.env.coltypes)) >= 0)
this.set_env('flagged_col', n);
if ((n = $.inArray('status', this.env.coltypes)) >= 0)
this.set_env('status_col', n);
- this.message_list.init_header();
+ if (list)
+ list.init_header();
};
// replace content of row count display
} // end object rcube_webmail
+
+// some static methods
+rcube_webmail.long_subject_title = function(elem, indent)
+{
+ if (!elem.title) {
+ var $elem = $(elem);
+ if ($elem.width() + indent * 15 > $elem.parent().width())
+ elem.title = $elem.html();
+ }
+};
+
// copy event engine prototype
rcube_webmail.prototype.addEventListener = rcube_event_engine.prototype.addEventListener;
rcube_webmail.prototype.removeEventListener = rcube_event_engine.prototype.removeEventListener;