Deprecation: Change {{#each x in y}} to {{#each y as |x|}}

This commit is contained in:
Robin Ward 2016-04-29 17:29:41 -04:00
parent acbec76411
commit 9ea32bf7d8
No known key found for this signature in database
GPG key ID: 0E091E2B4ED1B83D
60 changed files with 112 additions and 99 deletions

View file

@ -5,7 +5,7 @@
<th>{{i18n 'admin.api.user'}}</th> <th>{{i18n 'admin.api.user'}}</th>
<th>&nbsp;</th> <th>&nbsp;</th>
</tr> </tr>
{{#each k in model}} {{#each model as |k|}}
<tr> <tr>
<td class='key'>{{k.key}}</td> <td class='key'>{{k.key}}</td>
<td> <td>

View file

@ -13,7 +13,7 @@
</div> </div>
</th> </th>
</tr> </tr>
{{#each backup in model}} {{#each model as |backup|}}
<tr> <tr>
<td>{{backup.filename}}</td> <td>{{backup.filename}}</td>
<td>{{human-size backup.size}}</td> <td>{{human-size backup.size}}</td>

View file

@ -3,7 +3,7 @@
<div class='content-list span6'> <div class='content-list span6'>
<h3>{{i18n 'admin.badges.title'}}</h3> <h3>{{i18n 'admin.badges.title'}}</h3>
<ul> <ul>
{{#each badge in model}} {{#each model as |badge|}}
<li> <li>
{{#link-to 'adminBadges.show' badge.id}} {{#link-to 'adminBadges.show' badge.id}}
{{badge-button badge=badge}} {{badge-button badge=badge}}

View file

@ -1,7 +1,7 @@
<div class='content-list span6'> <div class='content-list span6'>
<h3>{{i18n 'admin.customize.colors.long_title'}}</h3> <h3>{{i18n 'admin.customize.colors.long_title'}}</h3>
<ul> <ul>
{{#each scheme in model}} {{#each model as |scheme|}}
{{#unless scheme.is_base}} {{#unless scheme.is_base}}
<li><a {{action "selectColorScheme" scheme}} {{bind-attr class="scheme.selected:active"}}>{{scheme.description}}</a></li> <li><a {{action "selectColorScheme" scheme}} {{bind-attr class="scheme.selected:active"}}>{{scheme.description}}</a></li>
{{/unless}} {{/unless}}
@ -50,7 +50,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{{#each c in colors}} {{#each colors as |c|}}
<tr {{bind-attr class="c.changed c.valid:valid:invalid"}}> <tr {{bind-attr class="c.changed c.valid:valid:invalid"}}>
<td class="name" {{bind-attr title="c.name"}}> <td class="name" {{bind-attr title="c.name"}}>
<b>{{c.translatedName}}</b> <b>{{c.translatedName}}</b>

View file

@ -19,7 +19,7 @@
</thead> </thead>
<tbody> <tbody>
{{#unless loading}} {{#unless loading}}
{{#each r in user_reports}} {{#each user_reports as |r|}}
{{admin-report-trust-level-counts report=r}} {{admin-report-trust-level-counts report=r}}
{{/each}} {{/each}}
{{/unless}} {{/unless}}
@ -58,7 +58,7 @@
</thead> </thead>
<tbody> <tbody>
{{#unless loading}} {{#unless loading}}
{{#each r in global_reports}} {{#each global_reports as |r|}}
{{admin-report-counts report=r}} {{admin-report-counts report=r}}
{{/each}} {{/each}}
{{/unless}} {{/unless}}
@ -80,7 +80,7 @@
</thead> </thead>
<tbody> <tbody>
{{#unless loading}} {{#unless loading}}
{{#each r in page_view_reports}} {{#each page_view_reports as |r|}}
{{admin-report-counts report=r}} {{admin-report-counts report=r}}
{{/each}} {{/each}}
{{/unless}} {{/unless}}
@ -102,7 +102,7 @@
</thead> </thead>
<tbody> <tbody>
{{#unless loading}} {{#unless loading}}
{{#each r in private_message_reports}} {{#each private_message_reports as |r|}}
{{admin-report-counts report=r}} {{admin-report-counts report=r}}
{{/each}} {{/each}}
{{/unless}} {{/unless}}
@ -124,7 +124,7 @@
</thead> </thead>
<tbody> <tbody>
{{#unless loading}} {{#unless loading}}
{{#each r in mobile_reports}} {{#each mobile_reports as |r|}}
{{admin-report-counts report=r}} {{admin-report-counts report=r}}
{{/each}} {{/each}}
{{/unless}} {{/unless}}
@ -171,7 +171,7 @@
</thead> </thead>
<tbody> <tbody>
{{#unless loading}} {{#unless loading}}
{{#each r in http_reports}} {{#each http_reports as |r|}}
{{admin-report-counts report=r}} {{admin-report-counts report=r}}
{{/each}} {{/each}}
{{/unless}} {{/unless}}
@ -195,7 +195,7 @@
<p {{bind-attr class="loadingProblems:invisible"}}> <p {{bind-attr class="loadingProblems:invisible"}}>
{{i18n 'admin.dashboard.problems_found'}} {{i18n 'admin.dashboard.problems_found'}}
<ul {{bind-attr class="loadingProblems:invisible"}}> <ul {{bind-attr class="loadingProblems:invisible"}}>
{{#each problem in problems}} {{#each problems as |problem|}}
<li>{{{problem}}}</li> <li>{{{problem}}}</li>
{{/each}} {{/each}}
</ul> </ul>
@ -231,7 +231,7 @@
</tr> </tr>
</thead> </thead>
{{#unless loading}} {{#unless loading}}
{{#each data in top_referred_topics.data}} {{#each top_referred_topics.data as |data|}}
<tbody> <tbody>
<tr> <tr>
<td class="title"> <td class="title">
@ -259,7 +259,7 @@
</tr> </tr>
</thead> </thead>
{{#unless loading}} {{#unless loading}}
{{#each s in top_traffic_sources.data}} {{#each top_traffic_sources.data as |s|}}
<tbody> <tbody>
<tr> <tr>
<td class="title">{{s.domain}}</td> <td class="title">{{s.domain}}</td>
@ -282,7 +282,7 @@
</tr> </tr>
</thead> </thead>
{{#unless loading}} {{#unless loading}}
{{#each r in top_referrers.data}} {{#each top_referrers.data as |r|}}
<tbody> <tbody>
<tr> <tr>
<td class="title">{{#link-to 'adminUser' r.user_id r.username}}{{unbound r.username}}{{/link-to}}</td> <td class="title">{{#link-to 'adminUser' r.user_id r.username}}{{unbound r.username}}{{/link-to}}</td>

View file

@ -18,7 +18,7 @@
<td>{{text-field value=filter.skipped_reason placeholderKey="admin.email.logs.filters.skipped_reason_placeholder"}}</td> <td>{{text-field value=filter.skipped_reason placeholderKey="admin.email.logs.filters.skipped_reason_placeholder"}}</td>
</tr> </tr>
{{#each l in model}} {{#each model as |l|}}
<tr> <tr>
<td>{{format-date l.created_at}}</td> <td>{{format-date l.created_at}}</td>
<td> <td>

View file

@ -16,7 +16,7 @@
<td>{{text-field value=filter.subject placeholderKey="admin.email.incoming_emails.filters.subject_placeholder"}}</td> <td>{{text-field value=filter.subject placeholderKey="admin.email.incoming_emails.filters.subject_placeholder"}}</td>
</tr> </tr>
{{#each email in model}} {{#each model as |email|}}
<tr> <tr>
<td class="time">{{format-date email.created_at}}</td> <td class="time">{{format-date email.created_at}}</td>
<td class="username"> <td class="username">
@ -32,10 +32,10 @@
</div> </div>
</td> </td>
<td class="addresses"> <td class="addresses">
{{#each to in email.to_addresses}} {{#each email.to_addresses as |to|}}
<p><a href="mailto:{{unbound to}}" title="TO">{{unbound to}}</a></p> <p><a href="mailto:{{unbound to}}" title="TO">{{unbound to}}</a></p>
{{/each}} {{/each}}
{{#each cc in email.cc_addresses}} {{#each email.cc_addresses as |cc|}}
<p><a href="mailto:{{unbound cc}}" title="CC">{{unbound cc}}</a></p> <p><a href="mailto:{{unbound cc}}" title="CC">{{unbound cc}}</a></p>
{{/each}} {{/each}}
</td> </td>

View file

@ -18,7 +18,7 @@
<td>{{text-field value=filter.error placeholderKey="admin.email.incoming_emails.filters.error_placeholder"}}</td> <td>{{text-field value=filter.error placeholderKey="admin.email.incoming_emails.filters.error_placeholder"}}</td>
</tr> </tr>
{{#each email in model}} {{#each model as |email|}}
<tr> <tr>
<td class="time">{{format-date email.created_at}}</td> <td class="time">{{format-date email.created_at}}</td>
<td class="username"> <td class="username">
@ -38,10 +38,10 @@
</div> </div>
</td> </td>
<td class="addresses"> <td class="addresses">
{{#each to in email.to_addresses}} {{#each email.to_addresses as |to|}}
<p><a href="mailto:{{unbound to}}" title="TO">{{unbound to}}</a></p> <p><a href="mailto:{{unbound to}}" title="TO">{{unbound to}}</a></p>
{{/each}} {{/each}}
{{#each cc in email.cc_addresses}} {{#each email.cc_addresses as |cc|}}
<p><a href="mailto:{{unbound cc}}" title="CC">{{unbound cc}}</a></p> <p><a href="mailto:{{unbound cc}}" title="CC">{{unbound cc}}</a></p>
{{/each}} {{/each}}
</td> </td>

View file

@ -18,7 +18,7 @@
<td>{{text-field value=filter.reply_key placeholderKey="admin.email.logs.filters.reply_key_placeholder"}}</td> <td>{{text-field value=filter.reply_key placeholderKey="admin.email.logs.filters.reply_key_placeholder"}}</td>
</tr> </tr>
{{#each l in model}} {{#each model as |l|}}
<tr> <tr>
<td>{{format-date l.created_at}}</td> <td>{{format-date l.created_at}}</td>
<td> <td>

View file

@ -18,7 +18,7 @@
<td>{{text-field value=filter.skipped_reason placeholderKey="admin.email.logs.filters.skipped_reason_placeholder"}}</td> <td>{{text-field value=filter.skipped_reason placeholderKey="admin.email.logs.filters.skipped_reason_placeholder"}}</td>
</tr> </tr>
{{#each l in model}} {{#each model as |l|}}
<tr> <tr>
<td>{{format-date l.created_at}}</td> <td>{{format-date l.created_at}}</td>
<td> <td>

View file

@ -4,7 +4,7 @@
<td>{{delivery_method}}</td> <td>{{delivery_method}}</td>
</tr> </tr>
{{#each s in model.settings}} {{#each model.settings as |s|}}
<tr> <tr>
<th style='width: 25%'>{{s.name}}</th> <th style='width: 25%'>{{s.name}}</th>
<td>{{s.value}}</td> <td>{{s.value}}</td>

View file

@ -16,7 +16,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{{#each e in controller}} {{#each controller as |e|}}
<tr> <tr>
<th><img class="emoji" src="{{unbound e.url}}" title="{{unbound e.name}}"></th> <th><img class="emoji" src="{{unbound e.url}}" title="{{unbound e.name}}"></th>
<th>:{{e.name}}:</th> <th>:{{e.name}}:</th>

View file

@ -42,7 +42,7 @@
<td class='flaggers'> <td class='flaggers'>
<table> <table>
<tbody> <tbody>
{{#each flagger in flaggedPost.flaggers}} {{#each flaggedPost.flaggers as |flagger|}}
<tr> <tr>
<td class='avatar'> <td class='avatar'>
{{#link-to 'adminUser' flagger.user}} {{#link-to 'adminUser' flagger.user}}
@ -67,7 +67,7 @@
{{#if adminOldFlagsView}} {{#if adminOldFlagsView}}
<table> <table>
<tbody> <tbody>
{{#each flagger in flaggedPost.flaggers}} {{#each flaggedPost.flaggers as |flagger|}}
<tr> <tr>
<td class='avatar'> <td class='avatar'>
{{#link-to 'adminUser' flagger.disposedBy}} {{#link-to 'adminUser' flagger.disposedBy}}
@ -101,7 +101,7 @@
</tr> </tr>
{{/if}} {{/if}}
{{#each c in flaggedPost.conversations}} {{#each flaggedPost.conversations as |c|}}
<tr class='message'> <tr class='message'>
<td></td> <td></td>
<td colspan="3"> <td colspan="3">

View file

@ -2,7 +2,7 @@
<div class='content-list span6'> <div class='content-list span6'>
<h3>{{i18n 'admin.groups.edit'}}</h3> <h3>{{i18n 'admin.groups.edit'}}</h3>
<ul> <ul>
{{#each group in controller}} {{#each controller as |group|}}
<li> <li>
{{#link-to "adminGroup" group.type group.name}}{{group.name}} {{#link-to "adminGroup" group.type group.name}}{{group.name}}
{{#if group.userCountDisplay}} {{#if group.userCountDisplay}}

View file

@ -34,7 +34,7 @@
{{i18n 'admin.badges.preview.sample'}} {{i18n 'admin.badges.preview.sample'}}
</p> </p>
<ul> <ul>
{{#each html in processed_sample}} {{#each processed_sample as |html|}}
<li>{{{html}}}</li> <li>{{{html}}}</li>
{{/each}} {{/each}}
</ul> </ul>

View file

@ -1,7 +1,7 @@
<div class="modal-body"> <div class="modal-body">
<div> <div>
<ul class='badge-groupings'> <ul class='badge-groupings'>
{{#each wc in workingCopy}} {{#each workingCopy as |wc|}}
<li> <li>
{{#if wc.editing}} {{#if wc.editing}}
{{input value=wc.name}} {{input value=wc.name}}

View file

@ -21,7 +21,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{{#each plugin in controller}} {{#each controller as |plugin|}}
<tr> <tr>
<td> <td>
{{#if plugin.url}} {{#if plugin.url}}

View file

@ -2,7 +2,7 @@
<ul class="nav nav-stacked"> <ul class="nav nav-stacked">
{{nav-item route='adminPlugins.index' label="admin.plugins.title"}} {{nav-item route='adminPlugins.index' label="admin.plugins.title"}}
{{#each route in adminRoutes}} {{#each adminRoutes as |route|}}
{{nav-item route=route.full_location label=route.label}} {{nav-item route=route.full_location label=route.label}}
{{/each}} {{/each}}
</ul> </ul>

View file

@ -37,7 +37,7 @@
<th>{{model.yaxis}}</th> <th>{{model.yaxis}}</th>
</tr> </tr>
{{#each row in model.dataReversed}} {{#each model.dataReversed as |row|}}
<tr> <tr>
<td>{{row.x}}</td> <td>{{row.x}}</td>
<td> <td>

View file

@ -14,7 +14,7 @@
<div class="admin-nav pull-left"> <div class="admin-nav pull-left">
<ul class="nav nav-stacked"> <ul class="nav nav-stacked">
{{#each category in controller}} {{#each controller as |category|}}
{{#link-to 'adminSiteSettingsCategory' category.nameKey tagName='li' class=category.nameKey}} {{#link-to 'adminSiteSettingsCategory' category.nameKey tagName='li' class=category.nameKey}}
{{#link-to 'adminSiteSettingsCategory' category.nameKey class=category.nameKey}} {{#link-to 'adminSiteSettingsCategory' category.nameKey class=category.nameKey}}
{{category.name}} {{category.name}}

View file

@ -128,7 +128,7 @@
{{#if userFields}} {{#if userFields}}
<section class='details'> <section class='details'>
{{#each uf in userFields}} {{#each userFields as |uf|}}
<div class='display-row'> <div class='display-row'>
<div class='field'>{{uf.name}}</div> <div class='field'>{{uf.name}}</div>
<div class='value'> <div class='value'>

View file

@ -41,7 +41,7 @@
<th>&nbsp;</th> <th>&nbsp;</th>
</tr> </tr>
{{#each user in model}} {{#each model as |user|}}
<tr {{bind-attr class="user.selected user.active::not-activated"}}> <tr {{bind-attr class="user.selected user.active::not-activated"}}>
{{#if controller.showApproval}} {{#if controller.showApproval}}
<td> <td>

View file

@ -40,7 +40,7 @@
}; };
}; };
// #each .. in support // #each .. in support (as format is transformed to this)
RawHandlebars.registerHelper('each', function(localName,inKeyword,contextName,options){ RawHandlebars.registerHelper('each', function(localName,inKeyword,contextName,options){
var list = Em.get(this, contextName); var list = Em.get(this, contextName);
var output = []; var output = [];
@ -68,6 +68,13 @@
RawHandlebars.JavaScriptCompiler.prototype.compiler = RawHandlebars.JavaScriptCompiler; RawHandlebars.JavaScriptCompiler.prototype.compiler = RawHandlebars.JavaScriptCompiler;
RawHandlebars.JavaScriptCompiler.prototype.namespace = "Discourse.EmberCompatHandlebars"; RawHandlebars.JavaScriptCompiler.prototype.namespace = "Discourse.EmberCompatHandlebars";
function buildPath(blk, args) {
return $.extend({ type: "PathExpression",
data: false,
depth: blk.path.depth,
loc: blk.path.loc }, args);
}
function replaceGet(ast) { function replaceGet(ast) {
var visitor = new Handlebars.Visitor(); var visitor = new Handlebars.Visitor();
visitor.mutating = true; visitor.mutating = true;
@ -75,19 +82,25 @@
visitor.MustacheStatement = function(mustache) { visitor.MustacheStatement = function(mustache) {
if (!(mustache.params.length || mustache.hash)) { if (!(mustache.params.length || mustache.hash)) {
mustache.params[0] = mustache.path; mustache.params[0] = mustache.path;
mustache.path = { mustache.path = buildPath(mustache, { parts: ['get'], original: 'get', strict: true, falsy: true });
type: "PathExpression",
data: false,
depth: mustache.path.depth,
parts: ["get"],
original: "get",
loc: mustache.path.loc,
strict: true,
falsy: true
};
} }
return Handlebars.Visitor.prototype.MustacheStatement.call(this, mustache); return Handlebars.Visitor.prototype.MustacheStatement.call(this, mustache);
}; };
// rewrite `each x as |y|` as each y in x`
// This allows us to use the same syntax in all templates
visitor.BlockStatement = function(block) {
if (block.path.original === 'each' && block.params.length === 1) {
const paramName = block.program.blockParams[0];
block.params = [ buildPath(block, { original: paramName }),
{ type: "CommentStatement", value: "in" },
block.params[0] ];
delete block.program.blockParams;
}
return Handlebars.Visitor.prototype.BlockStatement.call(this, block);
};
visitor.accept(ast); visitor.accept(ast);
} }

View file

@ -2,7 +2,7 @@
<h1>{{i18n 'badges.title'}}</h1> <h1>{{i18n 'badges.title'}}</h1>
<div class='badge-groups'> <div class='badge-groups'>
{{#each bg in badgeGroups}} {{#each badgeGroups as |bg|}}
<div class='badge-grouping'> <div class='badge-grouping'>
<div class='title'> <div class='title'>
<h3>{{bg.badgeGrouping.displayName}}</h3> <h3>{{bg.badgeGrouping.displayName}}</h3>

View file

@ -1,6 +1,6 @@
<div class='autocomplete'> <div class='autocomplete'>
<ul> <ul>
{{#each option in options}} {{#each options as |option|}}
<li><a href>{{category-link option allowUncategorized="true" link="false"}}</a></li> <li><a href>{{category-link option allowUncategorized="true" link="false"}}</a></li>
{{/each}} {{/each}}
</ul> </ul>

View file

@ -1,6 +1,6 @@
<div class='autocomplete'> <div class='autocomplete'>
<ul> <ul>
{{#each option in options}} {{#each options as |option|}}
<li> <li>
{{#if option.model}} {{#if option.model}}
<a href>{{category-link option.model allowUncategorized="true" link="false"}}</a> <a href>{{category-link option.model allowUncategorized="true" link="false"}}</a>

View file

@ -8,7 +8,7 @@
{{#if view.noResults}} {{#if view.noResults}}
<p>{{i18n 'choose_topic.none_found'}}</p> <p>{{i18n 'choose_topic.none_found'}}</p>
{{else}} {{else}}
{{#each t in view.topics}} {{#each view.topics as |t|}}
<div class='controls'> <div class='controls'>
<label class='radio'> <label class='radio'>
<input type='radio' id="choose-topic-{{unbound t.id}}" name='choose_topic_id' {{action "chooseTopic" t target="view"}}>{{t.title}} <input type='radio' id="choose-topic-{{unbound t.id}}" name='choose_topic_id' {{action "chooseTopic" t target="view"}}>{{t.title}}

View file

@ -22,7 +22,7 @@
<div class='cat'><a {{bind-attr href=noCategoriesUrl}} data-drop-close="true" class='badge-category home'>{{i18n 'categories.no_subcategory'}}</a></div> <div class='cat'><a {{bind-attr href=noCategoriesUrl}} data-drop-close="true" class='badge-category home'>{{i18n 'categories.no_subcategory'}}</a></div>
{{/if}} {{/if}}
{{#if renderCategories}} {{#if renderCategories}}
{{#each c in categories}}<div class='cat'>{{category-link c allowUncategorized=true hideParent=subCategory}}</div>{{/each}} {{#each categories as |c|}}<div class='cat'>{{category-link c allowUncategorized=true hideParent=subCategory}}</div>{{/each}}
{{/if}} {{/if}}
</section> </section>
{{/if}} {{/if}}

View file

@ -60,7 +60,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{{#each a in other_accounts}} {{#each other_accounts as |a|}}
<tr> <tr>
<td>{{#link-to "adminUser" a}}{{avatar a usernamePath="user.username" imageSize="small"}}&nbsp;{{a.username}}{{/link-to}}</td> <td>{{#link-to "adminUser" a}}{{avatar a usernamePath="user.username" imageSize="small"}}&nbsp;{{a.username}}{{/link-to}}</td>
<td>{{a.trustLevel.id}}</td> <td>{{a.trustLevel.id}}</td>

View file

@ -1,3 +1,3 @@
{{#each b in buttons}} {{#each buttons as |b|}}
<button {{bind-attr class=":btn :btn-social b.name"}} {{action "externalLogin" b}}>{{b.title}}</button> <button {{bind-attr class=":btn :btn-social b.name"}} {{action "externalLogin" b}}>{{b.title}}</button>
{{/each}} {{/each}}

View file

@ -3,7 +3,7 @@
<div id='period-popup' {{bind-attr class="showPeriods::hidden :period-popup"}}> <div id='period-popup' {{bind-attr class="showPeriods::hidden :period-popup"}}>
<ul> <ul>
{{#each p in site.periods}} {{#each site.periods as |p|}}
<li><a href {{action "changePeriod" p}}>{{period-title p showDateRange=true}}</a></li> <li><a href {{action "changePeriod" p}}>{{period-title p showDateRange=true}}</a></li>
{{/each}} {{/each}}
</ul> </ul>

View file

@ -10,7 +10,7 @@
<section {{bind-attr class="expanded::hidden :category-dropdown-menu :chooser"}}> <section {{bind-attr class="expanded::hidden :category-dropdown-menu :chooser"}}>
<div class='cat'><a {{bind-attr href=allTagsUrl}} data-drop-close="true" class='badge-category home'>{{allTagsLabel}}</a></div> <div class='cat'><a {{bind-attr href=allTagsUrl}} data-drop-close="true" class='badge-category home'>{{allTagsLabel}}</a></div>
{{#if renderTags}} {{#if renderTags}}
{{#each t in tags}} {{#each tags as |t|}}
<div class='cat'> <div class='cat'>
{{tag-drop-link tagId=t category=currentCategory}} {{tag-drop-link tagId=t category=currentCategory}}
</div> </div>
@ -18,4 +18,4 @@
{{/if}} {{/if}}
</section> </section>
{{/if}} {{/if}}
{{/if}} {{/if}}

View file

@ -1,4 +1,4 @@
{{#each p in periods}} {{#each periods as |p|}}
{{#d-button action="changePeriod" actionParam=p}} {{#d-button action="changePeriod" actionParam=p}}
{{period-title p}} {{period-title p}}
{{/d-button}} {{/d-button}}

View file

@ -4,7 +4,7 @@
{{bound-category-link topic.category hideParent=true}} {{bound-category-link topic.category hideParent=true}}
{{#if siteSettings.tagging_enabled}} {{#if siteSettings.tagging_enabled}}
<div class="list-tags"> <div class="list-tags">
{{#each t in topic.tags}} {{#each topic.tags as |t|}}
{{discourse-tag t}} {{discourse-tag t}}
{{/each}} {{/each}}
</div> </div>

View file

@ -9,7 +9,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{{#each c in model.categories}} {{#each model.categories as |c|}}
<tr data-category_id='{{unbound c.id}}' {{bind-attr class="c.description_excerpt:has-description:no-description c.logo_url:has-logo:no-logo"}}> <tr data-category_id='{{unbound c.id}}' {{bind-attr class="c.description_excerpt:has-description:no-description c.logo_url:has-logo:no-logo"}}>
<td class='category' style={{border-color c.color}}> <td class='category' style={{border-color c.color}}>
<div> <div>
@ -41,7 +41,7 @@
<td class='stats' {{bind-attr title="c.topicStatsTitle"}}> <td class='stats' {{bind-attr title="c.topicStatsTitle"}}>
<table class="categoryStats"> <table class="categoryStats">
<tbody> <tbody>
{{#each s in c.topicCountStats}} {{#each c.topicCountStats as |s|}}
<tr> <tr>
<td class="value">{{s.value}}</td> <td class="value">{{s.value}}</td>
<td class="unit"> / {{s.unit}}</td> <td class="unit"> / {{s.unit}}</td>

View file

@ -1,6 +1,6 @@
<div class='autocomplete'> <div class='autocomplete'>
<ul> <ul>
{{#each option in options}} {{#each options as |option|}}
<li> <li>
<a href> <a href>
{{#if option.src}} {{#if option.src}}

View file

@ -1,12 +1,12 @@
<div class='emoji-modal'> <div class='emoji-modal'>
<ul class='toolbar'> <ul class='toolbar'>
{{#each item in toolbarItems}}<li><a title='{{item.title}}' {{#if item.selected}}class='selected'{{/if}} data-group-id='{{item.groupId}}'><img src='{{item.src}}' class='emoji'></a></li>{{/each}} {{#each toolbarItems as |item|}}<li><a title='{{item.title}}' {{#if item.selected}}class='selected'{{/if}} data-group-id='{{item.groupId}}'><img src='{{item.src}}' class='emoji'></a></li>{{/each}}
</ul> </ul>
<div class='emoji-table-wrapper'> <div class='emoji-table-wrapper'>
<table class='emoji-page'> <table class='emoji-page'>
{{#each row in rows}} {{#each rows as |row|}}
<tr> <tr>
{{#each item in row}} {{#each row as |item|}}
<td><a title='{{item.title}}'><img src='{{item.src}}' class='emoji'></a></td> <td><a title='{{item.title}}'><img src='{{item.src}}' class='emoji'></a></td>
{{/each}} {{/each}}
</tr> </tr>

View file

@ -1,6 +1,6 @@
<div class='autocomplete'> <div class='autocomplete'>
<ul> <ul>
{{#each option in options}} {{#each options as |option|}}
<li><a href>{{option.name}}</a></li> <li><a href>{{option.name}}</a></li>
{{/each}} {{/each}}
</ul> </ul>

View file

@ -1,5 +1,5 @@
<td class='posters'> <td class='posters'>
{{#each poster in posters}} {{#each posters as |poster|}}
<a href="{{poster.user.path}}" data-user-card="{{poster.user.username}}" class="{{poster.extras}}">{{avatar poster avatarTemplatePath="user.avatar_template" usernamePath="user.username" imageSize="small"}}</a> <a href="{{poster.user.path}}" data-user-card="{{poster.user.username}}" class="{{poster.extras}}">{{avatar poster avatarTemplatePath="user.avatar_template" usernamePath="user.username" imageSize="small"}}</a>
{{/each}} {{/each}}
</td> </td>

View file

@ -13,7 +13,7 @@
{{/if}} {{/if}}
{{#if topic.tags}} {{#if topic.tags}}
<div class='discourse-tags'> <div class='discourse-tags'>
{{#each tag in topic.visibleListTags}} {{#each topic.visibleListTags as |tag|}}
{{discourse-tag tag}} {{discourse-tag tag}}
{{/each}} {{/each}}
</div> </div>

View file

@ -2,7 +2,7 @@
{{#if topics}} {{#if topics}}
<table class="topic-list"> <table class="topic-list">
<tbody> <tbody>
{{#each t in topics}} {{#each topics as |t|}}
<tr {{bind-attr class="t.archived"}} data-topic-id={{t.id}}> <tr {{bind-attr class="t.archived"}} data-topic-id={{t.id}}>
<td> <td>
<div class='main-link'> <div class='main-link'>
@ -39,7 +39,7 @@
{{/unless}} {{/unless}}
{{#if controller.showParticipants}} {{#if controller.showParticipants}}
<div class='participants'> <div class='participants'>
{{#each p in participants}} {{#each participants as |p|}}
<a href="{{unbound p.user.path}}" class="{{unbound p.extras}}">{{avatar p usernamePath="user.username" imageSize="small"}}</a> <a href="{{unbound p.user.path}}" class="{{unbound p.extras}}">{{avatar p usernamePath="user.username" imageSize="small"}}</a>
{{/each}} {{/each}}
</div> </div>

View file

@ -15,7 +15,7 @@
</tr> </tr>
{{/if}} {{/if}}
{{#each t in c.topics}} {{#each c.topics as |t|}}
<tr {{bind-attr class="t.archived :category-topic-link"}}> <tr {{bind-attr class="t.archived :category-topic-link"}}>
<td class='main-link'> <td class='main-link'>
<div class='topic-inset'> <div class='topic-inset'>
@ -46,7 +46,7 @@
<tr class="subcategories-list"> <tr class="subcategories-list">
<td> <td>
<div class='subcategories'> <div class='subcategories'>
{{#each subcategory in c.subcategories}} {{#each c.subcategories as |subcategory|}}
{{category-link subcategory}} {{category-link subcategory}}
{{/each}} {{/each}}
</div> </div>

View file

@ -29,7 +29,7 @@
{{#if context.topic.tags}} {{#if context.topic.tags}}
<div class='discourse-tags'> <div class='discourse-tags'>
{{#each tag in context.topic.visibleListTags}} {{#each context.topic.visibleListTags as |tag|}}
{{discourse-tag tag}} {{discourse-tag tag}}
{{/each}} {{/each}}
</div> </div>

View file

@ -10,7 +10,7 @@
{{#if model.length}} {{#if model.length}}
<div class='total-rows'>{{i18n "directory.total_rows" count=model.totalRows}}</div> <div class='total-rows'>{{i18n "directory.total_rows" count=model.totalRows}}</div>
{{#each ic in model itemController="directory-item"}} {{#each model itemController="directory-item"}}
<div class="user {{if ic.me 'me'}}"> <div class="user {{if ic.me 'me'}}">
{{#with ic.model as |it|}} {{#with ic.model as |it|}}
{{user-info user=it.user}} {{user-info user=it.user}}

View file

@ -1,4 +1,4 @@
{{#each level in notificationLevels}} {{#each notificationLevels as |level|}}
<div class='controls'> <div class='controls'>
<label class='radio'> <label class='radio'>
{{radio-button value=level.id name="notification_level" selection=controller.notificationLevelId}} <strong>{{unbound level.name}}</strong> {{radio-button value=level.id name="notification_level" selection=controller.notificationLevelId}} <strong>{{unbound level.name}}</strong>

View file

@ -81,7 +81,7 @@
{{#if userFields}} {{#if userFields}}
<div class='user-fields'> <div class='user-fields'>
{{#each f in userFields}} {{#each userFields as |f|}}
{{user-field field=f.field value=f.value}} {{user-field field=f.field value=f.value}}
{{/each}} {{/each}}
</div> </div>

View file

@ -8,7 +8,7 @@
</div> </div>
<div id='modal-alert'></div> <div id='modal-alert'></div>
{{outlet "modalBody"}} {{outlet "modalBody"}}
{{#each error in errors}} {{#each errors as |error|}}
<div class="alert alert-error"> <div class="alert alert-error">
<button class="close" data-dismiss="alert">×</button> <button class="close" data-dismiss="alert">×</button>
{{error}} {{error}}

View file

@ -10,7 +10,7 @@
<div class="share-for-touch"><div class="overflow-ellipsis"><a></a></div></div> <div class="share-for-touch"><div class="overflow-ellipsis"><a></a></div></div>
</div> </div>
{{#each s in sources}} {{#each sources as |s|}}
{{share-source source=s title=view.title action="share"}} {{share-source source=s title=view.title action="share"}}
{{/each}} {{/each}}

View file

@ -11,7 +11,7 @@
</div> </div>
<div class='tag-list'> <div class='tag-list'>
{{#each tag in sortedTags}} {{#each sortedTags as |tag|}}
<div class='tag-box'> <div class='tag-box'>
{{discourse-tag tag.id}} <span class='tag-count'>x {{tag.count}}</span> {{discourse-tag tag.id}} <span class='tag-count'>x {{tag.count}}</span>
</div> </div>

View file

@ -1,7 +1,7 @@
{{~#if view.renderDiv ~}} {{~#if view.renderDiv ~}}
<div class='topic-statuses'> <div class='topic-statuses'>
{{/if ~}} {{/if ~}}
{{~#each status in view.statuses ~}} {{~#each view.statuses as |status|~}}
{{~#if status.href ~}} {{~#if status.href ~}}
<a href='{{status.href}}' title='{{status.title}}' class='topic-status {{status.extraClasses}}'><i class='fa fa-{{status.icon}}'></i></a> <a href='{{status.href}}' title='{{status.title}}' class='topic-status {{status.extraClasses}}'><i class='fa fa-{{status.icon}}'></i></a>
{{~else ~}} {{~else ~}}

View file

@ -86,7 +86,7 @@
{{#if publicUserFields}} {{#if publicUserFields}}
<div class="public-user-fields"> <div class="public-user-fields">
{{#each uf in publicUserFields}} {{#each publicUserFields as |uf|}}
{{#if uf.value}} {{#if uf.value}}
<div class="public-user-field {{uf.field.dasherized_name}}"> <div class="public-user-field {{uf.field.dasherized_name}}">
<span class="user-field-name">{{uf.field.name}}:</span> <span class="user-field-name">{{uf.field.name}}:</span>
@ -99,7 +99,7 @@
{{#if showBadges}} {{#if showBadges}}
<div class="badge-section"> <div class="badge-section">
{{#each ub in user.featured_user_badges}} {{#each user.featured_user_badges as |ub|}}
{{user-badge badge=ub.badge user=user}} {{user-badge badge=ub.badge user=user}}
{{/each}} {{/each}}
{{#if showMoreBadges}} {{#if showMoreBadges}}

View file

@ -45,7 +45,7 @@
<th colspan="6">{{i18n 'user.invited.sent'}}</th> <th colspan="6">{{i18n 'user.invited.sent'}}</th>
{{/if}} {{/if}}
</tr> </tr>
{{#each invite in model.invites}} {{#each model.invites as |invite|}}
<tr> <tr>
{{#if invite.user}} {{#if invite.user}}
<td> <td>

View file

@ -1,6 +1,6 @@
<div class='autocomplete'> <div class='autocomplete'>
<ul> <ul>
{{#each user in options.users}} {{#each options.users as |user|}}
<li> <li>
<a href> <a href>
{{avatar user imageSize="tiny"}} {{avatar user imageSize="tiny"}}
@ -10,7 +10,7 @@
</li> </li>
{{/each}} {{/each}}
{{#if options.groups}} {{#if options.groups}}
{{#each group in options.groups}} {{#each options.groups as |group|}}
<li> <li>
<a href> <a href>
<i class='fa fa-users'></i> <i class='fa fa-users'></i>

View file

@ -1,5 +1,5 @@
{{#user-stream stream=model}} {{#user-stream stream=model}}
{{#each p in model.content}} {{#each model.content as |p|}}
<div {{bind-attr class=":item p.hidden p.deleted p.moderator_action"}}> <div {{bind-attr class=":item p.hidden p.deleted p.moderator_action"}}>
<div class="clearfix info"> <div class="clearfix info">
<a href="{{unbound p.usernameUrl}}" class="avatar-link"> <a href="{{unbound p.usernameUrl}}" class="avatar-link">

View file

@ -137,7 +137,7 @@
</div> </div>
</div> </div>
{{#each uf in userFields}} {{#each userFields as |uf|}}
{{user-field field=uf.field value=uf.value}} {{user-field field=uf.field value=uf.value}}
{{/each}} {{/each}}
<div class='clearfix'></div> <div class='clearfix'></div>

View file

@ -20,7 +20,7 @@
<h3 class='stats-title'>{{i18n "user.summary.top_replies"}}</h3> <h3 class='stats-title'>{{i18n "user.summary.top_replies"}}</h3>
{{#if model.replies.length}} {{#if model.replies.length}}
<ul> <ul>
{{#each reply in model.replies}} {{#each model.replies as |reply|}}
<li> <li>
<span class='topic-info'> <span class='topic-info'>
{{format-date reply.createdAt format="tiny" noTitle="true"}} {{format-date reply.createdAt format="tiny" noTitle="true"}}
@ -45,7 +45,7 @@
<h3 class='stats-title'>{{i18n "user.summary.top_topics"}}</h3> <h3 class='stats-title'>{{i18n "user.summary.top_topics"}}</h3>
{{#if model.topics.length}} {{#if model.topics.length}}
<ul> <ul>
{{#each topic in model.topics}} {{#each model.topics as |topic|}}
<li> <li>
<span class='topic-info'> <span class='topic-info'>
{{format-date topic.createdAt format="tiny" noTitle="true"}} {{format-date topic.createdAt format="tiny" noTitle="true"}}
@ -73,7 +73,7 @@
<h3 class='stats-title'>{{i18n "user.summary.top_links"}}</h3> <h3 class='stats-title'>{{i18n "user.summary.top_links"}}</h3>
{{#if model.links.length}} {{#if model.links.length}}
<ul> <ul>
{{#each link in model.links}} {{#each model.links as |link|}}
<li> <li>
<a class='domain' <a class='domain'
href='{{unbound link.url}}' href='{{unbound link.url}}'
@ -96,7 +96,7 @@
<h3 class='stats-title'>{{i18n "user.summary.most_liked_by"}}</h3> <h3 class='stats-title'>{{i18n "user.summary.most_liked_by"}}</h3>
{{#if model.most_liked_by_users.length}} {{#if model.most_liked_by_users.length}}
<ul> <ul>
{{#each user in model.most_liked_by_users}} {{#each model.most_liked_by_users as |user|}}
<li> <li>
{{#user-info user=user}} {{#user-info user=user}}
{{fa-icon "heart"}} {{fa-icon "heart"}}
@ -113,7 +113,7 @@
<div class='top-section badges-section'> <div class='top-section badges-section'>
<h3 class='stats-title'>{{i18n "user.summary.top_badges"}}</h3> <h3 class='stats-title'>{{i18n "user.summary.top_badges"}}</h3>
{{#each badge in model.badges}} {{#each model.badges as |badge|}}
{{badge-card badge=badge count=badge.count navigateOnClick="true" username=user.username_lower}} {{badge-card badge=badge count=badge.count navigateOnClick="true" username=user.username_lower}}
{{else}} {{else}}
<p>{{i18n "user.summary.no_badges"}}</p> <p>{{i18n "user.summary.no_badges"}}</p>

View file

@ -88,7 +88,7 @@
{{#if publicUserFields}} {{#if publicUserFields}}
<div class="public-user-fields"> <div class="public-user-fields">
{{#each uf in publicUserFields}} {{#each publicUserFields as |uf|}}
{{#if uf.value}} {{#if uf.value}}
<div class="public-user-field {{uf.field.dasherized_name}}"> <div class="public-user-field {{uf.field.dasherized_name}}">
<span class="user-field-name">{{uf.field.name}}</span>: <span class="user-field-name">{{uf.field.name}}</span>:
@ -139,7 +139,7 @@
{{#if model.displayGroups}} {{#if model.displayGroups}}
<dt>{{i18n 'groups.title' count=model.displayGroups.length}}</dt> <dt>{{i18n 'groups.title' count=model.displayGroups.length}}</dt>
<dd class='groups'> <dd class='groups'>
{{#each group in model.displayGroups}} {{#each model.displayGroups as |group|}}
<span>{{#link-to 'group' group class="group-link"}}{{group.name}}{{/link-to}}</span> <span>{{#link-to 'group' group class="group-link"}}{{group.name}}{{/link-to}}</span>
{{/each}} {{/each}}
</dd> </dd>

View file

@ -1,4 +1,4 @@
{{#each option in options}} {{#each options as |option|}}
<li> <li>
<div class="option"> <div class="option">
<p> <p>

View file

@ -8,7 +8,7 @@
{{/if}} {{/if}}
{{else}} {{else}}
<ul> <ul>
{{#each option in poll.options}} {{#each poll.options as |option|}}
{{poll-option option=option toggle="toggleOption"}} {{poll-option option=option toggle="toggleOption"}}
{{/each}} {{/each}}
</ul> </ul>

View file

@ -4605,4 +4605,4 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ } /***/ }
/******/ ]) /******/ ])
}); });
; ;