Revert "Update wiki.tpl"

This reverts commit c16fda1cb6
This commit is contained in:
Max Kostikov 2018-08-25 21:31:47 +02:00
parent 4435717168
commit 44f639f371

View File

@ -1,476 +1,476 @@
<div class="generic-content-wrapper"> <div class="generic-content-wrapper">
<div class="section-title-wrapper"> <div class="section-title-wrapper">
<div class="pull-right"> <div class="pull-right">
<span class="text-muted wiki-typename">[{{$typename}}]&nbsp;</span> <span class="text-muted wiki-typename">[{{$typename}}]&nbsp;</span>
{{if $showPageControls}} {{if $showPageControls}}
<div id="page-tools" class="btn-group" style="display: none;"> <div id="page-tools" class="btn-group" style="display: none;">
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown"> <button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-cog"></i>&nbsp;{{$tools_label}} <i class="fa fa-cog"></i>&nbsp;{{$tools_label}}
</button> </button>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
{{if $renamePage}} {{if $renamePage}}
<a class="dropdown-item rename-page" href="#"><i class="fa fa-fw fa-edit"></i>&nbsp;{{$renamePage}}</a> <a class="dropdown-item rename-page" href="#"><i class="fa fa-fw fa-edit"></i>&nbsp;{{$renamePage}}</a>
{{/if}} {{/if}}
<a id="embed-image" class="dropdown-item" href="#"><i class="fa fa-fw fa-picture-o"></i>&nbsp;Embed Image</a> <a id="embed-image" class="dropdown-item" href="#"><i class="fa fa-fw fa-picture-o"></i>&nbsp;Embed Image</a>
</div> </div>
</div> </div>
{{/if}} {{/if}}
<button type="button" class="btn btn-outline-secondary btn-sm" title="{{$sharePage}}" onclick="window.location.href='rpost?f=&body={{$shareLink}}';"><i class="fa fa-fw fa-share"></i></button> <button type="button" class="btn btn-outline-secondary btn-sm" title="{{$sharePage}}" onclick="window.location.href='rpost?f=&body={{$shareLink}}';"><i class="fa fa-fw fa-share"></i></button>
<button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(); adjustFullscreenEditorHeight();"><i class="fa fa-expand"></i></button> <button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(); adjustFullscreenEditorHeight();"><i class="fa fa-expand"></i></button>
<button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false); adjustInlineEditorHeight()"><i class="fa fa-compress"></i></button> <button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false); adjustInlineEditorHeight()"><i class="fa fa-compress"></i></button>
</div> </div>
<h2> <h2>
<span id="wiki-header-name">{{$wikiheaderName}}</span>: <span id="wiki-header-name">{{$wikiheaderName}}</span>:
<span id="wiki-header-page">{{$wikiheaderPage}}</span> <span id="wiki-header-page">{{$wikiheaderPage}}</span>
</h2> </h2>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
<div id="rename-page-form-wrapper" class="section-content-tools-wrapper" style="display:none;"> <div id="rename-page-form-wrapper" class="section-content-tools-wrapper" style="display:none;">
<form id="rename-page-form" action="wiki/rename/page" method="post" > <form id="rename-page-form" action="wiki/rename/page" method="post" >
{{include file="field_input.tpl" field=$pageRename}} {{include file="field_input.tpl" field=$pageRename}}
<div class="form-group"> <div class="form-group">
<div class="pull-right"> <div class="pull-right">
<button id="rename-page-submit" class="btn btn-primary" type="submit" name="submit">Submit</button> <button id="rename-page-submit" class="btn btn-primary" type="submit" name="submit">Submit</button>
</div> </div>
<div> <div>
<button class="btn btn-outline-secondary rename-page" type="button">Cancel</button> <button class="btn btn-outline-secondary rename-page" type="button">Cancel</button>
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
</form> </form>
</div> </div>
<div id="wiki-content-container" class="section-content-wrapper"> <div id="wiki-content-container" class="section-content-wrapper">
<ul class="nav nav-tabs" id="wiki-nav-tabs"> <ul class="nav nav-tabs" id="wiki-nav-tabs">
<li class="nav-item" id="edit-pane-tab"><a class="nav-link" data-toggle="tab" href="#edit-pane">{{$editOrSourceLabel}}</a></li> <li class="nav-item" id="edit-pane-tab"><a class="nav-link" data-toggle="tab" href="#edit-pane">{{$editOrSourceLabel}}</a></li>
<li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#preview-pane" id="wiki-get-preview">{{$view_lbl}}</a></li> <li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#preview-pane" id="wiki-get-preview">View</a></li>
<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#page-history-pane" id="wiki-get-history">{{$history_lbl}}</a></li> <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#page-history-pane" id="wiki-get-history">History</a></li>
</ul> </ul>
<div class="tab-content" id="wiki-page-tabs"> <div class="tab-content" id="wiki-page-tabs">
<div id="edit-pane" class="tab-pane"> <div id="edit-pane" class="tab-pane">
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
<div id="ace-editor"></div> <div id="ace-editor"></div>
{{else}} {{else}}
<div id="editor-wrapper"> <div id="editor-wrapper">
<textarea id="editor">{{$content}}</textarea> <textarea id="editor">{{$content}}</textarea>
</div> </div>
{{/if}} {{/if}}
</div> </div>
<div id="preview-pane" class="tab-pane active"> <div id="preview-pane" class="tab-pane active">
<div id="wiki-preview"> <div id="wiki-preview">
{{$renderedContent}} {{$renderedContent}}
</div> </div>
</div> </div>
<div id="page-history-pane" class="tab-pane"> <div id="page-history-pane" class="tab-pane">
<div id="page-history-list"></div> <div id="page-history-list"></div>
</div> </div>
{{if $showPageControls}} {{if $showPageControls}}
<div id="id_{{$commitMsg.0}}_wrapper" class="field input" style="display: none"> <div id="id_{{$commitMsg.0}}_wrapper" class="field input" style="display: none">
<div class="input-group"> <div class="input-group">
<input class="form-control form-control-sm" name="{{$commitMsg.0}}" id="id_{{$commitMsg.0}}" type="text" value="{{$commitMsg.2}}"{{if $commitMsg.5}} {{$commitMsg.5}}{{/if}}> <input class="form-control form-control-sm" name="{{$commitMsg.0}}" id="id_{{$commitMsg.0}}" type="text" value="{{$commitMsg.2}}"{{if $commitMsg.5}} {{$commitMsg.5}}{{/if}}>
<div class="input-group-append"> <div class="input-group-append">
<button id="save-page" type="button" class="btn btn-primary disabled">Save</button> <button id="save-page" type="button" class="btn btn-primary disabled">Save</button>
</div> </div>
</div> </div>
</div> </div>
{{/if}} {{/if}}
</div> </div>
</div> </div>
</div> </div>
{{$wikiModal}} {{$wikiModal}}
<div class="modal" id="embedPhotoModal" tabindex="-1" role="dialog" aria-labelledby="embedPhotoLabel" aria-hidden="true"> <div class="modal" id="embedPhotoModal" tabindex="-1" role="dialog" aria-labelledby="embedPhotoLabel" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h4 class="modal-title" id="embedPhotoModalLabel">{{$embedPhotosModalTitle}}</h4> <h4 class="modal-title" id="embedPhotoModalLabel">{{$embedPhotosModalTitle}}</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
</div> </div>
<div class="modal-body" id="embedPhotoModalBody" > <div class="modal-body" id="embedPhotoModalBody" >
<div id="embedPhotoModalBodyAlbumListDialog" class="d-none"> <div id="embedPhotoModalBodyAlbumListDialog" class="d-none">
<div id="embedPhotoModalBodyAlbumList"></div> <div id="embedPhotoModalBodyAlbumList"></div>
</div> </div>
<div id="embedPhotoModalBodyAlbumDialog" class="d-none"></div> <div id="embedPhotoModalBodyAlbumDialog" class="d-none"></div>
</div> </div>
</div><!-- /.modal-content --> </div><!-- /.modal-content -->
</div><!-- /.modal-dialog --> </div><!-- /.modal-dialog -->
</div><!-- /.modal --> </div><!-- /.modal -->
<script> <script>
window.wiki_resource_id = '{{$resource_id}}'; window.wiki_resource_id = '{{$resource_id}}';
window.wiki_page_name = '{{$page}}'; window.wiki_page_name = '{{$page}}';
window.wiki_page_content = '{{$content|escape:'javascript'}}'; window.wiki_page_content = '{{$content|escape:'javascript'}}';
window.wiki_page_commit = '{{$commit}}'; window.wiki_page_commit = '{{$commit}}';
window.saved = true; window.saved = true;
$("#generic-modal-ok-{{$wikiModalID}}").removeClass('btn-primary'); $("#generic-modal-ok-{{$wikiModalID}}").removeClass('btn-primary');
$("#generic-modal-ok-{{$wikiModalID}}").addClass('btn-danger'); $("#generic-modal-ok-{{$wikiModalID}}").addClass('btn-danger');
$('.rename-page').click(function (ev) { $('.rename-page').click(function (ev) {
$('#rename-page-form-wrapper').toggle(); $('#rename-page-form-wrapper').toggle();
ev.preventDefault(); ev.preventDefault();
}); });
$( "#rename-page-form" ).submit(function( event ) { $( "#rename-page-form" ).submit(function( event ) {
$.post("wiki/{{$channel_address}}/rename/page", $.post("wiki/{{$channel_address}}/rename/page",
{ {
oldName: window.wiki_page_name, oldName: window.wiki_page_name,
newName: $('#id_pageRename').val(), newName: $('#id_pageRename').val(),
resource_id: window.wiki_resource_id resource_id: window.wiki_resource_id
}, },
function (data) { function (data) {
if (data.success) { if (data.success) {
$('#rename-page-form-wrapper').hide(); $('#rename-page-form-wrapper').hide();
window.console.log('data: ' + JSON.stringify(data)); window.console.log('data: ' + JSON.stringify(data));
window.wiki_page_name = data.name.urlName; window.wiki_page_name = data.name.urlName;
$('#wiki-header-page').html(data.name.htmlName); $('#wiki-header-page').html(data.name.htmlName);
wiki_refresh_page_list(); wiki_refresh_page_list();
} else { } else {
window.console.log('Error renaming page.'); window.console.log('Error renaming page.');
} }
}, 'json'); }, 'json');
event.preventDefault(); event.preventDefault();
}); });
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
var editor = ace.edit("ace-editor"); var editor = ace.edit("ace-editor");
editor.setOptions({ editor.setOptions({
theme: "ace/theme/github", theme: "ace/theme/github",
mode: "ace/mode/markdown", mode: "ace/mode/markdown",
maxLines: Infinity, maxLines: Infinity,
minLines: 30, minLines: 30,
wrap: true, wrap: true,
printMargin: false printMargin: false
}); });
editor.getSession().setValue(window.wiki_page_content); editor.getSession().setValue(window.wiki_page_content);
window.editor = editor; // Store the editor in the window object so the anonymous function can use it. window.editor = editor; // Store the editor in the window object so the anonymous function can use it.
{{else}} {{else}}
window.editor = editor = $('#editor'); window.editor = editor = $('#editor');
{{/if}} {{/if}}
{{if !$showPageControls}} {{if !$showPageControls}}
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
editor.setReadOnly(true); // Disable editing if the viewer lacks edit permission editor.setReadOnly(true); // Disable editing if the viewer lacks edit permission
{{else}} {{else}}
editor.prop('readonly', true); editor.prop('readonly', true);
{{/if}} {{/if}}
{{/if}} {{/if}}
$('#edit-pane-tab').click(function (ev) { $('#edit-pane-tab').click(function (ev) {
setTimeout(function() { setTimeout(function() {
window.editor.focus(); window.editor.focus();
if($('main').hasClass('fullscreen')) { if($('main').hasClass('fullscreen')) {
adjustFullscreenEditorHeight(); adjustFullscreenEditorHeight();
} }
else { else {
adjustInlineEditorHeight(); adjustInlineEditorHeight();
} }
}, 500); // Return the focus to the editor allowing immediate text entry }, 500); // Return the focus to the editor allowing immediate text entry
$('#page-tools, #id_{{$commitMsg.0}}_wrapper').show(); $('#page-tools, #id_{{$commitMsg.0}}_wrapper').show();
}); });
$('#wiki-get-preview').click(function (ev) { $('#wiki-get-preview').click(function (ev) {
if(window.saved) { if(window.saved) {
$('#page-tools, #id_{{$commitMsg.0}}_wrapper').hide(); $('#page-tools, #id_{{$commitMsg.0}}_wrapper').hide();
} }
else { else {
$('#page-tools').hide(); $('#page-tools').hide();
} }
$.post("wiki/{{$channel_address}}/preview", { $.post("wiki/{{$channel_address}}/preview", {
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
content: editor.getValue(), content: editor.getValue(),
{{else}} {{else}}
content: editor.val(), content: editor.val(),
{{/if}} {{/if}}
resource_id: window.wiki_resource_id, resource_id: window.wiki_resource_id,
mimetype: '{{$mimeType}}' mimetype: '{{$mimeType}}'
}, },
function (data) { function (data) {
if (data.success) { if (data.success) {
$('#wiki-preview').html(data.html); $('#wiki-preview').html(data.html);
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
$("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"}); $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
{{/if}} {{/if}}
} else { } else {
window.console.log('Error previewing page.'); window.console.log('Error previewing page.');
} }
}, 'json'); }, 'json');
ev.preventDefault(); ev.preventDefault();
}); });
$('#wiki-get-history').click(function (ev) { $('#wiki-get-history').click(function (ev) {
if(window.saved) { if(window.saved) {
$('#page-tools, #id_{{$commitMsg.0}}_wrapper').hide(); $('#page-tools, #id_{{$commitMsg.0}}_wrapper').hide();
} }
else { else {
$('#page-tools').hide(); $('#page-tools').hide();
} }
$.post("wiki/{{$channel_address}}/history/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id}, function (data) { $.post("wiki/{{$channel_address}}/history/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id}, function (data) {
if (data.success) { if (data.success) {
$('#page-history-list').html(data.historyHTML); $('#page-history-list').html(data.historyHTML);
} else { } else {
window.console.log('Error getting page history.'); window.console.log('Error getting page history.');
} }
}, 'json'); }, 'json');
ev.preventDefault(); ev.preventDefault();
}); });
function wiki_refresh_page_list() { function wiki_refresh_page_list() {
if (window.wiki_resource_id === '') { if (window.wiki_resource_id === '') {
return false; return false;
} }
$.post("wiki/{{$channel_address}}/get/page/list/", {channel_id: '{{$channel_id}}', resource_id: window.wiki_resource_id}, function (data) { $.post("wiki/{{$channel_address}}/get/page/list/", {channel_id: '{{$channel_id}}', resource_id: window.wiki_resource_id}, function (data) {
if (data.success) { if (data.success) {
$('#wiki_page_list').html(data.pages); $('#wiki_page_list').html(data.pages);
} else { } else {
alert('Error fetching page list!'); alert('Error fetching page list!');
window.console.log('Error fetching page list!'); window.console.log('Error fetching page list!');
} }
}, 'json'); }, 'json');
return false; return false;
} }
$('#save-page').click(function (ev) { $('#save-page').click(function (ev) {
if (window.wiki_resource_id === '' || window.wiki_page_name === '') { if (window.wiki_resource_id === '' || window.wiki_page_name === '') {
window.console.log('You must have a wiki page open in order to edit pages.'); window.console.log('You must have a wiki page open in order to edit pages.');
ev.preventDefault(); ev.preventDefault();
return false; return false;
} }
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
var currentContent = editor.getValue(); var currentContent = editor.getValue();
{{else}} {{else}}
var currentContent = editor.val(); var currentContent = editor.val();
{{/if}} {{/if}}
if (window.wiki_page_content === currentContent) { if (window.wiki_page_content === currentContent) {
$('#save-page').addClass('disabled'); // Disable the save button $('#save-page').addClass('disabled'); // Disable the save button
window.console.log('No edits to save.'); window.console.log('No edits to save.');
ev.preventDefault(); ev.preventDefault();
return false; return false;
} }
$.post("wiki/{{$channel_address}}/save/page", { $.post("wiki/{{$channel_address}}/save/page", {
content: currentContent, content: currentContent,
commitMsg: $('#id_commitMsg').val(), commitMsg: $('#id_commitMsg').val(),
name: window.wiki_page_name, name: window.wiki_page_name,
resource_id: window.wiki_resource_id resource_id: window.wiki_resource_id
}, },
function (data) { function (data) {
if (data.success) { if (data.success) {
window.saved = true; window.saved = true;
window.console.log('Page saved successfully.'); window.console.log('Page saved successfully.');
window.wiki_page_content = currentContent; window.wiki_page_content = currentContent;
$('#id_commitMsg').val(''); // Clear the commit message box $('#id_commitMsg').val(''); // Clear the commit message box
$('#save-page').addClass('disabled'); // Disable the save button $('#save-page').addClass('disabled'); // Disable the save button
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
window.editor.getSession().getUndoManager().markClean(); // Reset the undo history for the editor window.editor.getSession().getUndoManager().markClean(); // Reset the undo history for the editor
{{/if}} {{/if}}
window.editor.focus(); // Return focus to the editor for continued editing window.editor.focus(); // Return focus to the editor for continued editing
// $('#wiki-get-history').click(); // $('#wiki-get-history').click();
} else { } else {
alert('Error saving page.'); // TODO: Replace alerts with auto-timeout popups alert('Error saving page.'); // TODO: Replace alerts with auto-timeout popups
window.console.log('Error saving page.'); window.console.log('Error saving page.');
} }
}, 'json'); }, 'json');
ev.preventDefault(); ev.preventDefault();
}); });
function wiki_revert_page(commitHash) { function wiki_revert_page(commitHash) {
if (window.wiki_resource_id === '' || window.wiki_page_name === '') { if (window.wiki_resource_id === '' || window.wiki_page_name === '') {
window.console.log('You must have a wiki page open in order to revert pages.'); window.console.log('You must have a wiki page open in order to revert pages.');
return false; return false;
} }
$.post("wiki/{{$channel_address}}/revert/page", {commitHash: commitHash, name: window.wiki_page_name, resource_id: window.wiki_resource_id}, $.post("wiki/{{$channel_address}}/revert/page", {commitHash: commitHash, name: window.wiki_page_name, resource_id: window.wiki_resource_id},
function (data) { function (data) {
if (data.success) { if (data.success) {
$('button[id^=revert-]').removeClass('btn-success'); $('button[id^=revert-]').removeClass('btn-success');
$('button[id^=revert-]').addClass('btn-danger'); $('button[id^=revert-]').addClass('btn-danger');
$('button[id^=revert-]').html('Revert'); $('button[id^=revert-]').html('Revert');
$('#revert-'+commitHash).removeClass('btn-danger'); $('#revert-'+commitHash).removeClass('btn-danger');
$('#revert-'+commitHash).addClass('btn-success'); $('#revert-'+commitHash).addClass('btn-success');
$('#revert-'+commitHash).html('Page reverted<br>but not saved'); $('#revert-'+commitHash).html('Page reverted<br>but not saved');
window.wiki_page_commit = commitHash; window.wiki_page_commit = commitHash;
// put contents in editor // put contents in editor
editor.getSession().setValue(data.content); editor.getSession().setValue(data.content);
} else { } else {
window.console.log('Error reverting page.'); window.console.log('Error reverting page.');
} }
}, 'json'); }, 'json');
} }
function wiki_compare_page(compareCommit) { function wiki_compare_page(compareCommit) {
if (window.wiki_resource_id === '' || window.wiki_page_name === '' || window.wiki_page_commit === '') { if (window.wiki_resource_id === '' || window.wiki_page_name === '' || window.wiki_page_commit === '') {
window.console.log('You must have a wiki page open in order to revert pages.'); window.console.log('You must have a wiki page open in order to revert pages.');
return false; return false;
} }
$.post("wiki/{{$channel_address}}/compare/page", { $.post("wiki/{{$channel_address}}/compare/page", {
compareCommit: compareCommit, compareCommit: compareCommit,
currentCommit: window.wiki_page_commit, currentCommit: window.wiki_page_commit,
name: window.wiki_page_name, name: window.wiki_page_name,
resource_id: window.wiki_resource_id resource_id: window.wiki_resource_id
}, },
function (data) { function (data) {
console.log(data); console.log(data);
if (data.success) { if (data.success) {
var modalBody = $('#generic-modal-body-{{$wikiModalID}}'); var modalBody = $('#generic-modal-body-{{$wikiModalID}}');
modalBody.html('<div class="descriptive-text">'+data.diff+'</div>'); modalBody.html('<div class="descriptive-text">'+data.diff+'</div>');
$('.modal-dialog').addClass('modal-lg'); $('.modal-dialog').addClass('modal-lg');
$("#generic-modal-ok-{{$wikiModalID}}").off('click'); $("#generic-modal-ok-{{$wikiModalID}}").off('click');
$("#generic-modal-ok-{{$wikiModalID}}").click(function () { $("#generic-modal-ok-{{$wikiModalID}}").click(function () {
wiki_revert_page(compareCommit); wiki_revert_page(compareCommit);
$('#generic-modal-{{$wikiModalID}}').modal('hide'); $('#generic-modal-{{$wikiModalID}}').modal('hide');
}); });
$('#generic-modal-{{$wikiModalID}}').modal(); $('#generic-modal-{{$wikiModalID}}').modal();
} else { } else {
window.console.log('Error comparing page.'); window.console.log('Error comparing page.');
} }
}, 'json'); }, 'json');
} }
function adjustFullscreenEditorHeight() { function adjustFullscreenEditorHeight() {
$('#editor, #ace-editor').height($(window).height() - $('#id_commitMsg_wrapper').outerHeight(true) - $('.section-title-wrapper').outerHeight(true) - $('#wiki-nav-tabs').outerHeight(true) - 17); $('#editor, #ace-editor').height($(window).height() - $('#id_commitMsg_wrapper').outerHeight(true) - $('.section-title-wrapper').outerHeight(true) - $('#wiki-nav-tabs').outerHeight(true) - 17);
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
editor.setOptions({ editor.setOptions({
maxLines: null, maxLines: null,
minLines: null minLines: null
}); });
editor.resize(); editor.resize();
{{/if}} {{/if}}
} }
function adjustInlineEditorHeight() { function adjustInlineEditorHeight() {
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
editor.setOptions({ editor.setOptions({
maxLines: Infinity, maxLines: Infinity,
minLines: 30 minLines: 30
}); });
editor.resize(); editor.resize();
{{else}} {{else}}
editor.height(editor[0].scrollHeight); editor.height(editor[0].scrollHeight);
{{/if}} {{/if}}
} }
$('#embed-image').click(function (ev) { $('#embed-image').click(function (ev) {
initializeEmbedPhotoDialog(); initializeEmbedPhotoDialog();
ev.preventDefault(); ev.preventDefault();
}); });
var initializeEmbedPhotoDialog = function () { var initializeEmbedPhotoDialog = function () {
$('.embed-photo-selected-photo').each(function (index) { $('.embed-photo-selected-photo').each(function (index) {
$(this).removeClass('embed-photo-selected-photo'); $(this).removeClass('embed-photo-selected-photo');
}); });
getPhotoAlbumList(); getPhotoAlbumList();
$('#embedPhotoModalBodyAlbumDialog').off('click'); $('#embedPhotoModalBodyAlbumDialog').off('click');
$('#embedPhotoModal').modal(); $('#embedPhotoModal').modal();
}; };
var choosePhotoFromAlbum = function (album) { var choosePhotoFromAlbum = function (album) {
$.post("embedphotos/album", {name: album}, $.post("embedphotos/album", {name: album},
function(data) { function(data) {
if (data['status']) { if (data['status']) {
$('#embedPhotoModalLabel').html("{{$modalchooseimages}}"); $('#embedPhotoModalLabel').html("{{$modalchooseimages}}");
$('#embedPhotoModalBodyAlbumDialog').html('\ $('#embedPhotoModalBodyAlbumDialog').html('\
<div><ul class="nav nav-pills flex-column">\n\ <div><ul class="nav nav-pills flex-column">\n\
<li class="nav-item"><a class="nav-link" href="#" onclick="initializeEmbedPhotoDialog();return false;">\n\ <li class="nav-item"><a class="nav-link" href="#" onclick="initializeEmbedPhotoDialog();return false;">\n\
<i class="fa fa-chevron-left"></i>&nbsp;\n\ <i class="fa fa-chevron-left"></i>&nbsp;\n\
{{$modaldiffalbum}}\n\ {{$modaldiffalbum}}\n\
</a>\n\ </a>\n\
</li>\n\ </li>\n\
</ul><br></div>') </ul><br></div>')
$('#embedPhotoModalBodyAlbumDialog').append(data['content']); $('#embedPhotoModalBodyAlbumDialog').append(data['content']);
$('#embedPhotoModalBodyAlbumDialog').click(function (evt) { $('#embedPhotoModalBodyAlbumDialog').click(function (evt) {
evt.preventDefault(); evt.preventDefault();
var image = document.getElementById(evt.target.id); var image = document.getElementById(evt.target.id);
if (typeof($(image).parent()[0]) !== 'undefined') { if (typeof($(image).parent()[0]) !== 'undefined') {
var imageparent = document.getElementById($(image).parent()[0].id); var imageparent = document.getElementById($(image).parent()[0].id);
$(imageparent).toggleClass('embed-photo-selected-photo'); $(imageparent).toggleClass('embed-photo-selected-photo');
var href = $(imageparent).attr('href'); var href = $(imageparent).attr('href');
$.post("embedphotos/photolink", {href: href}, $.post("embedphotos/photolink", {href: href},
function(ddata) { function(ddata) {
if (ddata['status']) { if (ddata['status']) {
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
var imgURL = ddata['photolink'].replace( /\[.*\]\[.*\](.*)\[.*\]\[.*\]/, '\n![image]($1)' ) var imgURL = ddata['photolink'].replace( /\[.*\]\[.*\](.*)\[.*\]\[.*\]/, '\n![image]($1)' )
editor.getSession().insert(editor.getCursorPosition(), imgURL) editor.getSession().insert(editor.getCursorPosition(), imgURL)
{{else}} {{else}}
var currentContent = $('#editor').val(); var currentContent = $('#editor').val();
$('#editor').val(currentContent + ddata['photolink']); $('#editor').val(currentContent + ddata['photolink']);
{{/if}} {{/if}}
} else { } else {
window.console.log("{{$modalerrorlink}}" + ':' + ddata['errormsg']); window.console.log("{{$modalerrorlink}}" + ':' + ddata['errormsg']);
} }
return false; return false;
}, },
'json'); 'json');
$('#embedPhotoModalBodyAlbumDialog').html(''); $('#embedPhotoModalBodyAlbumDialog').html('');
$('#embedPhotoModalBodyAlbumDialog').off('click'); $('#embedPhotoModalBodyAlbumDialog').off('click');
$('#embedPhotoModal').modal('hide'); $('#embedPhotoModal').modal('hide');
} }
}); });
$('#embedPhotoModalBodyAlbumListDialog').addClass('d-none'); $('#embedPhotoModalBodyAlbumListDialog').addClass('d-none');
$('#embedPhotoModalBodyAlbumDialog').removeClass('d-none'); $('#embedPhotoModalBodyAlbumDialog').removeClass('d-none');
} else { } else {
window.console.log("{{$modalerroralbum}} " + JSON.stringify(album) + ':' + data['errormsg']); window.console.log("{{$modalerroralbum}} " + JSON.stringify(album) + ':' + data['errormsg']);
} }
return false; return false;
}, },
'json'); 'json');
}; };
var getPhotoAlbumList = function () { var getPhotoAlbumList = function () {
$.post("embedphotos/albumlist", {}, $.post("embedphotos/albumlist", {},
function(data) { function(data) {
if (data['status']) { if (data['status']) {
var albums = data['albumlist']; //JSON.parse(data['albumlist']); var albums = data['albumlist']; //JSON.parse(data['albumlist']);
$('#embedPhotoModalLabel').html("{{$modalchoosealbum}}"); $('#embedPhotoModalLabel').html("{{$modalchoosealbum}}");
$('#embedPhotoModalBodyAlbumList').html('<ul class="nav nav-pills flex-column"></ul>'); $('#embedPhotoModalBodyAlbumList').html('<ul class="nav nav-pills flex-column"></ul>');
for(var i = 0; i < albums.length; i++) { for(var i = 0; i < albums.length; i++) {
var albumName = albums[i].text; var albumName = albums[i].text;
var jsAlbumName = albums[i].jstext; var jsAlbumName = albums[i].jstext;
var albumLink = '<li class="nav-item">'; var albumLink = '<li class="nav-item">';
albumLink += '<a class="nav-link" href="#" onclick="choosePhotoFromAlbum(\'' + jsAlbumName + '\'); return false;">' + albumName + '</a>'; albumLink += '<a class="nav-link" href="#" onclick="choosePhotoFromAlbum(\'' + jsAlbumName + '\'); return false;">' + albumName + '</a>';
albumLink += '</li>'; albumLink += '</li>';
$('#embedPhotoModalBodyAlbumList').find('ul').append(albumLink); $('#embedPhotoModalBodyAlbumList').find('ul').append(albumLink);
} }
$('#embedPhotoModalBodyAlbumDialog').addClass('d-none'); $('#embedPhotoModalBodyAlbumDialog').addClass('d-none');
$('#embedPhotoModalBodyAlbumListDialog').removeClass('d-none'); $('#embedPhotoModalBodyAlbumListDialog').removeClass('d-none');
} else { } else {
window.console.log("{{$modalerrorlist}}" + ':' + data['errormsg']); window.console.log("{{$modalerrorlist}}" + ':' + data['errormsg']);
} }
return false; return false;
}, },
'json'); 'json');
}; };
$(document).ready(function () { $(document).ready(function () {
{{if !$mimeType || $mimeType == 'text/markdown'}} {{if !$mimeType || $mimeType == 'text/markdown'}}
$("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"}); $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
window.editor.on("input", function() { window.editor.on("input", function() {
window.saved = false; window.saved = false;
if(window.editor.getSession().getUndoManager().isClean()) { if(window.editor.getSession().getUndoManager().isClean()) {
$('#save-page').addClass('disabled'); $('#save-page').addClass('disabled');
} else { } else {
$('#save-page').removeClass('disabled'); $('#save-page').removeClass('disabled');
} }
}); });
{{else}} {{else}}
window.editor.on("input", function() { window.editor.on("input", function() {
window.saved = false; window.saved = false;
$('#save-page').removeClass('disabled'); $('#save-page').removeClass('disabled');
}); });
{{if $mimeType == 'text/bbcode'}} {{if $mimeType == 'text/bbcode'}}
window.editor.bbco_autocomplete('bbcode'); window.editor.bbco_autocomplete('bbcode');
{{/if}} {{/if}}
{{/if}} {{/if}}
}); });
$(window).resize(function () { $(window).resize(function () {
if($('main').hasClass('fullscreen')) { if($('main').hasClass('fullscreen')) {
adjustFullscreenEditorHeight(); adjustFullscreenEditorHeight();
} }
}); });
</script> </script>