# HG changeset patch # User Ludovic Chabant # Date 1365296851 25200 # Node ID b03f083c3a29079ea12e7d9a3a3edb9567015617 # Parent a5a3d454eac9a01bef8f28943654d07c3ea093cf Lots of HTML/JS/Less changes: - more semantic and simple markup, no useless grid. - simpler colour schemes (TODO: colours are ugly, tune them). - better error handling in Backbone views. - fixed some view bugs. - changed new/modified page alert to a ribbon with tooltip. diff -r a5a3d454eac9 -r b03f083c3a29 static/css/wikked.less --- a/static/css/wikked.less Fri Apr 05 08:08:12 2013 -0700 +++ b/static/css/wikked.less Sat Apr 06 18:07:31 2013 -0700 @@ -4,22 +4,15 @@ @import "/css/wmd.css"; // Constants -@wikiLinkColor: #12f; -@wikiLinkColorHover: #36f; -@wikiLinkColorMissing: #f12; - -@colorBlueDark: #48577D; -@colorBlueMedium: #7690CF; -@colorBlueLight: #D9E3FF; - -@colorGrayBlueLight: #D3DCF2; -@colorGrayBlueMedium: #9197A6; -@colorGrayBlueDark: #43464C; - +@colorBlue: #0F1FFF; +@colorBlueDark: #1D3982; +@colorOrange: #B03500; +@colorGreen: #B6CC95; +@colorGreenDark: #496B15; +@colorPage: #FFFFFF; +@colorFooter: #E5E7FF; @colorCode: #523C37; -@pageBackground: white; -@pageBackgroundSpecial: #E5D19E; // Macros .box-shadow(@style, @c) { @@ -35,71 +28,93 @@ } // Global classes -a.wiki-link { +a { text-decoration: none; - color: @wikiLinkColor; - &:link { color: @wikiLinkColor; } - &:visited { color: @wikiLinkColor; } - &:hover { color: @wikiLinkColorHover; text-decoration: underline; } - &:active { color: @wikiLinkColor; } + color: @colorBlue; + &:link { color: @colorBlue; } + &:visited { color: @colorBlue; } + &:hover { color: @colorBlue; text-decoration: underline; } + &:active { color: @colorBlue; } } a.wiki-link.missing { - color: @wikiLinkColorMissing; + color: @colorOrange; + &:hover { color: @colorOrange; text-decoration: underline; } } .decorator { text-transform: uppercase; font-weight: lighter; font-size: 0.7em; letter-spacing: 0.1em; - color: @colorBlueDark; + color: @colorBlue; .rev_id { font-family: @monoFontFamily; - color: @colorCode; } } - -div.alert { +.tooltip { + font-size: @baseFontSize*0.75; +} +.alert { font-size: @fontSizeSmall; } -.container { - nav, .meta { +// Main classes +.wrapper>nav, +.wrapper>footer { + color: @grayLight; + font-size: @fontSizeSmall; + line-height: (@baseLineHeight * 2); + + a { + padding: 0 1em; + display: inline-block; + text-decoration: none; color: @grayLight; - font-size: @fontSizeSmall; - line-height: (@baseLineHeight * 2); - a { - padding: 0 1em; - display: inline-block; - text-decoration: none; - color: @grayLight; - &:link { color: @grayLight; } - &:visited { color: @grayLight; } - &:hover { color: @linkColorHover; } - &:active { color: @grayLight; } - } + &:link { color: @grayLight; } + &:visited { color: @grayLight; } + &:hover { color: @linkColorHover; } + &:active { color: @grayLight; } } - .page { - .box-shadow(0 0 10px, rgb(210, 210, 210)); - padding: @baseLineHeight; - background: @pageBackground; - overflow: hidden; +} +.wrapper>article { + .box-shadow(0 0 10px, rgb(210, 210, 210)); + background: @colorPage; + overflow: hidden; + + header { + background: @colorBlueDark; + color: @colorPage; } - .page.special { - background: @pageBackgroundSpecial; + footer { + background: @colorFooter; + border-top: 1px dashed darken(@colorFooter, 5%); } - - .page>pre { + pre { margin-top: @baseLineHeight; } - .meta { - font-size: @fontSizeMini; - } +} +.wrapper>article>header, +.wrapper>article>section, +.wrapper>article>footer { + padding: @baseLineHeight; +} +.wrapper>footer { + font-size: @fontSizeMini; +} +.special>article { + background: @colorGreen; +} +.special>article header { + background: @colorGreenDark; +} +.special>article footer { + background: @colorGreen; } +// Other classes form.form-search { display: inline-block; margin: 0; - + .search-query { font-size: @fontSizeSmall; height: @fontSizeSmall * 1.5; @@ -108,8 +123,7 @@ ul.search-results { list-style: none; } - -form.page-edit { +#page-edit { textarea { height: 10em; font-size: @baseFontSize; @@ -118,10 +132,10 @@ border-radius: 0; } } -.wmd-input-wrapper { +#wmd-input-wrapper { padding: 1em 0; - .wmd-input-grip { + #wmd-input-grip { background: @grayLighter; border: 1px solid @grayLight; border-width: 0 1px 1px 1px; @@ -129,16 +143,13 @@ cursor: ns-resize; } } -.wmd-preview-wrapper { - border: 1px dashed @colorGrayBlueMedium; - background: @colorGrayBlueLight; +#wmd-preview-wrapper { + border: 1px dashed @colorBlueDark; h3 { - margin-left: 1em; - margin-right: 1em; - margin-bottom: 1em; + margin: 0.5em 1em 0.5em 1em; } - .wmd-preview { + #wmd-preview { margin: 1em; background: none; } @@ -148,16 +159,16 @@ } .preview-wiki-meta { .meta-name { - background: @colorBlueMedium; - color: #fff; + background: @colorBlueDark; + color: @colorPage; padding: 0.2em 0.4em 0.2em 0.6em; border-radius: 0.5em 0 0 0.5em; font-variant: small-caps; letter-spacing: 0.18em; } .meta-value { - background: @colorGrayBlueDark; - color: #fff; + background: @colorFooter; + color: black; padding: 0.2em 0.6em 0.2em 0.4em; border-radius: 0 0.5em 0.5em 0; } @@ -166,17 +177,15 @@ margin-top: 1em; margin-bottom: 1em; } - b.match { padding: 0 0.2em; background: #ffeb84; } // Page alerts -.page .alert { +article .alert { float: right; margin-left: -100%; - top: -@baseLineHeight; position: relative; width: 50%; -webkit-border-radius: 0; @@ -188,27 +197,29 @@ .makeRibbon(@bgColor) { background-color: @bgColor; overflow: hidden; - transform: translate(50%, -@baseLineHeight) translate(-3em,3em) rotate(45deg); - -moz-transform: translate(50%, -@baseLineHeight) translate(-3em,3em) rotate(45deg); - -webkit-transform: translate(50%, -@baseLineHeight) translate(-3em,3em) rotate(45deg); - box-shadow: 0 0 1em #888; - -moz-box-shadow: 0 0 1em #888; - -webkit-box-shadow: 0 0 1em #888; + transform: translate(50%, 0) translate(-3em, 2.05em) rotate(45deg); + -moz-transform: translate(50%, 0) translate(-3em, 2.05em) rotate(45deg); + -webkit-transform: translate(50%, 0) translate(-3em, 2.05em) rotate(45deg); + box-shadow: 0 0 1em rgba(0, 0, 0, 0.4); + -moz-box-shadow: 0 0 1em rgba(0, 0, 0, 0.4); + -webkit-box-shadow: 0 0 1em rgba(0, 0, 0, 0.4); + float: right; } .makeRibbonContent(@borderColor, @textColor) { border: 1px solid @borderColor; color: @textColor; display: block; margin: 0.05em 0 0.05em 0; - padding: 0.5em 3.5em; + padding: 0.5em 5em; text-align: center; - text-shadow: 0 0 0.5em #444; + text-shadow: 0 0 0.5em rgba(1, 1, 1, 0.2); } .ribbon { - .makeRibbon(#a00); - margin-bottom: @baseFontSize * -2.6 - 4px; + .makeRibbon(lighten(@colorOrange, 10%)); + float: right; .ribbon-inner { - .makeRibbonContent(#faa, #fff); + .makeRibbonContent(@colorOrange, @colorPage); + a { color: #fff; text-decoration: none; } } } diff -r a5a3d454eac9 -r b03f083c3a29 static/js/wikked.js --- a/static/js/wikked.js Fri Apr 05 08:08:12 2013 -0700 +++ b/static/js/wikked.js Sat Apr 06 18:07:31 2013 -0700 @@ -12,7 +12,8 @@ handlebars: 'js/handlebars-1.0.rc.1', moment: 'js/moment.min', text: 'js/text', - bootstrap_modal: '/bootstrap/js/bootstrap-modal' + bootstrap_modal: '/bootstrap/js/bootstrap-modal', + bootstrap_tooltip: '/bootstrap/js/bootstrap-tooltip' }, shim: { 'jquery': { @@ -30,6 +31,9 @@ }, 'bootstrap_modal': { deps: ['jquery'] + }, + 'bootstrap_tooltip': { + deps: ['jquery'] } } }); diff -r a5a3d454eac9 -r b03f083c3a29 static/js/wikked/app.js --- a/static/js/wikked/app.js Fri Apr 05 08:08:12 2013 -0700 +++ b/static/js/wikked/app.js Sat Apr 06 18:07:31 2013 -0700 @@ -151,7 +151,7 @@ var view = new Views.LoginView({ model: new Models.LoginModel() }); - this.viewManager.switchView(view); + this.viewManager.switchView(view, false); this.navigate('/login'); }, doLogout: function() { diff -r a5a3d454eac9 -r b03f083c3a29 static/js/wikked/models.js --- a/static/js/wikked/models.js Fri Apr 05 08:08:12 2013 -0700 +++ b/static/js/wikked/models.js Sat Apr 06 18:07:31 2013 -0700 @@ -227,7 +227,7 @@ this.footer.addExtraUrl('JSON', function() { return '/api/read/' + model.id; }); }, _onChange: function() { - if (this.getMeta('redirect') && + if (this.getMeta('redirect') && !this.get('no_redirect') && !this.get('redirected_from')) { // Handle redirects. @@ -261,6 +261,10 @@ .error(function() { alert('Error saving page...'); }); + }, + _onChangePath: function(path) { + PageEditModel.__super__._onChangePath.apply(this, arguments); + this.set('url_read', '/#/read/' + path); } }); @@ -406,6 +410,12 @@ initialize: function() { GenericSpecialPageModel.__super__.initialize.apply(this, arguments); this.footer.clearExtraUrls(); + var key = this.get('page'); + if (key in this.assignMap) { + this.assignMap[key].apply(this); + } + }, + assignMap: { }, titleMap: { orphans: 'Orphaned Pages', diff -r a5a3d454eac9 -r b03f083c3a29 static/js/wikked/views.js --- a/static/js/wikked/views.js Fri Apr 05 08:08:12 2013 -0700 +++ b/static/js/wikked/views.js Sat Apr 06 18:07:31 2013 -0700 @@ -6,6 +6,7 @@ 'underscore', 'backbone', 'handlebars', + 'bootstrap_tooltip', 'js/wikked/client', 'js/wikked/models', 'js/wikked/util', @@ -28,7 +29,7 @@ 'text!tpl/special-changes.html', 'text!tpl/special-orphans.html' ], - function($, _, Backbone, Handlebars, Client, Models, Util, + function($, _, Backbone, Handlebars, BootstrapTooltip, Client, Models, Util, tplReadPage, tplEditPage, tplHistoryPage, tplRevisionPage, tplDiffPage, tplInLinksPage, tplNav, tplFooter, tplSearchResults, tplLogin, tplErrorNotAuthorized, tplErrorNotFound, tplErrorUnauthorizedEdit, tplStateWarning, @@ -39,15 +40,13 @@ var PageView = exports.PageView = Backbone.View.extend({ tagName: 'div', className: 'wrapper', + isMainPage: true, initialize: function() { PageView.__super__.initialize.apply(this, arguments); if (this.model !== undefined) { var $view = this; this.model.on("change", function() { $view._onModelChange(); }); } - if (this.templateSource !== undefined) { - this.template = Handlebars.compile(_.result(this, 'templateSource')); - } return this; }, dispose: function() { @@ -61,13 +60,18 @@ } }, render: function(view) { + if (this.template === undefined && this.templateSource !== undefined) { + this.template = Handlebars.compile(_.result(this, 'templateSource')); + } if (this.template !== undefined) { this.renderTemplate(this.template); if (this.renderCallback !== undefined) { this.renderCallback(); } } - this.renderTitle(this.titleFormat); + if (this.isMainPage) { + this.renderTitle(this.titleFormat); + } return this; }, renderTemplate: function(tpl) { @@ -88,13 +92,14 @@ var NavigationView = exports.NavigationView = PageView.extend({ templateSource: tplNav, + isMainPage: false, initialize: function() { NavigationView.__super__.initialize.apply(this, arguments); return this; }, render: function() { - this.renderTemplate(this.template); - this.origPageEl = $('#app .page'); + NavigationView.__super__.render.apply(this, arguments); + this.origPageEl = $('.wrapper>article'); return this; }, events: { @@ -110,18 +115,17 @@ _previewSearch: function(e) { // Restore the original content if the query is now // empty. Otherwise, run a search and render only the - // `.page` portion of the results page. + // `article` portion of the results page. var origPageEl = this.origPageEl; - var curPreviewEl = $('#app .page[class~="preview-search-results"]'); + var curPreviewEl = $('.wrapper>article[class~="preview-search-results"]'); var query = $(e.currentTarget).val(); if (query && query.length > 0) { var template = Handlebars.compile(tplSearchResults); this.model.doPreviewSearch(query, function(data) { data.is_instant = true; var resultList = $(template(data)); - var inner = $('.page', resultList) - .addClass('preview-search-results') - .detach(); + var inner = $(resultList) + .addClass('preview-search-results'); if (origPageEl.is(':visible')) { inner.insertAfter(origPageEl); origPageEl.hide(); @@ -144,27 +148,19 @@ var FooterView = exports.FooterView = PageView.extend({ templateSource: tplFooter, + isMainPage: false, initialize: function() { FooterView.__super__.initialize.apply(this, arguments); return this; }, render: function() { - this.renderTemplate(this.template); + FooterView.__super__.render.apply(this, arguments); return this; } }); var LoginView = exports.LoginView = PageView.extend({ templateSource: tplLogin, - initialize: function() { - LoginView.__super__.initialize.apply(this, arguments); - return this; - }, - render: function() { - this.renderTemplate(this.template); - document.title = 'Login'; - return this; - }, events: { "submit #login": "_submitLogin" }, @@ -183,10 +179,11 @@ return this; }, renderCallback: function() { - this.$el.prepend(''); - this.$el.append(''); - this.nav.setElement(this.$('#nav')).render(); - this.footer.setElement(this.$('#footer')).render(); + this.$el.prepend(''); + this.$el.append(''); + this.nav.setElement(this.$('>nav')).render(); + this.footer.setElement(this.$('>footer')).render(); + this.isError = (this.model.get('error_code') !== undefined); }, templateSource: function() { switch (this.model.get('error_code')) { @@ -215,6 +212,10 @@ }, renderCallback: function() { PageReadView.__super__.renderCallback.apply(this, arguments); + if (this.isError) { + return; + } + // Replace all wiki links with proper hyperlinks using the JS app's // URL scheme. this.$('a.wiki-link[data-wiki-url]').each(function(i) { @@ -237,11 +238,13 @@ var state = this._pageState.get('state'); if (state == 'new' || state == 'modified') { var warning = $(this.warningTemplate(this._pageState.toJSON())); - warning.css('display', 'none'); - warning.prependTo($('#app .page')); - warning.slideDown(); + $('[rel="tooltip"]', warning).tooltip({container:'body'}); + //warning.css('display', 'none'); + warning.prependTo($('.wrapper>article')); + //warning.slideDown(); $('.dismiss', warning).click(function() { - warning.slideUp(); + //warning.slideUp(); + warning.remove(); return false; }); } @@ -273,14 +276,12 @@ }); var PageEditView = exports.PageEditView = MasterPageView.extend({ - templateSource: function() { - if (this.model.get('error_code') == 401) { - return tplErrorUnauthorizedEdit; - } - return tplEditPage; - }, + defaultTemplateSource: tplEditPage, renderCallback: function() { PageEditView.__super__.renderCallback.apply(this, arguments); + if (this.isError) { + return; + } // Create the Markdown editor. var formatter = new Client.PageFormatter(); @@ -292,11 +293,11 @@ var editor = new Markdown.Editor(converter); //TODO: pass options editor.run(); var editor_control = this.$('textarea#wmd-input'); - editor_control.outerWidth(this.$('.wmd-input-wrapper').innerWidth()); + editor_control.outerWidth(this.$('#wmd-input-wrapper').innerWidth()); }, events: { - "mousedown .wmd-input-grip": "_inputGripMouseDown", - "click .wmd-preview-wrapper>h3>a": "_togglePreview", + "mousedown #wmd-input-grip": "_inputGripMouseDown", + "click #wmd-preview-wrapper>h3>a": "_togglePreview", "submit #page-edit": "_submitEditedPage" }, _inputGripMouseDown: function(e) { @@ -315,8 +316,8 @@ }, _togglePreview: function(e) { // Show/hide live preview. - this.$('#wmd-preview').fadeToggle(function() { - var icon = this.$('.wmd-preview-wrapper>h3>a i'); + $('#wmd-preview').fadeToggle(function() { + var icon = $('#wmd-preview-wrapper>h3>a i'); if (icon.hasClass('icon-minus')) { icon.removeClass('icon-minus'); icon.addClass('icon-plus'); @@ -390,6 +391,7 @@ }); var SpecialMasterPageView = exports.SpecialMasterPageView = MasterPageView.extend({ + className: 'wrapper special', _createNavigation: function(model) { model.set('show_root_link', true); return new SpecialNavigationView({ model: model }); diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/404.html --- a/static/tpl/404.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/404.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,14 +1,14 @@ -
- -
-
-

Page Not Found

-

The page you requested was not found.

-
-
-
+ +
+
+

Page Not Found

+
+
+

The page you requested was not found.

+
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/diff-page.html --- a/static/tpl/diff-page.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/diff-page.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,5 +1,5 @@ -
-
+
+

{{meta.title}} Diff: @@ -10,6 +10,8 @@ {{/if}}

+
+
{{{diff}}}
-
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/edit-page.html --- a/static/tpl/edit-page.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/edit-page.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,40 +1,37 @@ -
-
+
+

{{meta.title}} Editing

-
-
-
-
-
-
- -
+
+
+ +
+
+
+ +
+
+
+

Preview

+
+
+
+
+
+ + +
+
+ + +
-
-
-
-

Preview

-
-
-
-
-
-
- - -
-
- - -
-
-
-
+ +
Cancel -
+ - +
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/error-not-found.html --- a/static/tpl/error-not-found.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/error-not-found.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,6 +1,8 @@ -
-
+
+

Not Found

+
+

The page you're trying to access does not exist. You can create it.

-
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/error-unauthorized-edit.html --- a/static/tpl/error-unauthorized-edit.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/error-unauthorized-edit.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,6 +1,9 @@ -
-
+
+

You're not authorized to edit this page

-

The page you're trying to edit is protected. Please log into an account that has write access to it.

-
+ +
+

The page you're trying to edit is protected. + Please log into an account that has write access to it.

+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/error-unauthorized.html --- a/static/tpl/error-unauthorized.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/error-unauthorized.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,6 +1,9 @@ -
-
+
+

You're not authorized for this

-

The page you're trying to access is protected. Please log into an account that has access to it.

-
+ +
+

The page you're trying to access is protected. + Please log into an account that has access to it.

+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/footer.html --- a/static/tpl/footer.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/footer.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,8 +1,6 @@ -
-
- {{#each url_extras}} - {{name}} - {{/each}} - -
-
+
+ {{#each url_extras}} + {{name}} + {{/each}} + +
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/history-page.html --- a/static/tpl/history-page.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/history-page.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,6 +1,8 @@ -
-
+
+

{{meta.title}} History

+
+
{{#if history}}

Here's the revision log for {{meta.title}}.

@@ -32,7 +34,9 @@
{{else}} -

This page has not been committed to the repository yet. Edit it to do that now.

+

+ This page has not been committed to the repository yet. + Edit it to do that now.

{{/if}} -
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/inlinks-page.html --- a/static/tpl/inlinks-page.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/inlinks-page.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,6 +1,8 @@ -
-
+
+

{{meta.title}} Incoming Links

+
+

The following pages link to {{meta.title}}:

    {{#each in_links}} @@ -13,5 +15,5 @@ {{/each}}
-
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/login.html --- a/static/tpl/login.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/login.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,11 +1,13 @@ - -
-
+
+

Login

+
+
{{#if has_error}}
Begone! Those credentials don't seem to work here. @@ -27,7 +29,7 @@
-
-
-
-
\ No newline at end of file + + + \ No newline at end of file diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/nav.html --- a/static/tpl/nav.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/nav.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,17 +1,15 @@ - +
+ {{#ifneq action to='read'}}Read{{/ifneq}} + {{#ifneq action to='edit'}}Edit{{/ifneq}} + {{#ifneq action to='history'}}History{{/ifneq}} + + {{#if username}} + {{username}} + Logout + {{else}} + Login + {{/if}} +
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/read-page.html --- a/static/tpl/read-page.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/read-page.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,14 +1,23 @@ -
-
- {{#ifnot meta.notitle}} +
+ {{#ifnot meta.notitle}} +

{{meta.title}}

- {{/ifnot}} {{#if redirected_from}} Redirected from {{redirected_from}} {{/if}} {{#if meta.redirect}} Redirects to {{meta.redirect}} {{/if}} +
+ {{/ifnot}} +
{{content}} -
+ + {{#if meta.category}} +
+ {{#each meta.category}} + {{.}} + {{/each}} +
+ {{/if}}
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/revision-page.html --- a/static/tpl/revision-page.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/revision-page.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,11 +1,14 @@ -
-
+
+

{{meta.title}} Revision: {{disp_rev}}

+
+
{{text}}
Revert the page to this revision
-
+ +
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/search-results.html --- a/static/tpl/search-results.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/search-results.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,6 +1,8 @@ -
-
+
+

Search Results

+
+
{{#if is_instant}}

Press Escape to cancel.

{{/if}} @@ -16,5 +18,5 @@ {{else}}

No matches found.

{{/if}} -
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/special-changes.html --- a/static/tpl/special-changes.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/special-changes.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,6 +1,8 @@ -
-
+
+

Wiki History

+
+

Here are the recent changes on this wiki.

@@ -25,7 +27,7 @@
    {{#each changes}}
  • - {{url}} + {{url}} {{#if is_edit}}(edit) {{/if}} {{#if is_add}}(added) {{/if}} {{#if is_delete}}(deleted) {{/if}} @@ -42,5 +44,5 @@
-
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/special-nav.html --- a/static/tpl/special-nav.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/special-nav.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,18 +1,16 @@ - +
+ Home + {{#if show_root_link}} + Special Pages + {{/if}} + + {{#if username}} + {{username}} + Logout + {{else}} + Login + {{/if}} +
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/special-orphans.html --- a/static/tpl/special-orphans.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/special-orphans.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,16 +1,18 @@ -
-
+
+

Orphaned Pages

+
+

The following pages are not linked to by any other page in the wiki.

Note The main page can occasionally show up here but that's OK since it's the page visitors will see first anyway.

{{#if orphans}} + {{else}}

No orphaned pages!

{{/if}} -
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/special-pages.html --- a/static/tpl/special-pages.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/special-pages.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,9 +1,11 @@ -
-
+
+
diff -r a5a3d454eac9 -r b03f083c3a29 static/tpl/state-warning.html --- a/static/tpl/state-warning.html Fri Apr 05 08:08:12 2013 -0700 +++ b/static/tpl/state-warning.html Sat Apr 06 18:07:31 2013 -0700 @@ -1,4 +1,5 @@ -
- - This page is {{state}} in the repository. You can edit it now to commit. +
+