Merge remote-tracking branch 'jerbob92/master' into develop-test
Conflicts: js/app.js
This commit is contained in:
commit
8361a247ba
14 changed files with 768 additions and 85 deletions
136
js/app.js
136
js/app.js
|
@ -1,6 +1,46 @@
|
|||
/* Declare app level module */
|
||||
var JamStash = angular.module('JamStash', ['ngCookies', 'ngRoute', 'ngSanitize']);
|
||||
//var JamStash = angular.module('JamStash', ['ngCookies', 'ngRoute']);
|
||||
|
||||
JamStash.service('globals', function (utils) {
|
||||
this.settings = {
|
||||
// Subsonic
|
||||
/* Demo Server
|
||||
Username: "android-guest"),
|
||||
Password: "guest"),
|
||||
Server: "http://subsonic.org/demo"),
|
||||
*/
|
||||
Url: "http://Jamstash.com/beta/#/archive/",
|
||||
Username: "",
|
||||
Password: "",
|
||||
Server: "",
|
||||
Timeout: 10000,
|
||||
NotificationTimeout: 20000,
|
||||
Protocol: "jsonp",
|
||||
ApplicationName: "Jamstash",
|
||||
ApiVersion: "1.6.0",
|
||||
AutoPlaylists: "",
|
||||
AutoPlaylistSize: 25,
|
||||
AutoAlbumSize: 15,
|
||||
// General
|
||||
HideAZ: false,
|
||||
ScrollTitle: true,
|
||||
NotificationSong: true,
|
||||
NotificationNowPlaying: false,
|
||||
SaveTrackPosition: false,
|
||||
ForceFlash: false,
|
||||
Theme: "Default",
|
||||
DefaultLibraryLayout: "grid",
|
||||
AutoPlay: false,
|
||||
LoopQueue: false,
|
||||
Repeat: false,
|
||||
Debug: false
|
||||
};
|
||||
this.SavedCollections = [];
|
||||
this.SavedGenres = [];
|
||||
this.BaseURL = function () { return this.settings.Server + '/rest'; };
|
||||
this.BaseParams = function () { return 'u=' + this.settings.Username + '&p=' + this.settings.Password + '&f=' + this.settings.Protocol + '&v=' + this.settings.ApiVersion + '&c=' + this.settings.ApplicationName; };
|
||||
});
|
||||
/*
|
||||
JamStash.config(function ($sceDelegateProvider) {
|
||||
$sceDelegateProvider.resourceUrlWhitelist(['/^\s*(https?|file|ms-appx):/', 'self']);
|
||||
|
@ -28,26 +68,78 @@ JamStash.config(function ($routeProvider) {
|
|||
.when('/archive/:artist/:album', { templateUrl: 'js/partials/archive.html', controller: 'ArchiveCtrl' })
|
||||
.otherwise({ redirectTo: '/index' });
|
||||
})
|
||||
.run(['$rootScope', '$location', 'globals', 'utils', function ($rootScope, $location, globals, utils) {
|
||||
$rootScope.$on("$locationChangeStart", function (event, next, current) {
|
||||
$rootScope.loggedIn = false;
|
||||
var path = $location.path().replace(/^\/([^\/]*).*$/, '$1');
|
||||
if (globals.settings.Username !== "" && globals.settings.Password !== "" && globals.settings.Server !== "" && path != 'archive') {
|
||||
$rootScope.loggedIn = true;
|
||||
$.fancybox.close();
|
||||
}
|
||||
if (!$rootScope.loggedIn && (path != 'settings' && path != 'archive')) {
|
||||
var url = '/settings';
|
||||
$location.path(url);
|
||||
}
|
||||
});
|
||||
}]);
|
||||
|
||||
/*
|
||||
JamStash.config(function ($locationProvider) {
|
||||
$locationProvider.html5Mode(true);
|
||||
})
|
||||
JamStash.config(function ($httpProvider, globals) {
|
||||
$httpProvider.defaults.timeout = globals.settings.Timeout;
|
||||
})
|
||||
*/
|
||||
JamStash.config(function ($httpProvider) {
|
||||
$httpProvider.interceptors.push(function ($rootScope, $location, $q, globals) {
|
||||
return {
|
||||
'request': function (request) {
|
||||
// if we're not logged-in to the AngularJS app, redirect to login page
|
||||
//$rootScope.loggedIn = $rootScope.loggedIn || globals.settings.Username;
|
||||
$rootScope.loggedIn = false;
|
||||
if (globals.settings.Username != "" && globals.settings.Password != "" && globals.settings.Server != "") {
|
||||
$rootScope.loggedIn = true;
|
||||
}
|
||||
if (!$rootScope.loggedIn && $location.path() != '/settings' && $location.path() != '/archive') {
|
||||
$location.path('/settings');
|
||||
}
|
||||
return request;
|
||||
},
|
||||
'responseError': function (rejection) {
|
||||
// if we're not logged-in to the web service, redirect to login page
|
||||
if (rejection.status === 401 && $location.path() != '/settings') {
|
||||
$rootScope.loggedIn = false;
|
||||
$location.path('/settings');
|
||||
}
|
||||
return $q.reject(rejection);
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
JamStash.service('model', function (utils) {
|
||||
this.Index = function (name, artist) {
|
||||
this.name = name;
|
||||
this.artist = artist;
|
||||
}
|
||||
this.Artist = function (id, name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
this.Album = function (id, parentid, name, artist, coverartthumb, coverartfull, date, starred, description, url) {
|
||||
this.id = id;
|
||||
this.parentid = parentid;
|
||||
this.name = name;
|
||||
this.artist = artist;
|
||||
this.coverartthumb = coverartthumb;
|
||||
this.coverartfull = coverartfull;
|
||||
this.date = date;
|
||||
this.starred = starred;
|
||||
this.description = description;
|
||||
this.url = url;
|
||||
}
|
||||
this.Song = function (id, parentid, track, name, artist, artistId, album, albumId, coverartthumb, coverartfull, duration, rating, starred, suffix, specs, url, position, description) {
|
||||
this.id = id;
|
||||
this.parentid = parentid;
|
||||
this.track = track;
|
||||
this.name = name;
|
||||
this.artist = artist;
|
||||
this.artistId = artistId;
|
||||
this.album = album;
|
||||
this.albumId = albumId;
|
||||
this.coverartthumb = coverartthumb;
|
||||
this.coverartfull = coverartfull;
|
||||
this.duration = duration;
|
||||
this.time = duration == '' ? '00:00' : utils.secondsToTime(duration);
|
||||
this.rating = rating;
|
||||
this.starred = starred;
|
||||
this.suffix = suffix;
|
||||
this.specs = specs;
|
||||
this.url = url;
|
||||
this.position = position;
|
||||
this.selected = false;
|
||||
this.playing = false;
|
||||
this.description = description;
|
||||
this.displayName = this.name + " - " + this.album + " - " + this.artist;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue