Merge pull request #232 from resin-io/refactor/settings-model

Transform SettingsService into the SettingsModel module
This commit is contained in:
Juan Cruz Viotti 2016-04-01 10:07:59 -04:00
commit d418139def
7 changed files with 32 additions and 23 deletions

View File

@ -16,7 +16,17 @@
'use strict'; 'use strict';
module.exports = function($localStorage) { /**
* @module Etcher.Models.Settings
*/
const angular = require('angular');
require('ngstorage');
const SettingsModel = angular.module('Etcher.Models.Settings', [
'ngStorage'
]);
SettingsModel.service('SettingsModel', function($localStorage) {
/** /**
* @summary Settings data * @summary Settings data
@ -28,4 +38,4 @@ module.exports = function($localStorage) {
unmountOnSuccess: true unmountOnSuccess: true
}); });
}; });

View File

@ -31,10 +31,10 @@ window.MIXPANEL_CUSTOM_LIB_URL = '../bower_components/mixpanel/mixpanel.js';
require('../../../bower_components/mixpanel/mixpanel-jslib-snippet.js'); require('../../../bower_components/mixpanel/mixpanel-jslib-snippet.js');
require('../../../bower_components/angular-mixpanel/src/angular-mixpanel'); require('../../../bower_components/angular-mixpanel/src/angular-mixpanel');
require('../pages/settings/settings'); require('../models/settings');
const analytics = angular.module('Etcher.analytics', [ const analytics = angular.module('Etcher.analytics', [
'analytics.mixpanel', 'analytics.mixpanel',
'Etcher.Pages.Settings' 'Etcher.Models.Settings'
]); ]);
analytics.config(function($mixpanelProvider) { analytics.config(function($mixpanelProvider) {
@ -66,9 +66,9 @@ analytics.run(function($window) {
analytics.config(function($provide) { analytics.config(function($provide) {
$provide.decorator('$exceptionHandler', function($delegate, $window, $injector) { $provide.decorator('$exceptionHandler', function($delegate, $window, $injector) {
return function(exception, cause) { return function(exception, cause) {
const SettingsService = $injector.get('SettingsService'); const SettingsModel = $injector.get('SettingsModel');
if (SettingsService.data.errorReporting) { if (SettingsModel.data.errorReporting) {
$window.trackJs.track(exception); $window.trackJs.track(exception);
} }
@ -84,9 +84,9 @@ analytics.config(function($provide) {
$delegate.debug = function(message) { $delegate.debug = function(message) {
message = new Date() + ' ' + message; message = new Date() + ' ' + message;
const SettingsService = $injector.get('SettingsService'); const SettingsModel = $injector.get('SettingsModel');
if (SettingsService.data.errorReporting) { if (SettingsModel.data.errorReporting) {
$window.trackJs.console.debug(message); $window.trackJs.console.debug(message);
} }
@ -97,7 +97,7 @@ analytics.config(function($provide) {
}); });
}); });
analytics.service('AnalyticsService', function($log, $mixpanel, SettingsService) { analytics.service('AnalyticsService', function($log, $mixpanel, SettingsModel) {
let self = this; let self = this;
/** /**
@ -135,7 +135,7 @@ analytics.service('AnalyticsService', function($log, $mixpanel, SettingsService)
*/ */
this.logEvent = function(message, data) { this.logEvent = function(message, data) {
if (SettingsService.data.errorReporting) { if (SettingsModel.data.errorReporting) {
// Clone data before passing it to `mixpanel.track` // Clone data before passing it to `mixpanel.track`
// since this function mutates the object adding // since this function mutates the object adding

View File

@ -29,14 +29,14 @@ if (window.mocha) {
var writer = electron.remote.require('./src/writer'); var writer = electron.remote.require('./src/writer');
} }
require('../pages/settings/settings'); require('../models/settings');
require('./notifier'); require('./notifier');
const imageWriter = angular.module('Etcher.image-writer', [ const imageWriter = angular.module('Etcher.image-writer', [
'Etcher.Pages.Settings', 'Etcher.Models.Settings',
'Etcher.notifier' 'Etcher.notifier'
]); ]);
imageWriter.service('ImageWriterService', function($q, $timeout, SettingsService, NotifierService) { imageWriter.service('ImageWriterService', function($q, $timeout, SettingsModel, NotifierService) {
let self = this; let self = this;
let burning = false; let burning = false;
@ -118,7 +118,7 @@ imageWriter.service('ImageWriterService', function($q, $timeout, SettingsService
* }); * });
*/ */
this.performWrite = function(image, drive, onProgress) { this.performWrite = function(image, drive, onProgress) {
return $q.when(writer.writeImage(image, drive, SettingsService.data, onProgress)); return $q.when(writer.writeImage(image, drive, SettingsModel.data, onProgress));
}; };
/** /**

View File

@ -16,14 +16,14 @@
'use strict'; 'use strict';
module.exports = function($state, SelectionStateService, ImageWriterService, AnalyticsService, SettingsService) { module.exports = function($state, SelectionStateService, ImageWriterService, AnalyticsService, SettingsModel) {
/** /**
* @summary Settings data * @summary Settings data
* @type Object * @type Object
* @public * @public
*/ */
this.settings = SettingsService.data; this.settings = SettingsModel.data;
/** /**
* @summary Restart the burning process * @summary Restart the burning process

View File

@ -31,14 +31,14 @@ require('angular-ui-router');
require('../../modules/selection-state'); require('../../modules/selection-state');
require('../../modules/image-writer'); require('../../modules/image-writer');
require('../../modules/analytics'); require('../../modules/analytics');
require('../settings/settings'); require('../../models/settings');
const FinishPage = angular.module('Etcher.Pages.Finish', [ const FinishPage = angular.module('Etcher.Pages.Finish', [
'ui.router', 'ui.router',
'Etcher.selection-state', 'Etcher.selection-state',
'Etcher.image-writer', 'Etcher.image-writer',
'Etcher.analytics', 'Etcher.analytics',
'Etcher.Pages.Settings' 'Etcher.Models.Settings'
]); ]);
FinishPage.controller('FinishController', require('./controllers/finish')); FinishPage.controller('FinishController', require('./controllers/finish'));

View File

@ -16,13 +16,13 @@
'use strict'; 'use strict';
module.exports = function(SettingsService) { module.exports = function(SettingsModel) {
/** /**
* @summary Settings data * @summary Settings data
* @type Object * @type Object
* @public * @public
*/ */
this.storage = SettingsService.data; this.storage = SettingsModel.data;
}; };

View File

@ -22,15 +22,14 @@
const angular = require('angular'); const angular = require('angular');
require('angular-ui-router'); require('angular-ui-router');
require('ngstorage'); require('../../models/settings');
const SettingsPage = angular.module('Etcher.Pages.Settings', [ const SettingsPage = angular.module('Etcher.Pages.Settings', [
'ui.router', 'ui.router',
'ngStorage' 'Etcher.Models.Settings'
]); ]);
SettingsPage.controller('SettingsController', require('./controllers/settings')); SettingsPage.controller('SettingsController', require('./controllers/settings'));
SettingsPage.service('SettingsService', require('./services/settings'));
SettingsPage.config(function($stateProvider) { SettingsPage.config(function($stateProvider) {
$stateProvider $stateProvider