diff --git a/core/client/app/components/gh-content-view-container.js b/core/client/app/components/gh-content-view-container.js new file mode 100644 index 0000000000..4088b76749 --- /dev/null +++ b/core/client/app/components/gh-content-view-container.js @@ -0,0 +1,21 @@ +import Ember from 'ember'; + +export default Ember.Component.extend({ + tagName: 'section', + classNames: ['gh-view', 'content-view-container'], + + previewIsHidden: false, + + resizeService: Ember.inject.service(), + + calculatePreviewIsHidden: function () { + this.set('previewIsHidden', !this.$('.content-preview').is(':visible')); + }, + + didInsertElement: function () { + this._super(...arguments); + this.calculatePreviewIsHidden(); + this.get('resizeService').on('debouncedDidResize', + Ember.run.bind(this, this.calculatePreviewIsHidden)); + } +}); diff --git a/core/client/app/components/gh-posts-list-item.js b/core/client/app/components/gh-posts-list-item.js index 050465d849..eda9f38f93 100644 --- a/core/client/app/components/gh-posts-list-item.js +++ b/core/client/app/components/gh-posts-list-item.js @@ -6,6 +6,7 @@ export default Ember.Component.extend({ post: null, active: false, + previewIsHidden: false, ghostPaths: Ember.inject.service('ghost-paths'), @@ -27,6 +28,10 @@ export default Ember.Component.extend({ return `background-image: url(${this.get('authorAvatar')})`.htmlSafe(); }), + viewOrEdit: Ember.computed('previewIsHidden', function () { + return this.get('previewIsHidden') ? 'editor.edit' : 'posts.post'; + }), + click: function () { this.sendAction('onClick', this.get('post')); }, diff --git a/core/client/app/styles/layouts/content.css b/core/client/app/styles/layouts/content.css index 7c1036049c..369cb9d2ee 100644 --- a/core/client/app/styles/layouts/content.css +++ b/core/client/app/styles/layouts/content.css @@ -185,6 +185,7 @@ @media (max-width: 900px) { .content-preview { + display: none; overflow: visible; width: 100%; border: none; diff --git a/core/client/app/templates/components/gh-content-view-container.hbs b/core/client/app/templates/components/gh-content-view-container.hbs new file mode 100644 index 0000000000..f4a0b59217 --- /dev/null +++ b/core/client/app/templates/components/gh-content-view-container.hbs @@ -0,0 +1 @@ +{{yield this}} diff --git a/core/client/app/templates/posts.hbs b/core/client/app/templates/posts.hbs index 5f150cf8c7..5ee797f23d 100644 --- a/core/client/app/templates/posts.hbs +++ b/core/client/app/templates/posts.hbs @@ -1,4 +1,4 @@ -
+{{#gh-content-view-container as |container|}}
{{#gh-view-title openMobileMenu="openMobileMenu"}}Content{{/gh-view-title}}
@@ -11,8 +11,8 @@ {{#gh-infinite-scroll-box tagName="section" classNames="content-list-content js-content-scrollbox" fetch="loadNextPage"}}
    {{#each sortedPosts key="id" as |post|}} - {{#gh-posts-list-item post=post active=(is-equal post currentPost) click="showPostContent" onDoubleClick="openEditor" as |component|}} - {{#link-to "posts.post" post.id class="permalink" title="Edit this post"}} + {{#gh-posts-list-item post=post active=(is-equal post currentPost) previewIsHidden=container.previewIsHidden as |component|}} + {{#link-to component.viewOrEdit post.id class="permalink" title="Edit this post"}}

    {{post.title}}

    -
+{{/gh-content-view-container}} diff --git a/core/client/config/environment.js b/core/client/config/environment.js index 55523d6b3e..2eea50c355 100644 --- a/core/client/config/environment.js +++ b/core/client/config/environment.js @@ -32,6 +32,13 @@ module.exports = function (environment) { serverTokenEndpoint: '', serverTokenRevocationEndpoint: '' + }, + + resizeServiceDefaults: { + debounceTimeout: 100, + heightSensitive: false, + widthSensitive: true, + injectionFactories: [] } }; diff --git a/core/client/package.json b/core/client/package.json index 9734504d57..9094f57704 100644 --- a/core/client/package.json +++ b/core/client/package.json @@ -37,6 +37,7 @@ "ember-data": "1.0.0-beta.18", "ember-export-application-global": "^1.0.2", "ember-myth": "0.1.1", + "ember-resize": "0.0.10", "ember-sinon": "0.2.1", "fs-extra": "0.16.3", "glob": "^4.0.5",