Merge branch 'release' into dev

This commit is contained in:
Kiran Challa 2015-08-18 11:08:40 -07:00
commit 7b8f895f3b
3 changed files with 447 additions and 481 deletions

View File

@ -3,7 +3,7 @@
<packageSources> <packageSources>
<add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/api/v2" /> <add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/api/v2" />
<add key="NuGet" value="https://nuget.org/api/v2/" /> <add key="NuGet" value="https://nuget.org/api/v2/" />
<add key="AzureAD" value="http://www.myget.org/F/azureadwebstacknightly"/> <add key="AzureAD" value="http://www.myget.org/F/azureadwebstacknightly" />
<add key="Roslyn" value="https://www.myget.org/F/roslyn-nightly/" /> <add key="Roslyn" value="https://www.myget.org/F/roslyn-nightly/" />
<add key="DotNet" value="https://www.myget.org/F/dotnet-corefx/" /> <add key="DotNet" value="https://www.myget.org/F/dotnet-corefx/" />
</packageSources> </packageSources>

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,14 @@
var MusicStore;
(function (MusicStore) {
(function (AlbumApi) {
angular.module("MusicStore.AlbumApi", []);
})(MusicStore.AlbumApi || (MusicStore.AlbumApi = {}));
var AlbumApi = MusicStore.AlbumApi;
})(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var AlbumApi;
(function (AlbumApi) {
angular.module("MusicStore.AlbumApi", []);
})(AlbumApi = MusicStore.AlbumApi || (MusicStore.AlbumApi = {}));
})(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.AlbumApi.ng.ts" />
var MusicStore;
(function (MusicStore) {
var AlbumApi;
(function (AlbumApi) { (function (AlbumApi) {
var AlbumApiService = (function () { var AlbumApiService = (function () {
function AlbumApiService($cacheFactory, $q, $http, urlResolver) { function AlbumApiService($cacheFactory, $q, $http, urlResolver) {
@ -17,19 +19,15 @@ var MusicStore;
} }
AlbumApiService.prototype.getAlbums = function (page, pageSize, sortBy) { AlbumApiService.prototype.getAlbums = function (page, pageSize, sortBy) {
var url = this._urlResolver.resolveUrl("~/api/albums"), query = {}, querySeparator = "?", inlineData; var url = this._urlResolver.resolveUrl("~/api/albums"), query = {}, querySeparator = "?", inlineData;
if (page) { if (page) {
query.page = page; query.page = page;
} }
if (pageSize) { if (pageSize) {
query.pageSize = pageSize; query.pageSize = pageSize;
} }
if (sortBy) { if (sortBy) {
query.sortBy = sortBy; query.sortBy = sortBy;
} }
for (var key in query) { for (var key in query) {
if (query.hasOwnProperty(key)) { if (query.hasOwnProperty(key)) {
url += querySeparator + key + "=" + encodeURIComponent(query[key]); url += querySeparator + key + "=" + encodeURIComponent(query[key]);
@ -38,77 +36,65 @@ var MusicStore;
} }
} }
} }
inlineData = this._inlineData ? this._inlineData.get(url) : null; inlineData = this._inlineData ? this._inlineData.get(url) : null;
if (inlineData) { if (inlineData) {
return this._q.when(inlineData); return this._q.when(inlineData);
} else { }
return this._http.get(url).then(function (result) { else {
return result.data; return this._http.get(url).then(function (result) { return result.data; });
});
} }
}; };
AlbumApiService.prototype.getAlbumDetails = function (albumId) { AlbumApiService.prototype.getAlbumDetails = function (albumId) {
var url = this._urlResolver.resolveUrl("~/api/albums/" + albumId); var url = this._urlResolver.resolveUrl("~/api/albums/" + albumId);
return this._http.get(url).then(function (result) { return this._http.get(url).then(function (result) { return result.data; });
return result.data;
});
}; };
AlbumApiService.prototype.getMostPopularAlbums = function (count) { AlbumApiService.prototype.getMostPopularAlbums = function (count) {
var url = this._urlResolver.resolveUrl("~/api/albums/mostPopular"), inlineData = this._inlineData ? this._inlineData.get(url) : null; var url = this._urlResolver.resolveUrl("~/api/albums/mostPopular"), inlineData = this._inlineData ? this._inlineData.get(url) : null;
if (inlineData) { if (inlineData) {
return this._q.when(inlineData); return this._q.when(inlineData);
} else { }
else {
if (count && count > 0) { if (count && count > 0) {
url += "?count=" + count; url += "?count=" + count;
} }
return this._http.get(url).then(function (result) { return result.data; });
return this._http.get(url).then(function (result) {
return result.data;
});
} }
}; };
AlbumApiService.prototype.createAlbum = function (album, config) { AlbumApiService.prototype.createAlbum = function (album, config) {
var url = this._urlResolver.resolveUrl("api/albums"); var url = this._urlResolver.resolveUrl("api/albums");
return this._http.post(url, album, config || { timeout: 10000 }); return this._http.post(url, album, config || { timeout: 10000 });
}; };
AlbumApiService.prototype.updateAlbum = function (album, config) { AlbumApiService.prototype.updateAlbum = function (album, config) {
var url = this._urlResolver.resolveUrl("api/albums/" + album.AlbumId + "/update"); var url = this._urlResolver.resolveUrl("api/albums/" + album.AlbumId + "/update");
return this._http.put(url, album, config || { timeout: 10000 }); return this._http.put(url, album, config || { timeout: 10000 });
}; };
AlbumApiService.prototype.deleteAlbum = function (albumId, config) { AlbumApiService.prototype.deleteAlbum = function (albumId, config) {
var url = this._urlResolver.resolveUrl("api/albums/" + albumId); var url = this._urlResolver.resolveUrl("api/albums/" + albumId);
return this._http.delete(url, config || { timeout: 10000 }); return this._http.delete(url, config || { timeout: 10000 });
}; };
return AlbumApiService; return AlbumApiService;
})(); })();
angular.module("MusicStore.AlbumApi")
angular.module("MusicStore.AlbumApi").service("MusicStore.AlbumApi.IAlbumApiService", [ .service("MusicStore.AlbumApi.IAlbumApiService", [
"$cacheFactory", "$cacheFactory",
"$q", "$q",
"$http", "$http",
"MusicStore.UrlResolver.IUrlResolverService", "MusicStore.UrlResolver.IUrlResolverService",
AlbumApiService AlbumApiService
]); ]);
})(MusicStore.AlbumApi || (MusicStore.AlbumApi = {})); })(AlbumApi = MusicStore.AlbumApi || (MusicStore.AlbumApi = {}));
var AlbumApi = MusicStore.AlbumApi;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var ArtistApi;
(function (ArtistApi) { (function (ArtistApi) {
angular.module("MusicStore.ArtistApi", []); angular.module("MusicStore.ArtistApi", []);
})(MusicStore.ArtistApi || (MusicStore.ArtistApi = {})); })(ArtistApi = MusicStore.ArtistApi || (MusicStore.ArtistApi = {}));
var ArtistApi = MusicStore.ArtistApi;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.ArtistApi.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var ArtistApi;
(function (ArtistApi) { (function (ArtistApi) {
var ArtistsApiService = (function () { var ArtistsApiService = (function () {
function ArtistsApiService($cacheFactory, $q, $http, urlResolver) { function ArtistsApiService($cacheFactory, $q, $http, urlResolver) {
@ -119,37 +105,36 @@ var MusicStore;
} }
ArtistsApiService.prototype.getArtistsLookup = function () { ArtistsApiService.prototype.getArtistsLookup = function () {
var url = this._urlResolver.resolveUrl("~/api/artists/lookup"), inlineData = this._inlineData ? this._inlineData.get(url) : null; var url = this._urlResolver.resolveUrl("~/api/artists/lookup"), inlineData = this._inlineData ? this._inlineData.get(url) : null;
if (inlineData) { if (inlineData) {
return this._q.when(inlineData); return this._q.when(inlineData);
} else { }
return this._http.get(url).then(function (result) { else {
return result.data; return this._http.get(url).then(function (result) { return result.data; });
});
} }
}; };
return ArtistsApiService; return ArtistsApiService;
})(); })();
angular.module("MusicStore.ArtistApi")
angular.module("MusicStore.ArtistApi").service("MusicStore.ArtistApi.IArtistApiService", [ .service("MusicStore.ArtistApi.IArtistApiService", [
"$cacheFactory", "$cacheFactory",
"$q", "$q",
"$http", "$http",
"MusicStore.UrlResolver.IUrlResolverService", "MusicStore.UrlResolver.IUrlResolverService",
ArtistsApiService ArtistsApiService
]); ]);
})(MusicStore.ArtistApi || (MusicStore.ArtistApi = {})); })(ArtistApi = MusicStore.ArtistApi || (MusicStore.ArtistApi = {}));
var ArtistApi = MusicStore.ArtistApi;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var GenreApi;
(function (GenreApi) { (function (GenreApi) {
angular.module("MusicStore.GenreApi", []); angular.module("MusicStore.GenreApi", []);
})(MusicStore.GenreApi || (MusicStore.GenreApi = {})); })(GenreApi = MusicStore.GenreApi || (MusicStore.GenreApi = {}));
var GenreApi = MusicStore.GenreApi;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.GenreApi.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var GenreApi;
(function (GenreApi) { (function (GenreApi) {
var GenreApiService = (function () { var GenreApiService = (function () {
function GenreApiService($cacheFactory, $q, $http, urlResolver) { function GenreApiService($cacheFactory, $q, $http, urlResolver) {
@ -160,84 +145,78 @@ var MusicStore;
} }
GenreApiService.prototype.getGenresLookup = function () { GenreApiService.prototype.getGenresLookup = function () {
var url = this._urlResolver.resolveUrl("~/api/genres/lookup"), inlineData = this._inlineData ? this._inlineData.get(url) : null; var url = this._urlResolver.resolveUrl("~/api/genres/lookup"), inlineData = this._inlineData ? this._inlineData.get(url) : null;
if (inlineData) { if (inlineData) {
return this._q.when(inlineData); return this._q.when(inlineData);
} else { }
return this._http.get(url).then(function (result) { else {
return result.data; return this._http.get(url).then(function (result) { return result.data; });
});
} }
}; };
GenreApiService.prototype.getGenresMenu = function () { GenreApiService.prototype.getGenresMenu = function () {
var url = this._urlResolver.resolveUrl("~/api/genres/menu"), inlineData = this._inlineData ? this._inlineData.get(url) : null; var url = this._urlResolver.resolveUrl("~/api/genres/menu"), inlineData = this._inlineData ? this._inlineData.get(url) : null;
if (inlineData) { if (inlineData) {
return this._q.when(inlineData); return this._q.when(inlineData);
} else { }
return this._http.get(url).then(function (result) { else {
return result.data; return this._http.get(url).then(function (result) { return result.data; });
});
} }
}; };
GenreApiService.prototype.getGenresList = function () { GenreApiService.prototype.getGenresList = function () {
var url = this._urlResolver.resolveUrl("~/api/genres"); var url = this._urlResolver.resolveUrl("~/api/genres");
return this._http.get(url); return this._http.get(url);
}; };
GenreApiService.prototype.getGenreAlbums = function (genreId) { GenreApiService.prototype.getGenreAlbums = function (genreId) {
var url = this._urlResolver.resolveUrl("~/api/genres/" + genreId + "/albums"); var url = this._urlResolver.resolveUrl("~/api/genres/" + genreId + "/albums");
return this._http.get(url); return this._http.get(url);
}; };
return GenreApiService; return GenreApiService;
})(); })();
angular.module("MusicStore.GenreApi")
angular.module("MusicStore.GenreApi").service("MusicStore.GenreApi.IGenreApiService", [ .service("MusicStore.GenreApi.IGenreApiService", [
"$cacheFactory", "$cacheFactory",
"$q", "$q",
"$http", "$http",
"MusicStore.UrlResolver.IUrlResolverService", "MusicStore.UrlResolver.IUrlResolverService",
GenreApiService GenreApiService
]); ]);
})(MusicStore.GenreApi || (MusicStore.GenreApi = {})); })(GenreApi = MusicStore.GenreApi || (MusicStore.GenreApi = {}));
var GenreApi = MusicStore.GenreApi;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var GenreMenu;
(function (GenreMenu) { (function (GenreMenu) {
angular.module("MusicStore.GenreMenu", []); angular.module("MusicStore.GenreMenu", []);
})(MusicStore.GenreMenu || (MusicStore.GenreMenu = {})); })(GenreMenu = MusicStore.GenreMenu || (MusicStore.GenreMenu = {}));
var GenreMenu = MusicStore.GenreMenu;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.GenreMenu.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var GenreMenu;
(function (GenreMenu) { (function (GenreMenu) {
var GenreMenuController = (function () { var GenreMenuController = (function () {
function GenreMenuController(genreApi, urlResolver) { function GenreMenuController(genreApi, urlResolver) {
var viewModel = this; var viewModel = this;
genreApi.getGenresMenu().then(function (genres) { genreApi.getGenresMenu().then(function (genres) {
viewModel.genres = genres; viewModel.genres = genres;
}); });
viewModel.urlBase = urlResolver.base; viewModel.urlBase = urlResolver.base;
} }
return GenreMenuController; return GenreMenuController;
})(); })();
angular.module("MusicStore.GenreMenu")
angular.module("MusicStore.GenreMenu").controller("MusicStore.GenreMenu.GenreMenuController", [ .controller("MusicStore.GenreMenu.GenreMenuController", [
"MusicStore.GenreApi.IGenreApiService", "MusicStore.GenreApi.IGenreApiService",
"MusicStore.UrlResolver.IUrlResolverService", "MusicStore.UrlResolver.IUrlResolverService",
GenreMenuController GenreMenuController
]); ]);
})(MusicStore.GenreMenu || (MusicStore.GenreMenu = {})); })(GenreMenu = MusicStore.GenreMenu || (MusicStore.GenreMenu = {}));
var GenreMenu = MusicStore.GenreMenu;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.GenreMenu.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var GenreMenu;
(function (GenreMenu) { (function (GenreMenu) {
//@NgDirective('appGenreMenu')
var GenreMenuDirective = (function () { var GenreMenuDirective = (function () {
function GenreMenuDirective(urlResolver) { function GenreMenuDirective(urlResolver) {
this.replace = true; this.replace = true;
@ -251,26 +230,28 @@ var MusicStore;
} }
return GenreMenuDirective; return GenreMenuDirective;
})(); })();
angular.module("MusicStore.GenreMenu")
angular.module("MusicStore.GenreMenu").directive("appGenreMenu", [ .directive("appGenreMenu", [
"MusicStore.UrlResolver.IUrlResolverService", "MusicStore.UrlResolver.IUrlResolverService",
function (a) { function (a) {
return new GenreMenuDirective(a); return new GenreMenuDirective(a);
} }
]); ]);
})(MusicStore.GenreMenu || (MusicStore.GenreMenu = {})); })(GenreMenu = MusicStore.GenreMenu || (MusicStore.GenreMenu = {}));
var GenreMenu = MusicStore.GenreMenu;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var InlineData;
(function (InlineData) { (function (InlineData) {
angular.module("MusicStore.InlineData", []); angular.module("MusicStore.InlineData", []);
})(MusicStore.InlineData || (MusicStore.InlineData = {})); })(InlineData = MusicStore.InlineData || (MusicStore.InlineData = {}));
var InlineData = MusicStore.InlineData;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.InlineData.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var InlineData;
(function (InlineData) { (function (InlineData) {
//@NgDirective('appInlineData')
var InlineDataDirective = (function () { var InlineDataDirective = (function () {
function InlineDataDirective($cacheFactory, $log) { function InlineDataDirective($cacheFactory, $log) {
this.restrict = "A"; this.restrict = "A";
@ -283,35 +264,38 @@ var MusicStore;
this._log = $log; this._log = $log;
} }
InlineDataDirective.prototype.link = function (scope, element, attrs) { InlineDataDirective.prototype.link = function (scope, element, attrs) {
var data = attrs.type === "application/json" ? angular.fromJson(element.text()) : element.text(); var data = attrs.type === "application/json"
? angular.fromJson(element.text())
: element.text();
this._log.info("appInlineData: Inline data element found for " + attrs.for); this._log.info("appInlineData: Inline data element found for " + attrs.for);
this._cache.put(attrs.for, data); this._cache.put(attrs.for, data);
//element.remove();
}; };
return InlineDataDirective; return InlineDataDirective;
})(); })();
angular.module("MusicStore.InlineData")
angular.module("MusicStore.InlineData").directive("appInlineData", [ .directive("appInlineData", [
"$cacheFactory", "$cacheFactory",
"$log", "$log",
function (a, b) { function (a, b) {
return new InlineDataDirective(a, b); return new InlineDataDirective(a, b);
} }
]); ]);
})(MusicStore.InlineData || (MusicStore.InlineData = {})); })(InlineData = MusicStore.InlineData || (MusicStore.InlineData = {}));
var InlineData = MusicStore.InlineData;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var LoginLink;
(function (LoginLink) { (function (LoginLink) {
angular.module("MusicStore.LoginLink", []); angular.module("MusicStore.LoginLink", []);
})(MusicStore.LoginLink || (MusicStore.LoginLink = {})); })(LoginLink = MusicStore.LoginLink || (MusicStore.LoginLink = {}));
var LoginLink = MusicStore.LoginLink;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.LoginLink.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var LoginLink;
(function (LoginLink) { (function (LoginLink) {
//@NgDirective('appLoginLink')
var LoginLinkDirective = (function () { var LoginLinkDirective = (function () {
function LoginLinkDirective(urlResolver, $window) { function LoginLinkDirective(urlResolver, $window) {
this.restrict = "A"; this.restrict = "A";
@ -327,30 +311,29 @@ var MusicStore;
if (!element.is("a[href]")) { if (!element.is("a[href]")) {
return; return;
} }
// Grab the original login URL
var loginUrl = attrs.href; var loginUrl = attrs.href;
element.click(function (event) { element.click(function (event) {
// Update the returnUrl querystring value to current path
var currentUrl = _this._window.location.pathname + _this._window.location.search + _this._window.location.hash, newUrl = loginUrl + "?returnUrl=" + encodeURIComponent(currentUrl); var currentUrl = _this._window.location.pathname + _this._window.location.search + _this._window.location.hash, newUrl = loginUrl + "?returnUrl=" + encodeURIComponent(currentUrl);
element.prop("href", newUrl); element.prop("href", newUrl);
}); });
}; };
return LoginLinkDirective; return LoginLinkDirective;
})(); })();
angular.module("MusicStore.LoginLink")
angular.module("MusicStore.LoginLink").directive("appLoginLink", [ .directive("appLoginLink", [
"MusicStore.UrlResolver.IUrlResolverService", "MusicStore.UrlResolver.IUrlResolverService",
"$window", "$window",
function (a, b) { function (a, b) {
return new LoginLinkDirective(a, b); return new LoginLinkDirective(a, b);
} }
]); ]);
})(MusicStore.LoginLink || (MusicStore.LoginLink = {})); })(LoginLink = MusicStore.LoginLink || (MusicStore.LoginLink = {}));
var LoginLink = MusicStore.LoginLink;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Models;
(function (Models) { (function (Models) {
var AlertType = (function () { var AlertType = (function () {
function AlertType(value) { function AlertType(value) {
@ -359,7 +342,7 @@ var MusicStore;
AlertType.prototype.toString = function () { AlertType.prototype.toString = function () {
return this.value; return this.value;
}; };
// Values
AlertType.success = new AlertType("success"); AlertType.success = new AlertType("success");
AlertType.info = new AlertType("info"); AlertType.info = new AlertType("info");
AlertType.warning = new AlertType("warning"); AlertType.warning = new AlertType("warning");
@ -367,19 +350,21 @@ var MusicStore;
return AlertType; return AlertType;
})(); })();
Models.AlertType = AlertType; Models.AlertType = AlertType;
})(MusicStore.Models || (MusicStore.Models = {})); })(Models = MusicStore.Models || (MusicStore.Models = {}));
var Models = MusicStore.Models;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var PreventSubmit;
(function (PreventSubmit) { (function (PreventSubmit) {
angular.module("MusicStore.PreventSubmit", []); angular.module("MusicStore.PreventSubmit", []);
})(MusicStore.PreventSubmit || (MusicStore.PreventSubmit = {})); })(PreventSubmit = MusicStore.PreventSubmit || (MusicStore.PreventSubmit = {}));
var PreventSubmit = MusicStore.PreventSubmit;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.PreventSubmit.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var PreventSubmit;
(function (PreventSubmit) { (function (PreventSubmit) {
//@NgDirective('appPreventSubmit')
var PreventSubmitDirective = (function () { var PreventSubmitDirective = (function () {
function PreventSubmitDirective() { function PreventSubmitDirective() {
this.restrict = "A"; this.restrict = "A";
@ -390,6 +375,7 @@ var MusicStore;
} }
} }
PreventSubmitDirective.prototype.link = function (scope, element, attrs) { PreventSubmitDirective.prototype.link = function (scope, element, attrs) {
// TODO: Just make this directive apply to all <form> tags and no-op if no action attr
element.submit(function (e) { element.submit(function (e) {
if (scope.$eval(attrs.appPreventSubmit)) { if (scope.$eval(attrs.appPreventSubmit)) {
e.preventDefault(); e.preventDefault();
@ -399,85 +385,85 @@ var MusicStore;
}; };
return PreventSubmitDirective; return PreventSubmitDirective;
})(); })();
angular.module("MusicStore.PreventSubmit")
angular.module("MusicStore.PreventSubmit").directive("appPreventSubmit", [ .directive("appPreventSubmit", [
function () { function () {
return new PreventSubmitDirective(); return new PreventSubmitDirective();
} }
]); ]);
})(MusicStore.PreventSubmit || (MusicStore.PreventSubmit = {})); })(PreventSubmit = MusicStore.PreventSubmit || (MusicStore.PreventSubmit = {}));
var PreventSubmit = MusicStore.PreventSubmit;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var TitleCase;
(function (TitleCase) { (function (TitleCase) {
angular.module("MusicStore.TitleCase", []); angular.module("MusicStore.TitleCase", []);
})(MusicStore.TitleCase || (MusicStore.TitleCase = {})); })(TitleCase = MusicStore.TitleCase || (MusicStore.TitleCase = {}));
var TitleCase = MusicStore.TitleCase;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.TitleCase.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var TitleCase;
(function (TitleCase) { (function (TitleCase) {
//@NgFilter('titlecase')
function titleCase(input) { function titleCase(input) {
var out = "", lastChar = ""; var out = "", lastChar = "";
for (var i = 0; i < input.length; i++) { for (var i = 0; i < input.length; i++) {
out = out + (lastChar === " " || lastChar === "" ? input.charAt(i).toUpperCase() : input.charAt(i)); out = out + (lastChar === " " || lastChar === ""
? input.charAt(i).toUpperCase()
: input.charAt(i));
lastChar = input.charAt(i); lastChar = input.charAt(i);
} }
return out; return out;
} }
angular.module("MusicStore.TitleCase")
angular.module("MusicStore.TitleCase").filter("titlecase", function () { .filter("titlecase", function () { return titleCase; });
return titleCase; })(TitleCase = MusicStore.TitleCase || (MusicStore.TitleCase = {}));
});
})(MusicStore.TitleCase || (MusicStore.TitleCase = {}));
var TitleCase = MusicStore.TitleCase;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Truncate;
(function (Truncate) { (function (Truncate) {
angular.module("MusicStore.Truncate", []); angular.module("MusicStore.Truncate", []);
})(MusicStore.Truncate || (MusicStore.Truncate = {})); })(Truncate = MusicStore.Truncate || (MusicStore.Truncate = {}));
var Truncate = MusicStore.Truncate;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.Truncate.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Truncate;
(function (Truncate) { (function (Truncate) {
//@NgFilter
function truncate(input, length) { function truncate(input, length) {
if (!input) { if (!input) {
return input; return input;
} }
if (input.length <= length) { if (input.length <= length) {
return input; return input;
} else { }
else {
return input.substr(0, length).trim() + "…"; return input.substr(0, length).trim() + "…";
} }
} }
angular.module("MusicStore.Truncate")
angular.module("MusicStore.Truncate").filter("truncate", function () { .filter("truncate", function () { return truncate; });
return truncate; })(Truncate = MusicStore.Truncate || (MusicStore.Truncate = {}));
});
})(MusicStore.Truncate || (MusicStore.Truncate = {}));
var Truncate = MusicStore.Truncate;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var UrlResolver;
(function (UrlResolver) { (function (UrlResolver) {
angular.module("MusicStore.UrlResolver", []); angular.module("MusicStore.UrlResolver", []);
})(MusicStore.UrlResolver || (MusicStore.UrlResolver = {})); })(UrlResolver = MusicStore.UrlResolver || (MusicStore.UrlResolver = {}));
var UrlResolver = MusicStore.UrlResolver;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.UrlResolver.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var UrlResolver;
(function (UrlResolver) { (function (UrlResolver) {
var UrlResolverService = (function () { var UrlResolverService = (function () {
function UrlResolverService($rootElement) { function UrlResolverService($rootElement) {
this._base = $rootElement.attr("data-url-base"); this._base = $rootElement.attr("data-url-base");
// Add trailing slash if not present
if (this._base === "" || this._base.substr(this._base.length - 1) !== "/") { if (this._base === "" || this._base.substr(this._base.length - 1) !== "/") {
this._base = this._base + "/"; this._base = this._base + "/";
} }
@ -489,54 +475,51 @@ var MusicStore;
enumerable: true, enumerable: true,
configurable: true configurable: true
}); });
UrlResolverService.prototype.resolveUrl = function (relativeUrl) { UrlResolverService.prototype.resolveUrl = function (relativeUrl) {
var firstChar = relativeUrl.substr(0, 1); var firstChar = relativeUrl.substr(0, 1);
if (firstChar === "~") { if (firstChar === "~") {
relativeUrl = relativeUrl.substr(1); relativeUrl = relativeUrl.substr(1);
} }
firstChar = relativeUrl.substr(0, 1); firstChar = relativeUrl.substr(0, 1);
if (firstChar === "/") { if (firstChar === "/") {
relativeUrl = relativeUrl.substr(1); relativeUrl = relativeUrl.substr(1);
} }
return this._base + relativeUrl; return this._base + relativeUrl;
}; };
return UrlResolverService; return UrlResolverService;
})(); })();
angular.module("MusicStore.UrlResolver")
angular.module("MusicStore.UrlResolver").service("MusicStore.UrlResolver.IUrlResolverService", [ .service("MusicStore.UrlResolver.IUrlResolverService", [
"$rootElement", "$rootElement",
UrlResolverService UrlResolverService
]); ]);
})(MusicStore.UrlResolver || (MusicStore.UrlResolver = {})); })(UrlResolver = MusicStore.UrlResolver || (MusicStore.UrlResolver = {}));
var UrlResolver = MusicStore.UrlResolver;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var UserDetails;
(function (UserDetails) { (function (UserDetails) {
angular.module("MusicStore.UserDetails", []); angular.module("MusicStore.UserDetails", []);
})(MusicStore.UserDetails || (MusicStore.UserDetails = {})); })(UserDetails = MusicStore.UserDetails || (MusicStore.UserDetails = {}));
var UserDetails = MusicStore.UserDetails;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.UserDetails.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var UserDetails;
(function (UserDetails) { (function (UserDetails) {
var UserDetailsService = (function () { var UserDetailsService = (function () {
function UserDetailsService($document) { function UserDetailsService($document) {
this._document = $document; this._document = $document;
} }
UserDetailsService.prototype.getUserDetails = function (elementId) { UserDetailsService.prototype.getUserDetails = function (elementId) {
if (typeof elementId === "undefined") { elementId = "userDetails"; } if (elementId === void 0) { elementId = "userDetails"; }
if (!this._userDetails) { if (!this._userDetails) {
//var el = this._document.querySelector("[data-json-id='" + elementId + "']");
var el = this._document.find("#" + elementId + "[type='application/json']"); var el = this._document.find("#" + elementId + "[type='application/json']");
if (el.length) { if (el.length) {
this._userDetails = angular.fromJson(el.text()); this._userDetails = angular.fromJson(el.text());
} else { }
else {
this._userDetails = { this._userDetails = {
isAuthenticated: false, isAuthenticated: false,
userId: null, userId: null,
@ -549,46 +532,50 @@ var MusicStore;
}; };
return UserDetailsService; return UserDetailsService;
})(); })();
angular.module("MusicStore.UserDetails")
angular.module("MusicStore.UserDetails").service("MusicStore.UserDetails.IUserDetailsService", [ .service("MusicStore.UserDetails.IUserDetailsService", [
"$document", "$document",
UserDetailsService UserDetailsService
]); ]);
})(MusicStore.UserDetails || (MusicStore.UserDetails = {})); })(UserDetails = MusicStore.UserDetails || (MusicStore.UserDetails = {}));
var UserDetails = MusicStore.UserDetails;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var ViewAlert;
(function (ViewAlert) { (function (ViewAlert) {
angular.module("MusicStore.ViewAlert", []); angular.module("MusicStore.ViewAlert", []);
})(MusicStore.ViewAlert || (MusicStore.ViewAlert = {})); })(ViewAlert = MusicStore.ViewAlert || (MusicStore.ViewAlert = {}));
var ViewAlert = MusicStore.ViewAlert;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.ViewAlert.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var ViewAlert;
(function (ViewAlert) { (function (ViewAlert) {
var ViewAlertService = (function () { var ViewAlertService = (function () {
function ViewAlertService() { function ViewAlertService() {
} }
return ViewAlertService; return ViewAlertService;
})(); })();
angular.module("MusicStore.ViewAlert")
angular.module("MusicStore.ViewAlert").service("MusicStore.ViewAlert.IViewAlertService", [ .service("MusicStore.ViewAlert.IViewAlertService", [
ViewAlertService ViewAlertService
]); ]);
})(MusicStore.ViewAlert || (MusicStore.ViewAlert = {})); })(ViewAlert = MusicStore.ViewAlert || (MusicStore.ViewAlert = {}));
var ViewAlert = MusicStore.ViewAlert;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Visited;
(function (Visited) { (function (Visited) {
angular.module("MusicStore.Visited", []); angular.module("MusicStore.Visited", []);
})(MusicStore.Visited || (MusicStore.Visited = {})); })(Visited = MusicStore.Visited || (MusicStore.Visited = {}));
var Visited = MusicStore.Visited;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.Visited.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Visited;
(function (Visited) { (function (Visited) {
//@NgDirective('input')
//@NgDirective('select')
var VisitedDirective = (function () { var VisitedDirective = (function () {
function VisitedDirective($window) { function VisitedDirective($window) {
this.restrict = "E"; this.restrict = "E";
@ -604,14 +591,10 @@ var MusicStore;
if (!ctrl) { if (!ctrl) {
return; return;
} }
element.on("focus", function (event) { element.on("focus", function (event) {
element.addClass("has-focus"); element.addClass("has-focus");
scope.$apply(function () { scope.$apply(function () { return ctrl.focus = true; });
return ctrl.focus = true;
});
}); });
element.on("blur", function (event) { element.on("blur", function (event) {
element.removeClass("has-focus"); element.removeClass("has-focus");
element.addClass("has-visited"); element.addClass("has-visited");
@ -620,10 +603,8 @@ var MusicStore;
ctrl.visited = true; ctrl.visited = true;
}); });
}); });
element.closest("form").on("submit", function () { element.closest("form").on("submit", function () {
element.addClass("has-visited"); element.addClass("has-visited");
scope.$apply(function () { scope.$apply(function () {
ctrl.focus = false; ctrl.focus = false;
ctrl.visited = true; ctrl.visited = true;
@ -632,141 +613,146 @@ var MusicStore;
}; };
return VisitedDirective; return VisitedDirective;
})(); })();
angular.module("MusicStore.Visited")
angular.module("MusicStore.Visited").directive("input", [ .directive("input", [
"$window", "$window",
function (a) { function (a) {
return new VisitedDirective(a); return new VisitedDirective(a);
} }
]).directive("select", [ ])
.directive("select", [
"$window", "$window",
function (a) { function (a) {
return new VisitedDirective(a); return new VisitedDirective(a);
} }
]); ]);
})(MusicStore.Visited || (MusicStore.Visited = {})); })(Visited = MusicStore.Visited || (MusicStore.Visited = {}));
var Visited = MusicStore.Visited;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Store;
(function (Store) { (function (Store) {
var Catalog;
(function (Catalog) { (function (Catalog) {
angular.module("MusicStore.Store.Catalog", []); angular.module("MusicStore.Store.Catalog", []);
})(Store.Catalog || (Store.Catalog = {})); })(Catalog = Store.Catalog || (Store.Catalog = {}));
var Catalog = Store.Catalog; })(Store = MusicStore.Store || (MusicStore.Store = {}));
})(MusicStore.Store || (MusicStore.Store = {}));
var Store = MusicStore.Store;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.Store.Catalog.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Store;
(function (Store) { (function (Store) {
var Catalog;
(function (Catalog) { (function (Catalog) {
var AlbumDetailsController = (function () { var AlbumDetailsController = (function () {
function AlbumDetailsController($routeParams, albumApi) { function AlbumDetailsController($routeParams, albumApi) {
var viewModel = this, albumId = $routeParams.albumId; var viewModel = this, albumId = $routeParams.albumId;
albumApi.getAlbumDetails(albumId).then(function (album) { albumApi.getAlbumDetails(albumId).then(function (album) {
viewModel.album = album; viewModel.album = album;
}); });
} }
return AlbumDetailsController; return AlbumDetailsController;
})(); })();
angular.module("MusicStore.Store.Catalog")
angular.module("MusicStore.Store.Catalog").controller("MusicStore.Store.Catalog.AlbumDetailsController", [ .controller("MusicStore.Store.Catalog.AlbumDetailsController", [
"$routeParams", "$routeParams",
"MusicStore.AlbumApi.IAlbumApiService", "MusicStore.AlbumApi.IAlbumApiService",
AlbumDetailsController AlbumDetailsController
]); ]);
})(Store.Catalog || (Store.Catalog = {})); })(Catalog = Store.Catalog || (Store.Catalog = {}));
var Catalog = Store.Catalog; })(Store = MusicStore.Store || (MusicStore.Store = {}));
})(MusicStore.Store || (MusicStore.Store = {}));
var Store = MusicStore.Store;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.Store.Catalog.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Store;
(function (Store) { (function (Store) {
var Catalog;
(function (Catalog) { (function (Catalog) {
var GenreDetailsController = (function () { var GenreDetailsController = (function () {
function GenreDetailsController($routeParams, genreApi) { function GenreDetailsController($routeParams, genreApi) {
var viewModel = this; var viewModel = this;
genreApi.getGenreAlbums($routeParams.genreId).success(function (result) { genreApi.getGenreAlbums($routeParams.genreId).success(function (result) {
viewModel.albums = result; viewModel.albums = result;
}); });
} }
return GenreDetailsController; return GenreDetailsController;
})(); })();
angular.module("MusicStore.Store.Catalog")
angular.module("MusicStore.Store.Catalog").controller("MusicStore.Store.Catalog.GenreDetailsController", [ .controller("MusicStore.Store.Catalog.GenreDetailsController", [
"$routeParams", "$routeParams",
"MusicStore.GenreApi.IGenreApiService", "MusicStore.GenreApi.IGenreApiService",
GenreDetailsController GenreDetailsController
]); ]);
})(Store.Catalog || (Store.Catalog = {})); })(Catalog = Store.Catalog || (Store.Catalog = {}));
var Catalog = Store.Catalog; })(Store = MusicStore.Store || (MusicStore.Store = {}));
})(MusicStore.Store || (MusicStore.Store = {}));
var Store = MusicStore.Store;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.Store.Catalog.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Store;
(function (Store) { (function (Store) {
var Catalog;
(function (Catalog) { (function (Catalog) {
var GenreListController = (function () { var GenreListController = (function () {
function GenreListController(genreApi) { function GenreListController(genreApi) {
var viewModel = this; var viewModel = this;
genreApi.getGenresList().success(function (genres) { genreApi.getGenresList().success(function (genres) {
viewModel.genres = genres; viewModel.genres = genres;
}); });
} }
return GenreListController; return GenreListController;
})(); })();
angular.module("MusicStore.Store.Catalog")
angular.module("MusicStore.Store.Catalog").controller("MusicStore.Store.Catalog.GenreListController", [ .controller("MusicStore.Store.Catalog.GenreListController", [
"MusicStore.GenreApi.IGenreApiService", "MusicStore.GenreApi.IGenreApiService",
GenreListController GenreListController
]); ]);
})(Store.Catalog || (Store.Catalog = {})); })(Catalog = Store.Catalog || (Store.Catalog = {}));
var Catalog = Store.Catalog; })(Store = MusicStore.Store || (MusicStore.Store = {}));
})(MusicStore.Store || (MusicStore.Store = {}));
var Store = MusicStore.Store;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Store;
(function (Store) { (function (Store) {
var Home;
(function (Home) { (function (Home) {
angular.module("MusicStore.Store.Home", []); angular.module("MusicStore.Store.Home", []);
})(Store.Home || (Store.Home = {})); })(Home = Store.Home || (Store.Home = {}));
var Home = Store.Home; })(Store = MusicStore.Store || (MusicStore.Store = {}));
})(MusicStore.Store || (MusicStore.Store = {}));
var Store = MusicStore.Store;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="..\..\MusicStore.Store.Home.ng.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Store;
(function (Store) { (function (Store) {
var Home;
(function (Home) { (function (Home) {
var HomeController = (function () { var HomeController = (function () {
function HomeController(albumApi) { function HomeController(albumApi) {
var viewModel = this; var viewModel = this;
albumApi.getMostPopularAlbums().then(function (albums) { albumApi.getMostPopularAlbums().then(function (albums) {
viewModel.albums = albums; viewModel.albums = albums;
}); });
} }
return HomeController; return HomeController;
})(); })();
angular.module("MusicStore.Store.Home")
angular.module("MusicStore.Store.Home").controller("MusicStore.Store.Home.HomeController", [ .controller("MusicStore.Store.Home.HomeController", [
"MusicStore.AlbumApi.IAlbumApiService", "MusicStore.AlbumApi.IAlbumApiService",
HomeController HomeController
]); ]);
})(Store.Home || (Store.Home = {})); })(Home = Store.Home || (Store.Home = {}));
var Home = Store.Home; })(Store = MusicStore.Store || (MusicStore.Store = {}));
})(MusicStore.Store || (MusicStore.Store = {}));
var Store = MusicStore.Store;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));
/// <reference path="../bower_components/dt-angular/angular.d.ts" />
/// <reference path="../bower_components/dt-angular/angular-route.d.ts" />
/// <reference path="../bower_components/dt-angular-ui-bootstrap/angular-ui-bootstrap.d.ts" />
/// <reference path="../references.ts" />
var MusicStore; var MusicStore;
(function (MusicStore) { (function (MusicStore) {
var Store;
(function (Store) { (function (Store) {
angular.module("MusicStore.Store", [ angular.module("MusicStore.Store", [
"ngRoute", "ngRoute",
@ -780,7 +766,7 @@ var MusicStore;
"MusicStore.AlbumApi", "MusicStore.AlbumApi",
"MusicStore.Visited", "MusicStore.Visited",
"MusicStore.Store.Home", "MusicStore.Store.Home",
"MusicStore.Store.Catalog" "MusicStore.Store.Catalog",
]).config([ ]).config([
"$routeProvider", "$routeProvider",
"$logProvider", "$logProvider",
@ -790,7 +776,6 @@ var MusicStore;
"MusicStore.UserDetails.IUserDetailsService", "MusicStore.UserDetails.IUserDetailsService",
run run
]); ]);
var dependencies = [ var dependencies = [
"ngRoute", "ngRoute",
MusicStore.InlineData, MusicStore.InlineData,
@ -805,16 +790,22 @@ var MusicStore;
MusicStore.Store.Home, MusicStore.Store.Home,
MusicStore.Store.Catalog MusicStore.Store.Catalog
]; ];
// Use this method to register work which needs to be performed on module loading.
// Note only providers can be injected as dependencies here.
function configuration($routeProvider, $logProvider) { function configuration($routeProvider, $logProvider) {
// TODO: Enable debug logging based on server config
// TODO: Capture all logged errors and send back to server
$logProvider.debugEnabled(true); $logProvider.debugEnabled(true);
$routeProvider
$routeProvider.when("/", { templateUrl: "ng-apps/MusicStore.Store/Home/Home.html" }).when("/albums/genres", { templateUrl: "ng-apps/MusicStore.Store/Catalog/GenreList.html" }).when("/albums/genres/:genreId", { templateUrl: "ng-apps/MusicStore.Store/Catalog/GenreDetails.html" }).when("/albums/:albumId", { templateUrl: "ng-apps/MusicStore.Store/Catalog/AlbumDetails.html" }).otherwise({ redirectTo: "/" }); .when("/", { templateUrl: "ng-apps/MusicStore.Store/Home/Home.html" })
.when("/albums/genres", { templateUrl: "ng-apps/MusicStore.Store/Catalog/GenreList.html" })
.when("/albums/genres/:genreId", { templateUrl: "ng-apps/MusicStore.Store/Catalog/GenreDetails.html" })
.when("/albums/:albumId", { templateUrl: "ng-apps/MusicStore.Store/Catalog/AlbumDetails.html" })
.otherwise({ redirectTo: "/" });
} }
// Use this method to register work which should be performed when the injector is done loading all modules.
function run($log, userDetails) { function run($log, userDetails) {
$log.log(userDetails.getUserDetails()); $log.log(userDetails.getUserDetails());
} }
})(MusicStore.Store || (MusicStore.Store = {})); })(Store = MusicStore.Store || (MusicStore.Store = {}));
var Store = MusicStore.Store;
})(MusicStore || (MusicStore = {})); })(MusicStore || (MusicStore = {}));