diff --git a/lib/browser/app.js b/lib/browser/app.js index 7acc2759..4cf7feee 100644 --- a/lib/browser/app.js +++ b/lib/browser/app.js @@ -30,7 +30,6 @@ const currentWindow = BrowserWindow.fromId(1); require('angular-ui-bootstrap'); require('angular-ui-router'); require('./browser/modules/selection-state'); -require('./browser/modules/settings'); require('./browser/modules/drive-scanner'); require('./browser/modules/image-writer'); require('./browser/modules/path'); @@ -40,6 +39,7 @@ require('./browser/controllers/navigation'); require('./browser/components/progress-button/progress-button'); require('./browser/components/drive-selector'); require('./browser/pages/finish/finish'); +require('./browser/pages/settings/settings'); const app = angular.module('Etcher', [ 'ui.router', @@ -48,7 +48,6 @@ const app = angular.module('Etcher', [ // Etcher modules 'Etcher.path', 'Etcher.selection-state', - 'Etcher.settings', 'Etcher.drive-scanner', 'Etcher.image-writer', 'Etcher.notifier', @@ -62,7 +61,8 @@ const app = angular.module('Etcher', [ 'Etcher.Components.DriveSelector', // Pages - 'Etcher.Pages.Finish' + 'Etcher.Pages.Finish', + 'Etcher.Pages.Settings' ]); app.config(function($stateProvider, $urlRouterProvider) { @@ -73,11 +73,6 @@ app.config(function($stateProvider, $urlRouterProvider) { url: '/main', controller: 'AppController as app', templateUrl: './partials/main.html' - }) - .state('settings', { - url: '/settings', - controller: 'SettingsController as settings', - templateUrl: './partials/settings.html' }); }); diff --git a/lib/browser/modules/analytics.js b/lib/browser/modules/analytics.js index 60376165..afe2dd81 100644 --- a/lib/browser/modules/analytics.js +++ b/lib/browser/modules/analytics.js @@ -31,9 +31,10 @@ window.MIXPANEL_CUSTOM_LIB_URL = '../bower_components/mixpanel/mixpanel.js'; require('../../../bower_components/mixpanel/mixpanel-jslib-snippet.js'); require('../../../bower_components/angular-mixpanel/src/angular-mixpanel'); +require('../pages/settings/settings'); const analytics = angular.module('Etcher.analytics', [ 'analytics.mixpanel', - 'Etcher.settings' + 'Etcher.Pages.Settings' ]); analytics.config(function($mixpanelProvider) { diff --git a/lib/browser/modules/image-writer.js b/lib/browser/modules/image-writer.js index 84c64cbc..cc5de002 100644 --- a/lib/browser/modules/image-writer.js +++ b/lib/browser/modules/image-writer.js @@ -29,10 +29,10 @@ if (window.mocha) { var writer = electron.remote.require('./src/writer'); } -require('./settings'); +require('../pages/settings/settings'); require('./notifier'); const imageWriter = angular.module('Etcher.image-writer', [ - 'Etcher.settings', + 'Etcher.Pages.Settings', 'Etcher.notifier' ]); diff --git a/lib/browser/pages/finish/finish.js b/lib/browser/pages/finish/finish.js index 7d12b936..44b9952f 100644 --- a/lib/browser/pages/finish/finish.js +++ b/lib/browser/pages/finish/finish.js @@ -30,15 +30,15 @@ const angular = require('angular'); require('angular-ui-router'); require('../../modules/selection-state'); require('../../modules/image-writer'); -require('../../modules/settings'); require('../../modules/analytics'); +require('../settings/settings'); const FinishPage = angular.module('Etcher.Pages.Finish', [ 'ui.router', 'Etcher.selection-state', 'Etcher.image-writer', - 'Etcher.settings', - 'Etcher.analytics' + 'Etcher.analytics', + 'Etcher.Pages.Settings' ]); FinishPage.controller('FinishController', require('./controllers/finish')); diff --git a/lib/browser/pages/settings/controllers/settings.js b/lib/browser/pages/settings/controllers/settings.js new file mode 100644 index 00000000..6b423f3e --- /dev/null +++ b/lib/browser/pages/settings/controllers/settings.js @@ -0,0 +1,28 @@ +/* + * 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.exports = function(SettingsService) { + + /** + * @summary Settings data + * @type Object + * @public + */ + this.storage = SettingsService.data; + +}; diff --git a/lib/browser/modules/settings.js b/lib/browser/pages/settings/services/settings.js similarity index 64% rename from lib/browser/modules/settings.js rename to lib/browser/pages/settings/services/settings.js index 5c47c76c..32b389de 100644 --- a/lib/browser/modules/settings.js +++ b/lib/browser/pages/settings/services/settings.js @@ -16,18 +16,7 @@ 'use strict'; -/** - * @module Etcher.settings - */ - -const angular = require('angular'); - -require('ngstorage'); -const settings = angular.module('Etcher.settings', [ - 'ngStorage' -]); - -settings.service('SettingsService', function($localStorage) { +module.exports = function($localStorage) { /** * @summary Settings data @@ -39,15 +28,4 @@ settings.service('SettingsService', function($localStorage) { unmountOnSuccess: true }); -}); - -settings.controller('SettingsController', function(SettingsService) { - - /** - * @summary Settings data - * @type Object - * @public - */ - this.storage = SettingsService.data; - -}); +}; diff --git a/lib/browser/pages/settings/settings.js b/lib/browser/pages/settings/settings.js new file mode 100644 index 00000000..d8ca411e --- /dev/null +++ b/lib/browser/pages/settings/settings.js @@ -0,0 +1,42 @@ +/* + * 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.Pages.Settings + */ + +const angular = require('angular'); +require('angular-ui-router'); +require('ngstorage'); + +const SettingsPage = angular.module('Etcher.Pages.Settings', [ + 'ui.router', + 'ngStorage' +]); + +SettingsPage.controller('SettingsController', require('./controllers/settings')); +SettingsPage.service('SettingsService', require('./services/settings')); + +SettingsPage.config(function($stateProvider) { + $stateProvider + .state('settings', { + url: '/settings', + controller: 'SettingsController as settings', + templateUrl: './browser/pages/settings/templates/settings.tpl.html' + }); +}); diff --git a/lib/partials/settings.html b/lib/browser/pages/settings/templates/settings.tpl.html similarity index 100% rename from lib/partials/settings.html rename to lib/browser/pages/settings/templates/settings.tpl.html