diff --git a/src/node/db/API.js b/src/node/db/API.js index 09cc95afc..37fd3f161 100644 --- a/src/node/db/API.js +++ b/src/node/db/API.js @@ -431,7 +431,7 @@ exports.setPassword = function(padID, password, callback) if(ERR(err, callback)) return; //set the password - pad.setPassword(password); + pad.setPassword(password == "" ? null : password); callback(); }); diff --git a/src/node/utils/caching_middleware.js b/src/node/utils/caching_middleware.js index 70d5a08c4..ba2b462df 100644 --- a/src/node/utils/caching_middleware.js +++ b/src/node/utils/caching_middleware.js @@ -73,6 +73,9 @@ CachingMiddleware.prototype = new function () { var _headers = {}; old_res.setHeader = res.setHeader; res.setHeader = function (key, value) { + // Don't set cookies, see issue #707 + if (key.toLowerCase() === 'set-cookie') return; + _headers[key.toLowerCase()] = value; old_res.setHeader.call(res, key, value); }; diff --git a/src/node/utils/tar.json b/src/node/utils/tar.json index e691334dc..461e51979 100644 --- a/src/node/utils/tar.json +++ b/src/node/utils/tar.json @@ -1,12 +1,7 @@ { "pad.js": [ - "jquery.js" - , "underscore.js" - , "security.js" - , "pad.js" - , "ace2_common.js" + "pad.js" , "pad_utils.js" - , "json2.js" , "pad_cookie.js" , "pad_editor.js" , "pad_editbar.js" @@ -23,13 +18,9 @@ , "farbtastic.js" ] , "timeslider.js": [ - "jquery.js" - , "underscore.js" - , "security.js" - , "json2.js" + "timeslider.js" , "colorutils.js" , "draggable.js" - , "ace2_common.js" , "pad_utils.js" , "pad_cookie.js" , "pad_editor.js" @@ -46,12 +37,10 @@ , "broadcast.js" , "broadcast_slider.js" , "broadcast_revisions.js" - , "timeslider.js" ] , "ace2_inner.js": [ - "ace2_common.js" + "ace2_inner.js" , "underscore.js" - , "rjquery.js" , "AttributePool.js" , "Changeset.js" , "ChangesetUtils.js" @@ -66,6 +55,17 @@ , "linestylefilter.js" , "domline.js" , "AttributeManager.js" - , "ace2_inner.js" + ] +, "ace2_common.js": [ + "ace2_common.js" + , "jquery.js" + , "rjquery.js" + , "underscore.js" + , "security.js" + , "json2.js" + , "pluginfw/plugins.js" + , "pluginfw/hooks.js" + , "pluginfw/async.js" + , "pluginfw/parent_require.js" ] } diff --git a/src/package.json b/src/package.json index 0b76ec2ed..c46abbbf6 100644 --- a/src/package.json +++ b/src/package.json @@ -10,7 +10,7 @@ "name": "Robin Buse" } ], "dependencies" : { - "yajsml" : "1.1.2", + "yajsml" : "1.1.3", "request" : "2.9.100", "require-kernel" : "1.0.5", "resolve" : "0.2.1", diff --git a/src/static/css/pad.css b/src/static/css/pad.css index 40089bbfb..02e05113c 100644 --- a/src/static/css/pad.css +++ b/src/static/css/pad.css @@ -64,34 +64,17 @@ a img { height: 32px; } .toolbar ul li { - background: #fff; - background: -webkit-linear-gradient(#fff, #f0f0f0); - background: -moz-linear-gradient(#fff, #f0f0f0); - background: -o-linear-gradient(#fff, #f0f0f0); - background: -ms-linear-gradient(#fff, #f0f0f0); - background: linear-gradient(#fff, #f0f0f0); - border: 1px solid #ccc; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - cursor: pointer; float: left; - height: 18px; margin-left: 2px; - overflow: hidden; - padding: 4px 5px; - width: 18px; } -.toolbar ul li a { +.toolbar ul li a:hover { text-decoration: none; - color: #ccc; - position: absolute; } .toolbar ul li a span { position: relative; top: -2px; } -.toolbar ul li:hover { +.toolbar ul li a:hover { background: #fff; background: -webkit-linear-gradient(#f4f4f4, #e4e4e4); background: -moz-linear-gradient(#f4f4f4, #e4e4e4); @@ -99,7 +82,7 @@ a img { background: -ms-linear-gradient(#f4f4f4, #e4e4e4); background: linear-gradient(#f4f4f4, #e4e4e4); } -.toolbar ul li:active { +.toolbar ul li a:active { background: #eee; background: -webkit-linear-gradient(#ddd, #fff); background: -moz-linear-gradient(#ddd, #fff); @@ -115,12 +98,30 @@ a img { background: inherit; visibility: hidden; width: 0px; + padding: 5px; } .toolbar ul li a { - display: block + background: #fff; + background: -webkit-linear-gradient(#fff, #f0f0f0); + background: -moz-linear-gradient(#fff, #f0f0f0); + background: -o-linear-gradient(#fff, #f0f0f0); + background: -ms-linear-gradient(#fff, #f0f0f0); + background: linear-gradient(#fff, #f0f0f0); + border: 1px solid #ccc; + border-radius: 4px; + color: #ccc; + cursor: pointer; + display: inline-block; + min-height: 18px; + overflow: hidden; + padding: 4px 5px; + text-align: center; + text-decoration: none; + min-width: 18px; } -.toolbar ul li a img { - padding: 1px +.toolbar ul li a .buttonicon { + position: relative; + top: 1px; } .toolbar ul { float: left @@ -428,6 +429,7 @@ a#hidetopmsg { top: 0; width: 56px; z-index: 10; + display: inline-block; } .toolbarsavetable { position: absolute; @@ -1214,8 +1216,8 @@ ul#colorpickerswatches li:hover { height: 16px; background-image: url('../../static/img/etherpad_lite_icons.png'); background-repeat: no-repeat; - margin-left: 1px; - margin-top: 1px; + display: inline-block; + vertical-align: middle; } .buttonicon-bold { background-position: 0px -116px @@ -1264,20 +1266,13 @@ ul#colorpickerswatches li:hover { } .buttonicon-chat { background-position: 0px -102px; - display: inline-block; - vertical-align: middle; - margin: 0 !important; } .buttonicon-showusers { background-position: 0px -183px; - display: inline-block; } .buttonicon-savedRevision { background-position: 0px -493px } -#usericon { - width: 33px !important -} #focusprotector { z-index: 100; position: absolute; @@ -1293,9 +1288,6 @@ ul#colorpickerswatches li:hover { } #online_count { color: #888; - font-size: 11px; - line-height: 18px; - position: fixed; } .rtl { direction: RTL @@ -1399,13 +1391,16 @@ input[type=checkbox] { } } @media screen and (max-width: 600px) { - .toolbar ul li { + .toolbar ul li.separator { + padding: 1px; + } + .toolbar ul li a { padding: 4px 1px } } @media only screen and (min-device-width: 320px) and (max-device-width: 720px) { - .toolbar ul li { - padding: 4px 3px + .toolbar ul li a { + padding: 4px 5px; } #users { right: 0; @@ -1436,15 +1431,6 @@ input[type=checkbox] { bottom: 0; border-top: 1px solid #ccc; } - .toolbar ul.menu_right li:last-child { - height: 24px; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - margin-top: 0; - border: 0; - float: right; - } #chaticon { bottom: 3px; right: 55px; @@ -1466,19 +1452,27 @@ input[type=checkbox] { border-top-right-radius: 0; border-right: none; } - .toolbar ul li a span { - top: -3px - } #usericonback { margin-top: 4px } - .toolbar ul.menu_right li:not(:last-child) { - display: block + .toolbar ul.menu_right > li:last-child { + float: right; + } + .toolbar ul.menu_right > li:not(:last-child) a { + display: block; } .toolbar ul.menu_right > li { - background: none; + padding: 0; + } + .toolbar ul.menu_right > li a { + height: 24px; + line-height: 24px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; border: none; - margin-top: 4px; + background: none; + margin: 0; padding: 4px 8px; } .selected { diff --git a/src/static/js/ace.js b/src/static/js/ace.js index 0003eedf2..8cb9f1884 100644 --- a/src/static/js/ace.js +++ b/src/static/js/ace.js @@ -178,18 +178,17 @@ require.setGlobalKeyPath("require");\n\ function pushScriptsTo(buffer) { /* Folling is for packaging regular expression. */ /* $$INCLUDE_JS("../javascripts/src/ace2_inner.js?callback=require.define"); */ + /* $$INCLUDE_JS("../javascripts/src/ace2_common.js?callback=require.define"); */ var ACE_SOURCE = '../javascripts/src/ace2_inner.js?callback=require.define'; + var ACE_COMMON = '../javascripts/src/ace2_common.js?callback=require.define'; if (Ace2Editor.EMBEDED && Ace2Editor.EMBEDED[ACE_SOURCE]) { buffer.push('\ '); - pushScriptsTo(iframeHTML); + + iframeHTML.push('