meteor-ionic/components/ionBody/ionBody.js
2014-12-27 17:24:39 -05:00

85 lines
2.4 KiB
JavaScript

Platform = {
isIOS: function () {
return (!!navigator.userAgent.match(/iPad/i) || !!navigator.userAgent.match(/iPhone/i) || !!navigator.userAgent.match(/iPod/i))
|| Session.get('platformOverride') === 'iOS';
},
isAndroid: function () {
return navigator.userAgent.indexOf('Android') > 0
|| Session.get('platformOverride') === 'Android';
}
};
Template.registerHelper('isIOS', function () {
return Platform.isIOS();
});
Template.registerHelper('isAndroid', function () {
return Platform.isAndroid();
});
Template.ionBody.helpers({
platformClasses: function () {
var classes = ['grade-a'];
if (Meteor.isCordova) {
classes.push('platform-cordova');
}
if (Meteor.isClient) {
classes.push('platform-web');
}
if ((Meteor.isCordova && Platform.isIOS()) || Session.get('platformOverride') === 'iOS') {
classes.push('platform-ios');
}
if ((Meteor.isCordova && Platform.isAndroid()) || Session.get('platformOverride') === 'Android') {
classes.push('platform-android');
}
return classes.join(' ');
}
});
Template.ionBody.events({
'click [data-ion-modal]': function (event, template) {
var templateName = $(event.currentTarget).data('ion-modal');
IonModal.open(templateName, $(event.currentTarget).data());
},
'click [data-ion-popover]': function (event, template) {
var templateName = $(event.currentTarget).data('ion-popover');
IonPopover.show(templateName, $(event.currentTarget).data(), event.currentTarget);
},
'click [data-nav-direction]': function (event, template) {
$('[data-nav-container]').addClass('nav-view-direction-' + $(event.target).data('nav-direction'));
$('[data-navbar-container]').addClass('nav-bar-direction-' + $(event.target).data('nav-direction'));
},
'click [data-ion-menu-toggle]': function (event, template) {
if (!IonSideMenu.snapper) {
return;
}
var direction;
var $el = $(event.target);
if ($el.data('ion-menu-toggle') !== '') {
direction = $el.data('ion-menu-toggle');
} else {
direction = 'left';
}
if(IonSideMenu.snapper.state().state === direction){
IonSideMenu.snapper.close();
} else {
IonSideMenu.snapper.open(direction);
}
},
'click [data-ion-menu-close]': function (event, template) {
if (!IonSideMenu.snapper) {
return;
}
IonSideMenu.snapper.close();
}
});