diff --git a/customize.dist/ckeditor-config.js b/customize.dist/ckeditor-config.js index 3dc280116..36cac87f0 100644 --- a/customize.dist/ckeditor-config.js +++ b/customize.dist/ckeditor-config.js @@ -10,7 +10,7 @@ CKEDITOR.editorConfig = function( config ) { // document itself and causes problems when it's sent across the wire and reflected back config.removePlugins= 'resize,elementspath'; config.resize_enabled= false; //bottom-bar - config.extraPlugins= 'autolink,colorbutton,colordialog,font,indentblock,justify,mediatag'; + config.extraPlugins= 'autolink,colorbutton,colordialog,font,indentblock,justify,mediatag,print'; config.toolbarGroups= [ // {"name":"clipboard","groups":["clipboard","undo"]}, //{"name":"editing","groups":["find","selection"]}, @@ -23,7 +23,8 @@ CKEDITOR.editorConfig = function( config ) { {"name":"basicstyles","groups":["basicstyles","cleanup"]}, {"name":"paragraph","groups":["list","indent","blocks","align","bidi"]}, {"name":"styles"}, - {"name":"colors"}]; + {"name":"colors"}, + {"name":"print"}]; config.font_defaultLabel = 'Arial'; config.fontSize_defaultLabel = '16'; diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index c8bb6f1c7..c426a0272 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -372,6 +372,15 @@ define([ return $toolbar; }; UIElements.createMarkdownToolbar = function (common, editor) { + var readOnly = common.getMetadataMgr().getPrivateData().readOnly; + if (readOnly) { + return { + toolbar: $(), + button: $(), + setState: function () {} + }; + } + var $toolbar = createMdToolbar(common, editor); var cfg = { title: Messages.mdToolbar_button, diff --git a/www/common/toolbar3.js b/www/common/toolbar3.js index cb0152018..2d4dccd63 100644 --- a/www/common/toolbar3.js +++ b/www/common/toolbar3.js @@ -237,7 +237,7 @@ define([ var $rightCol = $('', {'class': 'cp-toolbar-userlist-rightcol'}); var $nameSpan = $('', {'class': 'cp-toolbar-userlist-name'}).text(name).appendTo($rightCol); var isMe = data.uid === user.uid; - if (isMe) { + if (isMe && !priv.readOnly) { $nameSpan.html(''); var $nameValue = $('', { 'class': 'cp-toolbar-userlist-name-value' @@ -292,7 +292,8 @@ define([ editingUserName.select[1]); setTimeout(function () { $nameInput.focus(); }); } - } else if (Common.isLoggedIn() && data.curvePublic && !friends[data.curvePublic]) { + } else if (Common.isLoggedIn() && data.curvePublic && !friends[data.curvePublic] + && !priv.readOnly) { if (pendingFriends.indexOf(data.netfluxId) !== -1) { $('', {'class': 'cp-toolbar-userlist-friend'}).text(Messages.userlist_pending) .appendTo($rightCol); diff --git a/www/pad/inner.js b/www/pad/inner.js index ee4e7f58d..af4cbc93c 100644 --- a/www/pad/inner.js +++ b/www/pad/inner.js @@ -428,6 +428,10 @@ define([ cursor.setToStart(); } + if (framework.isReadOnly()) { + $(inner).attr('contenteditable', 'false'); + } + var fmConfig = { ckeditor: editor, body: $('body'), diff --git a/www/poll/app-poll.less b/www/poll/app-poll.less index 2a29f1fdf..88bcd5f45 100644 --- a/www/poll/app-poll.less +++ b/www/poll/app-poll.less @@ -58,12 +58,24 @@ overflow-x: hidden; flex: 1; overflow-y: auto; &.cp-app-poll-published { + #cp-app-poll-table-scroll { + max-width: ~"calc(75% - 30px - 100px)"; + } + table { + width: 100%; + } + table tr td:last-child { + margin-left: 0; // uncommitted is hidden + } #cp-app-poll-create-option { display: none; } .cp-app-poll-table-remove[data-rt-id^="y"], .cp-app-poll-table-edit[data-rt-id^="y"] { display: none; } + td.cp-app-poll-table-uncommitted { + display: none; + } tr.cp-app-poll-table-uncommitted { display: none; } diff --git a/www/poll/inner.js b/www/poll/inner.js index 471b8ce13..dcc337d17 100644 --- a/www/poll/inner.js +++ b/www/poll/inner.js @@ -258,6 +258,7 @@ define([ }; var setTablePublished = function (bool) { + if (APP.locked) { bool = true; } if (APP.markdownTb) { APP.markdownTb.setState(!bool); } if (bool) { if (APP.$publish) { APP.$publish.hide(); } @@ -369,7 +370,7 @@ define([ var colsOrder = sortColumns(displayedObj.content.colsOrder, APP.userid); var conf = { cols: colsOrder, - readOnly: APP.readOnly + readOnly: APP.locked }; var f = getFocus(); APP.$createRow.detach(); @@ -452,7 +453,7 @@ define([ }; var hideInputs = function (id) { - if (APP.readOnly) { return; } + if (APP.locked) { return; } if (id) { var type = Render.typeofId(id); if (type === 'col') { return void lockColumn(id); } @@ -538,7 +539,7 @@ define([ }; var handleClick = function (e, isKeyup) { - if (APP.readOnly) { return; } + if (APP.locked) { return; } e.stopPropagation(); @@ -617,6 +618,7 @@ define([ // If readOnly, always put the app in published mode bool = true; } + console.log(bool); $(APP.$mediaTagButton).toggle(!bool); setTablePublished(bool); /*['textarea'].forEach(function (sel) { @@ -650,7 +652,7 @@ define([ }; var setEditable = function (editable) { - APP.readOnly = !editable; + APP.locked = APP.readOnly || !editable; if (editable === false) { // disable all the things @@ -897,20 +899,18 @@ define([ var uncommitted = APP.uncommitted = {}; prepareProxy(proxy, copyObject(Render.Example)); prepareProxy(uncommitted, copyObject(Render.Example)); - if (!APP.readOnly) { - var coluid = Render.coluid(); - if (userid) { - // If userid exists, it means the user already has a pinned column - // and we should unlock it - unlockColumn(userid); - } - uncommitted.content.colsOrder.push(coluid); - unlockColumn(coluid); - - var rowuid = Render.rowuid(); - uncommitted.content.rowsOrder.push(rowuid); - unlockRow(rowuid); + var coluid = Render.coluid(); + if (userid) { + // If userid exists, it means the user already has a pinned column + // and we should unlock it + unlockColumn(userid); } + uncommitted.content.colsOrder.push(coluid); + unlockColumn(coluid); + + var rowuid = Render.rowuid(); + uncommitted.content.rowsOrder.push(rowuid); + unlockRow(rowuid); /* Extract uncommitted data (row or column) and create a new uncommitted row or column @@ -1181,19 +1181,10 @@ define([ })); SFCommon.create(waitFor(function (c) { APP.common = common = c; })); }).nThen(function (waitFor) { - var privReady = Util.once(waitFor()); - var metadataMgr = common.getMetadataMgr(); - if (JSON.stringify(metadataMgr.getPrivateData()) !== '{}') { - privReady(); - return; - } - metadataMgr.onChange(function () { - if (typeof(metadataMgr.getPrivateData().readOnly) === 'boolean') { - APP.readOnly = metadataMgr.getPrivateData().readOnly; - privReady(); - } - }); + common.getSframeChannel().onReady(waitFor()); }).nThen(function (/* waitFor */) { + var metadataMgr = common.getMetadataMgr(); + APP.locked = APP.readOnly = metadataMgr.getPrivateData().readOnly; APP.loggedIn = common.isLoggedIn(); APP.SFCommon = common; @@ -1235,6 +1226,7 @@ define([ if (APP.readOnly) { $('#cp-app-poll-create-user, #cp-app-poll-create-option, #cp-app-poll-comments-add') .remove(); + $('#cp-app-poll-comments-add-title').remove(); } var rt = APP.rt = Listmap.create(listmapConfig);