Merge branch 'stable' into develop

This commit is contained in:
Jonne Haß 2016-06-19 16:14:13 +02:00
commit 35a4998707
No known key found for this signature in database
GPG key ID: F347E0EB47AC70D6
4 changed files with 37 additions and 2 deletions

View file

@ -158,6 +158,7 @@ before.
## 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

View file

@ -1,6 +1,8 @@
// @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"

View file

@ -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("/")));

View file

@ -10,6 +10,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");
});