Single table for scheduled and additional rooms
Collapse the "scheduled" and "additional" tracks tables into a single table. This extends the "roomcode" helper to be smart enough to guess what the cell should contain. Change-Id: I60887d5da0878820817f17c9f4fd1aa20f546aac
This commit is contained in:
parent
05ae383f69
commit
adbd5e4957
|
@ -78,45 +78,10 @@
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tr></thead>
|
</tr></thead>
|
||||||
{{#each @root.scheduled as |schedule room|}}
|
{{#each @root.scheduled as |schedule room|}}
|
||||||
|
{{#if (roomactive @root.scheduled @root.additional room times)}}
|
||||||
<tr><td>{{room}}</td>
|
<tr><td>{{room}}</td>
|
||||||
{{#each (lookup @root.slots day) as |time|}}
|
{{#each (lookup @root.slots day) as |time|}}
|
||||||
<td><span class="label label-primary {{lookup schedule time.name}}">{{lookup schedule time.name}}</td>
|
<td>{{ roomcode @root.scheduled @root.additional room time.name }}</td>
|
||||||
{{/each}}
|
|
||||||
</tr>
|
|
||||||
{{/each}}
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><h3 class="panel-title">Additional tracks</h3></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<ul class="nav nav-tabs" role="tablist">
|
|
||||||
{{#each slots as |times day|}}
|
|
||||||
<li role="presentation"><a id='at{{day}}' href="#a{{day}}" aria-controls="a{{day}}" role="tab" data-toggle="tab">{{day}}</a></li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
<!-- Tab panes -->
|
|
||||||
<div class="tab-content">
|
|
||||||
{{#each slots as |times day|}}
|
|
||||||
<div role="tabpanel" class="tab-pane" id="a{{day}}">
|
|
||||||
<table class="table table-condensed">
|
|
||||||
<thead><tr><th></th>
|
|
||||||
{{#each times as |time|}}
|
|
||||||
<th>{{time.desc}}</th>
|
|
||||||
{{/each}}
|
|
||||||
</tr></thead>
|
|
||||||
{{#each @root.additional as |schedule room|}}
|
|
||||||
{{#if (roomactive schedule times)}}
|
|
||||||
<tr><td>{{room}}</td>
|
|
||||||
{{#each (lookup @root.slots day) as |time|}}
|
|
||||||
{{#if (lookup schedule time.name)}}
|
|
||||||
<td><span class="label label-primary {{lookup schedule time.name}}">{{lookup schedule time.name}}</td>
|
|
||||||
{{else}}
|
|
||||||
<td><small><i>{{roomcode schedule room time.name}}</i></small></td>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tr>
|
</tr>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -125,7 +90,7 @@
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<small><i>Use #TRACK book SLOTREF to book one of those empty slots</i></small></td>
|
<small><i>Use '#TRACK book SLOTREF' to book one of the empty slots with the ptgbot</i></small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-muted">Content on this page is being driven by room operators through the openstackptg bot on the #openstack-ptg IRC channel. It was last refreshed on {{timestamp}}.</p>
|
<p class="text-muted">Content on this page is being driven by room operators through the openstackptg bot on the #openstack-ptg IRC channel. It was last refreshed on {{timestamp}}.</p>
|
||||||
|
|
36
html/ptg.js
36
html/ptg.js
|
@ -18,20 +18,44 @@ Handlebars.registerHelper('hashtag', function(options) {
|
||||||
return new Handlebars.SafeString(sentence);
|
return new Handlebars.SafeString(sentence);
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper('roomactive', function(schedule, times) {
|
Handlebars.registerHelper('roomactive',
|
||||||
|
function(scheduled, additional, room, times) {
|
||||||
for (var i=0; i<times.length; i++) {
|
for (var i=0; i<times.length; i++) {
|
||||||
if (schedule[times[i]['name']] != undefined) {
|
if (scheduled[room][times[i]] != "") {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (additional[room]) {
|
||||||
|
if (additional[room][times[i]['name']] != undefined) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper('roomcode', function(schedule, room, timecode) {
|
Handlebars.registerHelper('roomcode',
|
||||||
if (schedule[timecode] == "") {
|
function(scheduled, additional, room, timecode) {
|
||||||
return room + "-" + timecode;
|
var cell = '';
|
||||||
|
content = scheduled[room][timecode];
|
||||||
|
if ((content != undefined) && (content != '')) {
|
||||||
|
cell = '<span class="label label-primary ' + scheduled[room][timecode] +
|
||||||
|
'">' + scheduled[room][timecode];
|
||||||
|
return new Handlebars.SafeString(cell);
|
||||||
|
} else {
|
||||||
|
if (additional[room]) {
|
||||||
|
console.log(additional[room][timecode]);
|
||||||
|
if (additional[room][timecode] != undefined) {
|
||||||
|
if (additional[room][timecode] == "") {
|
||||||
|
cell = '<small><i>' + room + "-" + timecode + '</i></small>';
|
||||||
|
} else {
|
||||||
|
cell = '<span class="label label-primary ' +
|
||||||
|
additional[room][timecode] +
|
||||||
|
'">' + additional[room][timecode];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return "";
|
return new Handlebars.SafeString(cell);
|
||||||
});
|
});
|
||||||
|
|
||||||
// What is the day today ?
|
// What is the day today ?
|
||||||
|
|
Loading…
Reference in New Issue