JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.pre/ember-1.0.pre.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0.beta6/handlebars.min.js"></script>
<script type="text/x-handlebars">
<div class="nav">
<p>
{{view Ember.Select
contentBinding="App.PostedPubsCampaignsController.content"
optionValuePath="content.id"
optionLabelPath="content.name"
selectionBinding="App.PostedPubsCampaignsController.selectedCampaign"
class="dd-campaign-response"
prompt="Please select a campaign"
}}
</p>
</div>
<div class="group all">
<div class="chart"><img src="/media/images2/css-ctacked-bar-graph.gif" /></div>
<div class="posts">
{{#view App.PostedPublicationsView}}
{{#each publication in App.PostedPublicationsController}}
<div class="post clearfix">
<div class="author">
<img class="avatar" src="{{unbound publication.avatar }}" />
<img class="icon" src="/media/images2/social-icons/{{unbound publication.type}}.png" />
</div>
<div class="message">
<p class="datetime">Posted on {{ publication.post_at }}</p>
<div class="content">
<p>{{ publication.body }}</p>
</div>
<div class="campaign">
<p class="name"><span class="campaign-name">{{ publication.campaign_name }}</span></p>
</div>
</div>
</div>
...
JavaScript
App = Ember.Application.create();
App.Signature = Ember.Object.extend();
App.Signature.reopenClass({
retrieveSignature: function(){
return $.ajax({
url: '/auth/',
});
}
});
App.Publication = Ember.Object.extend();
App.Publication.reopenClass({
postedPublications: [],
scheduledPublications: [],
list: function(posted){
var publicationClass = this;
var signaturePromise = App.Signature.retrieveSignature();
signaturePromise.done(function(signature){
var date_append = '';
var now = new Date();
var today = now.toISOString().slice(0,10);
if (posted) {
date_append = 'metrics=true&endDate=' + today;
}
else {
date_append = 'metrics=false&startDate=' + today;
}
var url = 'https://someserver.com/1/publications/list.json?';
url = url + date_append;
url = url + '&' + signature;
var publicationRetrieval = $.ajax({
url: url,
dataType: 'json'
});
publicationRetrieval.done(function(response){
response.publications.forEach(function(publication){
if (posted) {
publicationClass.postedPublications.addObject(App.Publication.create(publication))
} else {
publicationClass.scheduledPublications.addObject(App.Publication.create(publication))
}
}, this);
});
});
if (posted) {
return this.postedPublications;
} else {
return this.scheduledPublications;
}
}
});
App.Campaign = Ember.Object.extend();
App.Campaign.reopenClass({
campaigns: [],
publications: [],
getPublications: function(){
var campaignClass = this;
var signaturePromise = App.Signature.retrieveSignature();
...