diff --git a/.watchmanconfig b/.watchmanconfig
index 5e9462c..e7834e3 100644
--- a/.watchmanconfig
+++ b/.watchmanconfig
@@ -1,3 +1,3 @@
{
- "ignore_dirs": ["tmp"]
+ "ignore_dirs": ["tmp", "dist"]
}
diff --git a/app/app.js b/app/app.js
index 8d66b95..8b234d6 100644
--- a/app/app.js
+++ b/app/app.js
@@ -3,14 +3,14 @@ import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';
import config from './config/environment';
-var App;
+let App;
Ember.MODEL_FACTORY_INJECTIONS = true;
App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
- Resolver: Resolver
+ Resolver
});
loadInitializers(App, config.modulePrefix);
diff --git a/app/index.html b/app/index.html
index 25bc95e..6757df4 100644
--- a/app/index.html
+++ b/app/index.html
@@ -4,7 +4,7 @@
Huegasm
-
+
@@ -36,7 +36,7 @@
-
+
{{content-for 'head-footer'}}
diff --git a/app/pods/components/hue-controls/component.js b/app/pods/components/hue-controls/component.js
index 8e82714..26824cf 100644
--- a/app/pods/components/hue-controls/component.js
+++ b/app/pods/components/hue-controls/component.js
@@ -103,7 +103,7 @@ export default Em.Component.extend({
position: 'left'
},
{
- element: '#dimmerWrapper',
+ element: '#dimmer',
intro: 'And that\'s it...Feel free to reach out to me through the link at the bottom of the page. ' +
'Hope you enjoy the application. ;) ' +
'TIP : click on the icon to switch to a darker theme. ',
@@ -138,7 +138,7 @@ export default Em.Component.extend({
if(beatDetectionAreaArrowIcon.hasClass('keyboard-arrow-down')){
beatDetectionAreaArrowIcon.removeClass('keyboard-arrow-down').addClass('keyboard-arrow-up');
}
- } else if(element.id === 'dimmerWrapper'){
+ } else if(element.id === 'dimmer'){
Em.$(document).click();
}
});
@@ -155,6 +155,19 @@ export default Em.Component.extend({
} else {
playerBottom.hide();
}
+ }, onExit = ()=>{
+ var dimmer = Em.$('#dimmer');
+
+ onFinish();
+ dimmer.popover({
+ trigger: 'manual',
+ placement: 'top',
+ content: 'Click on this icon to toggle the dark theme.'
+ }).popover('show');
+
+ setTimeout(()=>{
+ dimmer.popover('hide');
+ }, 5000);
};
// skip hidden/missing elements
@@ -163,7 +176,7 @@ export default Em.Component.extend({
if(elem.html() === ''){
Em.$('.introjs-nextbutton').click();
}
- }).onexit(onFinish).oncomplete(onFinish).start();
+ }).onexit(onExit).oncomplete(onFinish).start();
}
},
diff --git a/app/pods/components/huegasm-app/component.js b/app/pods/components/huegasm-app/component.js
index 92e65b8..758b67f 100644
--- a/app/pods/components/huegasm-app/component.js
+++ b/app/pods/components/huegasm-app/component.js
@@ -21,12 +21,12 @@ export default Em.Component.extend({
ready: false,
- dimmerOnClass: function(){
+ dimmerOnClass: function () {
var dimmerOn = this.get('dimmerOn'),
storage = this.get('storage'),
dimmerOnClass = null;
- if(dimmerOn){
+ if (dimmerOn) {
Em.$('body').addClass('dimmerOn');
Em.$('html').addClass('dimmerOn');
dimmerOnClass = 'active';
@@ -43,18 +43,22 @@ export default Em.Component.extend({
init(){
this._super();
- var storage = new window.Locally.Store({ compress: true });
+ var storage = new window.Locally.Store({compress: true});
this.set('storage', storage);
- if(!Em.isNone(storage.get('huegasm.dimmerOn'))) {
+ if (!Em.isNone(storage.get('huegasm.dimmerOn'))) {
this.set('dimmerOn', storage.get('huegasm.dimmerOn'));
}
- if(!Em.isEmpty(storage.get('huegasm.bridgeIp')) && !Em.isEmpty(storage.get('huegasm.bridgeUsername'))) {
+ if (!Em.isEmpty(storage.get('huegasm.bridgeIp')) && !Em.isEmpty(storage.get('huegasm.bridgeUsername'))) {
this.setProperties({
bridgeIp: storage.get('huegasm.bridgeIp'),
bridgeUsername: storage.get('huegasm.bridgeUsername')
});
}
- }
+ },
+
+ year: function () {
+ return new Date().getFullYear();
+ }.property()
});
diff --git a/app/pods/components/huegasm-app/template.hbs b/app/pods/components/huegasm-app/template.hbs
index 713e1b1..160f674 100644
--- a/app/pods/components/huegasm-app/template.hbs
+++ b/app/pods/components/huegasm-app/template.hbs
@@ -6,11 +6,7 @@
{{else}}
-
Huegasm is a free web application for controlling your Philips Hue lights ...oh and it's kind of awesome at syncing music with your lights.
-
-
-
-
+
Huegasm is a free web application for controlling your Philips Hue lights ...oh and it's pretty awesome at synchronizing your music with your lights.
{{#paper-button raised=true primary=true action="isReady" class="goButton"}}Go!{{/paper-button}}
@@ -18,6 +14,6 @@
{{/if}}
\ No newline at end of file
diff --git a/app/pods/components/music-tab/component.js b/app/pods/components/music-tab/component.js
index 91df417..6bef279 100644
--- a/app/pods/components/music-tab/component.js
+++ b/app/pods/components/music-tab/component.js
@@ -191,7 +191,7 @@ export default Em.Component.extend(helperMixin, visualizerMixin, {
if(!Em.isNone(track) && !Em.isNone(track.offset())) {
playListArea.animate({
- scrollTop: track.offset().top - playListArea.offset().top + playListArea.scrollTop()
+ scrollTop: track.offset().top - playListArea.offset().top + playListArea.scrollTop() - 30
});
}
}, 1000);
@@ -762,6 +762,7 @@ export default Em.Component.extend(helperMixin, visualizerMixin, {
if(this.get('firstVisit')){
this.send('handleNewSoundCloudURL', 'https://soundcloud.com/mrsuicidesheep/tracks');
this.get('storage').set('huegasm.firstVisit', false);
+
this.sendAction();
}
diff --git a/app/router.js b/app/router.js
index ee31390..3bba78e 100644
--- a/app/router.js
+++ b/app/router.js
@@ -1,12 +1,11 @@
import Ember from 'ember';
import config from './config/environment';
-var Router = Ember.Router.extend({
+const Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
- this.route('404', {path:'/*path'});
});
export default Router;
diff --git a/app/styles/app.scss b/app/styles/app.scss
index 6ab3b52..393042d 100644
--- a/app/styles/app.scss
+++ b/app/styles/app.scss
@@ -24,13 +24,6 @@ body {
position: static;
}
-#introPic {
- display: block;
- margin: 0 auto;
- width: 100%;
- max-width: 600px;
-}
-
.introParagraph {
margin-bottom: 30px;
}
@@ -289,13 +282,13 @@ md-list-item .md-no-style {
}
.colorpicker {
- padding: 10px;
+ padding: 5px;
background: rgba(0, 0, 0, 0.7);
box-shadow: 5px 10px 15px 5px rgba(0, 0, 0, 0.3);
color: #FFFFFF;
position: absolute;
- width: 275px;
- height: 275px;
+ width: 266px;
+ height: 266px;
right: 6px;
top: -9px;
z-index: 3;
@@ -954,6 +947,9 @@ body.dimmerOn {
#extraOptionsMenu:hover {
background: rgba(0, 0, 0, 0.9);
}
+ .popover-content {
+ color: black !important;
+ }
}
.power-settings-new.dimmerOn,
@@ -971,7 +967,7 @@ body.dimmerOn {
opacity: 0.9 !important;
}
-#dimmerWrapper {
+#dimmer {
position: absolute;
left: -50px;
bottom: -10px;
diff --git a/app/transitions.js b/app/transitions.js
deleted file mode 100644
index e70383f..0000000
--- a/app/transitions.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function(){
- this.transition(
- this.use('crossFade')
- );
-}
diff --git a/bower.json b/bower.json
index 6ebc520..f65dfd1 100644
--- a/bower.json
+++ b/bower.json
@@ -3,26 +3,26 @@
"dependencies": {
"bootstrap-sass": "~3.3.5",
"ember": "~2.1.0",
- "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
- "ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
+ "ember-cli-shims": "0.0.6",
+ "ember-cli-test-loader": "0.2.1",
"ember-data": "~2.1.0",
- "ember-load-initializers": "ember-cli/ember-load-initializers#0.1.5",
- "ember-qunit": "0.4.9",
- "ember-qunit-notifications": "0.0.7",
- "ember-resolver": "~0.1.18",
+ "ember-load-initializers": "0.1.7",
+ "ember-qunit": "0.4.16",
+ "ember-qunit-notifications": "0.1.0",
+ "ember-resolver": "~0.1.20",
"hammerjs": "~2.0.4",
"intro.js": "~1.1.1",
"JavaScript-ID3-Reader": "https://github.com/aadsm/JavaScript-ID3-Reader.git",
"jquery": "~2.1.4",
"jquery-mousewheel": "~3.1.13",
- "loader.js": "ember-cli/loader.js#3.2.0",
+ "loader.js": "ember-cli/loader.js#3.2.1",
"locallyjs": "~0.3.2",
"matchMedia": "~0.2.0",
"nouislider": "^8.0.1",
- "qunit": "~1.18.0"
+ "qunit": "~1.20.0",
+ "HackTimer": "https://github.com/turuslan/HackTimer.git#~1.0.0"
},
"resolutions": {
- "ember": "~2.1.0",
- "jquery": "~2.1.4"
+ "ember": "~2.1.0"
}
}
diff --git a/config/environment.js b/config/environment.js
index 450800f..57ee2b0 100644
--- a/config/environment.js
+++ b/config/environment.js
@@ -20,6 +20,7 @@ module.exports = function(environment) {
},
contentSecurityPolicy: {
+ 'child-src': "blob:",
'default-src': "'none'",
'script-src': "'self' 'unsafe-inline' connect.soundcloud.com www.google-analytics.com",
'font-src': "'self' fonts.gstatic.com",
diff --git a/ember-cli-build.js b/ember-cli-build.js
index 303947e..8cb6cde 100644
--- a/ember-cli-build.js
+++ b/ember-cli-build.js
@@ -7,9 +7,11 @@ module.exports = function(defaults) {
app.import('vendor/dancer.js');
app.import('bower_components/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js');
app.import('bower_components/bootstrap-sass/assets/javascripts/bootstrap/dropdown.js');
+ app.import('bower_components/bootstrap-sass/assets/javascripts/bootstrap/popover.js');
app.import('bower_components/JavaScript-ID3-Reader/dist/id3-minimized.js');
app.import('bower_components/jquery-mousewheel/jquery.mousewheel.js');
app.import('bower_components/locallyjs/dist/locally.min.js');
+ app.import('bower_components/HackTimer/HackTimer.js');
app.import('bower_components/intro.js/intro.js');
app.import('bower_components/intro.js/introjs.css');
diff --git a/package.json b/package.json
index a867d7c..ff261dc 100644
--- a/package.json
+++ b/package.json
@@ -19,26 +19,26 @@
"author": "",
"license": "MIT",
"devDependencies": {
- "broccoli-asset-rev": "^2.0.2",
- "ember-cli": "1.13.8",
- "ember-cli-app-version": "1.0.0",
- "ember-cli-babel": "^5.0.0",
+ "broccoli-asset-rev": "^2.2.0",
+ "ember-cli": "^1.13.12",
+ "ember-cli-app-version": "^1.0.0",
+ "ember-cli-babel": "^5.1.5",
"ember-cli-content-security-policy": "0.4.0",
- "ember-cli-dependency-checker": "^1.0.0",
- "ember-cli-htmlbars": "1.0.1",
- "ember-cli-htmlbars-inline-precompile": "^0.3.0",
- "ember-cli-ic-ajax": "0.2.1",
- "ember-cli-inject-live-reload": "^1.3.0",
+ "ember-cli-dependency-checker": "^1.1.0",
+ "ember-cli-htmlbars": "^1.0.1",
+ "ember-cli-htmlbars-inline-precompile": "^0.3.1",
+ "ember-cli-ic-ajax": "0.2.4",
+ "ember-cli-inject-live-reload": "^1.3.1",
"ember-cli-nouislider": "0.7.0",
- "ember-cli-qunit": "1.0.3",
+ "ember-cli-qunit": "^1.0.4",
"ember-cli-release": "0.2.8",
- "ember-cli-sass": "5.0.1",
- "ember-cli-sri": "^1.0.1",
- "ember-cli-uglify": "^1.0.1",
+ "ember-cli-sass": "5.1.0",
+ "ember-cli-sri": "^1.1.0",
+ "ember-cli-uglify": "^1.2.0",
"ember-cli-windows-addon": "^1.2.2",
"ember-data": "2.1.0",
- "ember-disable-proxy-controllers": "^1.0.0",
- "ember-export-application-global": "^1.0.3",
+ "ember-disable-proxy-controllers": "^1.0.1",
+ "ember-export-application-global": "^1.0.4",
"ember-modal-dialog": "0.8.2",
"ember-notify": "^4.0.1",
"ember-paper": "https://github.com/miguelcobain/ember-paper.git",
diff --git a/public/assets/images/intro.jpg b/public/assets/images/intro.jpg
deleted file mode 100644
index 1cce1d7..0000000
Binary files a/public/assets/images/intro.jpg and /dev/null differ
diff --git a/tests/helpers/destroy-app.js b/tests/helpers/destroy-app.js
new file mode 100644
index 0000000..c3d4d1a
--- /dev/null
+++ b/tests/helpers/destroy-app.js
@@ -0,0 +1,5 @@
+import Ember from 'ember';
+
+export default function destroyApp(application) {
+ Ember.run(application, 'destroy');
+}
diff --git a/tests/helpers/module-for-acceptance.js b/tests/helpers/module-for-acceptance.js
new file mode 100644
index 0000000..ed23003
--- /dev/null
+++ b/tests/helpers/module-for-acceptance.js
@@ -0,0 +1,23 @@
+import { module } from 'qunit';
+import startApp from '../helpers/start-app';
+import destroyApp from '../helpers/destroy-app';
+
+export default function(name, options = {}) {
+ module(name, {
+ beforeEach() {
+ this.application = startApp();
+
+ if (options.beforeEach) {
+ options.beforeEach.apply(this, arguments);
+ }
+ },
+
+ afterEach() {
+ destroyApp(this.application);
+
+ if (options.afterEach) {
+ options.afterEach.apply(this, arguments);
+ }
+ }
+ });
+}
diff --git a/tests/helpers/resolver.js b/tests/helpers/resolver.js
index 28f4ece..ebfb4e4 100644
--- a/tests/helpers/resolver.js
+++ b/tests/helpers/resolver.js
@@ -1,7 +1,7 @@
import Resolver from 'ember/resolver';
import config from '../../config/environment';
-var resolver = Resolver.create();
+const resolver = Resolver.create();
resolver.namespace = {
modulePrefix: config.modulePrefix,
diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js
index 0f7aab1..e098f1d 100644
--- a/tests/helpers/start-app.js
+++ b/tests/helpers/start-app.js
@@ -3,12 +3,12 @@ import Application from '../../app';
import config from '../../config/environment';
export default function startApp(attrs) {
- var application;
+ let application;
- var attributes = Ember.merge({}, config.APP);
+ let attributes = Ember.merge({}, config.APP);
attributes = Ember.merge(attributes, attrs); // use defaults, but you can override;
- Ember.run(function() {
+ Ember.run(() => {
application = Application.create(attributes);
application.setupForTesting();
application.injectTestHelpers();
diff --git a/tests/index.html b/tests/index.html
index 32ad896..7a4e8a7 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -18,13 +18,14 @@
{{content-for 'test-head-footer'}}
-
{{content-for 'body'}}
{{content-for 'test-body'}}
+
-
+
+
{{content-for 'body-footer'}}