bug fixes
This commit is contained in:
parent
3750b09e8b
commit
0ca96ff7fb
17 changed files with 117 additions and 175 deletions
|
|
@ -10,7 +10,8 @@ const {
|
|||
} = Ember;
|
||||
|
||||
export default Component.extend({
|
||||
classNames: ['container', 'bridge-finder'],
|
||||
elementId: 'bridge-finder',
|
||||
classNames: ['container'],
|
||||
bridgeIp: null,
|
||||
trial: false,
|
||||
bridgeUsername: null,
|
||||
|
|
@ -28,9 +29,7 @@ export default Component.extend({
|
|||
multipleBridgeIps: [],
|
||||
error: false,
|
||||
|
||||
isAuthenticating: computed('bridgePingIntervalHandle', function(){
|
||||
return this.get('bridgePingIntervalHandle') !== null;
|
||||
}),
|
||||
isAuthenticating: computed.notEmpty('bridgePingIntervalHandle'),
|
||||
|
||||
// try to authenticate against the bridge here
|
||||
onBridgeIpChange: on('init', observer('bridgeIp', function(){
|
||||
|
|
@ -118,6 +117,7 @@ export default Component.extend({
|
|||
|
||||
clearBridgePingIntervalHandle(){
|
||||
clearInterval(this.get('bridgePingIntervalHandle'));
|
||||
this.set('bridgePingIntervalHandle', null);
|
||||
},
|
||||
|
||||
actions: {
|
||||
|
|
|
|||
|
|
@ -4,14 +4,17 @@
|
|||
{{#if error}}
|
||||
<p>Huegasm encountered a critical error while trying to connect to your bridge.<br><br>
|
||||
This likely happened because you're using an outdated browser and/or because your browser does not support <a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing" target="_blank" rel="noopener noreferrer">CORS</a>. Feel free to contact me through the link at the bottom of the page if you feel like this is not the case.<br>
|
||||
For the best browsing experience on this site ( and every other one known to man ) please switch to <a href="https://www.google.com/chrome/" target="_blank" rel="noopener noreferrer">Google Chrome</a> or <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener noreferrer">Firefox</a></p>.
|
||||
For the best browsing experience on this site ( and every other one known to man ) please switch to <a href="https://www.google.com/chrome/" target="_blank" rel="noopener noreferrer">Google Chrome</a> or <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener noreferrer">Firefox.</a></p>
|
||||
{{else}}
|
||||
<img src="assets/images/pressButtonBridge.png" id="press-bridge-button-img">
|
||||
{{paper-progress-linear warn=true value=bridgeUserNamePingIntervalProgress}}
|
||||
|
||||
{{#if isAuthenticating}}
|
||||
<p>Your bridge IP is <b>{{bridgeIp}}</b> <br>
|
||||
Press the button on your bridge to authenticate this application.</p>
|
||||
<p>
|
||||
Your bridge IP is <b>{{bridgeIp}}</b>
|
||||
<br>
|
||||
Press the button on your bridge to authenticate this application.
|
||||
</p>
|
||||
{{else}}
|
||||
<p>You failed to press the button. <a class="no-text-decoration" href="#" {{action 'retry'}}>RETRY</a></p>
|
||||
{{/if}}
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ export default Component.extend({
|
|||
'You may toggle a light\'s state by clicking on it.'
|
||||
},
|
||||
{
|
||||
element: '#settings-icon',
|
||||
element: '#settings',
|
||||
intro: 'A few miscellaneous settings can be found here.<br><br>' +
|
||||
'<b>WARNING</b>: clearing application settings will restore the application to its original state. This will even delete your playlist and any saved song beat preferences.',
|
||||
position: 'bottom'
|
||||
|
|
@ -249,6 +249,10 @@ export default Component.extend({
|
|||
if(elem.html() === '<!---->'){
|
||||
$('.introjs-nextbutton').click();
|
||||
}
|
||||
|
||||
run.later(this, function() {
|
||||
$('.introjs-tooltip').velocity('scroll');
|
||||
}, 500);
|
||||
}).onexit(onExit).oncomplete(onFinish).start();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,33 +1,34 @@
|
|||
{{#if ready}}
|
||||
<div class="row navigation">
|
||||
<div class="col-sm-6 col-sm-offset-3 col-xs-10">
|
||||
{{#each tabData as |tab|}}
|
||||
<span class="navigation-item pointer text-uppercase {{if tab.selected "active"}}" {{action "changeTab" tab.name}}>{{tab.name}}</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div id="settings" class="col-xs-2">
|
||||
{{#paper-menu as |menu|}}
|
||||
{{#paper-button target=menu action="toggleMenu" icon-button=true}}
|
||||
{{paper-icon "settings" class=dimmerOnClass id="settings-icon"}}
|
||||
{{/paper-button}}
|
||||
{{else}}
|
||||
{{#paper-menu-item action="clearBridge"}}
|
||||
{{paper-icon "settings" class="md-menu-align-target"}}
|
||||
<span>Switch bridge</span>
|
||||
{{/paper-menu-item}}
|
||||
{{#paper-menu-item action="startIntro"}}
|
||||
{{paper-icon "settings" class="md-menu-align-target"}}
|
||||
<span>Restart tutorial</span>
|
||||
{{/paper-menu-item}}
|
||||
{{#paper-menu-item action="clearAllSettings"}}
|
||||
{{paper-icon "settings" class="md-menu-align-target"}}
|
||||
<span>Reset settings</span>
|
||||
{{/paper-menu-item}}
|
||||
{{/paper-menu}}
|
||||
<div id="navigation">
|
||||
{{#each tabData as |tab|}}
|
||||
<span class="navigation-item pointer text-uppercase {{if tab.selected "active"}}" {{action "changeTab" tab.name}}>{{tab.name}}</span>
|
||||
{{/each}}
|
||||
<div id="settings">
|
||||
<span data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="settings-itemSettings">
|
||||
{{paper-icon "settings" class=dimmerOnClass id="settings-icon" size=2}}
|
||||
</span>
|
||||
|
||||
<ul id="settings-menu" class="dropdown-menu">
|
||||
<li {{action "clearBridge"}}>
|
||||
<a href="#">
|
||||
Switch bridge
|
||||
</a>
|
||||
</li>
|
||||
<li {{action "startIntro"}}>
|
||||
<a href="#">
|
||||
Restart tutorial
|
||||
</a>
|
||||
</li>
|
||||
<li {{action "clearAllSettings"}}>
|
||||
<a href="#">
|
||||
Reset settings
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{light-group lightsData=lightsData activeLights=activeLights syncLight=syncLight apiURL=apiURL classNames="horizontal-light-group" dimmerOn=dimmerOn id="active-lights"}}
|
||||
{{light-group lightsData=lightsData activeLights=activeLights syncLight=syncLight apiURL=apiURL dimmerOn=dimmerOn}}
|
||||
|
||||
{{lights-tab apiURL=apiURL lightsData=lightsData activeLights=activeLights syncLight=syncLight trial=trial active=lightsTabSelected colorLoopOn=colorLoopOn dimmerOn=dimmerOn}}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ const {
|
|||
} = Ember;
|
||||
|
||||
export default Component.extend({
|
||||
classNames: ['light-group'],
|
||||
elementId: 'active-lights',
|
||||
classNames: ['light-group', 'horizontal-light-group'],
|
||||
isHovering: false,
|
||||
activeLights: A(),
|
||||
|
||||
|
|
|
|||
|
|
@ -379,7 +379,7 @@ export default Mixin.create({
|
|||
this.changeTooltipText(type, tooltipTxt);
|
||||
})),
|
||||
|
||||
onPrevChange: observer('timeElapsed', 'playQueueNotEmpty', 'playQueue.[]', function() {
|
||||
onPrevChange: on('init', observer('timeElapsed', 'playQueueNotEmpty', 'playQueue.[]', function() {
|
||||
if(this.get('playQueueNotEmpty')){
|
||||
let tooltipTxt = 'Previous', type = 'prev';
|
||||
|
||||
|
|
@ -389,7 +389,7 @@ export default Mixin.create({
|
|||
|
||||
this.changeTooltipText(type, tooltipTxt);
|
||||
}
|
||||
}),
|
||||
})),
|
||||
|
||||
onPlayingChange: on('init', observer('playing', function () {
|
||||
let tooltipTxt = 'Play', type = 'playing';
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
<li>
|
||||
<a href="#" {{action "setVisName" name}}>{{name}}
|
||||
{{#if (eq currentVisName name)}}
|
||||
{{paper-icon "check"}}
|
||||
{{paper-icon "check" class=dimmerOnClass}}
|
||||
{{/if}}
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
@import 'bridge-finder';
|
||||
@import 'common';
|
||||
@import 'dimmer';
|
||||
@import 'ember-notify';
|
||||
@import 'fancy-speaker';
|
||||
@import 'introjs';
|
||||
@import 'hue-controls';
|
||||
|
|
@ -57,15 +56,6 @@ body, button {
|
|||
border: none;
|
||||
}
|
||||
|
||||
#settings {
|
||||
z-index: 3;
|
||||
padding-right: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.settings:before {
|
||||
transition: 0.1s all ease-in-out;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-bottom: 30px;
|
||||
|
|
@ -89,6 +79,13 @@ div.ember-modal-dialog {
|
|||
}
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
font-size: 14px;
|
||||
a {
|
||||
line-height: 2 !important;
|
||||
}
|
||||
|
||||
}
|
||||
// fancy webkit scrollbars
|
||||
::-webkit-scrollbar {
|
||||
-webkit-appearance: none;
|
||||
|
|
|
|||
|
|
@ -24,12 +24,16 @@
|
|||
font-size: 16px;
|
||||
}
|
||||
|
||||
.bridge-finder, .ready-block {
|
||||
#bridge-finder, .ready-block {
|
||||
text-align: center;
|
||||
padding-top: 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#bridge-finder .md-bar {
|
||||
background-color: $secondaryThemeColor !important;
|
||||
}
|
||||
|
||||
// preloading image
|
||||
.ready-block:after {
|
||||
display: none;
|
||||
|
|
|
|||
|
|
@ -19,11 +19,11 @@ body.dimmerOn {
|
|||
.color {
|
||||
border: 1px solid white;
|
||||
}
|
||||
.playlist-item, #add-music-choices, .add-new-music {
|
||||
.playlist-item, .dropdown-menu, .add-new-music {
|
||||
color: $whitish;
|
||||
background-color: $dimmerOnButtonColor;
|
||||
}
|
||||
#add-music-choices {
|
||||
.dropdown-menu {
|
||||
a {
|
||||
color: $whitish;
|
||||
&:hover {
|
||||
|
|
@ -78,6 +78,7 @@ body.dimmerOn {
|
|||
.group.dimmerOn,
|
||||
.settings.dimmerOn,
|
||||
.mic.dimmerOn,
|
||||
.check.dimmerOn,
|
||||
.star.dimmerOn,
|
||||
.library-music.dimmerOn {
|
||||
color: inherit !important;
|
||||
|
|
|
|||
|
|
@ -1,102 +0,0 @@
|
|||
.ember-notify-default.ember-notify-cn {
|
||||
position: fixed;
|
||||
z-index: 5000;
|
||||
right: 0;
|
||||
top: 20px;
|
||||
}
|
||||
|
||||
.ember-notify-default .ember-notify {
|
||||
display: block;
|
||||
margin: 10px;
|
||||
position: relative;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.ember-notify-default .ember-notify-show {
|
||||
-webkit-animation-duration: 500ms;
|
||||
animation-duration: 500ms;
|
||||
-webkit-animation-name: ember-notify-show;
|
||||
animation-name: ember-notify-show;
|
||||
-webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
|
||||
animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
|
||||
}
|
||||
|
||||
.ember-notify-default .ember-notify-hide {
|
||||
-webkit-animation-duration: 250ms;
|
||||
animation-duration: 250ms;
|
||||
-webkit-animation-name: ember-notify-hide;
|
||||
animation-name: ember-notify-hide;
|
||||
-webkit-animation-timing-function: cubic-bezier(0.600, -0.280, 0.735, 0.045);
|
||||
animation-timing-function: cubic-bezier(0.600, -0.280, 0.735, 0.045);
|
||||
}
|
||||
|
||||
.ember-notify-hide:hover {
|
||||
-webkit-animation-play-state: paused;
|
||||
-moz-animation-play-state: paused;
|
||||
-o-animation-play-state: paused;
|
||||
animation-play-state: paused;
|
||||
}
|
||||
|
||||
@-webkit-keyframes ember-notify-show {
|
||||
from {
|
||||
right: -310px;
|
||||
}
|
||||
to {
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ember-notify-show {
|
||||
from {
|
||||
right: -310px;
|
||||
}
|
||||
to {
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes ember-notify-hide {
|
||||
from {
|
||||
right: 0;
|
||||
}
|
||||
to {
|
||||
right: -310px;
|
||||
}
|
||||
}
|
||||
@keyframes ember-notify-hide {
|
||||
from {
|
||||
right: 0;
|
||||
}
|
||||
to {
|
||||
right: -310px;
|
||||
}
|
||||
}
|
||||
|
||||
.ember-notify-default .ember-notify .close {
|
||||
float: right;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
@media only screen and (max-width: 680px) {
|
||||
.ember-notify-default.ember-notify-cn {
|
||||
width: 100%;
|
||||
padding-left: 20px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.ember-notify-default .ember-notify {
|
||||
width: 100%;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
.ember-notify-cn .clearfix {
|
||||
*zoom: 1;
|
||||
}
|
||||
.ember-notify-cn .clearfix:before,
|
||||
.ember-notify-cn .clearfix:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
.ember-notify-cn .clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
|
|
@ -6,17 +6,13 @@
|
|||
}
|
||||
|
||||
.lights-control-tooltip + .tooltip {
|
||||
left: -20px !important;
|
||||
left: 0 !important;
|
||||
}
|
||||
|
||||
#color-row {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#color-row * .tooltip {
|
||||
left: -7px !important;
|
||||
}
|
||||
|
||||
#hue-controls {
|
||||
max-width: 1200px;
|
||||
position: relative;
|
||||
|
|
@ -28,25 +24,22 @@
|
|||
content: url(images/colormap.png) url(images/missingArtwork.png) url(images/sc-white.png) url(/favicon-96x96.png) url(images/lights/a19.svg) url(images/lights/a19w.svg) url(images/lights/br30.svg) url(images/lights/br30w.svg) url(images/lights/gu10.svg) url(images/lights/gu10w.svg) url(images/lights/huego.svg) url(images/lights/huegow.svg) url(images/lights/lc_aura.svg) url(images/lights/lc_auraw.svg) url(images/lights/lc_bloom.svg) url(images/lights/lc_bloomw.svg) url(images/lights/lc_iris.svg) url(images/lights/lc_irisw.svg) url(images/lights/lightstrip.svg) url(images/lights/lightstripw.svg) url(images/lights/storylight.svg) url(images/lights/storylightw.svg);
|
||||
}
|
||||
|
||||
.navigation {
|
||||
#navigation {
|
||||
padding: 10px 0;
|
||||
text-align: center;
|
||||
padding: 10px 0 0 0;
|
||||
}
|
||||
|
||||
.navigation-item {
|
||||
font-size: 18px;
|
||||
padding: 0 10px 0 10px;
|
||||
line-height: 3;
|
||||
}
|
||||
|
||||
.navigation-item.active {
|
||||
font-weight: bold;
|
||||
cursor: default;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.navigation-item:hover {
|
||||
text-decoration: underline;
|
||||
&.active {
|
||||
font-weight: bold;
|
||||
cursor: default;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.color {
|
||||
|
|
@ -79,3 +72,31 @@
|
|||
top: 15px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#settings {
|
||||
z-index: 3;
|
||||
text-align: right;
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#settings-menu {
|
||||
position: absolute;
|
||||
box-shadow: 1px 10px 15px 1px rgba(0, 0, 0, 0.3);
|
||||
left: -135px;
|
||||
top: 25px;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#settings-icon {
|
||||
transition: 0.1s all ease-in-out;
|
||||
&:hover {
|
||||
-webkit-transform: scale(1.1);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
&:before {
|
||||
transition: 0.1s all ease-in-out;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ $playerDefaultIconColor: #BBBBBB;
|
|||
$footerHeight: 45px;
|
||||
$playerBottomHeight: 255px;
|
||||
$secondaryThemeColor: #F12B24;
|
||||
$glowingText: 0 0 2px #fff, 0 0 8px #fff, 0 0 20px #228DFF;
|
||||
$glowingText: 0 0 2px #fff, 0 0 4px #fff, 0 0 2px #228DFF;
|
||||
$dimmerOnButtonColor: #404040;
|
||||
$blackish: #242424;
|
||||
$whitish: #e0e0e0;
|
||||
|
|
@ -383,6 +383,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
.ember-notify-default.ember-notify-cn {
|
||||
top: 0;
|
||||
bottom: initial;
|
||||
}
|
||||
|
||||
// mobile overrides
|
||||
@media(max-width:767px) {
|
||||
#seek-slider {
|
||||
|
|
@ -397,4 +402,4 @@
|
|||
.beat-option {
|
||||
text-align: center !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
width: 0.4em;
|
||||
height: 1.3em;
|
||||
left: -0.071em;
|
||||
top: -0.500em;
|
||||
top: -0.550em;
|
||||
transition-duration: 0.1s;
|
||||
background: $playerDefaultIconColor !important;
|
||||
}
|
||||
|
|
@ -56,4 +56,4 @@
|
|||
height: 200px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,3 +60,9 @@ md-toolbar {
|
|||
md-switch.md-default-theme.md-checked .md-thumb {
|
||||
background-color: $secondaryThemeColor;
|
||||
}
|
||||
|
||||
@media(max-width:500px) {
|
||||
md-checkbox .md-label {
|
||||
width: 100px;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ Location: Vancouver, Canada.
|
|||
/* THANKS */
|
||||
Edmond Cheung - favicons + huegasm logo
|
||||
Liviu Antonescu - filming + video editing of the intro
|
||||
Olamide Omorodion - business consultation
|
||||
|
||||
/* SITE */
|
||||
Last update: 2015
|
||||
|
|
|
|||
Reference in a new issue