aboutsummaryrefslogtreecommitdiffstats
path: root/view
diff options
context:
space:
mode:
Diffstat (limited to 'view')
-rw-r--r--view/css/conversation.css13
-rw-r--r--view/css/mod_wiki.css45
-rw-r--r--view/css/widgets.css35
-rw-r--r--view/js/autocomplete.js3
-rw-r--r--view/js/main.js23
-rw-r--r--view/pdl/mod_wiki.pdl2
-rw-r--r--view/theme/redbasic/css/style.css14
-rwxr-xr-xview/tpl/abook_edit.tpl49
-rwxr-xr-xview/tpl/admin_site.tpl1
-rwxr-xr-xview/tpl/group_side.tpl6
-rw-r--r--view/tpl/help.tpl4
-rwxr-xr-xview/tpl/nav.tpl5
-rwxr-xr-xview/tpl/siteinfo.tpl61
-rw-r--r--view/tpl/wiki.tpl758
-rw-r--r--view/tpl/wiki_page_list.tpl67
-rw-r--r--view/tpl/wikilist.tpl90
-rw-r--r--view/tpl/wikilist_widget.tpl45
17 files changed, 703 insertions, 518 deletions
diff --git a/view/css/conversation.css b/view/css/conversation.css
index 0b6674b15..aec457302 100644
--- a/view/css/conversation.css
+++ b/view/css/conversation.css
@@ -336,6 +336,19 @@ a.wall-item-name-link {
/* bb-code */
+/* prevent [toc] bbcode links to scroll the titles behind the navbar */
+.section-content-wrapper h1,
+.section-content-wrapper h2,
+.section-content-wrapper h3,
+.section-content-wrapper h4 {
+ padding-top: 60px;
+ margin-top: -40px;
+}
+
+.toc {
+ margin-top: 1em;
+}
+
code {
font-family: Courier, monospace;
font-size: 1em;
diff --git a/view/css/mod_wiki.css b/view/css/mod_wiki.css
new file mode 100644
index 000000000..30cbe0896
--- /dev/null
+++ b/view/css/mod_wiki.css
@@ -0,0 +1,45 @@
+#ace-editor {
+ position: relative;
+ width: 100%;
+ height: 500px;
+}
+
+#editor {
+ width: 100%;
+ height: 500px;
+}
+
+.fade.in {
+ -webkit-transition: opacity 0.5s 0.5s ease;
+ -moz-transition: opacity 0.5s 0.5s ease;
+ -o-transition: opacity 0.5s 0.5s ease;
+ transition: opacity 0.5s 0.5s ease;
+}
+
+#new-wiki-form-wrapper {
+ display: none;
+}
+
+#wikis-index {
+ width: 100%;
+}
+
+#wikis-index th:nth-child(1),
+#wikis-index td:nth-child(1){
+ padding: 7px 3px 7px 10px;
+}
+
+#wikis-index th:nth-child(3),
+#wikis-index td:nth-child(3){
+ padding: 7px 10px 7px 7px;
+}
+
+#wikis-index th:nth-child(4),
+#wikis-index td:nth-child(4){
+ padding: 7px 10px 7px 7px;
+}
+
+.wikis-index-tool {
+ padding: 7px 10px;
+}
+
diff --git a/view/css/widgets.css b/view/css/widgets.css
index 10c66c213..402c3f473 100644
--- a/view/css/widgets.css
+++ b/view/css/widgets.css
@@ -18,6 +18,41 @@
word-wrap: break-word;
}
+.widget-nav-pills-icons {
+ opacity: 0;
+ padding: 6px 10px;
+ float: right;
+ position: relative;
+ z-index:1;
+}
+
+
+.widget-nav-pills-checkbox {
+ padding: 6px 10px;
+ float: right;
+ position: relative;
+ z-index:1;
+ cursor: pointer;
+}
+
+i.widget-nav-pills-icons,
+i.widget-nav-pills-checkbox {
+ margin-top: 2px;
+}
+
+.widget-nav-pills-icons:hover + a {
+ background-color: #eee;
+}
+
+.widget-nav-pills-checkbox:hover + a {
+ background-color: #eee;
+}
+
+li:hover .widget-nav-pills-icons {
+ opacity: 1;
+}
+
+
/* suggest */
.suggest-widget-more {
diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js
index aa47a6e19..62fc37420 100644
--- a/view/js/autocomplete.js
+++ b/view/js/autocomplete.js
@@ -164,6 +164,7 @@ function string2bb(element) {
else if(element == 'strike') return 's';
else if(element == 'superscript') return 'sup';
else if(element == 'subscript') return 'sub';
+ else if(element == 'highlight') return 'hl';
else return element;
}
@@ -269,7 +270,7 @@ function string2bb(element) {
$.fn.bbco_autocomplete = function(type) {
if(type=='bbcode') {
- var open_close_elements = ['bold', 'italic', 'underline', 'overline', 'strike', 'superscript', 'subscript', 'quote', 'code', 'open', 'spoiler', 'map', 'nobb', 'list', 'checklist', 'ul', 'ol', 'dl', 'li', 'table', 'tr', 'th', 'td', 'center', 'color', 'font', 'size', 'zrl', 'zmg', 'rpost', 'qr', 'observer', 'embed'];
+ var open_close_elements = ['bold', 'italic', 'underline', 'overline', 'strike', 'superscript', 'subscript', 'quote', 'code', 'open', 'spoiler', 'map', 'nobb', 'list', 'checklist', 'ul', 'ol', 'dl', 'li', 'table', 'tr', 'th', 'td', 'center', 'color', 'font', 'size', 'zrl', 'zmg', 'rpost', 'qr', 'observer', 'embed', 'highlight'];
var open_elements = ['observer.baseurl', 'observer.address', 'observer.photo', 'observer.name', 'observer.webname', 'observer.url', '*', 'hr', ];
var elements = open_close_elements.concat(open_elements);
diff --git a/view/js/main.js b/view/js/main.js
index 96adf0be3..3981d4266 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -444,16 +444,18 @@ function contextualHelp() {
}
function contextualHelpFocus(target, openSidePanel) {
- if (openSidePanel) {
- $("main").addClass('region_1-on'); // Open the side panel to highlight element
- }
- else {
- $("main").removeClass('region_1-on');
- }
- $('html,body').animate({ scrollTop: $(target).offset().top - $('nav').outerHeight(true) - $('#contextual-help-content').outerHeight(true)}, 'slow');
- for (i = 0; i < 3; i++) {
- $(target).fadeTo('slow', 0.1).fadeTo('slow', 1.0);
- }
+ if($(target).length) {
+ if (openSidePanel) {
+ $("main").addClass('region_1-on'); // Open the side panel to highlight element
+ }
+ else {
+ $("main").removeClass('region_1-on');
+ }
+ $('html,body').animate({ scrollTop: $(target).offset().top - $('nav').outerHeight(true) - $('#contextual-help-content').outerHeight(true)}, 'slow');
+ for (i = 0; i < 3; i++) {
+ $(target).fadeTo('slow', 0.1).fadeTo('slow', 1.0);
+ }
+ }
}
function updatePageItems(mode, data) {
@@ -1313,7 +1315,6 @@ $(document).ready(function() {
numbers : aStr['t17'],
};
- $("#toc").toc();
});
function zFormError(elm,x) {
diff --git a/view/pdl/mod_wiki.pdl b/view/pdl/mod_wiki.pdl
index 76ed1c70c..052ae61a1 100644
--- a/view/pdl/mod_wiki.pdl
+++ b/view/pdl/mod_wiki.pdl
@@ -1,4 +1,4 @@
[region=aside]
-[widget=wiki_list][/widget]
+[widget=vcard][/widget]
[widget=wiki_pages][/widget]
[/region]
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index f71fe8ea8..2f3da7542 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -1649,6 +1649,7 @@ main.fullscreen .section-content-wrapper-np {
.atoken-index-row:hover td,
.chatroom-index-row:hover td,
+.wikis-index-row:hover td,
.locs-index-row:hover td,
[id^="cloud-index-"]:hover td,
.cloud-index-active {
@@ -2037,5 +2038,16 @@ dl.bb-dl > dd > li {
.sub-menu {
margin-top: 10px;
padding-left: 15px;
- border-left: 3px solid #ccc;
+ border-left: 3px solid #eee;
+}
+
+.nav-pills-stacked-icons {
+ padding: 6px 10px;
+ float: right;
+ position: relative;
+ z-index:1;
+}
+
+.nav-pills-stacked-icons:hover + a {
+ background-color: #eee;
}
diff --git a/view/tpl/abook_edit.tpl b/view/tpl/abook_edit.tpl
index 835948096..2e02de33b 100755
--- a/view/tpl/abook_edit.tpl
+++ b/view/tpl/abook_edit.tpl
@@ -1,21 +1,33 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
{{if $notself}}
- <div class="dropdown pull-right">
- <button id="connection-dropdown" class="btn btn-default btn-xs" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-caret-down"></i>&nbsp;{{$tools_label}}
- </button>
- <ul class="dropdown-menu" aria-labelledby="dLabel">
- <li><a href="{{$tools.view.url}}" title="{{$tools.view.title}}">{{$tools.view.label}}</a></li>
- <li><a href="{{$tools.recent.url}}" title="{{$tools.recent.title}}">{{$tools.recent.label}}</a></li>
- <li class="divider"></li>
- <li><a href="#" title="{{$tools.refresh.title}}" onclick="window.location.href='{{$tools.refresh.url}}'; return false;">{{$tools.refresh.label}}</a></li>
- <li><a href="#" title="{{$tools.block.title}}" onclick="window.location.href='{{$tools.block.url}}'; return false;">{{$tools.block.label}}</a></li>
- <li><a href="#" title="{{$tools.ignore.title}}" onclick="window.location.href='{{$tools.ignore.url}}'; return false;">{{$tools.ignore.label}}</a></li>
- <li><a href="#" title="{{$tools.archive.title}}" onclick="window.location.href='{{$tools.archive.url}}'; return false;">{{$tools.archive.label}}</a></li>
- <li><a href="#" title="{{$tools.hide.title}}" onclick="window.location.href='{{$tools.hide.url}}'; return false;">{{$tools.hide.label}}</a></li>
- <li><a href="#" title="{{$tools.delete.title}}" onclick="window.location.href='{{$tools.delete.url}}'; return false;">{{$tools.delete.label}}</a></li>
- </ul>
+ <div class="pull-right">
+ <div class="btn-group">
+ <button id="connection-dropdown" class="btn btn-default btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <i class="fa fa-caret-down"></i>&nbsp;{{$tools_label}}
+ </button>
+ <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dLabel">
+ <li><a href="{{$tools.view.url}}" title="{{$tools.view.title}}">{{$tools.view.label}}</a></li>
+ <li><a href="{{$tools.recent.url}}" title="{{$tools.recent.title}}">{{$tools.recent.label}}</a></li>
+ <li class="divider"></li>
+ <li><a href="#" title="{{$tools.refresh.title}}" onclick="window.location.href='{{$tools.refresh.url}}'; return false;">{{$tools.refresh.label}}</a></li>
+ <li><a href="#" title="{{$tools.block.title}}" onclick="window.location.href='{{$tools.block.url}}'; return false;">{{$tools.block.label}}</a></li>
+ <li><a href="#" title="{{$tools.ignore.title}}" onclick="window.location.href='{{$tools.ignore.url}}'; return false;">{{$tools.ignore.label}}</a></li>
+ <li><a href="#" title="{{$tools.archive.title}}" onclick="window.location.href='{{$tools.archive.url}}'; return false;">{{$tools.archive.label}}</a></li>
+ <li><a href="#" title="{{$tools.hide.title}}" onclick="window.location.href='{{$tools.hide.url}}'; return false;">{{$tools.hide.label}}</a></li>
+ <li><a href="#" title="{{$tools.delete.title}}" onclick="window.location.href='{{$tools.delete.url}}'; return false;">{{$tools.delete.label}}</a></li>
+ </ul>
+ </div>
+ {{if $abook_prev || $abook_next}}
+ <div class="btn-group">
+ {{if $abook_prev}}
+ <a href="connedit/{{$abook_prev}}{{if $section}}?f=&section={{$section}}{{/if}}" class="btn btn-default btn-xs" ><i class="fa fa-backward"></i></a>
+ {{/if}}
+ {{if $abook_next}}
+ <a href="connedit/{{$abook_next}}{{if $section}}?f=&section={{$section}}{{/if}}" class="btn btn-default btn-xs" ><i class="fa fa-forward"></i></a>
+ {{/if}}
+ </div>
+ {{/if}}
</div>
{{/if}}
<h2>{{$header}}</h2>
@@ -51,6 +63,7 @@
<form id="abook-edit-form" action="connedit/{{$contact_id}}" method="post" >
<input type="hidden" name="contact_id" value="{{$contact_id}}">
+ <input type="hidden" name="section" value="{{$section}}">
<div class="panel-group" id="contact-edit-tools" role="tablist" aria-multiselectable="true">
{{if $notself}}
@@ -84,7 +97,7 @@
</a>
</h3>
</div>
- <div id="affinity-tool-collapse" class="panel-collapse collapse{{if !$is_pending}} in{{/if}}" role="tabpanel" aria-labelledby="affinity-tool">
+ <div id="affinity-tool-collapse" class="panel-collapse collapse{{if !$is_pending || $section == 'affinity'}} in{{/if}}" role="tabpanel" aria-labelledby="affinity-tool">
<div class="section-content-tools-wrapper">
{{if $slide}}
<div class="form-group"><strong>{{$lbl_slider}}</strong></div>
@@ -115,7 +128,7 @@
</a>
</h3>
</div>
- <div id="fitert-tool-collapse" class="panel-collapse collapse{{if !$is_pending && !($slide || $multiprofs)}} in{{/if}}" role="tabpanel" aria-labelledby="fitert-tool">
+ <div id="fitert-tool-collapse" class="panel-collapse collapse{{if ( !$is_pending && !($slide || $multiprofs)) || $section == 'filter' }} in{{/if}}" role="tabpanel" aria-labelledby="fitert-tool">
<div class="section-content-tools-wrapper">
{{include file="field_textarea.tpl" field=$incl}}
{{include file="field_textarea.tpl" field=$excl}}
@@ -169,7 +182,7 @@
</h3>
</div>
{{/if}}
- <div id="perms-tool-collapse" class="panel-collapse collapse{{if $self}} in{{/if}}" role="tabpanel" aria-labelledby="perms-tool">
+ <div id="perms-tool-collapse" class="panel-collapse collapse{{if $self || $section === 'perms'}} in{{/if}}" role="tabpanel" aria-labelledby="perms-tool">
<div class="section-content-tools-wrapper">
<div class="section-content-warning-wrapper">
{{if $notself}}{{$permnote}}{{/if}}
diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl
index a5b32f08f..0bb3ceb15 100755
--- a/view/tpl/admin_site.tpl
+++ b/view/tpl/admin_site.tpl
@@ -49,6 +49,7 @@
{{/if}}
{{include file="field_textarea.tpl" field=$banner}}
+ {{include file="field_textarea.tpl" field=$siteinfo}}
{{include file="field_textarea.tpl" field=$admininfo}}
{{include file="field_select.tpl" field=$language}}
{{include file="field_select.tpl" field=$theme}}
diff --git a/view/tpl/group_side.tpl b/view/tpl/group_side.tpl
index e58cf060d..35f79a07e 100755
--- a/view/tpl/group_side.tpl
+++ b/view/tpl/group_side.tpl
@@ -5,12 +5,10 @@
{{foreach $groups as $group}}
<li>
{{if $group.cid}}
- <a class="pull-right group-edit-tool fakelink" onclick="contactgroupChangeMember('{{$group.id}}','{{$group.enc_cid}}'); return true;"/>
- <i id="group-{{$group.id}}" class="fa {{if $group.ismember}}fa-check-square-o{{else}}fa-square-o{{/if}}"></i>
- </a>
+ <i id="group-{{$group.id}}" class="widget-nav-pills-checkbox fa {{if $group.ismember}}fa-check-square-o{{else}}fa-square-o{{/if}}" onclick="contactgroupChangeMember('{{$group.id}}','{{$group.enc_cid}}'); return true;"></i>
{{/if}}
{{if $group.edit}}
- <a class="pull-right group-edit-tool" href="{{$group.edit.href}}" title="{{$edittext}}"><i class="group-edit-icon fa fa-pencil"></i></a>
+ <a href="{{$group.edit.href}}" class="widget-nav-pills-icons" title="{{$edittext}}"><i class="fa fa-pencil"></i></a>
{{/if}}
<a{{if $group.selected}} class="group-selected"{{/if}} href="{{$group.href}}">{{$group.text}}</a>
</li>
diff --git a/view/tpl/help.tpl b/view/tpl/help.tpl
index 22180bda6..96d52e0e9 100644
--- a/view/tpl/help.tpl
+++ b/view/tpl/help.tpl
@@ -1,8 +1,8 @@
<div id="help-content" class="generic-content-wrapper">
- <div class="section-title-wrapper">
+ <div class="section-title-wrapper" style="display: none;">
<h2>{{$title}}</h2>
</div>
- <div class="section-content-wrapper">
+ <div class="section-content-wrapper" id="doco-content">
{{$content}}
</div>
</div>
diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl
index a279789a1..bc1e64416 100755
--- a/view/tpl/nav.tpl
+++ b/view/tpl/nav.tpl
@@ -45,9 +45,10 @@
{{/if}}
</ul>
{{else}}
- {{if $nav.lock}}
+ {{if $nav.rusermenu}}
<ul class="dropdown-menu" role="menu" aria-labelledby="avatar">
- <li role="presentation"><a href="{{$nav.lock.0}}" title="{{$nav.lock.3}}" role="menuitem">{{$nav.lock.3}}</a></li>
+ <li role="presentation"><a href="{{$nav.rusermenu.0}}" role="menuitem">{{$nav.rusermenu.1}}</a></li>
+ <li role="presentation"><a href="{{$nav.rusermenu.2}}" role="menuitem">{{$nav.rusermenu.3}}</a></li>
</ul>
{{/if}}
{{/if}}
diff --git a/view/tpl/siteinfo.tpl b/view/tpl/siteinfo.tpl
index e50284b9c..a5b99fd83 100755
--- a/view/tpl/siteinfo.tpl
+++ b/view/tpl/siteinfo.tpl
@@ -1,26 +1,41 @@
<div class="generic-content-wrapper-styled">
-<h3>{{$title}}</h3>
-<p></p>
-<p>{{$description}}</p>
-{{if $version}}
-<p>{{$version}}{{if $commit}}+{{$commit}}{{/if}}</p>
+<h2>{{$title}}</h2>
+
+<h3>{{$sitenametxt}}</h3>
+
+<div>{{$sitename}}</div>
+
+<h3>{{$headline}}</h3>
+
+<div>{{if $site_about}}{{$site_about}}{{else}}--{{/if}}</div>
+
+<h3>{{$admin_headline}}</h3>
+
+<div>{{if $admin_about}}{{$admin_about}}{{else}}--{{/if}}</div>
+
+<br><br>
+<div><a href="help/TermsOfService">{{$terms}}</a></div>
+
+<hr>
+
+<h2>{{$prj_header}}</h2>
+
+<div>{{$prj_name}} ({{$z_server_role}})</div>
+
+{{if $prj_version}}
+<div>{{$prj_version}}</div>
{{/if}}
-{{if $tag}}
-<p>{{$tag_txt}} {{$tag}}</p>
-{{/if}}
-{{if $polled}}
-<p>{{$polled}} {{$lastpoll}}</p>
-{{/if}}
-<p>{{$load_average}} {{$loadavg_all}}</p>
-<p>{{$web_location}}</p>
-<p>{{$visit}}</p>
-<p>{{$bug_text}} <a href="{{$bug_link_url}}">{{$bug_link_text}}</a></p>
-<p>{{$adminlabel}}</p>
-<p>{{$admininfo}}</p>
-<p>{{$contact}}</p>
-<p>{{$plugins_text}}</p>
-{{if $plugins_list}}
- <div style="margin-left: 25px; margin-right: 25px;">{{$plugins_list}}</div>
-{{/if}}
-<p>{{$donate}}</p>
+
+
+<h3>{{$prj_linktxt}}</h3>
+
+<div>{{$prj_link}}</div>
+
+<h3>{{$prj_srctxt}}</h3>
+
+<div>{{$prj_src}}</div>
+
+<br><br>
+<div>{{$prj_transport}} ({{$transport_link}})</div>
+
</div>
diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl
index 4eefb3189..7d698b493 100644
--- a/view/tpl/wiki.tpl
+++ b/view/tpl/wiki.tpl
@@ -1,119 +1,86 @@
-<style type="text/css" media="screen">
- #ace-editor {
- position: relative;
- width: 100%;
- height: 500px;
- }
- .fade.in {
- -webkit-transition: opacity 0.5s 0.5s ease;
- -moz-transition: opacity 0.5s 0.5s ease;
- -o-transition: opacity 0.5s 0.5s ease;
- transition: opacity 0.5s 0.5s ease;
- }
-</style>
-<div class="generic-content-wrapper">
- <div class="section-title-wrapper">
-
- <div class="pull-right">
- {{if $showPageControls}}
- <div class="btn-group">
+<div class="generic-content-wrapper" {{if $hideEditor}}style="display: none;"{{/if}}>
+ <div class="section-title-wrapper">
+ <div class="pull-right">
+ {{if $showPageControls}}
+ <div id="page-tools" class="btn-group" style="display: none;">
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-caret-down"></i>&nbsp;{{$tools_label}}
</button>
- <ul class="dropdown-menu">
-
- <li class="nav-item">
- <a id="rename-page" class="nav-link" href="#"><i class="fa fa-edit"></i>&nbsp;Rename Page</a>
- </li>
+ <ul class="dropdown-menu dropdown-menu-right">
+ {{if $renamePage}}
<li class="nav-item">
- <a id="delete-page" class="nav-link" href="#"><i class="fa fa-trash-o"></i>&nbsp;Delete Page</a>
+ <a class="nav-link rename-page" href="#"><i class="fa fa-edit"></i>&nbsp;{{$renamePage}}</a>
</li>
+ {{/if}}
<li class="nav-item">
<a id="embed-image" class="nav-link" href="#"><i class="fa fa-picture-o"></i>&nbsp;Embed Image</a>
</li>
-
</ul>
</div>
-
- {{/if}}
-
- <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
- <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
- </div>
- <h2><span id="wiki-header-name">{{$wikiheaderName}}</span>: <span id="wiki-header-page">{{$wikiheaderPage}}</span></h2>
- <div class="clear"></div>
- </div>
-
-
- <div id="new-page-form-wrapper" class="section-content-tools-wrapper" style="display:none;">
- <form id="new-page-form" action="wiki/create/page" method="post" >
- <div class="clear"></div>
- {{include file="field_input.tpl" field=$pageName}}
- <div class="btn-group pull-right">
- <button id="new-page-submit" class="btn btn-success" type="submit" name="submit" >Create Page</button>
- </div>
- </form> <div class="clear"></div>
- <hr>
- </div>
-
- <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" >
- <div class="clear"></div>
- {{include file="field_input.tpl" field=$pageRename}}
- <div class="btn-group pull-right">
- <button id="rename-page-submit" class="btn btn-warning" type="submit" name="submit" >Rename Page</button>
- </div>
- </form> <div class="clear"></div>
- <hr>
- </div>
-
- <div id="wiki-content-container" class="section-content-wrapper" {{if $hideEditor}}style="display: none;"{{/if}}>
- <ul class="nav nav-tabs" id="wiki-nav-tabs">
- <li id="edit-pane-tab"><a data-toggle="tab" href="#edit-pane">Edit</a></li>
- <li class="active"><a data-toggle="tab" href="#preview-pane" id="wiki-get-preview">Preview</a></li>
- <li {{if $hidePageHistory}}style="display: none;"{{/if}}><a data-toggle="tab" href="#page-history-pane" id="wiki-get-history">History</a></li>
-
- </ul>
-
- <div class="tab-content" id="wiki-page-tabs">
-
- <div id="edit-pane" class="tab-pane fade">
- <div id="ace-editor"></div>
- </div>
- <div id="preview-pane" class="tab-pane fade in active">
- <div id="wiki-preview" class="section-content-wrapper">
- {{$renderedContent}}
- </div>
- </div>
- <div id="page-history-pane" class="tab-pane fade" {{if $hidePageHistory}}style="display: none;"{{/if}}>
- <div id="page-history-list" class="section-content-wrapper">
- </div>
- </div>
-
-
- </div>
- </div>
- {{if $showCommitMsg}}
- {{if $showPageControls}}
- <div class="section-content-wrapper">
- <div id="id_{{$commitMsg.0}}_wrapper" class='form-group field input'>
- <label for='id_{{$commitMsg.0}}' id='label_{{$commitMsg.0}}'>{{$commitMsg.1}}{{if $commitMsg.4}}<span class="required"> {{$commitMsg.4}}</span>{{/if}}</label>
- <span>
- <input class="" style="width: 80%;" name='{{$commitMsg.0}}' id='id_{{$commitMsg.0}}' type="text" value="{{$commitMsg.2}}"{{if $commitMsg.5}} {{$commitMsg.5}}{{/if}}>
- <a id="save-page" href="#" class="btn btn-primary btn-md">Save</a>
- </span>
- <span id='help_{{$commitMsg.0}}' class='help-block'>{{$commitMsg.3}}</span>
-
+ {{/if}}
+ <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button>
+ <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button>
+ </div>
+ <h2>
+ <span id="wiki-header-name">{{$wikiheaderName}}</span>:
+ <span id="wiki-header-page">{{$wikiheaderPage}}</span>
+ </h2>
<div class="clear"></div>
</div>
- </div>
- {{/if}}
- {{/if}}
+ <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" >
+ {{include file="field_input.tpl" field=$pageRename}}
+ <div class="form-group">
+ <div class="pull-right">
+ <button id="rename-page-submit" class="btn btn-primary" type="submit" name="submit">Submit</button>
+ </div>
+ <div>
+ <button class="btn btn-default rename-page" type="button">Cancel</button>
+ </div>
+ <div class="clear"></div>
+ </div>
+ </form>
+ </div>
+ <div id="wiki-content-container" class="section-content-wrapper" {{if $hideEditor}}style="display: none;"{{/if}}>
+ <ul class="nav nav-tabs" id="wiki-nav-tabs">
+ <li id="edit-pane-tab"><a data-toggle="tab" href="#edit-pane">{{$editOrSourceLabel}}</a></li>
+ <li class="active"><a data-toggle="tab" href="#preview-pane" id="wiki-get-preview">View</a></li>
+ <li><a data-toggle="tab" href="#page-history-pane" id="wiki-get-history">History</a></li>
+ </ul>
+ <div class="tab-content" id="wiki-page-tabs">
+ <div id="edit-pane" class="tab-pane fade">
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ <div id="ace-editor"></div>
+ {{else}}
+ <textarea id="editor">{{$content}}</textarea>
+ {{/if}}
+ {{if $showPageControls}}
+ <div>
+ <div id="id_{{$commitMsg.0}}_wrapper" class="form-group field input">
+ <div class="input-group">
+ <input class="widget-input" name="{{$commitMsg.0}}" id="id_{{$commitMsg.0}}" type="text" value="{{$commitMsg.2}}"{{if $commitMsg.5}} {{$commitMsg.5}}{{/if}}>
+ <div class="input-group-btn">
+ <button id="save-page" type="button" class="btn btn-primary btn-sm{{if !$mimeType || $mimeType == 'text/markdown'}} disabled{{/if}}">Save</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ {{/if}}
+ </div>
+ <div id="preview-pane" class="tab-pane fade in active">
+ <div id="wiki-preview">
+ {{$renderedContent}}
+ </div>
+ </div>
+ <div id="page-history-pane" class="tab-pane fade">
+ <div id="page-history-list"></div>
+ </div>
+ </div>
+ </div>
</div>
{{$wikiModal}}
-
<div class="modal" id="embedPhotoModal" tabindex="-1" role="dialog" aria-labelledby="embedPhotoLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
@@ -138,32 +105,27 @@
<script>
- window.wiki_resource_id = '{{$resource_id}}';
- window.wiki_page_name = '{{$page}}';
- window.wiki_page_content = {{$content}};
- window.wiki_page_commit = '{{$commit}}';
-
- if (window.wiki_page_name === 'Home') {
- $('#delete-page').hide();
- $('#rename-page').hide();
- }
-
- $("#generic-modal-ok-{{$wikiModalID}}").removeClass('btn-primary');
- $("#generic-modal-ok-{{$wikiModalID}}").addClass('btn-danger');
-
- $('#rename-page').click(function (ev) {
- $('#rename-page-form-wrapper').show();
- ev.preventDefault();
- });
-
- $( "#rename-page-form" ).submit(function( event ) {
- $.post("wiki/{{$channel}}/rename/page",
- {
- oldName: window.wiki_page_name,
- newName: $('#id_pageRename').val(),
- resource_id: window.wiki_resource_id
- },
- function (data) {
+ window.wiki_resource_id = '{{$resource_id}}';
+ window.wiki_page_name = '{{$page}}';
+ window.wiki_page_content = {{if !$mimeType || $mimeType == 'text/markdown'}}{{$content}}{{else}}`{{$content}}`{{/if}};
+ window.wiki_page_commit = '{{$commit}}';
+
+ $("#generic-modal-ok-{{$wikiModalID}}").removeClass('btn-primary');
+ $("#generic-modal-ok-{{$wikiModalID}}").addClass('btn-danger');
+
+ $('.rename-page').click(function (ev) {
+ $('#rename-page-form-wrapper').toggle();
+ ev.preventDefault();
+ });
+
+ $( "#rename-page-form" ).submit(function( event ) {
+ $.post("wiki/{{$channel}}/rename/page",
+ {
+ oldName: window.wiki_page_name,
+ newName: $('#id_pageRename').val(),
+ resource_id: window.wiki_resource_id
+ },
+ function (data) {
if (data.success) {
$('#rename-page-form-wrapper').hide();
window.console.log('data: ' + JSON.stringify(data));
@@ -173,46 +135,71 @@
} else {
window.console.log('Error renaming page.');
}
- }, 'json');
- event.preventDefault();
- });
-
- var editor = ace.edit("ace-editor");
- editor.setOptions({
- theme: "ace/theme/github",
- mode: "ace/mode/markdown",
-
- wrap: true,
-
- minLines: 30,
- maxLines: Infinity,
-
- printMargin: false
- });
-
- editor.getSession().setValue(window.wiki_page_content);
- window.editor = editor; // Store the editor in the window object so the anonymous function can use it.
-
- $('#edit-pane-tab').click(function (ev) {
- setTimeout(function() {window.editor.focus();}, 500); // Return the focus to the editor allowing immediate text entry
- });
-
- $('#wiki-get-preview').click(function (ev) {
- $.post("wiki/{{$channel}}/preview", {content: editor.getValue(), resource_id: window.wiki_resource_id}, function (data) {
- if (data.success) {
- $('#wiki-preview').html(data.html);
- $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
- } else {
- window.console.log('Error previewing page.');
- }
- }, 'json');
- ev.preventDefault();
- });
+ }, 'json');
+ event.preventDefault();
+ });
+
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ var editor = ace.edit("ace-editor");
+ editor.setOptions({
+ theme: "ace/theme/github",
+ mode: "ace/mode/markdown",
+
+ wrap: true,
+
+ minLines: 30,
+ maxLines: Infinity,
+
+ printMargin: false
+ });
+
+ editor.getSession().setValue(window.wiki_page_content);
+ window.editor = editor; // Store the editor in the window object so the anonymous function can use it.
+ {{else}}
+ window.editor = editor = $('#editor');
+ {{/if}}
+
+ {{if !$showPageControls}}
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ editor.setReadOnly(true); // Disable editing if the viewer lacks edit permission
+ {{else}}
+ editor.prop('readonly', true);
+ {{/if}}
+ {{/if}}
+
+ $('#edit-pane-tab').click(function (ev) {
+ setTimeout(function() {window.editor.focus();}, 500); // Return the focus to the editor allowing immediate text entry
+ $('#page-tools').show();
+ });
+
+ $('#wiki-get-preview').click(function (ev) {
+ $.post("wiki/{{$channel}}/preview", {
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ content: editor.getValue(),
+ {{else}}
+ content: editor.val(),
+ {{/if}}
+ resource_id: window.wiki_resource_id
+ },
+ function (data) {
+ if (data.success) {
+ $('#wiki-preview').html(data.html);
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
+ {{/if}}
+ $('#page-tools').hide();
+ } else {
+ window.console.log('Error previewing page.');
+ }
+ }, 'json');
+ ev.preventDefault();
+ });
- $('#wiki-get-history').click(function (ev) {
- $.post("wiki/{{$channel}}/history/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id}, function (data) {
+ $('#wiki-get-history').click(function (ev) {
+ $.post("wiki/{{$channel}}/history/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id}, function (data) {
if (data.success) {
$('#page-history-list').html(data.historyHTML);
+ $('#page-tools').hide();
} else {
window.console.log('Error getting page history.');
}
@@ -220,162 +207,108 @@
ev.preventDefault();
});
- function wiki_delete_wiki(wikiHtmlName, resource_id) {
- if(!confirm('Are you sure you want to delete the entire wiki: ' + JSON.stringify(wikiHtmlName))) {
- return;
+ function wiki_refresh_page_list() {
+ if (window.wiki_resource_id === '') {
+ return false;
}
- $.post("wiki/{{$channel}}/delete/wiki", {resource_id: resource_id}, function (data) {
+ $.post("wiki/{{$channel}}/get/page/list/", {resource_id: window.wiki_resource_id}, function (data) {
if (data.success) {
- window.console.log('Wiki deleted');
- // Refresh list and redirect page as necessary
- window.location = 'wiki/{{$channel}}';
+ $('#wiki_page_list_container').html(data.pages);
+ $('#wiki_page_list_container').show();
+ {{if $showNewPageButton}}
+ $('#new-page-button').show();
+ {{else}}
+ $('#new-page-button').hide();
+ {{/if}}
} else {
- alert('Error deleting wiki!');
- window.console.log('Error deleting wiki.');
+ alert('Error fetching page list!');
+ window.console.log('Error fetching page list!');
}
- }, 'json');
- }
-
+ }, 'json');
+ return false;
+ }
- function wiki_download_wiki(resource_id) {
- window.location = "wiki/{{$channel}}/download/wiki/" + resource_id;
- }
-
- $('#new-page-submit').click(function (ev) {
- if (window.wiki_resource_id === '') {
- window.console.log('You must have a wiki open in order to create pages.');
- ev.preventDefault();
- return false;
- }
- $.post("wiki/{{$channel}}/create/page", {name: $('#id_pageName').val(), resource_id: window.wiki_resource_id},
- function (data) {
- if (data.success) {
- window.location = data.url;
- } else {
- window.console.log('Error creating page.');
- }
- }, 'json');
+ $('#save-page').click(function (ev) {
+ if (window.wiki_resource_id === '' || window.wiki_page_name === '') {
+ window.console.log('You must have a wiki page open in order to edit pages.');
ev.preventDefault();
- });
-
- function wiki_refresh_page_list() {
- if (window.wiki_resource_id === '') {
- return false;
- }
- $.post("wiki/{{$channel}}/get/page/list/", {resource_id: window.wiki_resource_id}, function (data) {
- if (data.success) {
- $('#wiki_page_list_container').html(data.pages);
- $('#wiki_page_list_container').show();
- {{if $showNewPageButton}}
- $('#new-page-button').show();
- {{else}}
- $('#new-page-button').hide();
- {{/if}}
- } else {
- alert('Error fetching page list!');
- window.console.log('Error fetching page list!');
- }
- }, 'json');
return false;
}
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ var currentContent = editor.getValue();
+ {{else}}
+ var currentContent = editor.val();
+ {{/if}}
- $('#save-page').click(function (ev) {
- if (window.wiki_resource_id === '' || window.wiki_page_name === '') {
- window.console.log('You must have a wiki page open in order to edit pages.');
- ev.preventDefault();
- return false;
- }
- var currentContent = editor.getValue();
- if (window.wiki_page_content === currentContent) {
+ if (window.wiki_page_content === currentContent) {
window.console.log('No edits to save.');
ev.preventDefault();
return false;
- }
- $.post("wiki/{{$channel}}/save/page",
- { content: currentContent,
- commitMsg: $('#id_commitMsg').val(),
- name: window.wiki_page_name,
- resource_id: window.wiki_resource_id
- },
- function (data) {
- if (data.success) {
+ }
+ $.post("wiki/{{$channel}}/save/page", {
+ content: currentContent,
+ commitMsg: $('#id_commitMsg').val(),
+ name: window.wiki_page_name,
+ resource_id: window.wiki_resource_id
+ },
+ function (data) {
+ if (data.success) {
window.console.log('Page saved successfully.');
window.wiki_page_content = currentContent;
$('#id_commitMsg').val(''); // Clear the commit message box
- $('#wiki-get-history').click();
- } else {
+
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ $('#save-page').addClass('disabled'); // Disable the save button
+ window.editor.getSession().getUndoManager().markClean(); // Reset the undo history for the editor
+ {{/if}}
+
+ window.editor.focus(); // Return focus to the editor for continued editing
+ // $('#wiki-get-history').click();
+ } else {
alert('Error saving page.'); // TODO: Replace alerts with auto-timeout popups
window.console.log('Error saving page.');
- }
- }, 'json');
- ev.preventDefault();
- });
-
- $('#delete-page').click(function (ev) {
- if (window.wiki_resource_id === '' || window.wiki_page_name === '' || window.wiki_page_name === 'Home') {
- window.console.log('You must have a wiki page open in order to delete pages.');
- ev.preventDefault();
- return false;
}
- if(!confirm('Are you sure you want to delete the page: ' + window.wiki_page_name)) {
- ev.preventDefault();
- return;
- }
- $.post("wiki/{{$channel}}/delete/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id},
- function (data) {
- if (data.success) {
- window.console.log('Page deleted successfully.');
- var url = window.location.href;
- if (url.substr(-1) == '/') url = url.substr(0, url.length - 2);
- url = url.split('/');
- url.pop();
- window.location = url.join('/');
- } else {
- alert('Error deleting page.'); // TODO: Replace alerts with auto-timeout popups
- window.console.log('Error deleting page.');
- }
- }, 'json');
- ev.preventDefault();
- });
+ }, 'json');
+ ev.preventDefault();
+ });
- function wiki_revert_page(commitHash) {
- if (window.wiki_resource_id === '' || window.wiki_page_name === '') {
+ function wiki_revert_page(commitHash) {
+ if (window.wiki_resource_id === '' || window.wiki_page_name === '') {
window.console.log('You must have a wiki page open in order to revert pages.');
return false;
- }
- $.post("wiki/{{$channel}}/revert/page", {commitHash: commitHash, name: window.wiki_page_name, resource_id: window.wiki_resource_id},
- function (data) {
- if (data.success) {
- $('button[id^=revert-]').removeClass('btn-success');
- $('button[id^=revert-]').addClass('btn-danger');
- $('button[id^=revert-]').html('Revert');
- $('#revert-'+commitHash).removeClass('btn-danger');
- $('#revert-'+commitHash).addClass('btn-success');
- $('#revert-'+commitHash).html('Page reverted<br>but not saved');
- window.wiki_page_commit = commitHash;
- // put contents in editor
- editor.getSession().setValue(data.content);
- } else {
- window.console.log('Error reverting page.');
- }
- }, 'json');
}
+ $.post("wiki/{{$channel}}/revert/page", {commitHash: commitHash, name: window.wiki_page_name, resource_id: window.wiki_resource_id},
+ function (data) {
+ if (data.success) {
+ $('button[id^=revert-]').removeClass('btn-success');
+ $('button[id^=revert-]').addClass('btn-danger');
+ $('button[id^=revert-]').html('Revert');
+ $('#revert-'+commitHash).removeClass('btn-danger');
+ $('#revert-'+commitHash).addClass('btn-success');
+ $('#revert-'+commitHash).html('Page reverted<br>but not saved');
+ window.wiki_page_commit = commitHash;
+ // put contents in editor
+ editor.getSession().setValue(data.content);
+ } else {
+ window.console.log('Error reverting page.');
+ }
+ }, 'json');
+ }
- function wiki_compare_page(compareCommit) {
- if (window.wiki_resource_id === '' || window.wiki_page_name === '' || window.wiki_page_commit === '') {
+ function wiki_compare_page(compareCommit) {
+ 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.');
return false;
- }
- $.post("wiki/{{$channel}}/compare/page",
- {
- compareCommit: compareCommit,
- currentCommit: window.wiki_page_commit,
- name: window.wiki_page_name,
- resource_id: window.wiki_resource_id
- },
- function (data) {
- console.log(data);
- if (data.success) {
+ }
+ $.post("wiki/{{$channel}}/compare/page", {
+ compareCommit: compareCommit,
+ currentCommit: window.wiki_page_commit,
+ name: window.wiki_page_name,
+ resource_id: window.wiki_resource_id
+ },
+ function (data) {
+ console.log(data);
+ if (data.success) {
var modalBody = $('#generic-modal-body-{{$wikiModalID}}');
modalBody.html('<div class="descriptive-text">'+data.diff+'</div>');
$('.modal-dialog').addClass('modal-lg');
@@ -385,134 +318,123 @@
$('#generic-modal-{{$wikiModalID}}').modal('hide');
});
$('#generic-modal-{{$wikiModalID}}').modal();
- } else {
+ } else {
window.console.log('Error comparing page.');
- }
- }, 'json');
- }
-
- $('#embed-image').click(function (ev) {
- initializeEmbedPhotoDialog();
- ev.preventDefault();
- });
-
+ }
+ }, 'json');
+ }
- var initializeEmbedPhotoDialog = function () {
- $('.embed-photo-selected-photo').each(function (index) {
- $(this).removeClass('embed-photo-selected-photo');
- });
- getPhotoAlbumList();
- $('#embedPhotoModalBodyAlbumDialog').off('click');
- $('#embedPhotoModal').modal();
- };
+ $('#embed-image').click(function (ev) {
+ initializeEmbedPhotoDialog();
+ ev.preventDefault();
+ });
- var choosePhotoFromAlbum = function (album) {
- $.post("embedphotos/album", {name: album},
- function(data) {
- if (data['status']) {
- $('#embedPhotoModalLabel').html('{{$modalchooseimages}}');
- $('#embedPhotoModalBodyAlbumDialog').html('\
- <div><ul class="nav">\n\
- <li><a href="#" onclick="initializeEmbedPhotoDialog();return false;">\n\
- <i class="fa fa-chevron-left"></i>&nbsp\n\
- {{$modaldiffalbum}}\n\
- </a>\n\
- </li>\n\
- </ul><br></div>')
- $('#embedPhotoModalBodyAlbumDialog').append(data['content']);
- $('#embedPhotoModalBodyAlbumDialog').click(function (evt) {
- evt.preventDefault();
- var image = document.getElementById(evt.target.id);
- if (typeof($(image).parent()[0]) !== 'undefined') {
- var imageparent = document.getElementById($(image).parent()[0].id);
- $(imageparent).toggleClass('embed-photo-selected-photo');
- }
- });
- $('#embedPhotoModalBodyAlbumListDialog').addClass('hide');
- $('#embedPhotoModalBodyAlbumDialog').removeClass('hide');
- $('#embed-photo-OKButton').click(function () {
- $('.embed-photo-selected-photo').each(function (index) {
- var href = $(this).attr('href');
- $.post("embedphotos/photolink", {href: href},
- function(ddata) {
- if (ddata['status']) {
- var imgURL = ddata['photolink'].replace( /\[.*\]\[.*\](.*)\[.*\]\[.*\]/, '\n![image]($1)' )
- editor.getSession().insert(editor.getCursorPosition(), imgURL)
- } else {
- window.console.log('{{$modalerrorlink}}' + ':' + ddata['errormsg']);
- }
- return false;
- },
- 'json');
- });
- $('#embedPhotoModalBodyAlbumDialog').html('');
- $('#embedPhotoModalBodyAlbumDialog').off('click');
- $('#embedPhotoModal').modal('hide');
- });
- } else {
- window.console.log('{{$modalerroralbum}} ' + JSON.stringify(album) + ':' + data['errormsg']);
- }
- return false;
- },
- 'json');
- };
-
- var getPhotoAlbumList = function () {
- $.post("embedphotos/albumlist", {},
- function(data) {
- if (data['status']) {
- var albums = data['albumlist']; //JSON.parse(data['albumlist']);
- $('#embedPhotoModalLabel').html('{{$modalchoosealbum}}');
- $('#embedPhotoModalBodyAlbumList').html('<ul class="nav"></ul>');
- for(var i=0; i<albums.length; i++) {
- var albumName = albums[i].text;
- var albumLink = '<li>';
- albumLink += '<a href="#" onclick="choosePhotoFromAlbum(\'' + albumName + '\');return false;">' + albumName + '</a>';
- albumLink += '</li>';
- $('#embedPhotoModalBodyAlbumList').find('ul').append(albumLink);
+ var initializeEmbedPhotoDialog = function () {
+ $('.embed-photo-selected-photo').each(function (index) {
+ $(this).removeClass('embed-photo-selected-photo');
+ });
+ getPhotoAlbumList();
+ $('#embedPhotoModalBodyAlbumDialog').off('click');
+ $('#embedPhotoModal').modal();
+ };
+
+ var choosePhotoFromAlbum = function (album) {
+ $.post("embedphotos/album", {name: album},
+ function(data) {
+ if (data['status']) {
+ $('#embedPhotoModalLabel').html('{{$modalchooseimages}}');
+ $('#embedPhotoModalBodyAlbumDialog').html('\
+ <div><ul class="nav">\n\
+ <li><a href="#" onclick="initializeEmbedPhotoDialog();return false;">\n\
+ <i class="fa fa-chevron-left"></i>&nbsp;\n\
+ {{$modaldiffalbum}}\n\
+ </a>\n\
+ </li>\n\
+ </ul><br></div>')
+ $('#embedPhotoModalBodyAlbumDialog').append(data['content']);
+ $('#embedPhotoModalBodyAlbumDialog').click(function (evt) {
+ evt.preventDefault();
+ var image = document.getElementById(evt.target.id);
+ if (typeof($(image).parent()[0]) !== 'undefined') {
+ var imageparent = document.getElementById($(image).parent()[0].id);
+ $(imageparent).toggleClass('embed-photo-selected-photo');
}
- $('#embedPhotoModalBodyAlbumDialog').addClass('hide');
- $('#embedPhotoModalBodyAlbumListDialog').removeClass('hide');
- } else {
- window.console.log('{{$modalerrorlist}}' + ':' + data['errormsg']);
+ });
+ $('#embedPhotoModalBodyAlbumListDialog').addClass('hide');
+ $('#embedPhotoModalBodyAlbumDialog').removeClass('hide');
+ $('#embed-photo-OKButton').click(function () {
+ $('.embed-photo-selected-photo').each(function (index) {
+ var href = $(this).attr('href');
+ $.post("embedphotos/photolink", {href: href},
+ function(ddata) {
+ if (ddata['status']) {
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ var imgURL = ddata['photolink'].replace( /\[.*\]\[.*\](.*)\[.*\]\[.*\]/, '\n![image]($1)' )
+ editor.getSession().insert(editor.getCursorPosition(), imgURL)
+ {{else}}
+ var currentContent = $('#editor').val();
+ $('#editor').val(currentContent + ddata['photolink']);
+ {{/if}}
+ } else {
+ window.console.log('{{$modalerrorlink}}' + ':' + ddata['errormsg']);
+ }
+ return false;
+ },
+ 'json');
+ });
+ $('#embedPhotoModalBodyAlbumDialog').html('');
+ $('#embedPhotoModalBodyAlbumDialog').off('click');
+ $('#embedPhotoModal').modal('hide');
+ });
+ } else {
+ window.console.log('{{$modalerroralbum}} ' + JSON.stringify(album) + ':' + data['errormsg']);
+ }
+ return false;
+ },
+ 'json');
+ };
+
+ var getPhotoAlbumList = function () {
+ $.post("embedphotos/albumlist", {},
+ function(data) {
+ if (data['status']) {
+ var albums = data['albumlist']; //JSON.parse(data['albumlist']);
+ $('#embedPhotoModalLabel').html('{{$modalchoosealbum}}');
+ $('#embedPhotoModalBodyAlbumList').html('<ul class="nav"></ul>');
+ for(var i=0; i<albums.length; i++) {
+ var albumName = albums[i].text;
+ var albumLink = '<li>';
+ albumLink += '<a href="#" onclick="choosePhotoFromAlbum(\'' + albumName + '\');return false;">' + albumName + '</a>';
+ albumLink += '</li>';
+ $('#embedPhotoModalBodyAlbumList').find('ul').append(albumLink);
}
- return false;
- },
- 'json');
- };
-
- function wiki_show_new_wiki_form() {
- $('#new-page-form-wrapper').hide();
- $('#edit-wiki-form-wrapper').hide();
- $('#new-wiki-form-wrapper').toggle();
- return false;
- }
-
- function wiki_show_new_page_form() {
- $('#edit-wiki-form-wrapper').hide();
- $('#new-wiki-form-wrapper').hide();
- $('#new-page-form-wrapper').toggle();
- return false;
- }
-
- function wiki_show_edit_wiki_form(wiki_title, wiki_resource_id) {
- window.wiki_resource_id = wiki_resource_id;
- window.wiki_title = wiki_title;
- $('#new-page-form-wrapper').hide();
- $('#new-wiki-form-wrapper').hide();
- $('#edit-wiki-form-wrapper').toggle();
- return false;
- }
-
- $(document).ready(function () {
- wiki_refresh_page_list();
- $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
- // Show Edit tab first. Otherwise the Ace editor does not load.
- $("#wiki-nav-tabs li:eq(1) a").tab('show');
- {{if $showNewWikiButton}}
- $('#new-wiki-button').show();
- {{else}}
- $('#new-wiki-button').hide();
- {{/if}}
+ $('#embedPhotoModalBodyAlbumDialog').addClass('hide');
+ $('#embedPhotoModalBodyAlbumListDialog').removeClass('hide');
+ } else {
+ window.console.log('{{$modalerrorlist}}' + ':' + data['errormsg']);
+ }
+ return false;
+ },
+ 'json');
+ };
+
+ $(document).ready(function () {
+ wiki_refresh_page_list();
+ // This seems obsolete
+ // Show Edit tab first. Otherwise the Ace editor does not load.
+ //$("#wiki-nav-tabs li:eq(1) a").tab('show');
+
+ {{if !$mimeType || $mimeType == 'text/markdown'}}
+ $("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
+ window.editor.on("input", function() {
+ if(window.editor.getSession().getUndoManager().isClean()) {
+ $('#save-page').addClass('disabled');
+ } else {
+ $('#save-page').removeClass('disabled');
+ }
});
+ {{else}}
+ window.editor.bbco_autocomplete('bbcode');
+ {{/if}}
+ });
</script>
diff --git a/view/tpl/wiki_page_list.tpl b/view/tpl/wiki_page_list.tpl
index c020f2520..ef2b41490 100644
--- a/view/tpl/wiki_page_list.tpl
+++ b/view/tpl/wiki_page_list.tpl
@@ -1,14 +1,75 @@
{{if $not_refresh}}<div id="wiki_page_list_container" {{if $hide}} style="display: none;" {{/if}}>{{/if}}
<div id="wiki_page_list" class="widget" >
<h3>{{$header}}</h3>
-
<ul class="nav nav-pills nav-stacked">
{{if $pages}}
{{foreach $pages as $page}}
- <li><a href="/wiki/{{$channel}}/{{$wikiname}}/{{$page.url}}">{{$page.title}}</a></li>
+ <li id="{{$page.link_id}}">
+ {{if $page.resource_id && $canadd}}
+ <i class="widget-nav-pills-icons fa fa-trash-o drop-icons" onclick="wiki_delete_page('{{$page.title}}', '{{$page.url}}', '{{$page.resource_id}}', '{{$page.link_id}}')"></i>
+ {{/if}}
+ <a href="/wiki/{{$channel}}/{{$wikiname}}/{{$page.url}}">{{$page.title}}</a>
+ </li>
{{/foreach}}
{{/if}}
- {{if $canadd}}<li><a href="#" onclick="wiki_show_new_page_form(); return false;"><i class="fa fa-plus-circle"></i>&nbsp;{{$addnew}}</a></li>{{/if}}
+ {{if $canadd}}
+ <li><a href="#" onclick="wiki_show_new_page_form(); return false;"><i class="fa fa-plus-circle"></i>&nbsp;{{$addnew}}</a></li>
+ {{/if}}
</ul>
+ {{if $canadd}}
+ <div id="new-page-form-wrapper" class="sub-menu" style="display:none;">
+ <form id="new-page-form" action="wiki/{{$channel}}/create/page" method="post" >
+ {{include file="field_input.tpl" field=$pageName}}
+ <button id="new-page-submit" class="btn btn-primary" type="submit" name="submit" >Submit</button>
+ </form>
+ </div>
+ {{/if}}
</div>
{{if $not_refresh}}</div>{{/if}}
+
+<script>
+ $('#new-page-submit').click(function (ev) {
+ $.post("wiki/{{$channel}}/create/page", {name: $('#id_pageName').val(), resource_id: window.wiki_resource_id},
+ function(data) {
+ if(data.success) {
+ window.location = data.url;
+ } else {
+ window.console.log('Error creating page.');
+ }
+ }, 'json');
+ ev.preventDefault();
+ });
+
+ function wiki_delete_page(wiki_page_name, wiki_page_url, wiki_resource_id, wiki_link_id) {
+ if(!confirm('Are you sure you want to delete the page: ' + wiki_page_name)) {
+ return;
+ }
+ $.post("wiki/{{$channel}}/delete/page", {name: wiki_page_url, resource_id: wiki_resource_id},
+ function (data) {
+ if (data.success) {
+ window.console.log('Page deleted successfully.');
+ if(wiki_page_url == window.wiki_page_name) {
+ var url = window.location.href;
+ if(url.substr(-1) == '/')
+ url = url.substr(0, url.length - 2);
+ url = url.split('/');
+ url.pop();
+ window.location = url.join('/');
+ }
+ else {
+ $('#' + wiki_link_id).remove();
+ }
+ } else {
+ alert('Error deleting page.'); // TODO: Replace alerts with auto-timeout popups
+ window.console.log('Error deleting page.');
+ }
+ }, 'json');
+ return false;
+ }
+
+ function wiki_show_new_page_form() {
+ $('#new-page-form-wrapper').toggle();
+ $('#id_pageName').focus();
+ return false;
+ }
+</script>
diff --git a/view/tpl/wikilist.tpl b/view/tpl/wikilist.tpl
index d3c6b867f..1fb7dbec1 100644
--- a/view/tpl/wikilist.tpl
+++ b/view/tpl/wikilist.tpl
@@ -1,49 +1,71 @@
-<div id="wiki_list" class="widget">
- <h3>{{$header}}</h3>
- <ul class="nav nav-pills nav-stacked">
- {{if $wikis}}
- {{foreach $wikis as $wiki}}
- <li>{{if $owner}}<a href="#" onclick="$('div[id^=\'edit-wiki-form-wrapper\']').hide(); $('div[id^=\'new-wiki-form-wrapper\']').hide(); openClose('edit-wiki-form-wrapper-{{$wiki.resource_id}}'); return false;" class="pull-right wikilist" title="{{$edit}}"><i class="fa fa-pencil"></i></a>{{/if}}
- <a href="#" onclick="wiki_download_wiki('{{$wiki.resource_id}}'); return false;" title="{{$download}}" class="pull-right wikilist"><i class="fa fa-download"></i></a>
- <a href="/wiki/{{$channel}}/{{$wiki.urlName}}/Home" title="{{$view}}"{{if $wiki.active}} class="active"{{/if}}>{{$wiki.title}}</a>
- {{if $owner}}
- <div id="edit-wiki-form-wrapper-{{$wiki.resource_id}}" class="section-content-tools-wrapper" style="display:none;">
- <form id="edit-wiki-form" action="wiki/edit/wiki" method="post" >
- <div class="clear"></div>
- <div class="btn-group pull-right">
- <button class="btn btn-xs btn-danger" onclick="wiki_delete_wiki('{{$wiki.title}}', '{{$wiki.resource_id}}'); return false;"><i class="fa fa-trash-o"></i>&nbsp;Delete Wiki</button>
- </div>
- </form>
- <div class="clear"></div>
- </div>
- {{/if}}
- </li>
- {{/foreach}}
- {{/if}}
+<div class="generic-content-wrapper">
+ <div class="section-title-wrapper">
{{if $owner}}
- <li><a href="#" class="fakelink" onclick="$('div[id^=\'edit-wiki-form-wrapper\']').hide(); openClose('new-wiki-form-wrapper'); return false;"><i id="new-wiki-button" class="fa fa-plus-circle"></i>&nbsp;{{$addnew}}</a></li>
+ <button type="button" class="btn btn-success btn-xs pull-right acl-form-trigger" onclick="openClose('new-wiki-form-wrapper');" data-form_id="new-wiki-form"><i class="fa fa-plus-circle"></i>&nbsp;{{$create}}</button>
{{/if}}
- </ul>
+ <h2>{{$header}}</h2>
+ </div>
{{if $owner}}
- <div id="new-wiki-form-wrapper" class="sub-menu" style="display:none;">
+ <div id="new-wiki-form-wrapper" class="section-content-tools-wrapper">
<form id="new-wiki-form" action="wiki/{{$channel}}/create/wiki" method="post" class="acl-form" data-form_id="new-wiki-form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}'>
{{include file="field_input.tpl" field=$wikiName}}
- <div id="post-visible-container" class="checkbox">
- <label>
- <input name="postVisible" id="postVisible" value="0" type="checkbox">{{$notify}}
- </label>
- </div>
+ {{include file="field_select.tpl" field=$mimeType}}
+ {{include file="field_checkbox.tpl" field=$notify}}
<div>
- <div id="profile-jot-submit-right" class="btn-group">
+ <div class="btn-group pull-right">
<button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="Permission settings" onclick="return false;">
- <i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons"></i>{{$bang}}
+ <i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons"></i>
</button>
- <button id="new-wiki-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$create}}</button>
+ <button id="new-wiki-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$submit}}</button>
</div>
</div>
</form>
+ {{$acl}}
<div class="clear"></div>
</div>
{{/if}}
+ <div class="section-content-wrapper-np">
+ <table id="wikis-index">
+ <tr>
+ <th width="97%">{{$name}}</th>
+ <th width="1%">{{$type}}</th>
+ <th width="1%" class="wikis-index-tool"></th>
+ {{if $owner}}
+ <th width="1%"></th>
+ {{/if}}
+ </tr>
+ {{foreach $wikis as $wiki}}
+ <tr class="wikis-index-row">
+ <td><a href="/wiki/{{$channel}}/{{$wiki.urlName}}/Home" title="{{$view}}"{{if $wiki.active}} class="active"{{/if}}>{{$wiki.title}}</a></td>
+ <td>{{$wiki.mimeType}}</td>
+ <td class="wiki-index-tool"><i class="fa fa-download fakelink" onclick="wiki_download_wiki('{{$wiki.resource_id}}'); return false;"></i></td>
+ {{if $owner}}
+ <td><i class="fa fa-trash-o drop-icons" onclick="wiki_delete_wiki('{{$wiki.title}}', '{{$wiki.resource_id}}'); return false;"></i></td>
+ {{/if}}
+ </tr>
+ {{/foreach}}
+ </table>
+ </div>
</div>
-{{$acl}}
+<script>
+ {{if $owner}}
+ function wiki_delete_wiki(wikiHtmlName, resource_id) {
+ if(!confirm('Are you sure you want to delete the entire wiki: ' + JSON.stringify(wikiHtmlName))) {
+ return;
+ }
+ $.post("wiki/{{$channel}}/delete/wiki", {resource_id: resource_id}, function (data) {
+ if (data.success) {
+ window.console.log('Wiki deleted');
+ // Refresh list and redirect page as necessary
+ window.location = 'wiki/{{$channel}}';
+ } else {
+ alert('Error deleting wiki!');
+ window.console.log('Error deleting wiki.');
+ }
+ }, 'json');
+ }
+ {{/if}}
+ function wiki_download_wiki(resource_id) {
+ window.location = "wiki/{{$channel}}/download/wiki/" + resource_id;
+ }
+</script>
diff --git a/view/tpl/wikilist_widget.tpl b/view/tpl/wikilist_widget.tpl
new file mode 100644
index 000000000..51eccad90
--- /dev/null
+++ b/view/tpl/wikilist_widget.tpl
@@ -0,0 +1,45 @@
+<div id="wiki_list" class="widget">
+ <h3>{{$header}}</h3>
+ <ul class="nav nav-pills nav-stacked">
+ {{if $wikis}}
+ {{foreach $wikis as $wiki}}
+ <li>{{if $owner}}<a href="#" onclick="$('div[id^=\'edit-wiki-form-wrapper\']').hide(); $('div[id^=\'new-wiki-form-wrapper\']').hide(); openClose('edit-wiki-form-wrapper-{{$wiki.resource_id}}'); return false;" class="pull-right wikilist" title="{{$edit}}"><i class="fa fa-pencil"></i></a>{{/if}}
+ <a href="#" onclick="wiki_download_wiki('{{$wiki.resource_id}}'); return false;" title="{{$download}}" class="pull-right wikilist"><i class="fa fa-download"></i></a>
+ <a href="/wiki/{{$channel}}/{{$wiki.urlName}}/Home" title="{{$view}}"{{if $wiki.active}} class="active"{{/if}}>{{$wiki.title}}</a>
+ {{if $owner}}
+ <div id="edit-wiki-form-wrapper-{{$wiki.resource_id}}" class="section-content-tools-wrapper" style="display:none;">
+ <form id="edit-wiki-form" action="wiki/edit/wiki" method="post" >
+ <div class="clear"></div>
+ <div class="btn-group pull-right">
+ <button class="btn btn-xs btn-danger" onclick="wiki_delete_wiki('{{$wiki.title}}', '{{$wiki.resource_id}}'); return false;"><i class="fa fa-trash-o"></i>&nbsp;Delete Wiki</button>
+ </div>
+ </form>
+ <div class="clear"></div>
+ </div>
+ {{/if}}
+ </li>
+ {{/foreach}}
+ {{/if}}
+ {{if $owner}}
+ <li><a href="#" class="fakelink" onclick="wiki_show_new_wiki_form(); return false;"><i id="new-wiki-button" class="fa fa-plus-circle"></i>&nbsp;{{$addnew}}</a></li>
+ {{/if}}
+ </ul>
+ {{if $owner}}
+ <div id="new-wiki-form-wrapper" class="sub-menu" style="display:none;">
+ <form id="new-wiki-form" action="wiki/{{$channel}}/create/wiki" method="post" class="acl-form" data-form_id="new-wiki-form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}'>
+ {{include file="field_input.tpl" field=$wikiName}}
+ {{include file="field_checkbox.tpl" field=$notify}}
+ <div>
+ <div id="profile-jot-submit-right" class="btn-group">
+ <button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="Permission settings" onclick="return false;">
+ <i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons"></i>{{$bang}}
+ </button>
+ <button id="new-wiki-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$create}}</button>
+ </div>
+ </div>
+ </form>
+ <div class="clear"></div>
+ </div>
+ {{/if}}
+</div>
+{{$acl}}