2013-10-01 07:10:10 +03:00
{% extends 'layout.html' %}
{% block js %}
2014-10-02 01:14:54 +03:00
< script >
var $entry_markdown_header = $("#entry-markdown-header");
var $entry_preview_header = $("#entry-preview-header");
// Tabs
$entry_markdown_header.click(function(){
$("section.entry-markdown").addClass('active');
$("section.entry-preview").removeClass('active');
});
$entry_preview_header.click(function(){
$("section.entry-preview").addClass('active');
$("section.entry-markdown").removeClass('active');
});
$(document).on('shaMismatch', function() {
bootbox.dialog({
title: "Page has changed",
message: "This page has changed and differs from your draft. What do you want to do?",
buttons: {
ignore: {
label: "Ignore",
className: "btn-default",
callback: function() {
var info = aced.info();
info['ignore'] = true;
aced.info(info);
}
},
discard: {
label: "Discard Draft",
className: "btn-danger",
callback: function() {
aced.discard();
}
},
changes: {
label: "Show Diff",
className: "btn-primary",
callback: function() {
bootbox.alert("Draft diff not done! Sorry");
}
}
}
})
});
$(function(){
$("#discard-btn").click(function() {
aced.discard();
});
$(".entry-markdown .floatingheader").click(function(){
aced.editor.focus();
});
});
var aced = new Aced({
editor: 'editor-{{- name -}}',
renderer: function(md) { return MDR.convert(md) },
info: {{ info|tojson }},
submit: function(content) {
var data = {
name: $("#page-name").val(),
message: $("#page-message").val(),
content: content
};
$.post(window.location, data, function() {
location.href = "{{ config.get('RELATIVE_PATH') }}" + '/' + data['name'];
});
}
});
< / script >
{% if partials %}
< script >
$(function() {
2014-09-07 19:54:51 +03:00
{% for name, value in partials.items() %}
2014-09-10 19:09:29 +03:00
{% if name and value %}
try {
Handlebars.registerPartial({{ name|tojson|safe }}, {{ value.data|tojson|safe }});
2014-10-02 01:14:54 +03:00
} catch (e) {
2014-09-10 19:09:29 +03:00
// no data?
}
{% endif %}
2014-09-07 19:54:51 +03:00
{% endfor %}
2014-10-02 01:14:54 +03:00
});
< / script >
{% endif %}
{% if config.get('COLLABORATION') %}
< script >
var $startCollaborationBtn = $('#start-collaboration');
var $endCollaborationBtn = $('#end-collaboration');
var $loadingCollaborationBtn = $('#loading-collaboration');
function loadingCollaboration() {
$endCollaborationBtn.hide();
$startCollaborationBtn.hide();
$loadingCollaborationBtn.show();
$(document).trigger('loading-collaboration');
}
function startCollaboration() {
$loadingCollaborationBtn.hide();
$startCollaborationBtn.hide();
$endCollaborationBtn.show();
$(document).trigger('start-collaboration');
}
function endCollaboration() {
$loadingCollaborationBtn.hide();
$endCollaborationBtn.hide();
$startCollaborationBtn.show();
$(document).trigger('end-collaboration');
}
$(function() {
$startCollaborationBtn.click(function() {
loadingCollaboration();
});
$endCollaborationBtn.click(function() {
endCollaboration();
});
});
< / script >
{% endif %}
{% if config.get('COLLABORATION') == 'firepad' %}
< script src = "https://cdn.firebase.com/js/client/1.0.17/firebase.js" > < / script >
< script src = "https://cdn.firebase.com/libs/firepad/1.0.0/firepad.min.js" > < / script >
< script >
// Helper to get hash from end of URL or generate a random one.
function getExampleRef() {
var ref = new Firebase('https://{{ config.get("FIREBASE_HOSTNAME") }}');
var hash = window.location.hash.replace(/^#fp-/, '');
if (hash) {
ref = ref.child(hash);
} else {
ref = ref.push(); // generate unique location.
window.location = window.location + '#fp-' + ref.name(); // add it as a hash to the URL.
}
return ref;
}
function initFirepad() {
var new_ = true;
if (window.location.hash.lastIndexOf('#fp-', 0) === 0) {
new_ = false;
}
var firepadRef = getExampleRef();
var session = window.ace.edit('editor').session;
var content;
if (new_) {
content = session.getValue();
}
// Firepad wants an empty editor
session.setValue('');
//// Create Firepad.
var firepad = Firepad.fromACE(firepadRef, aced.editor, {
defaultText: content
});
firepad.on('ready', function() {
startCollaboration();
});
$(document).on('end-collaboration', function() {
firepad.dispose();
2013-10-10 18:38:30 +03:00
});
2014-10-02 01:14:54 +03:00
}
$(document).on('loading-collaboration', function() {
initFirepad(true);
});
$(function(){
if (window.location.hash.lastIndexOf('#fp-', 0) === 0) {
loadingCollaboration();
}
});
< / script >
{% endif %}
{% if config.get('COLLABORATION') == 'togetherjs' %}
< script >
$(document).on('loading-collaboration', function() {
TogetherJS();
2014-09-05 00:35:28 +03:00
});
2014-10-02 01:14:54 +03:00
$(document).on('end-collaboration', function() {
TogetherJS();
});
2014-09-05 00:35:28 +03:00
TogetherJSConfig_toolName = "Collaboration";
TogetherJSConfig_suppressJoinConfirmation = true;
2014-10-02 01:14:54 +03:00
2014-09-05 00:35:28 +03:00
{% if current_user.is_authenticated() %}
TogetherJSConfig_getUserName = function () {
2014-10-02 01:14:54 +03:00
return {{ current_user.username|tojson }};
2014-09-05 00:35:28 +03:00
};
2013-10-10 05:11:24 +03:00
2014-09-05 00:35:28 +03:00
TogetherJSConfig_getUserAvatar = function () {
2014-10-02 01:14:54 +03:00
return {{ current_user.avatar|tojson }};
2014-09-05 00:35:28 +03:00
};
{% endif %}
2013-10-10 05:11:24 +03:00
2014-09-05 00:35:28 +03:00
TogetherJSConfig_on_ready = function () {
2014-10-02 01:14:54 +03:00
startCollaboration();
2014-09-05 00:35:28 +03:00
};
2014-10-02 01:14:54 +03:00
2014-09-05 00:35:28 +03:00
TogetherJSConfig_on_close = function () {
2014-10-02 01:14:54 +03:00
//endCollaboration();
2014-09-05 00:35:28 +03:00
};
2014-10-02 01:14:54 +03:00
< / script >
< script src = "https://togetherjs.com/togetherjs-min.js" > < / script >
{% endif %}
2013-10-01 07:10:10 +03:00
{% endblock %}
2014-09-10 17:58:35 +03:00
2013-10-01 07:10:10 +03:00
{% block body %}
2014-09-05 00:35:28 +03:00
< div id = "app-wrap" >
< div id = "app-controls" class = "row" >
2014-09-26 02:17:38 +03:00
< div class = "col-xs-4 col-md-3" >
2014-09-05 00:35:28 +03:00
< input id = "page-name" type = "text" class = "form-control input-sm" name = "name" placeholder = "Name" value = "{{- name -}}" / >
< / div >
2014-09-26 02:17:38 +03:00
< div class = "col-xs-4 col-md-3" >
2014-09-05 00:35:28 +03:00
< input id = "page-message" type = "text" class = "form-control input-sm" name = "page-message" placeholder = "Comment" value = "" / >
< / div >
2013-10-01 07:10:10 +03:00
2014-09-26 19:58:06 +03:00
< div class = "col-md-6 col-xs-4" >
2014-09-05 00:35:28 +03:00
< div class = "pull-right" >
2013-10-01 07:10:10 +03:00
2014-10-02 01:14:54 +03:00
< button id = "discard-btn" class = "btn btn-sm btn-danger" >
< i class = "fa fa-trash-o" > < / i >
< span class = "hidden-xs" > Discard Draft< / span >
< / button >
2014-09-26 02:17:38 +03:00
2014-10-02 01:14:54 +03:00
{% if config.get('COLLABORATION') %}
< button style = 'display:none' class = "btn btn-danger btn-sm" id = "end-collaboration" >
< i class = "fa fa-comments-o" > < / i >
< span class = "hidden-xs" > End Collaboration< / span >
< / button >
< button class = "btn btn-default btn-sm" id = "start-collaboration" type = "button" >
< i class = "fa fa-comments-o" > < / i >
2014-09-26 02:17:38 +03:00
< span class = "hidden-xs" > Collaborate< / span >
2014-09-05 00:35:28 +03:00
< / button >
2013-10-10 01:32:43 +03:00
2014-10-02 01:14:54 +03:00
< button style = 'display:none' class = "btn btn-default btn-sm" id = "loading-collaboration" type = "button" >
< i class = "fa fa-cog fa-spin" > < / i >
< span class = "hidden-xs" > Loading< / span >
< / button >
{% endif %}
< a id = "drop6" role = "button" class = "dropdown-toggle btn btn-default btn-sm" data-toggle = "dropdown" >
< i class = "fa fa-paint-brush" > < / i >
2014-09-26 02:17:38 +03:00
< span class = "hidden-xs" > Theme < i class = "fa fa-caret-down" > < / i > < / span >
< / a >
2014-09-05 00:35:28 +03:00
< ul id = "theme-list" class = "dropdown-menu" role = "menu" aria-labelledby = "drop6" >
2014-10-02 01:14:54 +03:00
< li > < a tabindex = "-1" data-value = "chrome" > Chrome< / a > < / li >
< li > < a tabindex = "-1" data-value = "clouds" > Clouds< / a > < / li >
< li > < a tabindex = "-1" data-value = "clouds_midnight" > Clouds Midnight< / a > < / li >
< li > < a tabindex = "-1" data-value = "cobalt" > Cobalt< / a > < / li >
< li > < a tabindex = "-1" data-value = "crimson_editor" > Crimson Editor< / a > < / li >
< li > < a tabindex = "-1" data-value = "dawn" class = "selected" > Dawn< / a > < / li >
< li > < a tabindex = "-1" data-value = "dreamweaver" > Dreamweaver< / a > < / li >
< li > < a tabindex = "-1" data-value = "eclipse" > Eclipse< / a > < / li >
< li > < a tabindex = "-1" data-value = "idle_fingers" > idleFingers< / a > < / li >
< li > < a tabindex = "-1" data-value = "kr_theme" > krTheme< / a > < / li >
< li > < a tabindex = "-1" data-value = "merbivore" > Merbivore< / a > < / li >
< li > < a tabindex = "-1" data-value = "merbivore_soft" > Merbivore Soft< / a > < / li >
< li > < a tabindex = "-1" data-value = "mono_industrial" > Mono Industrial< / a > < / li >
< li > < a tabindex = "-1" data-value = "monokai" > Monokai< / a > < / li >
< li > < a tabindex = "-1" data-value = "pastel_on_dark" > Pastel on Dark< / a > < / li >
< li > < a tabindex = "-1" data-value = "solarized_dark" > Solarized Dark< / a > < / li >
< li > < a tabindex = "-1" data-value = "solarized_light" > Solarized Light< / a > < / li >
< li > < a tabindex = "-1" data-value = "textmate" > TextMate< / a > < / li >
< li > < a tabindex = "-1" data-value = "tomorrow" > Tomorrow< / a > < / li >
< li > < a tabindex = "-1" data-value = "tomorrow_night" > Tomorrow Night< / a > < / li >
< li > < a tabindex = "-1" data-value = "tomorrow_night_blue" > Tomorrow Night Blue< / a > < / li >
< li > < a tabindex = "-1" data-value = "tomorrow_night_bright" > Tomorrow Night Bright< / a > < / li >
< li > < a tabindex = "-1" data-value = "tomorrow_night_eighties" > Tomorrow Night 80s< / a > < / li >
< li > < a tabindex = "-1" data-value = "twilight" > Twilight< / a > < / li >
< li > < a tabindex = "-1" data-value = "vibrant_ink" > Vibrant Ink< / a > < / li >
2014-09-05 00:35:28 +03:00
< / ul >
2014-10-02 01:14:54 +03:00
{% if name in config['LOCKED'] %}
2014-09-26 19:58:06 +03:00
< a class = "btn btn-danger btn-sm" >
< i class = "fa fa-lock" > < / i >
< span class = "hidden-xs" > Locked< / span >
< / a >
2014-09-10 21:58:47 +03:00
{% else %}
2014-10-02 01:14:54 +03:00
< a id = "submit-btn" class = "btn btn-primary btn-sm" >
2014-09-26 19:58:06 +03:00
< i class = "fa fa-save" > < / i >
< span class = "hidden-xs" > Save< / span >
< / a >
2014-09-10 21:58:47 +03:00
{% endif %}
2013-10-01 07:10:10 +03:00
< / div >
2014-09-05 00:35:28 +03:00
< / div >
< / div >
2014-08-20 18:28:25 +03:00
2014-09-26 02:17:38 +03:00
< section class = "entry-markdown active" >
< header class = "floatingheader" id = "entry-markdown-header" >
< small > Markdown< / small >
< a class = "markdown-help" href = "" > < span class = "hidden" > What is Markdown?< / span > < / a >
< / header >
< section id = "entry-markdown-content" class = "entry-markdown-content" >
2014-10-02 01:14:54 +03:00
< div id = "editor-{{- name -}}" data-submitbtn = 'submit-btn' data-themeselect = "theme-list" data-mode = "markdown" data-preview = "preview" class = "editor" > {{ content }}< / div >
2014-09-26 02:17:38 +03:00
< / section >
< / section >
< section class = "entry-preview" >
< header class = "floatingheader" id = "entry-preview-header" >
< small > Preview< / small >
< / header >
< section class = "entry-preview-content" >
< div id = "preview" > < / div >
< / section >
< / section >
2014-09-30 04:33:09 +03:00
< input id = "sha" type = "hidden" name = "sha" value = "{{ sha }}" / >
2014-09-05 00:35:28 +03:00
< / div >
2013-10-01 07:10:10 +03:00
{% endblock %}