summaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
Diffstat (limited to 'static')
-rwxr-xr-xstatic/css/dump.css16
-rw-r--r--static/css/front.css159
-rw-r--r--static/form_login/front.css18
-rw-r--r--static/img/sassoonlogo.gifbin0 -> 31936 bytes
-rw-r--r--static/js/pichat.js148
5 files changed, 259 insertions, 82 deletions
diff --git a/static/css/dump.css b/static/css/dump.css
index df3e55e..55e3130 100755
--- a/static/css/dump.css
+++ b/static/css/dump.css
@@ -140,7 +140,7 @@ left:-1px;
box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
-webkit-box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
-moz-box-shadow: 0 0 10px #d8dbde, 0px 0px 2px #000;
-
+z-index: 10000000;
}
#bar7{
top:19px;
@@ -151,10 +151,11 @@ height:22;
text-indent:14px;
line-height:1.9;
left: 125px;
- margin-left: 0.1%;
+ margin-left: 5%;
margin-right: 8%;
letter-spacing:.2px;
}
+#sassoon{margin-left:-15;margin-top:2;}
#bar7dis{
top:19px;
position:absolute;
@@ -912,7 +913,6 @@ border:1px solid #000;border-right:0px;
max-height:400px;
height: expression(this.width > 400 ? 400: true);
max-width:400px;
- margin:-2;
opacity:1;
}
@@ -1179,7 +1179,7 @@ border-bottom:2px solid #c8cbce;
filter: progid:DXImageTransform.Microsoft.dropShadow(color=#c8cbce, offX=3, offY=4, positive=true);
text-overflow:ellipsis;
/* opacity:0.75;*/
- z-index:18;
+ z-index:1000;
text-align: left;
background-image:url(/static/img/bg.dither.gif);
background-color:#fff;
@@ -1260,7 +1260,7 @@ bottom:65px;
width: 99.6%;
background-color:#fff;
left:0.2%;
- z-index:;
+ z-index:0;
}
#edit-toggle{
position:absolute;
@@ -1346,7 +1346,7 @@ margin-left:-5px;
font-size:12px;
}
-
+.img-wrapper img{margin-right:-4px;}
#logavatar img{
max-width:20px;
@@ -1622,7 +1622,7 @@ z-index:5555;
max-height:600px;
height: expression(this.width > 600 ? 600: true);
border:0px;
- z-index:4;
+ z-index:0;
}
@@ -1642,7 +1642,7 @@ text-overflow: ellipsis-word;
border:1px solid #f0e0d6;
margin-left:20px;
margin-bottom:20px;
- z-index:4;
+ z-index:0;
line-height:20px;
text-align: left;
diff --git a/static/css/front.css b/static/css/front.css
new file mode 100644
index 0000000..4adfbe0
--- /dev/null
+++ b/static/css/front.css
@@ -0,0 +1,159 @@
+#login-container {
+ float: right;
+ /*width:780px;
+ margin:0 auto;*/
+right:3;
+color:#fff;
+ position: relative;
+top:8px;
+z-index:20000000;
+
+}
+
+#login-container a:link, a:visited {
+ color:#000;
+ text-decoration:none;
+}
+#login-container .topnav {
+ padding:0px 0px 12px;
+ font-size:11px;color:000;
+ line-height:23px;
+ text-shadow: #000 0px 0px 0px;
+ text-align:right;
+
+}
+#login-container .topnav a.signin {
+ text-shadow: #000 0px 0px 0px;
+ padding:5px 5px 5px 5px;
+ text-decoration:none;
+ background-color:#fff;
+
+
+z-index:20000000;
+ *padding:4px 12px 6px; filter:alpha(opacity=80);
+
+
+}
+#login-container .topnav a.signin:hover {
+
+ *padding:4px 12px 16px; background-color:#ccc;
+
+}
+#login-container .topnav a.signin, #login-container .topnav a.signin:hover {
+ *background-position:0 3px!important;color:#000;
+}
+
+a.signin {
+ position:relative;
+cursor:pointer;
+ margin-left:3px;
+}
+a.signin span {
+ background-image:url("http://dump.fm/static/form_login/images/toggle_down_light.png");
+ background-repeat:no-repeat;
+ background-position:100% 50%;
+ padding:4px 16px 6px 0;cursor:pointer;
+}
+#login-container .topnav a.menu-open {
+ background:#ddeef6!important;
+ color:#666!important; text-shadow: #000 0px 0px 0px;
+ outline:none;box-shadow: 3px 2px 2px #ccc;cursor:pointer;
+-webkit-box-shadow: 3px 2px 2px #ccc;
+-moz-box-shadow: 3px 2px 2px #ccc;
+filter: progid:DXImageTransform.Microsoft.dropShadow(color=#ccc, offX=3, offY=4, positive=true);
+
+}
+
+a.signin.menu-open span {cursor:pointer;
+ background-image:url("http://dump.fm/static/form_login/images/toggle_up_dark.png");
+ color:#789;
+}
+
+#signin_menu {
+ -moz-border-radius-topleft:5px;
+ -moz-border-radius-bottomleft:5px;
+ -moz-border-radius-bottomright:5px;
+ -webkit-border-top-left-radius:5px;
+ -webkit-border-bottom-left-radius:5px;
+ -webkit-border-bottom-right-radius:5px;
+ display:none;
+ background-color:#ddeef6;
+ position:absolute;
+ width:210px;
+ z-index:100;
+ border:1px transparent;
+ text-align:left;
+ padding:12px;
+ top: 16.5px;
+ right: 0px;
+ margin-top:5px;
+ margin-right: 0px;
+ *margin-right: -1px;
+ color:#789;
+ font-size:11px; box-shadow: 3px 2px 2px #ccc;
+-webkit-box-shadow: 3px 2px 2px #ccc;
+z-index:50000000;
+-moz-box-shadow: 3px 2px 2px #ccc;
+filter: progid:DXImageTransform.Microsoft.dropShadow(color=#ccc, offX=3, offY=4, positive=true);
+}
+
+#signin_menu input[type=text], #signin_menu input[type=password] {
+ display:block;
+ font-size:25px;
+ margin:0 0 5px;
+ padding:5px;
+ width:203px;
+}
+#signin_menu p {
+ margin:0;
+}
+#signin_menu a {
+ color:#6AC;
+}
+#signin_menu label {
+ font-weight:normal;
+}
+
+#signin_menu p a {
+ color:#27B!important;
+}
+#signin-submit {
+ display:inline-block;
+ width:90px;
+ height:35px;
+ font-size:20px;
+ background-image:url('http://dump.fm/static/img/btngrad1.png');
+ background-color:#4691e5;
+ font-weight:bold;
+ word-spacing:7;
+ margin-top:-5px;
+cursor:pointer;
+ text-align:center;
+ z-index:100;
+ font-size:16px;
+ color:#fff;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ text-shadow:1px 1px 3px #000;
+z-index:20;
+}
+
+#furie3 {
+ position: absolute;
+ left:294px;
+ margin-top:250px;
+ z-index: 10;
+
+}
+#loginSubmit::-moz-focus-inner {
+padding:0;
+border:0;
+}
+#loginSubmit:hover, #loginSubmit:focus {
+ background-position:0 -5px;
+ cursor:pointer;
+}
+.no-cursor { cursor: none; }
+.invisible { display: none !important; }
+#cursor-big { position: absolute; z-index: 1000; } \ No newline at end of file
diff --git a/static/form_login/front.css b/static/form_login/front.css
index 1bd0fae..6c47ab6 100644
--- a/static/form_login/front.css
+++ b/static/form_login/front.css
@@ -5,11 +5,8 @@
right:3;
color:#fff;
position: relative;
-top:-2;
-filter:alpha(opacity=90);
- -moz-opacity:0.9;
- -khtml-opacity: 0.9;
- opacity: 0.9z-index:2;
+top:10px;
+z-index:20000000;
}
@@ -32,7 +29,7 @@ filter:alpha(opacity=90);
background-color:#fff;
-
+z-index:20000000;
*padding:4px 12px 6px; filter:alpha(opacity=80);
@@ -52,7 +49,7 @@ cursor:pointer;
margin-left:3px;
}
a.signin span {
- background-image:url("images/toggle_down_light.png");
+ background-image:url("http://dump.fm/static/form_login/images/toggle_down_light.png");
background-repeat:no-repeat;
background-position:100% 50%;
padding:4px 16px 6px 0;cursor:pointer;
@@ -68,7 +65,7 @@ filter: progid:DXImageTransform.Microsoft.dropShadow(color=#ccc, offX=3, offY=4,
}
a.signin.menu-open span {cursor:pointer;
- background-image:url("images/toggle_up_dark.png");
+ background-image:url("http://dump.fm/static/form_login/images/toggle_up_dark.png");
color:#789;
}
@@ -95,7 +92,7 @@ a.signin.menu-open span {cursor:pointer;
color:#789;
font-size:11px; box-shadow: 3px 2px 2px #ccc;
-webkit-box-shadow: 3px 2px 2px #ccc;
-z-index:5000;
+z-index:50000000;
-moz-box-shadow: 3px 2px 2px #ccc;
filter: progid:DXImageTransform.Microsoft.dropShadow(color=#ccc, offX=3, offY=4, positive=true);
}
@@ -125,7 +122,8 @@ filter: progid:DXImageTransform.Microsoft.dropShadow(color=#ccc, offX=3, offY=4,
width:90px;
height:35px;
font-size:20px;
- background-image:url(/static/img/btngrad1.png);
+ background-image:url('http://dump.fm/static/img/btngrad1.png');
+ background-color:#4691e5;
font-weight:bold;
word-spacing:7;
margin-top:-5px;
diff --git a/static/img/sassoonlogo.gif b/static/img/sassoonlogo.gif
new file mode 100644
index 0000000..29cf6ed
--- /dev/null
+++ b/static/img/sassoonlogo.gif
Binary files differ
diff --git a/static/js/pichat.js b/static/js/pichat.js
index 6a6d962..f378f3f 100644
--- a/static/js/pichat.js
+++ b/static/js/pichat.js
@@ -119,6 +119,8 @@ Log.initialize();
URLRegex = /((\b(http\:\/\/|https\:\/\/|ftp\:\/\/)|(www\.))+(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
PicRegex = /\.(jpg|jpeg|png|gif|bmp|svg|fid)$/i;
+RecipRegex = /(^|\s)@\w+/g;
+
function getImagesAsArray(text) {
var imgs = []
@@ -133,10 +135,24 @@ function getImagesAsArray(text) {
return imgs
}
-function linkify(text) {
- LastMsgContainsImage = false
- text = text.replace(URLRegex, linkReplace);
- return text
+function linkify(text, recips) {
+ LastMsgContainsImage = false;
+ var recipWrapper = function(text) { return recipientReplace(text, recips); };
+ return text.replace(URLRegex, linkReplace).replace(RecipRegex, recipWrapper);
+}
+
+function recipientReplace(atText, recips) {
+ if (atText[0] == ' ') {
+ atText = atText.slice(1);
+ var space = ' ';
+ } else {
+ var space = '';
+ }
+ var nick = atText.slice(1);
+ if (!recips || recips.indexOf(nick.toLowerCase()) == -1) {
+ return space + atText;
+ } else
+ return space + '<a target="_blank" href="/' + nick + '">' + atText + '</a>';
}
// use this in escapeHtml to turn everyone's text lIkE tHiS
@@ -312,22 +328,22 @@ function setImgsEnable() {
}
};
-function buildMsgContent(content) {
+function buildMsgContent(content, recips) {
if (content.substr(0,6) == "<safe>")
return content.substr(6,content.length - 13)
- else return linkify(escapeHtml(content));
+ else return linkify(escapeHtml(content), recips);
}
// todo:
// isLoading doesn't get passed the right thing by $.map in addMessages
-function buildMessageDiv(msg, isLoading) {
+function buildMessageDiv(msg, opts) {
+ var opts = opts || {};
var nick = escapeHtml(msg.nick);
removeOldMessages();
- var builtContent = buildMsgContent(msg.content);
-
+ var builtContent = buildMsgContent(msg.content, msg.recips);
var msgId = ('msg_id' in msg) ? 'id="message-' + msg.msg_id + '"' : '';
- var loadingClass = isLoading ? ' loading' : '';
+ var loadingClass = opts.isLoading ? ' loading' : '';
var containsImageClass = LastMsgContainsImage ? ' contains-image' : '';
var displayStyle = ((ImgsEnabled && LastMsgContainsImage) || (TextEnabled && !LastMsgContainsImage)) ? '' : ' style="display: none"';
@@ -436,55 +452,56 @@ function clearMessages(){
}
function submitMessage() {
- var content = $.trim($('#msgInput').val());
-
- if (content == "/clear") {
- clearMessages()
+ var content = $.trim($('#msgInput').val());
+
+ if (content == "/clear") {
+ clearMessages()
+ $('#msgInput').val('');
+ return;
+ }
+
+ var invalidDomain = invalidImageDomain(content);
+ if (invalidDomain) {
+ $('#msgInput').blur(); // Remove focus to prevent FF alert loop
+ alert("Sorry, cannot accept images from " + invalidDomain + ". Maybe host the image elsewhere?");
+ return;
+ }
+
$('#msgInput').val('');
- return;
- }
-
- var invalidDomain = invalidImageDomain(content);
- if (invalidDomain) {
- $('#msgInput').blur(); // Remove focus to prevent FF alert loop
- alert("Sorry, cannot accept images from " + invalidDomain + ". Maybe host the image elsewhere?");
- return;
- }
-
- $('#msgInput').val('');
- if (content == '') { return; }
- if (content.length > 2468) {
- alert("POST TOO LONG DUDE!");
- return;
- } // this shouldn't just be client side :V
- PendingMessages[content] = true;
-
- var msg = { 'nick': Nick, 'content': content };
- var div = addNewMessage(msg, true);
-
- var onSuccess = function(json) {
- if (typeof pageTracker !== 'undefined') {
- pageTracker._trackEvent('Message', 'Submit',
- typeof Room !== 'undefined' ? Room : 'UnknownRoom');
+ if (content == '') { return; }
+ if (content.length > 2468) {
+ alert("POST TOO LONG DUDE!");
+ return;
}
- div.attr('id', 'message-' + json)
- .removeClass('loading').addClass('loaded');
- };
- var onError = function(resp, textStatus, errorThrown) {
- div.remove();
- handleMsgError(resp);
- };
-
- $.ajax({
- type: 'POST',
- timeout: 15000,
- url: '/msg',
- data: { 'room': Room, 'content': content },
- cache: false,
- dataType: 'json',
- success: onSuccess,
- error: onError
- });
+ PendingMessages[content] = true;
+
+ var msg = { 'nick': Nick, 'content': content };
+ var div = addNewMessage(msg, true);
+
+ var onSuccess = function(json) {
+ if (typeof pageTracker !== 'undefined') {
+ pageTracker._trackEvent('Message', 'Submit',
+ typeof Room !== 'undefined' ? Room : 'UnknownRoom');
+ }
+ div.attr('id', 'message-' + json.msgid)
+ .removeClass('loading').addClass('loaded');
+ div.find('.content').html(buildMsgContent(content, json.recips));
+ };
+ var onError = function(resp, textStatus, errorThrown) {
+ div.remove();
+ handleMsgError(resp);
+ };
+
+ $.ajax({
+ type: 'POST',
+ timeout: 15000,
+ url: '/msg',
+ data: { 'room': Room, 'content': content },
+ cache: false,
+ dataType: 'json',
+ success: onSuccess,
+ error: onError
+ });
}
function ifEnter(fn) {
@@ -499,7 +516,7 @@ function addNewMessages(msgs) {
}
function addNewMessage(msg, isLoading) {
- var msgStr = buildMessageDiv(msg, isLoading);
+ var msgStr = buildMessageDiv(msg, { isLoading: true });
var div = $(msgStr).appendTo('#messageList');
return div;
}
@@ -552,8 +569,7 @@ function isDuplicateMessage(m) {
function refresh() {
var onSuccess = function(json) {
try {
- Timestamp = json.timestamp;
-
+ Timestamp = json.timestamp;
$.map(json.messages, function(msg){ MessageContentCache[msg.msg_id.toString()] = msg.content })
var messages = $.grep(
@@ -619,7 +635,7 @@ function initChat() {
var dump = $(this);
var content = dump.find(".content")
MessageContentCache[dump.attr("id").substr(8)] = content.text()
- content.html(buildMsgContent(content.text()));
+ content.html(buildMsgContent(content.text(), Recips));
if ((ImgsEnabled && dump.hasClass('contains-image')) || (TextEnabled && !dump.hasClass('contains-image')))
dump.show();
@@ -698,11 +714,15 @@ function enableProfileEdit() {
}
function initProfile() {
- Search.initInpage()
- $(".linkify").each(function() {
+ Search.initInpage();
+ $(".linkify-text").each(function() {
var text = jQuery(this).text();
jQuery(this).html(linkifyWithoutImage(text));
- });
+ });
+
+ $(".linkify-full").each(function() {
+ $(this).html(buildMsgContent($(this).text(), Recips));
+ });
$('#edit-toggle').click(enableProfileEdit);
activateProfileEditable();