%PDF- %PDF-/** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ 'use strict'; angular.module('install', ['ngStorage']) .controller('installController', ['$scope', '$sce', '$timeout', '$localStorage', '$rootScope', 'progress', function ($scope, $sce, $timeout, $localStorage, $rootScope, progress) { $scope.isStarted = false; $scope.isInProgress = false; $scope.isConsole = false; $scope.isDisabled = false; $scope.isSampleDataError = false; $scope.isShowCleanUpBox = false; $scope.toggleConsole = function () { $scope.isConsole = $scope.isConsole === false; }; $scope.barStyle = function (value) { return { width: value + '%' }; }; $scope.checkProgress = function () { if ($scope.isInProgress) { $scope.displayProgress(); } progress.get(function (response) { var log = ''; response.data.console.forEach(function (message) { log = log + message + '
'; }); $scope.log = $sce.trustAsHtml(log); if (response.data.success) { $scope.progress = response.data.progress; $scope.progressText = response.data.progress + '%'; } else { $scope.displayFailure(); if (response.data.isSampleDataError) { $scope.isSampleDataError = true; } } if ($scope.isInProgress) { $timeout(function() { $scope.checkProgress(); }, 1500); } }); }; $scope.showCleanUpBox = function() { $scope.isShowCleanUpBox = true; }; $scope.hideCleanUpBox = function() { $scope.isShowCleanUpBox = false; }; $scope.startCleanup = function(performClenup) { $scope.hideCleanUpBox(); $scope.isSampleDataError = false; $localStorage.store.cleanUpDatabase = performClenup; $scope.start(); }; $scope.start = function () { if ($scope.isSampleDataError) { $scope.showCleanUpBox(); return; } var data = { 'db': $localStorage.db, 'admin': $localStorage.admin, 'store': $localStorage.store, 'config': $localStorage.config }; $scope.isStarted = true; $scope.isInProgress = true; progress.post(data, function (response) { response = response.data; $scope.isInProgress = false; if (response.success) { $localStorage.config.encrypt.key = response.key; $localStorage.messages = response.messages; $scope.nextState(); } else { $scope.displayFailure(); if (response.isSampleDataError) { $scope.isSampleDataError = true; } } }); progress.get(function () { $scope.checkProgress(); }); }; $scope.displayProgress = function() { $scope.isFailed = false; $scope.isDisabled = true; $rootScope.isMenuEnabled = false; }; $scope.displayFailure = function () { $scope.isFailed = true; $scope.isDisabled = false; $rootScope.isMenuEnabled = true; }; }]) .service('progress', ['$http', function ($http) { return { get: function (callback) { $http.post('index.php/install/progress').then(callback, function errorCallback() {}); }, post: function (data, callback) { $http.post('index.php/install/start', data).then(callback, function errorCallback() {}); } }; }]);