New modal service
This commit is contained in:
parent
b410b95acc
commit
f53a40a307
4 changed files with 163 additions and 15 deletions
|
|
@ -1,13 +1,13 @@
|
||||||
<ion-modal-view ng-controller="amazonCardDetailsController">
|
<ion-modal-view>
|
||||||
<ion-header-bar align-title="center" class="tab-bar">
|
<ion-header-bar align-title="center" class="tab-bar">
|
||||||
<button class="button button-clear button-positive"
|
<button class="button button-clear button-positive"
|
||||||
ng-click="cancel()">
|
ng-click="closeModal()">
|
||||||
Close
|
Close
|
||||||
</button>
|
</button>
|
||||||
<h1 class="title">Details</h1>
|
<h1 class="title">Details</h1>
|
||||||
</ion-header-bar>
|
</ion-header-bar>
|
||||||
|
|
||||||
<ion-content>
|
<ion-content ng-controller="amazonCardDetailsController">
|
||||||
|
|
||||||
<div class="header-modal text-center">
|
<div class="header-modal text-center">
|
||||||
<img src="img/a_generic.jpg" alt="Amazon.com Gift Card" width="230" ng-click="refreshGiftCard()">
|
<img src="img/a_generic.jpg" alt="Amazon.com Gift Card" width="230" ng-click="refreshGiftCard()">
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('amazonController',
|
angular.module('copayApp.controllers').controller('amazonController',
|
||||||
function($scope, $timeout, $ionicModal, $log, lodash, bwcError, amazonService, platformInfo, nodeWebkit) {
|
function($scope, $timeout, $log, lodash, bwcError, amazonService, platformInfo, nodeWebkit, modalService) {
|
||||||
|
|
||||||
if (platformInfo.isCordova && StatusBar.isVisible) {
|
if (platformInfo.isCordova && StatusBar.isVisible) {
|
||||||
StatusBar.backgroundColorByHexString("#4B6178");
|
StatusBar.backgroundColorByHexString("#4B6178");
|
||||||
|
|
@ -82,12 +82,11 @@ angular.module('copayApp.controllers').controller('amazonController',
|
||||||
var self = this;
|
var self = this;
|
||||||
$scope.card = card;
|
$scope.card = card;
|
||||||
|
|
||||||
$ionicModal.fromTemplateUrl('views/modals/amazon-card-details.html', {
|
modalService
|
||||||
scope: $scope
|
.popup('views/modals/amazon-card-details.html', $scope)
|
||||||
}).then(function(modal) {
|
.then(function(modal) {
|
||||||
$scope.amazonCardDetailsModal = modal;
|
modal.show();
|
||||||
$scope.amazonCardDetailsModal.show();
|
});
|
||||||
});
|
|
||||||
|
|
||||||
$scope.$on('UpdateAmazonList', function(event) {
|
$scope.$on('UpdateAmazonList', function(event) {
|
||||||
self.init();
|
self.init();
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ angular.module('copayApp.controllers').controller('amazonCardDetailsController',
|
||||||
remove: true
|
remove: true
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
$scope.$emit('UpdateAmazonList');
|
$scope.$emit('UpdateAmazonList');
|
||||||
$scope.cancel();
|
$scope.closeModal();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -59,8 +59,4 @@ angular.module('copayApp.controllers').controller('amazonCardDetailsController',
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.cancel = function() {
|
|
||||||
$scope.amazonCardDetailsModal.hide();
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
153
src/js/services/modalService.js
Normal file
153
src/js/services/modalService.js
Normal file
|
|
@ -0,0 +1,153 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('copayApp.services').service('modalService', function($rootScope, $log, $ionicModal, $ionicPopup, platformInfo) {
|
||||||
|
var isCordova = platformInfo.isCordova;
|
||||||
|
|
||||||
|
var _modalIonic = function(tpl, scope) {
|
||||||
|
var promise;
|
||||||
|
scope = scope || $rootScope.$new();
|
||||||
|
|
||||||
|
promise = $ionicModal.fromTemplateUrl(tpl, {
|
||||||
|
scope: scope
|
||||||
|
}).then(function(modal) {
|
||||||
|
scope.modal = modal;
|
||||||
|
return modal;
|
||||||
|
});
|
||||||
|
|
||||||
|
scope.openModal = function() {
|
||||||
|
scope.modal.show();
|
||||||
|
};
|
||||||
|
|
||||||
|
scope.closeModal = function() {
|
||||||
|
scope.modal.hide();
|
||||||
|
};
|
||||||
|
|
||||||
|
scope.$on('$destroy', function() {
|
||||||
|
scope.modal.remove();
|
||||||
|
});
|
||||||
|
|
||||||
|
return promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
var _ionicAlert = function(title, message, cb) {
|
||||||
|
if (!cb) cb = function() {};
|
||||||
|
var promise = $ionicPopup.alert({
|
||||||
|
title: title,
|
||||||
|
template: message
|
||||||
|
}).then(cb);
|
||||||
|
|
||||||
|
return promise;
|
||||||
|
};
|
||||||
|
|
||||||
|
var _ionicConfirm = function(title, message, cb) {
|
||||||
|
$ionicPopup.confirm({
|
||||||
|
title: title,
|
||||||
|
template: message
|
||||||
|
}).then(function(res) {
|
||||||
|
return cb(res);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var _ionicPrompt = function(title, message, opts, cb) {
|
||||||
|
opts = opts || {};
|
||||||
|
$ionicPopup.prompt({
|
||||||
|
title: title,
|
||||||
|
template: message,
|
||||||
|
inputType: opts.inputType || 'password',
|
||||||
|
inputPlaceholder: opts.inputPlaceholder || 'Your password'
|
||||||
|
}).then(function(res) {
|
||||||
|
return cb(res)
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var _cordovaAlert = function(title, message, cb) {
|
||||||
|
if (!cb) cb = function() {};
|
||||||
|
navigator.notification.alert(message, cb, title);
|
||||||
|
};
|
||||||
|
|
||||||
|
var _cordovaConfirm = function(title, message, cb) {
|
||||||
|
var onConfirm = function (buttonIndex) {
|
||||||
|
if (buttonIndex == 1) return cb(true);
|
||||||
|
else return cb(false);
|
||||||
|
}
|
||||||
|
navigator.notification.confirm(message, onConfirm, title);
|
||||||
|
};
|
||||||
|
|
||||||
|
var _cordovaPrompt = function(title, message, cb) {
|
||||||
|
var onPrompt = function (results) {
|
||||||
|
if (results.buttonIndex) return cb(results.input1);
|
||||||
|
else return cb();
|
||||||
|
}
|
||||||
|
navigator.notification.prompt(message, onPrompt, title);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a simple alert popup
|
||||||
|
*
|
||||||
|
* @param {String} Title
|
||||||
|
* @param {String} Message
|
||||||
|
* @param {Callback} Function
|
||||||
|
* @returns {Promise}
|
||||||
|
*/
|
||||||
|
|
||||||
|
this.showAlert = function(title, msg, cb) {
|
||||||
|
var message = msg.message ? msg.message : msg;
|
||||||
|
$log.warn(title + ": " + message);
|
||||||
|
|
||||||
|
if (isCordova)
|
||||||
|
_cordovaAlert(title, message, cb);
|
||||||
|
else
|
||||||
|
_ionicAlert(title, message, cb);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a simple confirm popup
|
||||||
|
*
|
||||||
|
* @param {String} Title
|
||||||
|
* @param {String} Message
|
||||||
|
* @param {Callback} Function
|
||||||
|
* @returns {Callback} OK: true, Cancel: false
|
||||||
|
*/
|
||||||
|
|
||||||
|
this.showConfirm = function(title, message, cb) {
|
||||||
|
$log.warn(title + ": " + message);
|
||||||
|
|
||||||
|
if (isCordova)
|
||||||
|
_cordovaConfirm(title, message, cb);
|
||||||
|
else
|
||||||
|
_ionicConfirm(title, message, cb);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a simple prompt popup
|
||||||
|
*
|
||||||
|
* @param {String} Title
|
||||||
|
* @param {String} Message
|
||||||
|
* @param {Object} Object{ inputType, inputPlaceholder }
|
||||||
|
* @param {Callback} Function
|
||||||
|
* @returns {Callback} Return the value of the input if user presses OK
|
||||||
|
*/
|
||||||
|
|
||||||
|
this.showPrompt = function(title, message, opts, cb) {
|
||||||
|
$log.warn(title + ": " + message);
|
||||||
|
|
||||||
|
if (isCordova)
|
||||||
|
_cordovaPrompt(title, message, cb);
|
||||||
|
else
|
||||||
|
_ionicPrompt(title, message, opts, cb);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a modal popup
|
||||||
|
*
|
||||||
|
* @param {String} TemplateURL
|
||||||
|
* @param {Object} Scope
|
||||||
|
* @returns {Promise}
|
||||||
|
*/
|
||||||
|
|
||||||
|
this.showModal = function(tpl, scope) {
|
||||||
|
return _modalIonic(tpl, scope);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue