Frontend for Movie API which is still a subset of ShowtimesTH API.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

108 lines
2.5 KiB

App = Ember.Application.create();
App.ApplicationRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('title', "Hello World");
},
actions: {
openInfoModal: function(content) {
this.controllerFor('movie').set('content', content);
return this.render('movie', {
into: 'application',
outlet: 'modal'
});
},
closeModal: function() {
return this.disconnectOutlet({
outlet: 'modal',
parentView: 'application'
});
}
}
});
// var restUrl = 'http://showtimes.everyday.in.th/api';
var restUrl = 'http://localhost:8888';
var today = new Date();
App.ApplicationController = Ember.Controller.extend({
appName: '#Movies'
});
App.Router.map(function() {
this.resource('movies');
});
// redirect '/' to 'groups' by default
App.IndexRoute = Ember.Route.extend({
beforeModel: function() {
this.transitionTo('movies');
}
});
/*App.MovieRoute = Ember.Route.extend({
model: function(params) {
return $.getJSON(restUrl+'/movie/'+params+'/').then(function(data) {
return data.objects.map(function(item) {
console.log("get movie: " + item);
return item;
});
});
}
});*/
App.MovieController = Ember.ObjectController.extend({
actions: {
close: function() {
return this.send('closeModal');
}
}
});
/*
* ModalComponent
*/
App.BaseModalComponent = Ember.Component.extend({
actions: {
ok: function() {
this.$('.modal').modal('hide');
this.sendAction('ok');
}
},
show: function(params) {
this.$('.modal').modal().on('hidden.bs.modal', function() {
this.sendAction('close');
}.bind(this));
}.on('didInsertElement')
});
App.MoviesRoute = Ember.Route.extend({
model: function(params) {
return $.getJSON(restUrl+'/movies/').then(function(data) {
return data.objects.map(function(movies) {
return movies;
});
});
}
});
App.MoviesView = Ember.View.extend({
didInsertElement: function() {
Ember.run.next(this, function() {
this.$('#container').isotope({
layoutMode: 'masonry',
itemSelector: '.thumbnail',
transitionDuration: '0.7s',
isResizeBound: true
});
});
}
});
Ember.Handlebars.helper('format-date', function(date) {
return moment(date).format('ll');
});