mirror of
https://github.com/balena-io/etcher.git
synced 2025-04-24 15:27:17 +00:00
Merge pull request #203 from resin-io/refactor/controllers
Split controllers into separate files
This commit is contained in:
commit
61b88c95e0
@ -23,7 +23,6 @@
|
||||
var angular = require('angular');
|
||||
const _ = require('lodash');
|
||||
const electron = require('electron');
|
||||
const shell = electron.remote.require('shell');
|
||||
const dialog = electron.remote.require('./src/dialog');
|
||||
const BrowserWindow = electron.remote.BrowserWindow;
|
||||
const currentWindow = BrowserWindow.fromId(1);
|
||||
@ -37,6 +36,8 @@ require('./browser/modules/image-writer');
|
||||
require('./browser/modules/path');
|
||||
require('./browser/modules/notifier');
|
||||
require('./browser/modules/analytics');
|
||||
require('./browser/controllers/finish');
|
||||
require('./browser/controllers/navigation');
|
||||
|
||||
const app = angular.module('Etcher', [
|
||||
'ui.router',
|
||||
@ -49,7 +50,11 @@ const app = angular.module('Etcher', [
|
||||
'Etcher.drive-scanner',
|
||||
'Etcher.image-writer',
|
||||
'Etcher.notifier',
|
||||
'Etcher.analytics'
|
||||
'Etcher.analytics',
|
||||
|
||||
// Controllers
|
||||
'Etcher.controllers.finish',
|
||||
'Etcher.controllers.navigation'
|
||||
]);
|
||||
|
||||
app.config(function($stateProvider, $urlRouterProvider) {
|
||||
@ -198,29 +203,3 @@ app.controller('AppController', function(
|
||||
});
|
||||
};
|
||||
});
|
||||
|
||||
app.controller('SettingsController', function(SettingsService) {
|
||||
this.storage = SettingsService.data;
|
||||
});
|
||||
|
||||
app.controller('NavigationController', function($state) {
|
||||
this.isState = $state.is;
|
||||
this.open = shell.openExternal;
|
||||
});
|
||||
|
||||
app.controller('FinishController', function(
|
||||
$state,
|
||||
SelectionStateService,
|
||||
SettingsService,
|
||||
ImageWriterService,
|
||||
AnalyticsService
|
||||
) {
|
||||
this.settings = SettingsService.data;
|
||||
|
||||
this.restart = function(options) {
|
||||
SelectionStateService.clear(options);
|
||||
ImageWriterService.resetState();
|
||||
AnalyticsService.logEvent('Restart', options);
|
||||
$state.go('main');
|
||||
};
|
||||
});
|
||||
|
61
lib/browser/controllers/finish.js
Normal file
61
lib/browser/controllers/finish.js
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright 2016 Resin.io
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @module Etcher.controllers.finish
|
||||
*/
|
||||
|
||||
const angular = require('angular');
|
||||
|
||||
require('angular-ui-router');
|
||||
require('../modules/selection-state');
|
||||
require('../modules/image-writer');
|
||||
require('../modules/analytics');
|
||||
const finish = angular.module('Etcher.controllers.finish', [
|
||||
'ui.router',
|
||||
'Etcher.selection-state',
|
||||
'Etcher.image-writer',
|
||||
'Etcher.analytics'
|
||||
]);
|
||||
|
||||
finish.controller('FinishController', function(
|
||||
$state,
|
||||
SelectionStateService,
|
||||
ImageWriterService,
|
||||
AnalyticsService
|
||||
) {
|
||||
|
||||
/**
|
||||
* @summary Restart the burning process
|
||||
* @function
|
||||
* @public
|
||||
*
|
||||
* @param {Object} [options] - options
|
||||
* @param {Boolean} [options.preserveImage=false] - preserve image
|
||||
*
|
||||
* @example
|
||||
* FinishController.restart({ preserveImage: true });
|
||||
*/
|
||||
this.restart = function(options) {
|
||||
SelectionStateService.clear(options);
|
||||
ImageWriterService.resetState();
|
||||
AnalyticsService.logEvent('Restart', options);
|
||||
$state.go('main');
|
||||
};
|
||||
|
||||
});
|
61
lib/browser/controllers/navigation.js
Normal file
61
lib/browser/controllers/navigation.js
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright 2016 Resin.io
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @module Etcher.controllers.navigation
|
||||
*/
|
||||
|
||||
const electron = require('electron');
|
||||
const shell = electron.remote.require('shell');
|
||||
const angular = require('angular');
|
||||
|
||||
require('angular-ui-router');
|
||||
const navigation = angular.module('Etcher.controllers.navigation', [
|
||||
'ui.router'
|
||||
]);
|
||||
|
||||
navigation.controller('NavigationController', function($state) {
|
||||
|
||||
/**
|
||||
* @summary Check the current state
|
||||
* @function
|
||||
* @public
|
||||
*
|
||||
* @param {String} state - state
|
||||
* @returns {Boolean} whether the state matches
|
||||
*
|
||||
* @example
|
||||
* if(NavigationController.isState('state')) {
|
||||
* console.log('We are in this state').
|
||||
* }
|
||||
*/
|
||||
this.isState = $state.is;
|
||||
|
||||
/**
|
||||
* @summary Open external resource
|
||||
* @function
|
||||
* @public
|
||||
*
|
||||
* @param {String} resource - resource
|
||||
*
|
||||
* @example
|
||||
* NavigationController.open('https://google.com');
|
||||
*/
|
||||
this.open = shell.openExternal;
|
||||
|
||||
});
|
@ -40,3 +40,14 @@ settings.service('SettingsService', function($localStorage) {
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
settings.controller('SettingsController', function(SettingsService) {
|
||||
|
||||
/**
|
||||
* @summary Settings data
|
||||
* @type Object
|
||||
* @public
|
||||
*/
|
||||
this.storage = SettingsService.data;
|
||||
|
||||
});
|
||||
|
@ -2,7 +2,9 @@
|
||||
<div class="col-xs">
|
||||
<div class="box text-center">
|
||||
<h3><hero-tick type="success" class="space-right-tiny"></hero-tick> Burn Complete!</h3>
|
||||
<p ng-show="finish.settings.unmountOnSuccess" class="soft">Safely ejected and ready for use</p>
|
||||
<p class="soft"
|
||||
ng-controller="SettingsController as settings"
|
||||
ng-show="settings.storage.unmountOnSuccess">Safely ejected and ready for use</p>
|
||||
|
||||
<div class="row center-xs space-vertical-large">
|
||||
<div class="col-xs-4 space-medium">
|
||||
|
Loading…
x
Reference in New Issue
Block a user