summaryrefslogtreecommitdiff
path: root/www/lib/ionic-native-transitions/test/controller.js
blob: a951d5f95382e520b7cc4ee3afad8a41ebeec8f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
export default function (
    $scope,
    $rootScope,
    $log,
    $ionicNativeTransitions,
    $ionicModal,
    $ionicPlatform,
    $ionicHistory
) {

    'ngInject';

    var vm = this;
    vm.modal = null;
    vm.isEnable = $ionicNativeTransitions.isEnabled();
    vm.enable = enable;
    vm.disable = disable;
    vm.stateGo = stateGo;
    vm.sameStateGo = sameStateGo;
    vm.locationUrl = locationUrl;
    vm.disableWithoutDisablingIonicTransitions = disableWithoutDisablingIonicTransitions;
    vm.enableBothTransitions = enableBothTransitions;
    vm.openModal = openModal;
    vm.goBack = goBack;
    vm.stateError = stateError;

    $scope.$on('$ionicView.loaded', function (event, data) {
        console.log('$ionicView.loaded');
    });

    $scope.$on('$ionicView.enter', function (event, data) {
        console.log('$ionicView.enter');
    });

    $rootScope.$on('ionicNativeTransitions.success', function () {
        $log.info('yeah!');
    });

    $rootScope.$on('ionicNativeTransitions.error', function () {
        $log.info(':(');
    });

    $rootScope.$on('ionicNativeTransitions.beforeTransition', function () {
        $log.info('Transition is about to happen');
    });

    function openModal() {
        if (vm.modal) {
            vm.modal.show();
            return;
        }
        vm.modal = $ionicModal.fromTemplate(`
            <ion-modal-view>
                <ion-header-bar>
                    <h1 class="title">Modal</h1>
                    <button class="button button-clear button-assertive" ng-click="close()">
                        <i class="icon ion-close"></i>
                    </button>
                </ion-header-bar>
                <ion-content class="has-footer has-footer padding">
                    modal
                </ion-content>
            </ion-modal-view>
            `, {
                scope: $rootScope.$new(),
            });
        vm.modal.show();
        vm.modal.scope.close = () => {
            console.log('modal close', JSON.stringify($ionicPlatform.$backButtonActions))
            vm.modal.remove();
            vm.modal = null;
        };
    }

    function enable() {
        $ionicNativeTransitions.enable();
        vm.isEnable = $ionicNativeTransitions.isEnabled();
    }

    function disable() {
        $ionicNativeTransitions.enable(false);
        vm.isEnable = $ionicNativeTransitions.isEnabled();
    }

    function disableWithoutDisablingIonicTransitions() {
        $ionicNativeTransitions.enable(false, true);
        vm.isEnable = $ionicNativeTransitions.isEnabled();
    }

    function enableBothTransitions() {
        $ionicNativeTransitions.enable(true, false);
        vm.isEnable = $ionicNativeTransitions.isEnabled();
    }

    function sameStateGo(reload = false) {
        $ionicNativeTransitions.stateGo('tabs.home', {}, { reload });
    }

    function stateGo() {
        $ionicNativeTransitions.stateGo('four', {
            test: 'buyakacha!',
            testParamUrl: 'hihi'
        }, {
                "type": "slide",
                "direction": "up", // 'left|right|up|down', default 'left' (which is like 'next')
                "duration": 1500, // in milliseconds (ms), default 400
            }, {
                reload: true
            });
    }

    function locationUrl() {
        $ionicNativeTransitions.locationUrl('/three');
    }

    function goBack(count) {
        console.log('count', count, $ionicHistory.viewHistory())
        $rootScope.$ionicGoBack(count);
    }

    function stateError() {
        $ionicNativeTransitions.stateGo('five');
    }
}