mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-21 18:26:32 +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');
|
var angular = require('angular');
|
||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
const electron = require('electron');
|
const electron = require('electron');
|
||||||
const shell = electron.remote.require('shell');
|
|
||||||
const dialog = electron.remote.require('./src/dialog');
|
const dialog = electron.remote.require('./src/dialog');
|
||||||
const BrowserWindow = electron.remote.BrowserWindow;
|
const BrowserWindow = electron.remote.BrowserWindow;
|
||||||
const currentWindow = BrowserWindow.fromId(1);
|
const currentWindow = BrowserWindow.fromId(1);
|
||||||
@ -37,6 +36,8 @@ require('./browser/modules/image-writer');
|
|||||||
require('./browser/modules/path');
|
require('./browser/modules/path');
|
||||||
require('./browser/modules/notifier');
|
require('./browser/modules/notifier');
|
||||||
require('./browser/modules/analytics');
|
require('./browser/modules/analytics');
|
||||||
|
require('./browser/controllers/finish');
|
||||||
|
require('./browser/controllers/navigation');
|
||||||
|
|
||||||
const app = angular.module('Etcher', [
|
const app = angular.module('Etcher', [
|
||||||
'ui.router',
|
'ui.router',
|
||||||
@ -49,7 +50,11 @@ const app = angular.module('Etcher', [
|
|||||||
'Etcher.drive-scanner',
|
'Etcher.drive-scanner',
|
||||||
'Etcher.image-writer',
|
'Etcher.image-writer',
|
||||||
'Etcher.notifier',
|
'Etcher.notifier',
|
||||||
'Etcher.analytics'
|
'Etcher.analytics',
|
||||||
|
|
||||||
|
// Controllers
|
||||||
|
'Etcher.controllers.finish',
|
||||||
|
'Etcher.controllers.navigation'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
app.config(function($stateProvider, $urlRouterProvider) {
|
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="col-xs">
|
||||||
<div class="box text-center">
|
<div class="box text-center">
|
||||||
<h3><hero-tick type="success" class="space-right-tiny"></hero-tick> Burn Complete!</h3>
|
<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="row center-xs space-vertical-large">
|
||||||
<div class="col-xs-4 space-medium">
|
<div class="col-xs-4 space-medium">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user