Alice
view release on metacpan or search on metacpan
share/static/alice.js view on Meta::CPAN
$('tabset_menu').replace(transport.responseText);
Alice.tabsets.remove()
}
});
return false;
},
params: function () {
var values = Alice.tabsets.values();
return Alice.tabsets.sets().inject({}, function(acc, set, index) {
acc[set] = values[index];
return acc;
});
},
sets: function () {
if (!$('sets')) return [];
return $('sets').select('li').map(function(li) {return li.innerHTML.unescapeHTML()});
},
values: function () {
if (!$('tabset_data')) return [];
return $$('#tabset_data ul').map(function(ul) {
var windows = ul.select('input').filter(function(input) {
return input.checked;
}).map(function(input){return input.name});
return windows.length ? windows : 'empty';
});
},
remove: function () {
alice.input.disabled = false;
$('tabsets').remove();
},
clearActive: function () {
$('tabset_data').select('.active').invoke('removeClassName', 'active');
$('sets').select('.active').invoke('removeClassName', 'active');
},
removeSet: function () {
$('tabsets').down('.active').remove();
$('tabset_data').down('.active').remove();
},
focusIndex: function (i) {
Alice.tabsets.clearActive();
$('tabset_data').select('ul')[i].addClassName('active');
$('sets').select('li')[i].addClassName('active');
},
focusSet: function (e) {
var li = e.findElement('li');
if (li) {
Alice.tabsets.focusIndex(li.previousSiblings().length);
}
},
},
prefs: {
addHighlight: function (alias) {
var channel = prompt("Enter a word to highlight.");
if (channel)
$('highlights').insert("<option value=\""+channel+"\">"+channel+"</option>");
return false;
},
removeHighlights: function (alias) {
$A($('highlights').options).each(function (option) {
if (option.selected) option.remove()});
return false;
},
addNick: function (nick) {
var nick = prompt("Enter a nick.");
if (nick)
$('monospace_nicks').insert("<option value=\""+nick+"\">"+nick+"</option>");
return false;
},
removeNicks: function (nick) {
$A($('monospace_nicks').options).each(function (option) {
if (option.selected) option.remove()});
return false;
},
remove: function() {
alice.input.disabled = false;
$('prefs').remove();
},
submit: function(form) {
var options = {highlights: [], monospace_nicks: []};
["images", "animate", "avatars", "alerts", "audio"].each(function (pref) {
options[pref] = $(pref).checked ? "show" : "hide";
});
$A($("highlights").options).each(function(option) {
options.highlights.push(option.value);
});
$A($("monospace_nicks").options).each(function(option) {
options.monospace_nicks.push(option.value);
});
["style", "timeformat", "quitmsg"].each(function(pref) {
options[pref] = $(pref).value;
});
Alice.prefs.remove();
new Ajax.Request('/save', {
method: 'get',
parameters: options,
onSuccess: function(){
var reload = (alice.options.avatars != options.avatars ||
alice.options.images != options.images ||
alice.options.style != options.style);
if (reload) {
window.location.reload();
}
else {
alice.options = options;
if (window.location.toString().match(/safe/i)) {
alice.options.avatars = "hide";
alice.options.images = "hide";
}
}
}
});
return false;
}
},
connections: {
disconnectServer: function (alias) {
$("menu_" + alias).addClassName("disconnected");
$("menu_" + alias).removeClassName("connected");
$(alias + "_status").className = "disconnected";
$(alias + "_status").innerHTML = "disconnected";
$(alias + "_connection").innerHTML = "connect";
$(alias + "_connection").onclick = function (e) {
e.stop();
Alice.connections.serverConnection(alias, "connect");
};
},
connectServer: function (alias) {
$("menu_" + alias).removeClassName("disconnected");
$("menu_" + alias).addClassName("connected");
$(alias + "_status").className = "connected";
$(alias + "_status").innerHTML = "connected";
$(alias + "_connection").innerHTML = "disconnect";
$(alias + "_connection").onclick = function (e) {
e.stop();
Alice.connections.serverConnection(alias, "disconnect");
};
},
showConnection: function (alias) {
$$("div#servers .active").invoke("removeClassName","active");
$("setting_" + alias).addClassName("active");
$("menu_" + alias).addClassName("active");
},
addChannel: function (alias) {
var channel = prompt("Please enter a channel name.");
if (channel)
share/static/alice.js view on Meta::CPAN
},
announce: function (action) {
this.activeWindow().announce(action['body']);
},
connect: function (action) {
if ($('servers')) {
Alice.connections.connectServer(action.network);
}
},
disconnect: function (action) {
action.windows.each(function (win_info) {
var win = this.getWindow(win_info.id);
if (win) {
win.disable();
}
}.bind(this));
if ($('servers')) {
Alice.connections.disconnectServer(action.network);
}
},
focus: function (action) {
if (!action.window_number) return;
if (action.window_number == "next") {
this.nextWindow();
}
else if (action.window_number.match(/^prev/)) {
this.previousWindow();
}
else if (action.window_number.match(/^\d+$/)) {
var tab = this.tabs.down('li', action.window_number);
if (tab) {
var window_id = tab.id.replace('_tab','');
this.getWindow(window_id).focus();
}
}
}
},
toggleHelp: function() {
var help = $('help');
help.visible() ? help.hide() : help.show();
},
toggleJoin: function() {
this.connection.get("/join", function (transport) {
this.input.disabled = true;
$('windows').insert(transport.responseText);
}.bind(this));
},
toggleConfig: function(e) {
this.connection.get("/config", function (transport) {
this.input.disabled = true;
$('windows').insert(transport.responseText);
}.bind(this));
if (e) e.stop();
},
togglePrefs: function(e) {
this.connection.get("/prefs", function (transport) {
this.input.disabled = true;
$('windows').insert(transport.responseText);
}.bind(this));
if (e) e.stop();
},
toggleTabsets: function(e) {
this.connection.get("/tabsets", function (transport) {
this.input.disabled = true;
$('windows').insert(transport.responseText);
Alice.tabsets.focusIndex(0);
}.bind(this));
},
windows: function () {
return this.window_map.values();
},
nth_window: function(n) {
var tab = this.tabs.down('.visible:not(.info_tab)', n - 1);
if (tab) {
var m = tab.id.match(/([^_]+)_tab/);
if (m) {
return this.window_map.get(m[1]);
}
}
},
info_window: function(n) {
return this.windows().find(function(win) {
if (win.type == "info") return win;
});
},
openWindow: function(serialized, msgid) {
if (!msgid) msgid = this.msgid();
var win = new Alice.Window(this, serialized, msgid);
this.addWindow(win);
return win;
},
addWindow: function(win) {
this.window_map.set(win.id, win);
if (window.fluid)
window.fluid.addDockMenuItem(win.title, win.focus.bind(win));
},
removeWindow: function(win) {
this.tabs_layout = this.tabs.getLayout();
this.windows().invoke("updateTabLayout");
if (win.active) this.focusLast();
if (window.fluid)
window.fluid.removeDockMenuItem(win.title);
if (win.id == this.previousFocus.id) {
this.previousFocus = 0;
}
this.window_map.unset(win.id);
( run in 0.838 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )