Use codemirror for description in poll
This commit is contained in:
@@ -12,6 +12,12 @@ define([
|
||||
'/common/sframe-chainpad-listmap.js',
|
||||
'/customize/pages.js',
|
||||
'/poll/render.js',
|
||||
'/common/diffMarked.js',
|
||||
'/common/sframe-common-codemirror.js',
|
||||
|
||||
'cm/lib/codemirror',
|
||||
'cm/mode/markdown/markdown',
|
||||
'css!cm/lib/codemirror.css',
|
||||
|
||||
'/bower_components/file-saver/FileSaver.min.js',
|
||||
|
||||
@@ -31,7 +37,10 @@ define([
|
||||
AppConfig,
|
||||
Listmap,
|
||||
Pages,
|
||||
Renderer)
|
||||
Renderer,
|
||||
DiffMd,
|
||||
SframeCM,
|
||||
CMeditor)
|
||||
{
|
||||
var Messages = Cryptpad.Messages;
|
||||
var saveAs = window.saveAs;
|
||||
@@ -138,7 +147,7 @@ define([
|
||||
Set the user id (user column) in the pad attributes
|
||||
*/
|
||||
var setUserId = function (id, cb) {
|
||||
cb =cb || $.noop;
|
||||
cb = cb || $.noop;
|
||||
APP.userid = id;
|
||||
common.setPadAttribute('userid', id, function (e) {
|
||||
if (e) {
|
||||
@@ -213,6 +222,7 @@ define([
|
||||
|
||||
var styleUserColumn = function () {
|
||||
var userid = APP.userid;
|
||||
if (!userid) { return; }
|
||||
|
||||
// Enable input for the userid column
|
||||
$('input[disabled="disabled"][data-rt-id^="' + userid + '"]').removeAttr('disabled')
|
||||
@@ -538,6 +548,7 @@ define([
|
||||
|
||||
/* Called whenever an event is fired on a span */
|
||||
var handleSpan = function (span) {
|
||||
if (!span) { return; }
|
||||
var id = span.getAttribute('data-rt-id');
|
||||
var type = Render.typeofId(id);
|
||||
var isRemove = span.className && span.className.split(' ')
|
||||
@@ -570,6 +581,7 @@ define([
|
||||
if (!res) { return; }
|
||||
Render.removeColumn(APP.proxy, id, function () {
|
||||
change();
|
||||
if (id === APP.userid) { setUserId(''); }
|
||||
});
|
||||
});
|
||||
} else if (isBookmark) {
|
||||
@@ -674,9 +686,9 @@ define([
|
||||
bool = true;
|
||||
}
|
||||
setTablePublished(bool);
|
||||
['textarea'].forEach(function (sel) {
|
||||
/*['textarea'].forEach(function (sel) {
|
||||
$(sel).attr('disabled', bool);
|
||||
});
|
||||
});*/
|
||||
updatePublishButton();
|
||||
};
|
||||
|
||||
@@ -722,23 +734,19 @@ define([
|
||||
}
|
||||
};
|
||||
|
||||
var updatePublishedDescription = function () {
|
||||
var v = APP.editor.getValue();
|
||||
DiffMd.apply(DiffMd.render(v || Messages.poll_descriptionHint), APP.$descriptionPublished);
|
||||
};
|
||||
var updateDescription = function (old, n) {
|
||||
var o = APP.$description.val();
|
||||
var op = TextPatcher.diff(o, n || '');
|
||||
var el = APP.$description[0];
|
||||
|
||||
var selects = ['selectionStart', 'selectionEnd'].map(function (attr) {
|
||||
return TextPatcher.transformCursor(el[attr], op);
|
||||
});
|
||||
APP.$description.val(n);
|
||||
if (op) {
|
||||
el.selectionStart = selects[0];
|
||||
el.selectionEnd = selects[1];
|
||||
}
|
||||
SframeCM.setValueAndCursor(APP.editor, o, n, TextPatcher);
|
||||
updatePublishedDescription();
|
||||
common.notify();
|
||||
};
|
||||
var updateLocalDescription = function (n) {
|
||||
APP.proxy.description = n;
|
||||
updatePublishedDescription();
|
||||
};
|
||||
|
||||
var onReady = function (info, userid) {
|
||||
@@ -847,6 +855,7 @@ define([
|
||||
APP.$createCol = $('#cp-app-poll-create-user').click(function () {
|
||||
var uncommittedCopy = { content: getUncommitted('col') };
|
||||
var id = uncommittedCopy.content.colsOrder[0];
|
||||
if (!APP.userid) { setUserId(id); }
|
||||
mergeUncommitted(proxy, uncommittedCopy, true);
|
||||
change(null, null, null, null, function() {
|
||||
handleSpan($('.cp-app-poll-table-lock[data-rt-id="' + id + '"]')[0]);
|
||||
@@ -861,21 +870,11 @@ define([
|
||||
});
|
||||
});
|
||||
|
||||
if (!APP.readOnly) {
|
||||
setUserId(userid);
|
||||
}
|
||||
|
||||
// Description
|
||||
var resize = function () {
|
||||
var lineCount = APP.$description.val().split('\n').length;
|
||||
APP.$description.css('height', lineCount + 'rem');
|
||||
};
|
||||
APP.$description.on('change keyup', function () {
|
||||
var val = APP.$description.val();
|
||||
APP.editor.on('change', function () {
|
||||
var val = APP.editor.getValue();
|
||||
updateLocalDescription(val);
|
||||
resize();
|
||||
});
|
||||
resize();
|
||||
|
||||
$('#cp-app-poll-table-scroll').html('').prepend($table);
|
||||
updateDisplayedTable();
|
||||
@@ -1031,9 +1030,18 @@ define([
|
||||
APP.$body = $('body');
|
||||
APP.$bar = $('#cp-toolbar');
|
||||
APP.$content = $('#cp-app-poll-content');
|
||||
APP.$descriptionPublished = $('#cp-app-poll-description-published');
|
||||
APP.$description = $('#cp-app-poll-description')
|
||||
.attr('placeholder', Messages.poll_descriptionHint || 'description');
|
||||
|
||||
APP.editor = CMeditor.fromTextArea(APP.$description[0], {
|
||||
lineNumbers: true,
|
||||
lineWrapping: true,
|
||||
styleActiveLine : true,
|
||||
mode: "markdown",
|
||||
});
|
||||
|
||||
|
||||
var listmapConfig = {
|
||||
data: {},
|
||||
common: common,
|
||||
|
||||
Reference in New Issue
Block a user