#267: added sound notifications
This commit is contained in:
parent
afb9ad581d
commit
36259776a1
1
Gemfile
1
Gemfile
|
@ -65,6 +65,7 @@ gem 'ng-rails-csrf'
|
||||||
gem 'momentjs-rails'
|
gem 'momentjs-rails'
|
||||||
gem 'angular-i18n', '0.1.2'
|
gem 'angular-i18n', '0.1.2'
|
||||||
gem 'js-routes'
|
gem 'js-routes'
|
||||||
|
gem 'soundmanager-rails'
|
||||||
|
|
||||||
gem 'time_diff'
|
gem 'time_diff'
|
||||||
|
|
||||||
|
|
|
@ -372,6 +372,7 @@ GEM
|
||||||
skinny (0.2.3)
|
skinny (0.2.3)
|
||||||
eventmachine (~> 1.0.0)
|
eventmachine (~> 1.0.0)
|
||||||
thin (~> 1.5.0)
|
thin (~> 1.5.0)
|
||||||
|
soundmanager-rails (0.1.5)
|
||||||
sprockets (2.2.2)
|
sprockets (2.2.2)
|
||||||
hike (~> 1.2)
|
hike (~> 1.2)
|
||||||
multi_json (~> 1.0)
|
multi_json (~> 1.0)
|
||||||
|
@ -492,6 +493,7 @@ DEPENDENCIES
|
||||||
sass-rails (~> 3.2.5)
|
sass-rails (~> 3.2.5)
|
||||||
shotgun
|
shotgun
|
||||||
shoulda
|
shoulda
|
||||||
|
soundmanager-rails
|
||||||
state_machine
|
state_machine
|
||||||
therubyracer (~> 0.10.2)
|
therubyracer (~> 0.10.2)
|
||||||
therubyrhino (~> 1.73.1)
|
therubyrhino (~> 1.73.1)
|
||||||
|
|
|
@ -24,3 +24,20 @@ var LocalesHelper = function($locale) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RosaABF.factory("LocalesHelper", ['$locale', LocalesHelper]);
|
RosaABF.factory("LocalesHelper", ['$locale', LocalesHelper]);
|
||||||
|
|
||||||
|
var SoundNotificationsHelper = function() {
|
||||||
|
var statusChangedSound = null;
|
||||||
|
soundManager.setup({
|
||||||
|
url: '/assets/swf/',
|
||||||
|
onready: function() {
|
||||||
|
statusChangedSound = soundManager.createSound({url: '/assets/garbage_shattering.wav'});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
buildStatusChanged: function() {
|
||||||
|
if (statusChangedSound)
|
||||||
|
statusChangedSound.play();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RosaABF.factory('SoundNotificationsHelper', SoundNotificationsHelper);
|
|
@ -1,4 +1,4 @@
|
||||||
RosaABF.controller('BuildListController', ['$scope', '$http', '$timeout', function($scope, $http, $timeout) {
|
RosaABF.controller('BuildListController', ['$scope', '$http', '$timeout', 'SoundNotificationsHelper', function($scope, $http, $timeout, SoundNotificationsHelper) {
|
||||||
|
|
||||||
$scope.advisoriable_types = <%=BuildList::RELEASE_UPDATE_TYPES%>;
|
$scope.advisoriable_types = <%=BuildList::RELEASE_UPDATE_TYPES%>;
|
||||||
|
|
||||||
|
@ -13,7 +13,10 @@ RosaABF.controller('BuildListController', ['$scope', '$http', '$timeout', functi
|
||||||
|
|
||||||
$scope.getBuildList = function() {
|
$scope.getBuildList = function() {
|
||||||
$http.get(Routes.build_list_path($scope.id, {format: 'json'})).success(function(results) {
|
$http.get(Routes.build_list_path($scope.id, {format: 'json'})).success(function(results) {
|
||||||
$scope.build_list = $scope.subject = new BuildList(results.build_list);
|
var build_list = new BuildList(results.build_list);
|
||||||
|
if ($scope.build_list && $scope.build_list.status != build_list.status)
|
||||||
|
SoundNotificationsHelper.buildStatusChanged();
|
||||||
|
$scope.build_list = $scope.subject = build_list;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
RosaABF.controller('ProductBuildListController', ['$scope', '$http', '$timeout', function($scope, $http, $timeout) {
|
RosaABF.controller('ProductBuildListController', ['$scope', '$http', '$timeout', 'SoundNotificationsHelper', function($scope, $http, $timeout, SoundNotificationsHelper) {
|
||||||
|
|
||||||
$scope.id = $('#product_build_list_id').val();
|
$scope.id = $('#product_build_list_id').val();
|
||||||
$scope.pbl = null;
|
$scope.pbl = null;
|
||||||
|
@ -6,7 +6,10 @@ RosaABF.controller('ProductBuildListController', ['$scope', '$http', '$timeout',
|
||||||
|
|
||||||
$scope.getProductBuildList = function() {
|
$scope.getProductBuildList = function() {
|
||||||
$http.get(Routes.product_build_list_path($scope.id, {format: 'json'})).success(function(results) {
|
$http.get(Routes.product_build_list_path($scope.id, {format: 'json'})).success(function(results) {
|
||||||
$scope.pbl = $scope.subject = results.product_build_list;
|
var product_build_list = results.product_build_list;
|
||||||
|
if ($scope.pbl && $scope.pbl.status != product_build_list.status)
|
||||||
|
SoundNotificationsHelper.buildStatusChanged();
|
||||||
|
$scope.pbl = $scope.subject = product_build_list;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
//= require angular-i18n
|
//= require angular-i18n
|
||||||
//= require_tree ./angularjs
|
//= require_tree ./angularjs
|
||||||
//= require moment
|
//= require moment
|
||||||
|
//= require soundmanager2
|
||||||
|
// require soundmanager2-nodebug-jsmin
|
||||||
|
|
||||||
//= require_self
|
//= require_self
|
||||||
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue