Loading Changelog.md +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ ## Refactor * Removed the publisher from a user's photo stream due to various issues [#6851](https://github.com/diaspora/diaspora/pull/6851) * Don't implicitly ignore missing templateName in app.views.Base [#6877](https://github.com/diaspora/diaspora/pull/6877) ## Bug fixes Loading app/assets/javascripts/app/pages/profile.js +2 −0 Original line number Diff line number Diff line // @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later app.pages.Profile = app.views.Base.extend({ templateName: false, events: { 'click #block_user_button': 'blockPerson', 'click #unblock_user_button': 'unblockPerson' Loading app/assets/javascripts/app/views.js +10 −2 Original line number Diff line number Diff line Loading @@ -38,11 +38,19 @@ app.views.Base = Backbone.View.extend({ renderTemplate : function(){ var presenter = _.isFunction(this.presenter) ? this.presenter() : this.presenter; this.template = HandlebarsTemplates[this.templateName+"_tpl"]; if(!this.template) { console.log(this.templateName ? ("no template for " + this.templateName) : "no templateName specified"); if (this.templateName === false) { return; } if (!this.templateName) { throw new Error("No templateName set, set to false to ignore."); } if (!this.template) { throw new Error("Invalid templateName provided: " + this.templateName); } this.$el .html(this.template(presenter)) .attr("data-template", _.last(this.templateName.split("/"))); Loading spec/javascripts/app/views_spec.js +24 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,30 @@ describe("app.views.Base", function(){ this.view.render(); }); it("throws an exception if no templateName was provided", function() { expect(function() { new app.views.Base().render(); }).toThrow(new Error("No templateName set, set to false to ignore.")); }); it("does not throw an exception if templateName is set to false", function() { var ViewClass = app.views.Base.extend({ templateName: false }); new ViewClass().render(); }); it("throws an exception if an invalid templateName was provided", function() { expect(function() { var ViewClass = app.views.Base.extend({ templateName: "noiamnotavalidtemplate" }); new ViewClass().render(); }).toThrow(new Error("Invalid templateName provided: noiamnotavalidtemplate")); }); it("renders the template with the presenter", function(){ expect($(this.view.el).text().trim()).toBe("model attributes are in the default presenter"); }); Loading Loading
Changelog.md +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ ## Refactor * Removed the publisher from a user's photo stream due to various issues [#6851](https://github.com/diaspora/diaspora/pull/6851) * Don't implicitly ignore missing templateName in app.views.Base [#6877](https://github.com/diaspora/diaspora/pull/6877) ## Bug fixes Loading
app/assets/javascripts/app/pages/profile.js +2 −0 Original line number Diff line number Diff line // @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later app.pages.Profile = app.views.Base.extend({ templateName: false, events: { 'click #block_user_button': 'blockPerson', 'click #unblock_user_button': 'unblockPerson' Loading
app/assets/javascripts/app/views.js +10 −2 Original line number Diff line number Diff line Loading @@ -38,11 +38,19 @@ app.views.Base = Backbone.View.extend({ renderTemplate : function(){ var presenter = _.isFunction(this.presenter) ? this.presenter() : this.presenter; this.template = HandlebarsTemplates[this.templateName+"_tpl"]; if(!this.template) { console.log(this.templateName ? ("no template for " + this.templateName) : "no templateName specified"); if (this.templateName === false) { return; } if (!this.templateName) { throw new Error("No templateName set, set to false to ignore."); } if (!this.template) { throw new Error("Invalid templateName provided: " + this.templateName); } this.$el .html(this.template(presenter)) .attr("data-template", _.last(this.templateName.split("/"))); Loading
spec/javascripts/app/views_spec.js +24 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,30 @@ describe("app.views.Base", function(){ this.view.render(); }); it("throws an exception if no templateName was provided", function() { expect(function() { new app.views.Base().render(); }).toThrow(new Error("No templateName set, set to false to ignore.")); }); it("does not throw an exception if templateName is set to false", function() { var ViewClass = app.views.Base.extend({ templateName: false }); new ViewClass().render(); }); it("throws an exception if an invalid templateName was provided", function() { expect(function() { var ViewClass = app.views.Base.extend({ templateName: "noiamnotavalidtemplate" }); new ViewClass().render(); }).toThrow(new Error("Invalid templateName provided: noiamnotavalidtemplate")); }); it("renders the template with the presenter", function(){ expect($(this.view.el).text().trim()).toBe("model attributes are in the default presenter"); }); Loading