From a85e8e1efcfe1af0a9e51c40925f4e403cf3480b Mon Sep 17 00:00:00 2001 From: Matthew Harrison-Jones Date: Wed, 11 Sep 2013 15:38:09 +0100 Subject: [PATCH] Temporarily removed the Dashboard and all references This also updates the CasperJS to match the new changes. --- .../client/assets/sass/layouts/dashboard.scss | 821 ------------------ core/client/assets/sass/screen.scss | 3 - core/client/router.js | 413 +-------- core/client/tpl/widget.hbs | 44 - core/client/tpl/widgets/custom/instagram.hbs | 1 - core/client/tpl/widgets/custom/lastfm.hbs | 5 - .../tpl/widgets/custom/popular-posts.hbs | 15 - core/client/tpl/widgets/custom/post-ideas.hbs | 2 - core/client/tpl/widgets/custom/time.hbs | 8 - core/client/tpl/widgets/custom/tweets.hbs | 18 - .../tpl/widgets/custom/upcoming-posts.hbs | 9 - core/client/tpl/widgets/default/blank.hbs | 0 core/client/tpl/widgets/default/number.hbs | 4 - core/client/views/dashboard.js | 162 ---- core/server/controllers/admin.js | 14 +- core/server/views/dashboard.hbs | 32 - core/server/views/default.hbs | 1 - core/shared/lang/en.json | 1 - core/shared/lang/en_PL.json | 1 - core/test/functional/admin/01_login_test.js | 2 +- .../functional/admin/02_dashboard_test.js | 48 - core/test/functional/admin/04_content_test.js | 14 +- core/test/html/404.html | 78 -- core/test/html/dashboard.html | 252 ------ core/test/html/login.html | 51 -- core/test/html/manage.html | 221 ----- core/test/html/notifications.html | 191 ---- core/test/html/test.html | 556 ------------ core/test/html/user_settings.html | 191 ---- index.js | 10 +- 30 files changed, 24 insertions(+), 3144 deletions(-) delete mode 100644 core/client/assets/sass/layouts/dashboard.scss delete mode 100644 core/client/tpl/widget.hbs delete mode 100644 core/client/tpl/widgets/custom/instagram.hbs delete mode 100644 core/client/tpl/widgets/custom/lastfm.hbs delete mode 100644 core/client/tpl/widgets/custom/popular-posts.hbs delete mode 100644 core/client/tpl/widgets/custom/post-ideas.hbs delete mode 100644 core/client/tpl/widgets/custom/time.hbs delete mode 100644 core/client/tpl/widgets/custom/tweets.hbs delete mode 100644 core/client/tpl/widgets/custom/upcoming-posts.hbs delete mode 100644 core/client/tpl/widgets/default/blank.hbs delete mode 100644 core/client/tpl/widgets/default/number.hbs delete mode 100644 core/client/views/dashboard.js delete mode 100644 core/server/views/dashboard.hbs delete mode 100644 core/test/functional/admin/02_dashboard_test.js delete mode 100644 core/test/html/404.html delete mode 100644 core/test/html/dashboard.html delete mode 100644 core/test/html/login.html delete mode 100644 core/test/html/manage.html delete mode 100644 core/test/html/notifications.html delete mode 100644 core/test/html/test.html delete mode 100644 core/test/html/user_settings.html diff --git a/core/client/assets/sass/layouts/dashboard.scss b/core/client/assets/sass/layouts/dashboard.scss deleted file mode 100644 index 38ff20005b..0000000000 --- a/core/client/assets/sass/layouts/dashboard.scss +++ /dev/null @@ -1,821 +0,0 @@ -/* - * These are the styles used to control the look and feel of the widgetised - * dashboard of the Ghost admin system. The first screen you see on login. - * - * Table of Contents: - * Widget Base - * Widget Sizes - * Widget Variations - * Individual Widgets - * Clock / Date - * Ghost Image - * Unique Visitors - * Facebook Likes - * Google Plus - * Twitter - * Campaign Monitor - * Upcoming Posts - * Most Popular Posts - * Posts This Week - * Instagram - * RSS - * Klout - * Bounce Rate - * Average time On Site - * Last.Fm - * Post Ideas - * Tweets - * Backups - */ - -/* ========================================================================== - Widget Base - ========================================================================== */ - -.js-widget-container { - padding-bottom: 15px; -} - -%widget, .widget { - width: 340px; - height: 300px; - float:left; - position:relative; - background-color:#fff; - box-shadow: $shadow; - - @include breakpoint($mobile) { - width: 100%; - } - - .widget-content { - @include box-sizing(border-box); - margin-bottom: 40px; - padding: 20px; - } - - .widget-footer, .widget-header { - @include box-sizing(border-box); - width: 100%; - height: 40px; - font-size: 1.2em; - color: $midbrown; - border-top: 1px solid $lightbrown; - - .widget-title { - display: inline-block; - padding-top: 7px; - padding-left: 15px; - vertical-align: middle; - text-transform: uppercase; - } - } - - .widget-settings-toggle { - @include box-sizing(border-box); - display: block; - height: 39px; - width: 46px; - float: right; - padding: 7px 14px; - border-left: 1px solid $lightbrown; - cursor: pointer; - @include icon($i-settings, 1em); - } - - .widget-footer { - position: absolute; - bottom: 0; - } - -} //%widget, .widget - -.ui-draggable-dragging { - z-index: 9999; // Keep dragged widget on top -} - -/* ========================================================================== - Widget Sizes - ========================================================================== */ - -.widget-1x2 { - height: 610px; -} - -.widget-2x2 { - width: 690px; - height: 610px; -} - -.widget-2x1 { - width: 690px; -} - - -/* ========================================================================== - Widget Variations - ========================================================================== */ - -/* ========================================================================== - Number Widgets base styles - ========================================================================== */ - -%widget-number, .widget-number { - @extend %widget; - - .widget-content { - .info { - margin-top: 30px; - - .count { - display: block; - font-size: 5em; - line-height: 1em; - font-weight: 400; - color: $darkgrey; - } - - .sub { - font-size: 2em; - color: #9b9b9b; - - mark { - background-color: transparent; - font-weight: bold; - - &.up { - color: $green; - } - &.down { - color: $red; - } - } - } - } - } // .widget-content - - &.widget-2x2 { - .widget-content { - .info { - margin-top: 100px; - - .count { - font-size: 9em; - } - - .sub { - font-size: 2.5em; - } - } - } - } -} // %widget-number, .widget-number - -/* ========================================================================== - Settings panel base styles - ========================================================================== */ - -.widget-settings { - @extend %widget; - background-color: #2d3032; - - .widget-header { - height: 40px; - border-top: none; - border-bottom: 1px solid #4a4a4a; - color: $midgrey; - } - - .widget-content { - padding: 0; - } - - label { - width:100%; - height: 40px; - display: block; - border-bottom: 1px solid #4a4a4a; - font-size: 1.2em; - } - - .title { - @include box-sizing(border-box); - display: inline-block; - width: 100px; - height: 100%; - padding: 8px; - color: #E3EDF2; - text-transform: uppercase; - text-align: right; - } - - input[type="text"] { - @include box-sizing(border-box); - height: 100%; - padding: 8px; - color: $midgrey; - text-transform: none; - background: none; - border: none; - border-left: 1px solid #4a4a4a; - } - - .widget-footer, .widget-header { - border-color: #4a4a4a; - } - - .widget-size-options { - display: inline-block; - height: 100%; - padding-top: 10px; - padding-left: 10px; - - .size-options-container { - @include box-sizing(border-box); - display: inline-block; - width: 20px; - height: 20px; - padding: 3px; - cursor: pointer; - } - - .mini-widget { - background: $midgrey; - margin: 1px; - float: left; - - &.active { - background: #ffffff; - } - } - - .size-1x1 { - width: 5px; - height: 5px; - } - .size-2x1 { - width: 12px; - height: 5px; - } - .size-1x2 { - width: 5px; - height: 12px; - } - .size-2x2 { - width: 12px; - height: 12px; - } - - .active { - background: #171819; - } - - } // .widget-size-options - - .widget-settings-toggle { - border-color: #4a4a4a; - - &.close { - @include icon($i-x, 1em); - } - &.done { - background-color: $green; - color: rgba(255,255,255,0.7); - @include icon($i-check, 1em); - } - } - - -} // .widget-settings - -/* ========================================================================== - Individual Widgets - ========================================================================== */ - -/* ========================================================================== - Clock / Date - ========================================================================== */ - -.widget-time { - @extend %widget; - - .summary { - margin-bottom: 30px; - font-size: 1.4em; - color: #9b9b9b; - - .day { - float: left; - } - .weather { - float: right; - @include icon-after($i-weather-sun); - } - - } - - time { - margin-top: 30px; - - .clock { - display: block; - font-size: 5em; - line-height: 1em; - font-weight: 400; - color: $darkgrey; - } - - .date { - font-size: 2em; - color: #9b9b9b; - } - } - -} // .widget-time - -/* ========================================================================== - Ghost Image - ========================================================================== */ - -.widget-image { - @extend %widget; - - .widget-content { - height: 100%; - background-image: url(../img/dash/Image@2x.png); - background-size: 100% 100%; - } - - .widget-footer { - margin-top: -40px; - opacity: 0; - background: #ffffff; - @include transition(opacity 200ms linear); - } - - &:hover { - .widget-footer { - opacity: 1; - } - } - - &.widget-settings { - .widget-content { - background-image: none; - } - .widget-footer { - background: inherit; - opacity: 1; - } - } - -} // .widget-image - -/* ========================================================================== - Unique Visitors - ========================================================================== */ - -.widget-stats { - @extend %widget-number; -} - -/* ========================================================================== - Facebook Likes - ========================================================================== */ - -.widget-facebook { - @extend %widget-number; - - .info { - .faces { - display: block; - width: 100%; - height: 30px; - margin-top: 25px; - background-image: url("../img/dash/Facebook_Images@2x.png"); - background-size: 100% 100%; - } - } -} - -/* ========================================================================== - Google Plus - ========================================================================== */ - -.widget-gplus { - @extend %widget-number; -} - -/* ========================================================================== - Twitter - ========================================================================== */ - -.widget-twitter { - @extend %widget; -} - -/* ========================================================================== - Campaign Monitor - ========================================================================== */ - -.widget-campaignmonitor { - @extend %widget-number; -} - -/* ========================================================================== - Upcoming Posts - ========================================================================== */ - -.widget-posts { - @extend %widget; - position: relative; - - .chart { - @include box-sizing(border-box); - width: 250px; - height: 250px; - position: relative; - z-index: 1; - margin: 0 auto; - background: #242628; - border: #efefef 54px solid; - border-radius: 250px; - - .sheen { - width: 71px; - height: 142px; - position: absolute; - top: 0; - background-image: -webkit-gradient(linear, left bottom, right top, from(rgba(251, 255, 242, 0.00)), to(rgba(254, 253, 255, 1.00))); - background-image: -webkit-linear-gradient(left bottom, rgba(251, 255, 242, 0.00), rgba(254, 253, 255, 1.00)); - background-image: -moz-linear-gradient(left bottom, rgba(251, 255, 242, 0.00), rgba(254, 253, 255, 1.00)); - background-image: -o-linear-gradient(left bottom, rgba(251, 255, 242, 0.00), rgba(254, 253, 255, 1.00)); - background-image: -ms-linear-gradient(left bottom, rgba(251, 255, 242, 0.00), rgba(254, 253, 255, 1.00)); - background-image: linear-gradient(left bottom, rgba(251, 255, 242, 0.00), rgba(254, 253, 255, 1.00)); - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,StartColorStr='#fbfff2', EndColorStr='#fefdff'); - border-radius: 71px 0 0 71px; - @include transform(rotate(45deg)); - @include transform-origin(100% 50%); - opacity: 0.05; - } - - #poststats { - position: relative; - top:-54px; - left: -54px; - } - - .data { - position: absolute; - top: 5px; - color: $midgrey; - font-size: 13px; - list-style: none; - - .ready { - font-size: 18px; - vertical-align: -5%; - margin-right: 5px; - color: $green; - } - - .pending { - font-size: 18px; - vertical-align: -5%; - margin-right: 5px; - color: #f9e15d; - } - - .draft { - font-size: 18px; - vertical-align: -5%; - margin-right: 5px; - color: $red; - } - - } - - } - -} // .widget-posts - -/* ========================================================================== - Popular Posts - ========================================================================== */ - -.widget-popular { - @extend %widget; - background: none; - - .widget-content { - padding: 0; - } - - .nav { - list-style: none; - width: 100%; - margin: 0; - padding: 0; - } - - .tab { - @include box-sizing(border-box); - display: inline-block; - height: 35px; - margin: 0; - margin-top: 5px; - padding: 5px 15px 0; - float: left; - vertical-align: bottom; - background: #CDCCC5; - border-left: 1px solid $midbrown; - - &:first-child { - border: none; - } - - &.active { - height: 40px; - margin: 0; - padding-top: 10px; - background: #ffffff; - } - - a { - vertical-align: middle; - display: inline-block; - color: #8D8C85; - } - } - - .post-list { - max-height: 538px; // TODO: What the fuck is this? : For overflow, dont way to make dynamic - background: #ffffff; - overflow: auto; - } - - .post-item { - @include box-sizing(border-box); - display: block; - min-height: 80px; - width: 100%; - padding: 20px; - border-bottom: 1px solid $lightbrown; - } - - .post-title { - font-size: 1.25em; - font-weight: normal; - } - - .post-date { - @include icon($i-calendar); - margin-right: 20px; - color: $brown; - } - - .post-count { - @include icon($i-stats); - color: $brown; - } - - .widget-footer { - background: #ffffff; - } - -} // .widget-popular - -/* ========================================================================== - Posts This Week - ========================================================================== */ - -.widget-postsWeek { - @extend %widget; -} - -/* ========================================================================== - Instagram - ========================================================================== */ - -.widget-instagram { - @extend %widget; - overflow: hidden; - - .widget-content { - padding: 0; - } - - .photo { - height: 100%; - width: 100%; - } - - .widget-footer { - background: rgba(0,0,0,0.4); - border: none; - - .widget-title { - color: #fff; - } - } - - .widget-settings-toggle { - border: none; - } - -} // .widget-instagram - -/* ========================================================================== - RSS - ========================================================================== */ - -.widget-rss { - @extend %widget; -} - -/* ========================================================================== - Klout - ========================================================================== */ - -.widget-klout { - @extend %widget-number; -} - -/* ========================================================================== - Bounce Rate - ========================================================================== */ - -.widget-bounce { - @extend %widget-number; -} - -/* ========================================================================== - Average Time On Site - ========================================================================== */ - -.widget-avgTime { - @extend %widget-number; -} - -/* ========================================================================== - Last.Fm - ========================================================================== */ - -.widget-lastfm { - @extend %widget; - overflow: hidden; - - .widget-content { - padding: 0; - } - - .cover { - height: 100%; - width: 100%; - } - - .banner { - @include box-sizing(border-box); - display: block; - width: 100%; - padding: 20px; - position: absolute; - top: 80px; - background: rgba(0,0,0,0.7); - - .song-artist, .song-title { - display: block; - color: #ffffff; - } - - .song-artist { - font-size: 2em; - font-weight: bold; - line-height: 1em; - } - - .song-title { - font-size: 1.2em; - } - } - - .widget-footer { - background: #ffffff; - } - -} // .widget-lastfm - -/* ========================================================================== - Post Ideas - ========================================================================== */ - -.widget-ideas { - @extend %widget; - - .widget-content { - padding: 0; - } - .idea-title { - @include box-sizing(border-box); - display: block; - width: 100%; - height: 80px; - margin-bottom: 10px; - padding: 20px; - font-size: 2em; - border: none; - border-bottom: 1px solid $lightbrown; - } - .idea-content { - @include box-sizing(border-box); - width: 100%; - padding: 20px; - font-size: 1.2em; - border: none; - resize: none; - } - - .idea-title:focus, .idea-content:focus { - outline: none; - } - -} // .widget-ideas - -/* ========================================================================== - Tweets - ========================================================================== */ - -.widget-tweets { - @extend %widget; - - .twitter-display-image { - width: 30px; - height: 30px; - margin-right: 10px; - display: inline-block; - float: left; - border-radius: 15px; - - img { - width: 100%; - height: 100%; - border-radius: 15px; - } - } - - .twitter-name { - font-weight: bold; - font-size: 1.5em; - margin-right: 5px; - } - - .twitter-handle { - color: $midbrown; - font-size: 1.2em; - } - - .latest-tweet { - margin-top: 15px; - margin-bottom: 15px; - font-size: 1.5em; - - a { - color: $orange; - font-weight: bold; - } - } - - .tweet-time { - color: $midbrown; - } - - .twitter-functions { - float: right; - font-size: 1.2em; - - a:hover { - text-decoration: none; - } - - .reply { - @include icon($i-reply, '', $midbrown); - margin-right: 5px; - } - .retweet { - @include icon($i-repost, '', $midbrown); - margin-right: 5px; - } - .favourite { - @include icon($i-unfeatured, '', $midbrown); - } - } - -} // .widget-tweets - -/* ========================================================================== - Backups - ========================================================================== */ - -.widget-backups { - @extend %widget; -} diff --git a/core/client/assets/sass/screen.scss b/core/client/assets/sass/screen.scss index 944eb753ef..a878d99ee0 100644 --- a/core/client/assets/sass/screen.scss +++ b/core/client/assets/sass/screen.scss @@ -31,9 +31,6 @@ Layouts - Styles for specific admin screen layouts, grouped by screen. ========================================================================== */ - @import "layouts/dashboard"; - /* The default admin page, the dashboard. */ - @import "layouts/manage"; /* The manage posts screen. */ diff --git a/core/client/router.js b/core/client/router.js index b3152f7ac9..0a3bf6468b 100644 --- a/core/client/router.js +++ b/core/client/router.js @@ -5,7 +5,7 @@ Ghost.Router = Backbone.Router.extend({ routes: { - '' : 'dashboard', + '' : 'blog', 'content/' : 'blog', 'settings/' : 'settings', 'settings(/:pane)' : 'settings', @@ -68,417 +68,6 @@ debug: function () { Ghost.currentView = new Ghost.Views.Debug({ el: "#main" }); - }, - - dashboard: function () { - var widgets = new Ghost.Collections.Widgets(); - - widgets.add({ - title: "LINZ, AUSTRIA", - name: "time", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.time", - content: { - template: 'custom/time', - data: { - day: "Today", - weather: "12", - time: "12:42PM", - date: "Monday / March 5 / 2013" - } - }, - settings: { - settingsPane: true, - options: [{ - title: "Timezone", - value: "GMT" - }] - } - }); - - widgets.add({ - title: "Ghost", - name: "image", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.image", - size: "2x1", - content: { - template: 'default/blank' - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Upcoming Posts", - name: "posts", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.posts", - content: { - template: 'custom/upcoming-posts', - data: { - ready: 9, - pending: 4, - draft: 1 - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Unique Visitors (7 days)", - name: "stats", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.stats", - size: "2x2", - content: { - template: 'default/number', - data: { - number: { - count: "293,051", - sub: { - value: "+14%", - dir: "up", - item: "", - period: "in the last 7 days" - } - } - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Facebook Likes", - name: "facebook", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.facebook", - content: { - template: 'default/number', - data: { - number: { - count: "12,329", - sub: { - value: "-3", - dir: "down", - item: "likes", - period: "today" - } - } - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Google Plus", - name: "gplus", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.gplus", - content: { - template: 'default/number', - data: { - number: { - count: "4,103", - sub: { - item: "have you in circles" - } - } - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Twitter", - name: "twitter", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.twitter", - content: { - template: 'default/blank' - }, - settings: { - settingsPane: true, - enabled: true, - options: [ - { - title: "Account", - value: "@JohnONolan" - }, - { - title: "Display", - value: "Last Tweets" - }, - { - title: "Quantity", - value: 6 - } - ] - } - }); - - widgets.add({ - title: "Campaign Monitor", - name: "campaignmonitor", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.campaignmonitor", - content: { - template: 'default/number', - data: { - number: { - count: "5,693", - sub: { - value: "+63", - dir: "up", - item: "subscribers", - period: "this week" - } - } - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Most Popular Posts", - name: "popular", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.popular", - size: "1x2", - content: { - template: 'custom/popular-posts', - data: { - posts: [ - { - title: "The Night of The Headless Horseman Part II", - time: "Yesterday", - count: "3,128" - }, - { - title: "Latin Script & Why it's Particularly Boring to Read", - time: "Wednesday", - count: "1,345" - }, - { - title: "59 Signs Your Cat and/or Dog Might be Planning To Kill You", - time: "Tuesday", - count: "824" - }, - { - title: "A Love Letter to Emma Stone", - time: "Today", - count: "293" - }, - { - title: "Lorem Ipsum Dolor Sit Amet & Other Funny Moments", - time: "Yesterday", - count: "124" - }, - { - title: "Matt Does Git", - time: "Thursday", - count: "100" - } - ] - } - } - }); - - widgets.add({ - title: "Posts This Week (Out Of 20)", - name: "postsWeek", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.postsWeek", - content: { - template: 'default/blank' - } - }); - - widgets.add({ - title: "Your RSS News Feed", - name: "rss", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.rss", - size: "2x2", - content: { - template: 'default/blank' - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Instagram", - name: "instagram", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.instagram", - content: { - template: 'custom/instagram', - data: { - image: "http://f.cl.ly/items/303f3y1n3I2L1F10343E/instagram.jpg" - } - }, - settings: { - settingsPane: true, - options: [{ - title: "Account", - value: "@JohnONolan" - }] - } - }); - - widgets.add({ - title: "Klout", - name: "klout", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.klout", - content: { - template: 'default/number', - data: { - number: { - count: "64.23", - sub: { - value: "-0.42", - dir: "down", - item: "", - period: "in the last 30 days" - } - } - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Bounce Rate", - name: "bounce", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.bounce", - content: { - template: 'default/number', - data: { - number: { - count: "40.21%", - sub: { - value: "-2.53%", - dir: "up", - item: "", - period: "in the last month" - } - } - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Average Time On Site", - name: "avgTime", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.avgTime", - content: { - template: 'default/number', - data: { - number: { - count: "2m 16s", - sub: { - value: "+31.4%", - dir: "up", - item: "", - period: "in the last month" - } - } - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Last.fm", - name: "lastfm", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.lastfm", - content: { - template: 'custom/lastfm', - data: { - cover: "http://f.cl.ly/items/0p0r3T3v3M0R0H1k1p0S/imagine_dragons.png", - artist: "Imagine Dragons", - title: "On Top of The World" - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Post Ideas", - name: "ideas", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.ideas", - size: "2x1", - content: { - template: 'custom/post-ideas' - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Twitter", - name: "tweets", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.tweets", - content: { - template: 'custom/tweets', - data: { - avatar: "http://f.cl.ly/items/1A1S0D3T3p1g1B2Z3J0u/ghost_twitter.jpeg", - name: "Ghost", - handle: "@TryGhost", - tweet: "If you're exploring the @twitterapi, be sure and bring the new field guide along. dev.twitter.com/blog/...", - time: "3 May 12" - } - }, - settings: { - settingsPane: true - } - }); - - widgets.add({ - title: "Backups", - name: "backups", - author: "Matthew Harrison-Jones", - applicationID: "com.ghost.backups", - content: { - template: 'default/blank' - }, - settings: { - settingsPane: true - } - }); - - //widgets.fetch().then(function () { - Ghost.currentView = new Ghost.Views.Dashboard({ el: '#main', collection: widgets }); - //}); } }); }()); diff --git a/core/client/tpl/widget.hbs b/core/client/tpl/widget.hbs deleted file mode 100644 index 3b10e8a282..0000000000 --- a/core/client/tpl/widget.hbs +++ /dev/null @@ -1,44 +0,0 @@ -{{#if settings.enabled}} -
- {{Title}} Settings -
-
-
- {{#each settings.options}} - - {{/each}} -
- -{{else}} -
-
- -{{/if}} \ No newline at end of file diff --git a/core/client/tpl/widgets/custom/instagram.hbs b/core/client/tpl/widgets/custom/instagram.hbs deleted file mode 100644 index 3b774f9a18..0000000000 --- a/core/client/tpl/widgets/custom/instagram.hbs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/client/tpl/widgets/custom/lastfm.hbs b/core/client/tpl/widgets/custom/lastfm.hbs deleted file mode 100644 index e6a7dce689..0000000000 --- a/core/client/tpl/widgets/custom/lastfm.hbs +++ /dev/null @@ -1,5 +0,0 @@ - - \ No newline at end of file diff --git a/core/client/tpl/widgets/custom/popular-posts.hbs b/core/client/tpl/widgets/custom/popular-posts.hbs deleted file mode 100644 index 2c9e89b073..0000000000 --- a/core/client/tpl/widgets/custom/popular-posts.hbs +++ /dev/null @@ -1,15 +0,0 @@ - - \ No newline at end of file diff --git a/core/client/tpl/widgets/custom/post-ideas.hbs b/core/client/tpl/widgets/custom/post-ideas.hbs deleted file mode 100644 index cd7b032396..0000000000 --- a/core/client/tpl/widgets/custom/post-ideas.hbs +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/core/client/tpl/widgets/custom/time.hbs b/core/client/tpl/widgets/custom/time.hbs deleted file mode 100644 index 32a6898b14..0000000000 --- a/core/client/tpl/widgets/custom/time.hbs +++ /dev/null @@ -1,8 +0,0 @@ -
- {{content.data.day}} - {{content.data.weather}}° -
- \ No newline at end of file diff --git a/core/client/tpl/widgets/custom/tweets.hbs b/core/client/tpl/widgets/custom/tweets.hbs deleted file mode 100644 index 4c6757efb2..0000000000 --- a/core/client/tpl/widgets/custom/tweets.hbs +++ /dev/null @@ -1,18 +0,0 @@ -
- - - -
-
-{{{content.data.tweet}}} -
- \ No newline at end of file diff --git a/core/client/tpl/widgets/custom/upcoming-posts.hbs b/core/client/tpl/widgets/custom/upcoming-posts.hbs deleted file mode 100644 index 9023da4b95..0000000000 --- a/core/client/tpl/widgets/custom/upcoming-posts.hbs +++ /dev/null @@ -1,9 +0,0 @@ -
- -
- -
\ No newline at end of file diff --git a/core/client/tpl/widgets/default/blank.hbs b/core/client/tpl/widgets/default/blank.hbs deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/core/client/tpl/widgets/default/number.hbs b/core/client/tpl/widgets/default/number.hbs deleted file mode 100644 index 4920e48c6b..0000000000 --- a/core/client/tpl/widgets/default/number.hbs +++ /dev/null @@ -1,4 +0,0 @@ -
- {{content.data.number.count}} - {{content.data.number.sub.value}} {{content.data.number.sub.item}} {{content.data.number.sub.period}} -
\ No newline at end of file diff --git a/core/client/views/dashboard.js b/core/client/views/dashboard.js deleted file mode 100644 index f6d0398092..0000000000 --- a/core/client/views/dashboard.js +++ /dev/null @@ -1,162 +0,0 @@ -/*global window, document, localStorage, Ghost, $, _, Backbone, JST */ -(function () { - "use strict"; - - var Widgets, - Widget, - WidgetContent, - $widgetContainer, - $itemElems, - widgetPositions; - - widgetPositions = { - mobile: {}, - tablet: {}, - netbook: {}, - desktop: {} - }; - - // Base view - // ---------- - Ghost.Views.Dashboard = Ghost.View.extend({ - initialize: function (options) { - this.addSubview(new Widgets({ el: '.js-widget-container', collection: this.collection })).render(); - } - }); - - // Widgets - // ---------- - Widgets = Ghost.View.extend({ - initialize: function () { - $widgetContainer = this.$el; - }, - - packeryInit: function () { - var self = this; - $widgetContainer.packery({ - itemSelector: '.js-widget', - gutter: 10, - columnWidth: 340, - rowHeight: 300 - }); - - $itemElems = $($widgetContainer.packery('getItemElements')); - - // make item elements draggable - $itemElems.draggable(); - // bind Draggable events to Packery - $widgetContainer.packery('bindUIDraggableEvents', $itemElems); - - $widgetContainer.packery('on', 'dragItemPositioned', function () { - var viewportSize = $(window).width(); - if (viewportSize <= 400) { // Mobile - widgetPositions.mobile = self.getWidgetOrder($itemElems); - } else if (viewportSize > 400 && viewportSize <= 800) { // Tablet - widgetPositions.tablet = self.getWidgetOrder($itemElems); - } else if (viewportSize > 800 && viewportSize <= 1000) { // Netbook - widgetPositions.netbook = self.getWidgetOrder($itemElems); - } else if (viewportSize > 1000) { - widgetPositions.desktop = self.getWidgetOrder($itemElems); - } - localStorage.setItem('widgetPositions', JSON.stringify(widgetPositions)); - - // Retrieve the object from storage with `JSON.parse(localStorage.getItem('widgetPositions'));` - }); - }, - - getWidgetOrder: function (itemElems) { - // items are in order within the layout - var order = {}; - - _.each(itemElems, function (widget, index) { - order[widget.getAttribute("data-widget-id")] = index; - }); - return order; - }, - - render: function () { - this.collection.each(function (model) { - this.$el.append(this.addSubview(new Widget({model: model})).render().el); - }, this); - this.packeryInit(); - } - - }); - - // Widget - // ---------- - Widget = Ghost.View.extend({ - - tagName: 'article', - attributes: function () { - var size = (this.model.get('size')) ? " widget-" + this.model.get('size') : "", - settings = (this.model.attributes.settings.enabled) ? " widget-settings" : ""; - - return { - 'class': 'widget-' + this.model.get('name') + size + settings + ' js-widget', - 'data-widget-id': this.model.get('applicationID') - }; - }, - - events: { - 'click .js-widget-resizer': 'resizeWidget', - 'click .js-view-settings': 'showSettings', - 'click .js-view-widget': 'showWidget' - }, - - resizeWidget: function (e) { - e.preventDefault(); - var data = $(e.currentTarget).data('size'); - - this.$el.removeClass("widget-1x2 widget-2x1 widget-2x2"); - - if (data !== "1x1") { - this.$el.addClass('widget-' + data); - $widgetContainer.packery('fit', this.el); - } else { - $widgetContainer.packery(); - } - - $(e.currentTarget).siblings('.active').removeClass('active'); - $(e.currentTarget).addClass('active'); - }, - - showSettings: function (e) { - e.preventDefault(); - this.model.attributes.settings.enabled = true; - this.$el.addClass("widget-settings"); - this.render(); - }, - - showWidget: function (e) { - e.preventDefault(); - this.model.attributes.settings.enabled = false; - this.$el.removeClass("widget-settings"); - this.render(); - }, - - templateName: "widget", - - afterRender: function () { - if (!this.model.attributes.settings.enabled) { - this.$(".widget-content").html(this.addSubview(new WidgetContent({model: this.model})).render().el); - } else { - var size = !this.model.get('size') ? "1x1" : this.model.get('size'); - this.$el.find("[data-size='" + size + "']").addClass('active'); - } - return this; - } - - }); - - // Widget Content - // ---------- - WidgetContent = Ghost.View.extend({ - - template: function (data) { - return JST['widgets/' + this.model.attributes.content.template](data); - } - - }); - -}()); \ No newline at end of file diff --git a/core/server/controllers/admin.js b/core/server/controllers/admin.js index 493863de1f..0cb07f51cb 100644 --- a/core/server/controllers/admin.js +++ b/core/server/controllers/admin.js @@ -18,17 +18,11 @@ var Ghost = require('../../ghost'), // TODO: combine path/navClass to single "slug(?)" variable with no prefix adminNavbar = { - dashboard: { - name: 'Dashboard', - navClass: 'dashboard', - key: 'admin.navbar.dashboard', - path: '/' - }, content: { name: 'Content', navClass: 'content', key: 'admin.navbar.content', - path: '/content/' + path: '/' }, add: { name: 'New Post', @@ -214,9 +208,9 @@ adminControllers = { }); }, 'index': function (req, res) { - res.render('dashboard', { - bodyClass: 'dashboard', - adminNav: setSelected(adminNavbar, 'dashboard') + res.render('content', { + bodyClass: 'manage', + adminNav: setSelected(adminNavbar, 'content') }); }, 'editor': function (req, res) { diff --git a/core/server/views/dashboard.hbs b/core/server/views/dashboard.hbs deleted file mode 100644 index 4ffdd5d5d5..0000000000 --- a/core/server/views/dashboard.hbs +++ /dev/null @@ -1,32 +0,0 @@ -{{#contentFor 'bodyScripts'}} - - -{{/contentFor}} - -{{!< default}} -
-
\ No newline at end of file diff --git a/core/server/views/default.hbs b/core/server/views/default.hbs index 35941ae305..d60ee7fe2d 100644 --- a/core/server/views/default.hbs +++ b/core/server/views/default.hbs @@ -84,7 +84,6 @@ - diff --git a/core/shared/lang/en.json b/core/shared/lang/en.json index 06e3467324..f32e1ef847 100644 --- a/core/shared/lang/en.json +++ b/core/shared/lang/en.json @@ -1,6 +1,5 @@ { "__SECTION__": "admin core", - "admin.navbar.dashboard": "Dashboard", "admin.navbar.blog": "Blog", "admin.navbar.settings": "Settings", diff --git a/core/shared/lang/en_PL.json b/core/shared/lang/en_PL.json index f2f8ec48dc..b157bc642f 100644 --- a/core/shared/lang/en_PL.json +++ b/core/shared/lang/en_PL.json @@ -1,6 +1,5 @@ { "__SECTION__": "admin core", - "admin.navbar.dashboard": "Ashboarday", "admin.navbar.blog": "Logbay", "admin.navbar.settings": "Ettingsay", diff --git a/core/test/functional/admin/01_login_test.js b/core/test/functional/admin/01_login_test.js index fd62adcbb5..05e864f738 100644 --- a/core/test/functional/admin/01_login_test.js +++ b/core/test/functional/admin/01_login_test.js @@ -140,7 +140,7 @@ casper.test.begin("Can login to Ghost", 4, function suite(test) { casper.waitForResource(/ghost\/$/, function testForDashboard() { test.assertUrlMatch(/ghost\/$/, 'We got redirected to the Ghost page'); test.assertExists("#global-header", "Global admin header is present"); - test.assertExists(".dashboard", "We're now on the dashboard"); + test.assertExists(".manage", "We're now on content"); }, function onTimeOut() { test.fail('Failed to load ghost/ resource'); }); diff --git a/core/test/functional/admin/02_dashboard_test.js b/core/test/functional/admin/02_dashboard_test.js deleted file mode 100644 index da0ab16410..0000000000 --- a/core/test/functional/admin/02_dashboard_test.js +++ /dev/null @@ -1,48 +0,0 @@ -/*globals casper, __utils__, url */ - -casper.test.begin("Ghost dashboard is correct", 12, function suite(test) { - test.filename = "dashboard_test.png"; - - casper.start(url + "ghost", function testTitleAndUrl() { - test.assertTitle("", "Ghost admin has no title"); - test.assertUrlMatch(/ghost\/$/, "Ghost doesn't require login this time"); - test.assertExists(".ghost-logo", "Ghost is present"); - }).viewport(1280, 1024); - - casper.then(function testMenus() { - test.assertExists("#main-menu", "Main menu is present"); - test.assertSelectorHasText("#main-menu .dashboard a", "Dashboard"); - test.assertSelectorHasText("#main-menu .content a", "Content"); - test.assertSelectorHasText("#main-menu .editor a", "New Post"); - test.assertSelectorHasText("#main-menu .settings a", "Settings"); - - test.assertExists("#usermenu", "User menu is present"); - test.assertSelectorHasText("#usermenu .usermenu-profile a", "Your Profile"); - test.assertSelectorHasText("#usermenu .usermenu-help a", "Help / Support"); - test.assertSelectorHasText("#usermenu .usermenu-signout a", "Sign Out"); - }); - - casper.run(function () { - test.done(); - }); -}); - -casper.test.begin("Ghost dashboard interactions are correct", 2, function suite(test) { - test.filename = "dashboard_interactions_test.png"; - - casper.start(url + "ghost", function testTitleAndUrl() { - test.assertExists(".widget-time", "Time widget is present"); - }).viewport(1280, 1024); - - casper.then(function testWidgetDragAbility() { - var origPos = this.getElementBounds('.widget-time'); - this.mouse.down('.widget-time .widget-footer'); - this.mouse.move(150, 650); - this.mouse.up(150, 650); - test.assertNotEquals(this.getElementBounds('.widget-time'), origPos, 'Time Widget has moved'); - }); - - casper.run(function () { - test.done(); - }); -}); diff --git a/core/test/functional/admin/04_content_test.js b/core/test/functional/admin/04_content_test.js index 136016cf25..3ad7f2f646 100644 --- a/core/test/functional/admin/04_content_test.js +++ b/core/test/functional/admin/04_content_test.js @@ -1,6 +1,6 @@ /*globals casper, __utils__, url, testPost */ -casper.test.begin("Content screen is correct", 9, function suite(test) { +casper.test.begin("Content screen is correct", 17, function suite(test) { test.filename = "content_test.png"; casper.start(url + "ghost/content/", function testTitleAndUrl() { @@ -8,6 +8,18 @@ casper.test.begin("Content screen is correct", 9, function suite(test) { test.assertUrlMatch(/ghost\/content\/$/, "Ghost doesn't require login this time"); }).viewport(1280, 1024); + casper.then(function testMenus() { + test.assertExists("#main-menu", "Main menu is present"); + test.assertSelectorHasText("#main-menu .content a", "Content"); + test.assertSelectorHasText("#main-menu .editor a", "New Post"); + test.assertSelectorHasText("#main-menu .settings a", "Settings"); + + test.assertExists("#usermenu", "User menu is present"); + test.assertSelectorHasText("#usermenu .usermenu-profile a", "Your Profile"); + test.assertSelectorHasText("#usermenu .usermenu-help a", "Help / Support"); + test.assertSelectorHasText("#usermenu .usermenu-signout a", "Sign Out"); + }); + casper.then(function testViews() { test.assertExists(".content-view-container", "Content main view is present"); test.assertExists(".content-list-content", "Content list view is present"); diff --git a/core/test/html/404.html b/core/test/html/404.html deleted file mode 100644 index b996116784..0000000000 --- a/core/test/html/404.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - Ghost - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
-
-

404

-

No Ghost Found

-
-
-
- - - - - - diff --git a/core/test/html/dashboard.html b/core/test/html/dashboard.html deleted file mode 100644 index 21c91bef8b..0000000000 --- a/core/test/html/dashboard.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - - - - - - - Ghost - - - - - - - - - - - - - - - - - - - - - -
- -
-
Welcome back, John.
- - -
-
- -
-
- London, United Kingdom -
-
-
- 8:55am -
-
- Wednesday - 13 June 2012 -
-
-
- Timezone: UTC +1 -
-
- -
-
- Top Authors This Month -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePostsCommentstweetsLikes
John32 Posts231 Comments103 tweets
James32 Posts231 Comments103 tweets
Jerry32 Posts231 Comments103 tweets
-
-
- Ghost Stats -
-
- -
-
- Post Statuses -
-
-
-
Scheduled
-
Pending
-
Draft
-
-
-
5 Scheduled
-
12 Pending
-
32 Draft
-
-
-
- Ghost Stats -
-
- -
-
- Total Page Views (Last 30 Days) -
-
-
- 37,921 - - Previous 32,419 / +15.4% - -
-
-
- Google Analytics -
-
- -
-
- Live Visitors -
-
-
- 124 - - 391 max this month - -
-
-
- Woopra -
-
- -
-
- Twitter Followers -
-
-
- 12,304 - - +123 this month - -
-
-
- @ghost -
-
- -
-
- Today’s Traffic (Actions) -
-
- -
-
- Woopra -
-
- -
-
- Total Likes -
-
-
- 6,931 - - -23 this month - -
-
-
- Facebook -
-
- -
- - - - - - \ No newline at end of file diff --git a/core/test/html/login.html b/core/test/html/login.html deleted file mode 100644 index 04e0682829..0000000000 --- a/core/test/html/login.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - Ghost - - - - - - - - - - - - - - - - - - - -
- -
- -
- -
- -
- -
- -
-
- - - - - - diff --git a/core/test/html/manage.html b/core/test/html/manage.html deleted file mode 100644 index b39dbe131a..0000000000 --- a/core/test/html/manage.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - Ghost - - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-
- Published + Featured -
- -
-
-
-

Ut Enim ad Minim Veniam Quis Nostrud Exercitation Ullamco

-

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu.

- -

This is a Heading 2

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

-

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

- - - -

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.

- -
    -
  • Lorem ipsum dolor sit amet
  • -
  • Lorem ipsum dolor sit amet
  • -
  • Lorem ipsum dolor sit amet
  • -
  • Lorem ipsum dolor sit amet
  • -
  • Lorem ipsum dolor sit amet
  • -
- -

This is a Heading 3

- -

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

- -
    -
  1. Lorem ipsum dolor sit amet
  2. -
  3. Lorem ipsum dolor sit amet
  4. -
  5. Lorem ipsum dolor sit amet
  6. -
  7. Lorem ipsum dolor sit amet
  8. -
  9. Lorem ipsum dolor sit amet
  10. -
- -
-
-
- -
- - - - - - \ No newline at end of file diff --git a/core/test/html/notifications.html b/core/test/html/notifications.html deleted file mode 100644 index fa5abbaf64..0000000000 --- a/core/test/html/notifications.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - Ghost - - - - - - - - - - - - - - - - - - - - - -
- -
- This is a general notification. The default. Gets your attention. Tells you stuff. - -
- -
- The action you attempted completed successfully. - -
- -
- General information. Yay. - -
- -
- You done fucked up good. - -
- -
-
- - -
- Permalink: http://yoursite.com/the-post-title-goes-here/ -
- -
-
-
-
- Markdown -
- -
-
- -
-
-
- Preview 561 words -
-
-

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu.

- -

This is a Heading 2

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

-

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

- -
- Drag image here - or Upload -
- -

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.

- -
    -
  • Lorem ipsum dolor sit amet
  • -
  • Lorem ipsum dolor sit amet
  • -
  • Lorem ipsum dolor sit amet
  • -
  • Lorem ipsum dolor sit amet
  • -
  • Lorem ipsum dolor sit amet
  • -
- -

This is a Heading 3

- -

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

- -
    -
  1. Lorem ipsum dolor sit amet
  2. -
  3. Lorem ipsum dolor sit amet
  4. -
  5. Lorem ipsum dolor sit amet
  6. -
  7. Lorem ipsum dolor sit amet
  8. -
  9. Lorem ipsum dolor sit amet
  10. -
- -
-
-
-
- - - -
- - - - - - - \ No newline at end of file diff --git a/core/test/html/test.html b/core/test/html/test.html deleted file mode 100644 index d2cbe9d2c4..0000000000 --- a/core/test/html/test.html +++ /dev/null @@ -1,556 +0,0 @@ - - - - - - - - - - Ghost - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-

Grouped Heading 1

-

Grouped Heading 2 and linked text too.

-
- -
- -
-

UI Colours

- -
-
#aaa9a2 Text
-
#c0bfb6 Icons
-
#edece4 Dividers
-
- -
- -
-
#242628 BG
-
#35393b Dividers
-
#7d878a Text/Icons
-
#e2edf2 Highlight
-
- -
- -
-
-

Actions

- -
-
#4090ba Save
-
#e25440 Delete/Publish
-
#f59b0d Notifcation
-
- -
- -
- -
- -
-
-
-

An Article Headline

-

A longer article subheading that explains the article in a sentence

-
- -
- -

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.

- -

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- - - -

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -
- -
-

H1 Header + Link

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -

H2 Header + Link

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -

H3 Header + Link

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -

H4 Header + Link

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -
H5 Header + Link
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -
H6 Header + Link
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
- -
- -

Text-level semantics

- -

- The a element example
- The abbr element and abbr element with title examples
- The b element example
- The cite element example
- The code element example
- The del element example
- The dfn element and dfn element with title examples
- The em element example
- The img element example
- The ins element example
- The Ctrl + R kbd example
- The mark element example
- The q element inside a q element example
- The s element example
- The samp element example
- The small element example
- The span element example
- The strong element example
- The sub element example
- The sup element example
- The var element example
- The u element example -

- -

Blockquote

-
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa.

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Ut a est eget ligula molestie gravida. Curabitur massa.

- Someone famous, in Source Title - The New Yorker, September 2009 -
- -

Pre

- -
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et me.
- -
<html>
-    <head>
-    </head>
-    <body>
-        <div class="main"> <div>
-    </body>
-</html>
- -
- -
- -

List Types

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.

- -

Ordered Lists

-
    -
  1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  2. -
  3. Aliquam tincidunt mauris eu risus.
  4. -
  5. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. This bullet tests content going onto two lines
  6. -
- -

Un-ordered Lists

-
    -
  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  • -
  • Aliquam tincidunt mauris eu risus.
  • -
  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit. This bullet tests content going onto two lines
  • -
- -

Lists Inside Lists Inside Lists

-
    -
  • Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.
  • -
  • - Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus. -
      -
    • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    • -
    • - Aliquam tincidunt mauris eu risus: -
        -
      1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
      2. -
      3. Aliquam tincidunt mauris eu risus.
      4. -
      5. Vestibulum auctor dapibus neque.
      6. -
      -
    • -
    • Vestibulum auctor dapibus neque.
    • -
    -
  • -
  • Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.
  • -
  • Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.
  • -
- -

Definition Lists

-
-
Definition Title
-
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco.
-
Lorem ipsum dolor sit amet
-
Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris commodo consequat.
-
- -
- -
-

Embedded content

- -

audio

- - - - -

img

- - - - -

figure

- -
- -
Figcaption content
-
- - -

svg

- - - - - -

video

- - - -
- -
- -

Form

- -
-
- Inputs as descendents of labels (form legend) - - - - - - - - - - - - - -
- -
- Clickable inputs and buttons - - - - - - - -
- -
- box-sizing tests -
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
- -
-
- -
-
-
-
- -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Buttonclass=""Description
buttonStandard boring default button.
button-saveStands out, identifies a "save" or "confirm" or "continue" action.
button-newUsed to indicate an action that will create something new.
button-deleteStrong warning - Used to indicate an action that will delete something.
button-altAlternate dark gray button, not tied to a semantic action or use.
button-linkDeemphasize a button by making it look like a link, maintaining same behavior.
-
- - -
-
splitbuttonStandard boring default button + options.
-
- - -
-
splitbutton upThe dropdown arrow points up on hover.
-
- - -
-
splitbutton-saveSave button + options.
-
- - -
-
splitbutton-addAdd button + options.
-
- - -
-
splitbutton-deleteDelete button + options.
-
- - -
-
splitbutton-altAlt button + options.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NamePhone NumberGender
NamePhone NumberGender
John Smith555 - 3246591Male
Lucy Carter555 - 6327445Female
Simon Fletcher555 - 2335213Male
Jeremy Edwards555 - 4297642Male
Sarah Jones555 - 6678903Female
- -
- -
-

This page is a Ghost custom template for checking CSS consistency.

-
- -
-
- - - - - - diff --git a/core/test/html/user_settings.html b/core/test/html/user_settings.html deleted file mode 100644 index d203e05008..0000000000 --- a/core/test/html/user_settings.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - Matthew Harrison-Jones - - - - - - - - - - - - - - - - - - - - - -
- -
- - -
-
-

Your Profile

-
- -
-
-
- -
-
-
- - -
- -
-
- - - - - - - - - -
- -
- -
- - - - - - - -
- -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/index.js b/index.js index a6e2010abb..240f501db8 100644 --- a/index.js +++ b/index.js @@ -54,9 +54,9 @@ function auth(req, res, next) { } -// Check if we're logged in, and if so, redirect people back to dashboard +// Check if we're logged in, and if so, redirect people back to content // Login and signup forms in particular -function redirectToDashboard(req, res, next) { +function redirectToIndex(req, res, next) { if (req.session.user) { return res.redirect('/ghost/'); } @@ -212,9 +212,9 @@ when.all([ghost.init(), helpers.loadCoreHelpers(ghost)]).then(function () { ghost.app().get('/ghost/login/', function redirect(req, res) { res.redirect(301, '/ghost/signin/'); }); - ghost.app().get('/ghost/signin/', redirectToDashboard, admin.login); - ghost.app().get('/ghost/signup/', redirectToDashboard, admin.signup); - ghost.app().get('/ghost/forgotten/', redirectToDashboard, admin.forgotten); + ghost.app().get('/ghost/signin/', redirectToIndex, admin.login); + ghost.app().get('/ghost/signup/', redirectToIndex, admin.signup); + ghost.app().get('/ghost/forgotten/', redirectToIndex, admin.forgotten); ghost.app().post('/ghost/forgotten/', admin.resetPassword); ghost.app().post('/ghost/signin/', admin.auth); ghost.app().post('/ghost/signup/', admin.doRegister);