summaryrefslogtreecommitdiff
path: root/www/external/origjs/ionic.content.banner.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/external/origjs/ionic.content.banner.js')
-rw-r--r--www/external/origjs/ionic.content.banner.js190
1 files changed, 0 insertions, 190 deletions
diff --git a/www/external/origjs/ionic.content.banner.js b/www/external/origjs/ionic.content.banner.js
deleted file mode 100644
index 900b96a6..00000000
--- a/www/external/origjs/ionic.content.banner.js
+++ /dev/null
@@ -1,190 +0,0 @@
-angular.module('jett.ionic.content.banner', ['ionic']);
-/* global angular */
-(function (angular) {
- 'use strict';
-
- angular.module('jett.ionic.content.banner')
- .directive('ionContentBanner', [
- '$interval',
- function ($interval) {
- return {
- restrict: 'E',
- scope: true,
- link: function ($scope, $element) {
- var stopInterval;
-
- $scope.currentIndex = 0;
-
- if ($scope.text.length > 1) {
- stopInterval = $interval(function () {
- $scope.currentIndex = ($scope.currentIndex < $scope.text.length - 1) ? $scope.currentIndex + 1 : 0;
- }, $scope.interval);
- }
-
- $scope.$on('$destroy', function() {
- $element.remove();
- if (stopInterval) {
- $interval.cancel(stopInterval);
- }
- });
- },
- template:
- '<div class="content-banner-text-wrapper">' +
- '<div ng-repeat="item in text track by $index" ng-class="{active: $index === currentIndex}" class="content-banner-text" ng-bind="item"></div>' +
- '</div>' +
- '<button class="content-banner-close button button-icon icon {{::icon}}" ng-click="close()"></button>'
- };
- }]);
-
-})(angular);
-
-/* global angular,ionic */
-/**
- * @ngdoc service
- * @name $ionicContentBanner
- * @module ionic
- * @description The Content Banner is an animated banner that will show specific information to a user.
- */
-(function (angular, ionic) {
- 'use strict';
-
- angular.module('jett.ionic.content.banner')
- .factory('$ionicContentBanner', [
- '$document',
- '$rootScope',
- '$compile',
- '$timeout',
- '$ionicPlatform',
- function ($document, $rootScope, $compile, $timeout, $ionicPlatform) {
-
- function isActiveView (node) {
- // walk up the child-parent node chain until we get to the root or the BODY
- while (node !== null && node.nodeName !== 'BODY') {
- var navView = node.getAttribute("nav-view");
-
- // as soon as we encounter a cached (parent) view then we know the view can't be active
- if (navView !== null && navView === 'cached') {
- return false;
- }
- node = node.parentNode;
- }
- // no cached parent seen, the view must be really active
- return true;
- }
-
- function getActiveView (body) {
- // check if there is an active modal
- var modal = body.querySelector('ion-modal-view[class*="ng-enter-active"]');
- if (modal != null) {
- // check if modal is not leaving
- if (modal.getAttribute('class').indexOf('ng-leave') == -1) {
- return modal;
- }
- }
- // get the candidate active views
- var views = body.querySelectorAll('ion-view[nav-view="active"]');
-
- // only one candidate, so we just take it
- if (views.length === 1) {
- return views[0];
- }
-
- // convert the NodeList to an array, filter it using 'isActiveView' and return the first element
- return Array.prototype.slice.call(views).filter(function (view) {
- return isActiveView(view);
- })[0];
- }
-
- /**
- * @ngdoc method
- * @name $ionicContentBanner#show
- * @description
- * Load and show a new content banner.
- */
- function contentBanner (opts) {
- var scope = $rootScope.$new(true);
-
- angular.extend(scope, {
- icon: 'ion-ios-close-empty',
- transition: 'vertical',
- interval: 7000,
- type: 'info',
- $deregisterBackButton: angular.noop,
- closeOnStateChange: true,
- autoClose: null
- }, opts);
-
- // Compile the template
- var classes = 'content-banner ' + scope.type + ' content-banner-transition-' + scope.transition;
- var element = scope.element = $compile('<ion-content-banner class="' + classes + '"></ion-content-banner>')(scope);
- var body = $document[0].body;
-
- var stateChangeListenDone = scope.closeOnStateChange ?
- $rootScope.$on('$stateChangeSuccess', function() { scope.close(); }) :
- angular.noop;
-
- scope.$deregisterBackButton = $ionicPlatform.registerBackButtonAction(
- function() {
- $timeout(scope.close);
- }, 300
- );
-
- scope.close = function() {
- if (scope.removed) {
- return;
- }
- scope.removed = true;
-
- ionic.requestAnimationFrame(function () {
- element.removeClass('content-banner-in');
-
- $timeout(function () {
- scope.$destroy();
- element.remove();
- body = stateChangeListenDone = null;
- }, 400);
- });
-
- scope.$deregisterBackButton();
- stateChangeListenDone();
- };
-
- scope.show = function() {
- if (scope.removed) {
- return;
- }
- // PP: get rid of querySelector
- if (getActiveView(body) !== undefined)
- getActiveView(body).querySelector('.scroll-content').appendChild(element[0]);
-
- ionic.requestAnimationFrame(function () {
- $timeout(function () {
- element.addClass('content-banner-in');
- //automatically close if autoClose is configured
- if (scope.autoClose) {
- $timeout(function () {
- scope.close();
- }, scope.autoClose, false);
- }
- }, 20, false);
- });
- };
-
- //set small timeout to let ionic set the active/cached view
- $timeout(function () {
- scope.show();
- }, 10, false);
-
- // Expose the scope on $ionContentBanner's return value for the sake of testing it.
- scope.close.$scope = scope;
-
- return scope.close;
- }
-
- return {
- show: contentBanner
- };
- }]);
-
-
-})(angular, ionic);