FIX: some pages were missing the footer

This commit is contained in:
Régis Hanol
2015-07-31 17:18:38 +02:00
parent fb65970530
commit 1a5c3b4331
8 changed files with 94 additions and 72 deletions

View File

@@ -1,8 +1,8 @@
export default Ember.Controller.extend({ export default Ember.Controller.extend({
showLoginButton: Em.computed.equal('model.path', 'login'), showLoginButton: Em.computed.equal("model.path", "login"),
actions: { actions: {
markFaqRead: function() { markFaqRead() {
if (this.currentUser) { if (this.currentUser) {
Discourse.ajax("/users/read-faq", { method: "POST" }); Discourse.ajax("/users/read-faq", { method: "POST" });
} }

View File

@@ -1,37 +1,41 @@
var configs = { const configs = {
'faq': 'faq_url', "faq": "faq_url",
'tos': 'tos_url', "tos": "tos_url",
'privacy': 'privacy_policy_url' "privacy": "privacy_policy_url"
}; };
export default function(page) { export default (page) => {
return Discourse.Route.extend({ return Discourse.Route.extend({
renderTemplate: function() { renderTemplate() {
this.render('static'); this.render("static");
}, },
beforeModel: function(transition) { beforeModel(transition) {
var configKey = configs[page]; const configKey = configs[page];
if (configKey && Discourse.SiteSettings[configKey].length > 0) { if (configKey && Discourse.SiteSettings[configKey].length > 0) {
transition.abort(); transition.abort();
Discourse.URL.redirectTo(Discourse.SiteSettings[configKey]); Discourse.URL.redirectTo(Discourse.SiteSettings[configKey]);
} }
}, },
activate: function() { activate() {
this._super(); this._super();
// Scroll to an element if exists // Scroll to an element if exists
Discourse.URL.scrollToId(document.location.hash); Discourse.URL.scrollToId(document.location.hash);
}, },
model: function() { model() {
return Discourse.StaticPage.find(page); return Discourse.StaticPage.find(page);
}, },
setupController: function(controller, model) { setupController(controller, model) {
this.controllerFor('static').set('model', model); this.controllerFor("static").set("model", model);
},
actions: {
didTransition() {
this.controllerFor("application").set("showFooter", true);
}
} }
}); });
} };

View File

@@ -1,11 +1,15 @@
export default Discourse.Route.extend({ export default Discourse.Route.extend({
model: function() { model() {
return Discourse.ajax("/about.json").then(function(result) { return Discourse.ajax("/about.json").then(result => result.about);
return result.about;
});
}, },
titleToken: function() { titleToken() {
return I18n.t('about.simple_title'); return I18n.t('about.simple_title');
},
actions: {
didTransition() {
this.controllerFor("application").set("showFooter", true);
}
} }
}); });

View File

@@ -1,15 +1,19 @@
export default Discourse.Route.extend({ export default Discourse.Route.extend({
model: function() { model() {
if (PreloadStore.get('badges')) { if (PreloadStore.get("badges")) {
return PreloadStore.getAndRemove('badges').then(function(json) { return PreloadStore.getAndRemove("badges").then(json => Discourse.Badge.createFromJson(json));
return Discourse.Badge.createFromJson(json);
});
} else { } else {
return Discourse.Badge.findAll({onlyListable: true}); return Discourse.Badge.findAll({ onlyListable: true });
} }
}, },
titleToken: function() { titleToken() {
return I18n.t('badges.title'); return I18n.t("badges.title");
},
actions: {
didTransition() {
this.controllerFor("application").set("showFooter", true);
}
} }
}); });

View File

@@ -1,41 +1,41 @@
export default Discourse.Route.extend({ export default Discourse.Route.extend({
actions: { actions: {
didTransition: function() { didTransition() {
this.controllerFor("badges/show")._showFooter(); this.controllerFor("badges/show")._showFooter();
return true; return true;
} }
}, },
serialize: function(model) { serialize(model) {
return {id: model.get('id'), slug: model.get('name').replace(/[^A-Za-z0-9_]+/g, '-').toLowerCase()}; return {
id: model.get("id"),
slug: model.get("name").replace(/[^A-Za-z0-9_]+/g, "-").toLowerCase()
};
}, },
model: function(params) { model(params) {
if (PreloadStore.get('badge')) { if (PreloadStore.get("badge")) {
return PreloadStore.getAndRemove('badge').then(function(json) { return PreloadStore.getAndRemove("badge").then(json => Discourse.Badge.createFromJson(json));
return Discourse.Badge.createFromJson(json);
});
} else { } else {
return Discourse.Badge.findById(params.id); return Discourse.Badge.findById(params.id);
} }
}, },
afterModel: function(model) { afterModel(model) {
var self = this; return Discourse.UserBadge.findByBadgeId(model.get("id")).then(userBadges => {
return Discourse.UserBadge.findByBadgeId(model.get('id')).then(function(userBadges) { this.userBadges = userBadges;
self.userBadges = userBadges;
}); });
}, },
titleToken: function() { titleToken() {
var model = this.modelFor('badges.show'); const model = this.modelFor("badges.show");
if (model) { if (model) {
return model.get('displayName'); return model.get("displayName");
} }
}, },
setupController: function(controller, model) { setupController(controller, model) {
controller.set('model', model); controller.set("model", model);
controller.set('userBadges', this.userBadges); controller.set("userBadges", this.userBadges);
} }
}); });

View File

@@ -4,7 +4,7 @@ const DiscourseRoute = Ember.Route.extend({
// changes // changes
resfreshQueryWithoutTransition: false, resfreshQueryWithoutTransition: false,
refresh: function() { refresh() {
if (!this.refreshQueryWithoutTransition) { return this._super(); } if (!this.refreshQueryWithoutTransition) { return this._super(); }
if (!this.router.router.activeTransition) { if (!this.router.router.activeTransition) {
@@ -17,13 +17,13 @@ const DiscourseRoute = Ember.Route.extend({
} }
}, },
_refreshTitleOnce: function() { _refreshTitleOnce() {
this.send('_collectTitleTokens', []); this.send('_collectTitleTokens', []);
}, },
actions: { actions: {
_collectTitleTokens: function(tokens) { _collectTitleTokens(tokens) {
// If there's a title token method, call it and get the token // If there's a title token method, call it and get the token
if (this.titleToken) { if (this.titleToken) {
const t = this.titleToken(); const t = this.titleToken();
@@ -40,19 +40,19 @@ const DiscourseRoute = Ember.Route.extend({
return true; return true;
}, },
refreshTitle: function() { refreshTitle() {
Ember.run.once(this, this._refreshTitleOnce); Ember.run.once(this, this._refreshTitleOnce);
} }
}, },
redirectIfLoginRequired: function() { redirectIfLoginRequired() {
const app = this.controllerFor('application'); const app = this.controllerFor('application');
if (app.get('loginRequired')) { if (app.get('loginRequired')) {
this.replaceWith('login'); this.replaceWith('login');
} }
}, },
openTopicDraft: function(model){ openTopicDraft(model){
// If there's a draft, open the create topic composer // If there's a draft, open the create topic composer
if (model.draft) { if (model.draft) {
const composer = this.controllerFor('composer'); const composer = this.controllerFor('composer');
@@ -67,7 +67,7 @@ const DiscourseRoute = Ember.Route.extend({
} }
}, },
isPoppedState: function(transition) { isPoppedState(transition) {
return (!transition._discourse_intercepted) && (!!transition.intent.url); return (!transition._discourse_intercepted) && (!!transition.intent.url);
} }
}); });

View File

@@ -1,14 +1,14 @@
import showModal from 'discourse/lib/show-modal'; import showModal from "discourse/lib/show-modal";
import OpenComposer from "discourse/mixins/open-composer"; import OpenComposer from "discourse/mixins/open-composer";
Discourse.DiscoveryCategoriesRoute = Discourse.Route.extend(OpenComposer, { Discourse.DiscoveryCategoriesRoute = Discourse.Route.extend(OpenComposer, {
renderTemplate() { renderTemplate() {
this.render('navigation/categories', { outlet: 'navigation-bar' }); this.render("navigation/categories", { outlet: "navigation-bar" });
this.render('discovery/categories', { outlet: 'list-container' }); this.render("discovery/categories", { outlet: "list-container" });
}, },
beforeModel() { beforeModel() {
this.controllerFor('navigation/categories').set('filterMode', 'categories'); this.controllerFor("navigation/categories").set("filterMode", "categories");
}, },
model() { model() {
@@ -16,11 +16,11 @@ Discourse.DiscoveryCategoriesRoute = Discourse.Route.extend(OpenComposer, {
// if default page is categories // if default page is categories
PreloadStore.remove("topic_list"); PreloadStore.remove("topic_list");
return Discourse.CategoryList.list('categories').then(function(list) { return Discourse.CategoryList.list("categories").then(function(list) {
const tracking = Discourse.TopicTrackingState.current(); const tracking = Discourse.TopicTrackingState.current();
if (tracking) { if (tracking) {
tracking.sync(list, 'categories'); tracking.sync(list, "categories");
tracking.trackIncoming('categories'); tracking.trackIncoming("categories");
} }
return list; return list;
}); });
@@ -28,15 +28,15 @@ Discourse.DiscoveryCategoriesRoute = Discourse.Route.extend(OpenComposer, {
titleToken() { titleToken() {
if (Discourse.Utilities.defaultHomepage() === "categories") { return; } if (Discourse.Utilities.defaultHomepage() === "categories") { return; }
return I18n.t('filters.categories.title'); return I18n.t("filters.categories.title");
}, },
setupController(controller, model) { setupController(controller, model) {
controller.set('model', model); controller.set("model", model);
// Only show either the Create Category or Create Topic button // Only show either the Create Category or Create Topic button
this.controllerFor('navigation/categories').set('canCreateCategory', model.get('can_create_category')); this.controllerFor("navigation/categories").set("canCreateCategory", model.get("can_create_category"));
this.controllerFor('navigation/categories').set('canCreateTopic', model.get('can_create_topic') && !model.get('can_create_category')); this.controllerFor("navigation/categories").set("canCreateTopic", model.get("can_create_topic") && !model.get("can_create_category"));
this.openTopicDraft(model); this.openTopicDraft(model);
}, },
@@ -44,20 +44,24 @@ Discourse.DiscoveryCategoriesRoute = Discourse.Route.extend(OpenComposer, {
actions: { actions: {
createCategory() { createCategory() {
const groups = this.site.groups, const groups = this.site.groups,
everyoneName = groups.findBy('id', 0).name; everyoneName = groups.findBy("id", 0).name;
const model = Discourse.Category.create({ const model = Discourse.Category.create({
color: 'AB9364', text_color: 'FFFFFF', group_permissions: [{group_name: everyoneName, permission_type: 1}], color: "AB9364", text_color: "FFFFFF", group_permissions: [{group_name: everyoneName, permission_type: 1}],
available_groups: groups.map(g => g.name), available_groups: groups.map(g => g.name),
allow_badges: true allow_badges: true
}); });
showModal('editCategory', { model }); showModal("editCategory", { model });
this.controllerFor('editCategory').set('selectedTab', 'general'); this.controllerFor("editCategory").set("selectedTab", "general");
}, },
createTopic() { createTopic() {
this.openComposer(this.controllerFor('discovery/categories')); this.openComposer(this.controllerFor("discovery/categories"));
},
didTransition() {
this.controllerFor("application").set("showFooter", true);
} }
} }
}); });

View File

@@ -12,5 +12,11 @@ export default Discourse.Route.extend(ViewingActionType, {
renderTemplate() { renderTemplate() {
this.render("user/badges", {into: "user"}); this.render("user/badges", {into: "user"});
},
actions: {
didTransition() {
this.controllerFor("application").set("showFooter", true);
}
} }
}); });