summaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
Diffstat (limited to 'static')
-rw-r--r--static/js/admin.js3
-rw-r--r--static/js/pichat.js35
2 files changed, 23 insertions, 15 deletions
diff --git a/static/js/admin.js b/static/js/admin.js
index fc18685..948fa99 100644
--- a/static/js/admin.js
+++ b/static/js/admin.js
@@ -37,6 +37,8 @@ Admin.mute = function(nick) {
if (!r) { reason.addClass('ui-state-error'); }
if (!t || !u || !r) { return; }
+ html.dialog("option", "disabled", true);
+
$.ajax({
type: 'POST',
timeout: 5000,
@@ -47,6 +49,7 @@ Admin.mute = function(nick) {
success: close,
error: function(s) {
alert("Error muting user: " + s.responseText);
+ close();
}
});
};
diff --git a/static/js/pichat.js b/static/js/pichat.js
index 884e01f..24b8f0c 100644
--- a/static/js/pichat.js
+++ b/static/js/pichat.js
@@ -5,11 +5,16 @@ expires='; expires='+date.toUTCString();}
var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};
-var cache = {}
-var PendingMessages = {}
-var MessageContentCache = {}
-var RawFavs = {}
-var MaxImagePosts = 30
+// The root domain is used so that subdomains don't result in
+// spurious extra urls (e.g. both dump.fm/nick and sub.dump.fm/nick)
+var RootDomain = location.href.match(/http:\/\/(\w)+\./)
+ ? 'http://dump.fm/' : '/';
+
+var cache = {};
+var PendingMessages = {};
+var MessageContentCache = {};
+var RawFavs = {};
+var MaxImagePosts = 30;
// todo: preload these. also, look into image sprites (no go on animating their sizes tho)
// css clipping perhaps?
@@ -139,7 +144,7 @@ function getImagesAsArray(text) {
function topicReplace(text) {
text = $.trim(text).toLowerCase();
var topicLabel = text.substring(1);
- return ' <a target="_blank" href="http://dump.fm/t/' + topicLabel + '">' + text + '</a> ';
+ return ' <a target="_blank" href="'+ RootDomain + 't/' + topicLabel + '">' + text + '</a> ';
}
function recipientReplace(atText, recips) {
@@ -161,7 +166,7 @@ function recipientReplace(atText, recips) {
}
if (matchedRecip) {
- return space + '<a target="_blank" href="http://dump.fm/' + matchedRecip + '">@' + matchedRecip + '</a>';
+ return space + '<a target="_blank" href="' + RootDomain + matchedRecip + '">@' + matchedRecip + '</a>';
} else {
return space + atText;
}
@@ -369,7 +374,7 @@ function buildMessageDiv(msg, opts) {
var displayStyle = ((ImgsEnabled && LastMsgContainsImage) || (TextEnabled && !LastMsgContainsImage)) ? '' : ' style="display: none"';
return '<div class="msgDiv dump ' + loadingClass + containsImageClass + '" ' + msgId + displayStyle + '>'
- + '<span class="nick"><b><a href="http://dump.fm/' + nick + ' ">' + nick + '</a></b>'
+ + '<span class="nick"><b><a href="' + RootDomain + nick + ' ">' + nick + '</a></b>'
+ ' <img src="'+Imgs.chatThumbDot+'" class="chat-thumb" onclick="Tag.favorite(this)"> '
+ '</span>'
+ '<span class="content">' + builtContent + '</span>'
@@ -379,13 +384,13 @@ function buildMessageDiv(msg, opts) {
function buildUserDiv(user) {
if (user.avatar) {
return '<div class="username">'
- + '<a href="http://dump.fm/' + escapeHtml(user.nick) + '" target="_blank">'
+ + '<a href="' + RootDomain + escapeHtml(user.nick) + '" target="_blank">'
+ '<img src="' + user.avatar + '" width="50" height="50">'
+ escapeHtml(user.nick) + '</a></div>';
} else {
return '<div class="username">'
- + '<a href="http://dump.fm/' + escapeHtml(user.nick) + '" target="_blank">'
- + '<img src="/static/img/noinfo.png" width="50" height="50">'
+ + '<a href="' + RootDomain + escapeHtml(user.nick) + '" target="_blank">'
+ + '<img src="' + RootDomain + 'static/img/noinfo.png" width="50" height="50">'
+ escapeHtml(user.nick) + '</a></div>';
}
}
@@ -394,8 +399,8 @@ function buildUserDiv(user) {
function buildFav(f) {
var h = '<div class="fav-note">'
- + '<img src="http://dump.fm/static/img/thumbs/chatheartover.gif">'
- + '<a href="http://dump.fm/' + f.from + '">' + f.from + '</a>'
+ + '<img src="' + RootDomain + 'static/img/thumbs/chatheartover.gif">'
+ + '<a href="' + RootDomain + f.from + '">' + f.from + '</a>'
+ '&nbsp;<span>just faved you!</span>'
+ '</div>';
return $(h);
@@ -429,7 +434,7 @@ function updateFavs(fs) {
function buildGrowlDataAndPopDatShit(msg) {
var nick = escapeHtml(msg.nick);
- nick = '<a href="http://dump.fm/' + nick + ' " style="color:pink">' + nick + '</a>:'
+ nick = '<a href="' + RootDomain + nick + ' " style="color:pink">' + nick + '</a>:'
var msg = buildMsgContent(msg.content)
growl(nick, msg)
}
@@ -939,9 +944,9 @@ function setupUploadAvatar(elementId) {
+ maxWidth + "x" + maxHeight);
return;
}
-
var s = '<img id="dashavatarPic" src="' + r + '" />';
$('#dashavatar').html(s).show();
+ $('#dashtotal').css('background-image', 'url(' + r + ')');
};
new AjaxUpload(elementId, {
action: '/upload/avatar',