Stopped characters with poor names from having failed URL's

This commit is contained in:
Stefan Zermatten
2017-07-13 17:16:23 +02:00
parent a411fb2b43
commit eee83f0b25
5 changed files with 10 additions and 4 deletions

View File

@@ -4,7 +4,7 @@ Characters = new Mongo.Collection("characters");
Schemas.Character = new SimpleSchema({ Schemas.Character = new SimpleSchema({
//strings //strings
name: {type: String, defaultValue: "", trim: false, optional: true}, name: {type: String, defaultValue: "", trim: false, optional: true},
urlName: {type: String, defaultValue: "", trim: false, optional: true}, urlName: {type: String, defaultValue: "-", trim: false, optional: true},
alignment: {type: String, defaultValue: "", trim: false, optional: true}, alignment: {type: String, defaultValue: "", trim: false, optional: true},
gender: {type: String, defaultValue: "", trim: false, optional: true}, gender: {type: String, defaultValue: "", trim: false, optional: true},
race: {type: String, defaultValue: "", trim: false, optional: true}, race: {type: String, defaultValue: "", trim: false, optional: true},
@@ -547,6 +547,9 @@ if (Meteor.isServer){
Characters.update(doc._id, {$set: {urlName}}); Characters.update(doc._id, {$set: {urlName}});
} }
}); });
Characters.before.insert(function(userId, doc) {
doc.urlName = getSlug(doc.name, {maintainCase: true}) || "-";
});
} }
Characters.allow({ Characters.allow({

View File

@@ -43,7 +43,7 @@ Router.map(function() {
var _id = this.params._id var _id = this.params._id
var character = Characters.findOne(_id); var character = Characters.findOne(_id);
var urlName = character && character.urlName; var urlName = character && character.urlName;
var path = `\/character\/${_id}\/${urlName}`; var path = `\/character\/${_id}\/${urlName || "-"}`;
Router.go(path,{},{replaceState:true}); Router.go(path,{},{replaceState:true});
}, },
}); });

View File

@@ -0,0 +1,3 @@
Template.registerHelper("characterPath", function(char) {
return `\/character\/${char._id}\/${char.urlName || "-"}`;
});

View File

@@ -11,7 +11,7 @@
{{#if characters.count}} {{#if characters.count}}
<div class="character-list layout horizontal wrap"> <div class="character-list layout horizontal wrap">
{{# each characters}} {{# each characters}}
<a class="character-card flex layout vertical end-justified" href="{{pathFor route="characterSheet" data=this}}"> <a class="character-card flex layout vertical end-justified" href="{{characterPath this}}">
<iron-image class="fit {{colorClass}}" <iron-image class="fit {{colorClass}}"
sizing="cover" preload fade src={{picture}}> sizing="cover" preload fade src={{picture}}>
</iron-image> </iron-image>

View File

@@ -2,7 +2,7 @@
{{#if characters.count}} {{#if characters.count}}
<div class="side-list"> <div class="side-list">
{{#each characters}} {{#each characters}}
<a href={{pathFor route="characterSheet" data=this}} tabindex="-1" class="side-list-character characterRepresentative"> <a href={{characterPath this}} tabindex="-1" class="side-list-character characterRepresentative">
<paper-item class="short"> <paper-item class="short">
<div class="character-name"> <div class="character-name">
{{name}} {{name}}