diff options
Diffstat (limited to 'static')
| -rwxr-xr-x | static/css/dump.css | 16 | ||||
| -rw-r--r-- | static/css/front.css | 159 | ||||
| -rw-r--r-- | static/form_login/front.css | 18 | ||||
| -rw-r--r-- | static/img/sassoonlogo.gif | bin | 0 -> 31936 bytes | |||
| -rw-r--r-- | static/js/pichat.js | 148 |
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 Binary files differnew file mode 100644 index 0000000..29cf6ed --- /dev/null +++ b/static/img/sassoonlogo.gif 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(); |
