mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update music tabs
This commit is contained in:
parent
2fd65cdcd9
commit
48da4f1c8d
21 changed files with 1160 additions and 1029 deletions
|
@ -16,12 +16,12 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"version": "1.3.26",
|
"version": "1.3.27",
|
||||||
"_release": "1.3.26",
|
"_release": "1.3.27",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.3.26",
|
"tag": "1.3.27",
|
||||||
"commit": "094d2fc7c9e0c008e1c44744da95a69d1aa6516f"
|
"commit": "d50eb817e00a23afb8fd5c5fe5a08745de291951"
|
||||||
},
|
},
|
||||||
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
||||||
"_target": "^1.2.0",
|
"_target": "^1.2.0",
|
||||||
|
|
53
dashboard-ui/bower_components/emby-webcomponents/strings/kk.json
vendored
Normal file
53
dashboard-ui/bower_components/emby-webcomponents/strings/kk.json
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
{
|
||||||
|
"ValueSpecialEpisodeName": "\u0410\u0440\u043d\u0430\u0439\u044b - {0}",
|
||||||
|
"Share": "\u041e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443",
|
||||||
|
"ServerUpdateNeeded": "\u041e\u0441\u044b Emby Server \u0436\u0430\u04a3\u0430\u0440\u0442\u044b\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442. \u0421\u043e\u04a3\u0493\u044b \u043d\u04b1\u0441\u049b\u0430\u0441\u044b\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u04af\u0448\u0456\u043d, {0} \u043a\u0456\u0440\u0456\u04a3\u0456\u0437",
|
||||||
|
"LiveTvGuideRequiresUnlock": "\u042d\u0444\u0438\u0440\u043b\u0456\u043a \u0422\u0435\u043b\u0435\u0433\u0438\u0434\u0442\u0435 \u049b\u0430\u0437\u0456\u0440\u0433\u0456 \u0443\u0430\u049b\u044b\u0442\u0442\u0430 {0} \u0430\u0440\u043d\u0430\u043b\u0430\u0440 \u0448\u0435\u043a\u0442\u0435\u043b\u0435\u0434\u0456. \u0422\u043e\u043b\u044b\u049b \u0442\u04d9\u0436\u0440\u0438\u0431\u0435 \u0430\u043b\u0443\u0493\u0430 \u04af\u0439\u0440\u0435\u043d\u0443 \u04af\u0448\u0456\u043d \u049a\u04b1\u0440\u0441\u0430\u0443\u044b\u043d \u0431\u043e\u0441\u0430\u0442\u0443 \u0442\u04af\u0439\u043c\u0435\u0448\u0456\u0433\u0456\u043d \u0431\u0430\u0441\u044b\u04a3\u044b\u0437.",
|
||||||
|
"AttributeNew": "\u0416\u0430\u04a3\u0430",
|
||||||
|
"AttributePremiere": "\u0422\u04b1\u0441\u0430\u0443\u043a\u0435\u0441\u0435\u0440\u0456",
|
||||||
|
"AttributeLive": "\u0422\u0456\u043a\u0435\u043b\u0435\u0439",
|
||||||
|
"TrackCount": "{0} \u0436\u043e\u043b\u0448\u044b\u049b",
|
||||||
|
"ItemCount": "{0} \u0442\u0430\u0440\u043c\u0430\u049b",
|
||||||
|
"ValueSeriesYearToPresent": "{0} - \u049b\u0430\u0437\u0456\u0440\u0434\u0435",
|
||||||
|
"ReleaseYearValue": "\u0428\u044b\u0493\u0430\u0440\u0443 \u0436\u043e\u043b\u044b: {0}",
|
||||||
|
"OriginalAirDateValue": "\u0411\u0430\u0441\u0442\u0430\u043f\u049b\u044b \u044d\u0444\u0438\u0440: {0}",
|
||||||
|
"EndsAtValue": "\u0410\u044f\u049b\u0442\u0430\u043b\u0443\u044b: {0}",
|
||||||
|
"OptionSundayShort": "\u0436\u0435\u043a",
|
||||||
|
"OptionMondayShort": "\u0434\u04af\u0439",
|
||||||
|
"OptionTuesdayShort": "\u0441\u0435\u0439",
|
||||||
|
"OptionWednesdayShort": "\u0441\u04d9\u0440",
|
||||||
|
"OptionThursdayShort": "\u0431\u0435\u0439",
|
||||||
|
"OptionFridayShort": "\u0436\u04b1\u043c",
|
||||||
|
"OptionSaturdayShort": "\u0441\u0435\u043d",
|
||||||
|
"HeaderSelectDate": "\u041a\u0435\u0437\u0434\u0456 \u0442\u0430\u04a3\u0434\u0430\u0443",
|
||||||
|
"ButtonOk": "\u0416\u0430\u0440\u0430\u0439\u0434\u044b",
|
||||||
|
"ButtonCancel": "\u0411\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443",
|
||||||
|
"ButtonGotIt": "\u0422\u04af\u0441\u0456\u043d\u0456\u043a\u0442\u0456",
|
||||||
|
"RecordingScheduled": "\u0416\u0430\u0437\u0443 \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d.",
|
||||||
|
"HeaderNewRecording": "\u0416\u0430\u04a3\u0430 \u0436\u0430\u0437\u0443",
|
||||||
|
"Sunday": "\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456",
|
||||||
|
"Monday": "\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456",
|
||||||
|
"Tuesday": "\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456",
|
||||||
|
"Wednesday": "\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456",
|
||||||
|
"Thursday": "\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456",
|
||||||
|
"Friday": "\u0436\u04b1\u043c\u0430",
|
||||||
|
"Saturday": "\u0441\u0435\u043d\u0431\u0456",
|
||||||
|
"Days": "\u041a\u04af\u043d\u0434\u0435\u0440",
|
||||||
|
"RecordSeries": "\u0422\u0435\u043b\u0435\u0445\u0438\u043a\u0430\u044f\u043d\u044b \u0436\u0430\u0437\u0443",
|
||||||
|
"PrePaddingMinutes": "\u0410\u043b\u0493\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d:",
|
||||||
|
"PostPaddingMinutes": "\u0410\u0440\u0442\u049b\u0430 \u0448\u0435\u0433\u0456\u043d\u0456\u0441, \u043c\u0438\u043d",
|
||||||
|
"RecordOnAllChannels": "\u0411\u0430\u0440\u043b\u044b\u049b \u0430\u0440\u043d\u0430\u043b\u0430\u0440\u0434\u0430\u043d \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
|
||||||
|
"RecordAnytime": "\u04d8\u0440 \u0443\u0430\u049b\u044b\u0442\u0442\u0430 \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
|
||||||
|
"RecordOnlyNewEpisodes": "\u0422\u0435\u043a \u049b\u0430\u043d\u0430 \u0436\u0430\u04a3\u0430 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440\u0434\u0456 \u0436\u0430\u0437\u044b\u043f \u0430\u043b\u0443",
|
||||||
|
"HeaderBecomeProjectSupporter": "Emby Premiere \u0430\u043b\u0443",
|
||||||
|
"HeaderEnjoyDayTrial": "\u0422\u0435\u0433\u0456\u043d \u0441\u044b\u043d\u0430\u0443\u0434\u044b 14 \u043a\u04af\u043d \u0442\u0430\u043c\u0430\u0448\u0430\u043b\u0430\u04a3\u044b\u0456\u0437",
|
||||||
|
"MessageActiveSubscriptionRequiredSeriesRecordings": "\u0422\u0435\u043b\u0435\u0445\u0438\u043a\u0430\u044f\u043b\u0430\u0440\u0434\u044b\u04a3 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0442\u044b \u0436\u0430\u0437\u0431\u0430\u0441\u044b\u043d \u0436\u0430\u0441\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b \u049b\u0430\u0436\u0435\u0442.",
|
||||||
|
"OptionConvertRecordingsToStreamingFormat": "\u0416\u0430\u0437\u0443\u043b\u0430\u0440\u0434\u044b \u0442\u0430\u0440\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u043e\u04a3\u0430\u0439 \u043f\u0456\u0448\u0456\u043c\u0433\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0442\u044b \u0442\u04af\u0440\u0434\u0435 \u0442\u04af\u0440\u043b\u0435\u043d\u0434\u0456\u0440\u0443",
|
||||||
|
"OptionConvertRecordingsToStreamingFormatHelp": "\u0416\u0430\u0437\u0431\u0430\u043b\u0430\u0440 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043b\u0430\u0440\u044b\u04a3\u044b\u0437\u0434\u0430 \u043e\u04a3\u0430\u0439 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u043d\u0430\u049b\u0442\u044b \u0443\u0430\u049b\u044b\u0442\u0442\u0430 MP4 \u043f\u0456\u0448\u0456\u043c\u0456\u043d\u0435 \u0442\u04af\u0440\u043b\u0435\u043d\u0434\u0456\u0440\u0456\u043b\u0435\u0434\u0456.",
|
||||||
|
"FeatureRequiresEmbyPremiere": "\u041e\u0441\u044b \u049b\u04b1\u0440\u0430\u043c\u0434\u0430\u0441 \u04af\u0448\u0456\u043d \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b \u049b\u0430\u0436\u0435\u0442",
|
||||||
|
"Record": "\u0416\u0430\u0437\u0443",
|
||||||
|
"Download": "\u0416\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443",
|
||||||
|
"Advanced": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d",
|
||||||
|
"Refresh": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443",
|
||||||
|
"RefreshQueued": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443 \u043a\u0435\u0437\u0435\u043a\u0442\u0435"
|
||||||
|
}
|
53
dashboard-ui/bower_components/emby-webcomponents/strings/ru.json
vendored
Normal file
53
dashboard-ui/bower_components/emby-webcomponents/strings/ru.json
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
{
|
||||||
|
"ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}",
|
||||||
|
"Share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f",
|
||||||
|
"ServerUpdateNeeded": "\u0414\u0430\u043d\u043d\u044b\u0439 Emby \u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435 {0}",
|
||||||
|
"LiveTvGuideRequiresUnlock": "\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u043b\u0435\u0433\u0438\u0434 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d {0} \u043a\u0430\u043d\u0430\u043b(\u043e\u043c\/\u0430\u043c\u0438). \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442.",
|
||||||
|
"AttributeNew": "\u041d\u043e\u0432\u043e\u0435",
|
||||||
|
"AttributePremiere": "\u041f\u0440\u0435\u043c\u044c\u0435\u0440\u0430",
|
||||||
|
"AttributeLive": "\u042d\u0444\u0438\u0440",
|
||||||
|
"TrackCount": "{0} \u0434\u043e\u0440\u043e\u0436(\u043a\u0438\/\u0435\u043a)",
|
||||||
|
"ItemCount": "{0} \u044d\u043b\u0435\u043c\u0435\u043d\u0442(\u0430\/\u043e\u0432)",
|
||||||
|
"ValueSeriesYearToPresent": "{0} - \u041d.\u0412.",
|
||||||
|
"ReleaseYearValue": "\u0413\u043e\u0434 \u0432\u044b\u043f\u0443\u0441\u043a\u0430: {0}",
|
||||||
|
"OriginalAirDateValue": "\u0414\u0430\u0442\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u044d\u0444\u0438\u0440\u0430: {0}",
|
||||||
|
"EndsAtValue": "\u041a\u043e\u043d\u0447\u0430\u0435\u0442\u0441\u044f \u0432 {0}",
|
||||||
|
"OptionSundayShort": "\u0432\u0441\u043a",
|
||||||
|
"OptionMondayShort": "\u043f\u043d\u0434",
|
||||||
|
"OptionTuesdayShort": "\u0432\u0442\u0440",
|
||||||
|
"OptionWednesdayShort": "\u0441\u0440\u0434",
|
||||||
|
"OptionThursdayShort": "\u0447\u0442\u0432",
|
||||||
|
"OptionFridayShort": "\u043f\u0442\u043d",
|
||||||
|
"OptionSaturdayShort": "\u0441\u0431\u0442",
|
||||||
|
"HeaderSelectDate": "\u0412\u044b\u0431\u043e\u0440 \u0434\u0430\u0442\u044b",
|
||||||
|
"ButtonOk": "\u041e\u043a",
|
||||||
|
"ButtonCancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
|
||||||
|
"ButtonGotIt": "\u041f\u043e\u043d\u044f\u0442\u043d\u043e",
|
||||||
|
"RecordingScheduled": "\u0417\u0430\u043f\u0438\u0441\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430.",
|
||||||
|
"HeaderNewRecording": "\u041d\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c",
|
||||||
|
"Sunday": "\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435",
|
||||||
|
"Monday": "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a",
|
||||||
|
"Tuesday": "\u0432\u0442\u043e\u0440\u043d\u0438\u043a",
|
||||||
|
"Wednesday": "\u0441\u0440\u0435\u0434\u0430",
|
||||||
|
"Thursday": "\u0447\u0435\u0442\u0432\u0435\u0440\u0433",
|
||||||
|
"Friday": "\u043f\u044f\u0442\u043d\u0438\u0446\u0430",
|
||||||
|
"Saturday": "\u0441\u0443\u0431\u0431\u043e\u0442\u0430",
|
||||||
|
"Days": "\u0414\u043d\u0438",
|
||||||
|
"RecordSeries": "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u0430\u043b",
|
||||||
|
"PrePaddingMinutes": "\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
|
||||||
|
"PostPaddingMinutes": "\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u043e\u0442\u0431\u0438\u0432\u043a\u0430, \u043c\u0438\u043d:",
|
||||||
|
"RecordOnAllChannels": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u043e \u0432\u0441\u0435\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432",
|
||||||
|
"RecordAnytime": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f",
|
||||||
|
"RecordOnlyNewEpisodes": "\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b",
|
||||||
|
"HeaderBecomeProjectSupporter": "\u041f\u0440\u0438\u043e\u0431\u0440\u0435\u0441\u0442\u0438 Emby Premiere",
|
||||||
|
"HeaderEnjoyDayTrial": "\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043d\u0430 14 \u0434\u043d\u0435\u0439",
|
||||||
|
"MessageActiveSubscriptionRequiredSeriesRecordings": "\u0414\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 Emby Premiere \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u0440\u0438\u0439.",
|
||||||
|
"OptionConvertRecordingsToStreamingFormat": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442",
|
||||||
|
"OptionConvertRecordingsToStreamingFormatHelp": "\u0417\u0430\u043f\u0438\u0441\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 MP4 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0430\u0448\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445.",
|
||||||
|
"FeatureRequiresEmbyPremiere": "\u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 Emby Premiere.",
|
||||||
|
"Record": "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c",
|
||||||
|
"Download": "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c",
|
||||||
|
"Advanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435",
|
||||||
|
"Refresh": "\u041f\u043e\u0434\u043d\u043e\u0432\u0438\u0442\u044c",
|
||||||
|
"RefreshQueued": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438"
|
||||||
|
}
|
|
@ -30,14 +30,14 @@
|
||||||
"web-component-tester": "polymer/web-component-tester#^3.4.0"
|
"web-component-tester": "polymer/web-component-tester#^3.4.0"
|
||||||
},
|
},
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"homepage": "https://github.com/PolymerElements/iron-a11y-announcer",
|
"homepage": "https://github.com/polymerelements/iron-a11y-announcer",
|
||||||
"_release": "1.0.4",
|
"_release": "1.0.4",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "v1.0.4",
|
"tag": "v1.0.4",
|
||||||
"commit": "5ce3eb8c4282bb53cd72e348858dc6be6b4c50b9"
|
"commit": "5ce3eb8c4282bb53cd72e348858dc6be6b4c50b9"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/PolymerElements/iron-a11y-announcer.git",
|
"_source": "git://github.com/polymerelements/iron-a11y-announcer.git",
|
||||||
"_target": "^1.0.0",
|
"_target": "^1.0.0",
|
||||||
"_originalSource": "PolymerElements/iron-a11y-announcer"
|
"_originalSource": "polymerelements/iron-a11y-announcer"
|
||||||
}
|
}
|
|
@ -34,6 +34,6 @@
|
||||||
"commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514"
|
"commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/Polymer/polymer.git",
|
"_source": "git://github.com/Polymer/polymer.git",
|
||||||
"_target": "^1.0.0",
|
"_target": "^1.1.0",
|
||||||
"_originalSource": "Polymer/polymer"
|
"_originalSource": "Polymer/polymer"
|
||||||
}
|
}
|
|
@ -195,7 +195,6 @@
|
||||||
|
|
||||||
|
|
||||||
.libraryViewNav {
|
.libraryViewNav {
|
||||||
justify-content: center;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
display: block;
|
display: block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -224,8 +223,17 @@
|
||||||
height: auto;
|
height: auto;
|
||||||
min-width: initial;
|
min-width: initial;
|
||||||
line-height: initial;
|
line-height: initial;
|
||||||
|
border-radius: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.libraryViewNav .pageTabButton:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.libraryViewNav .pageTabButton:active {
|
||||||
|
background-color: rgba(100,100,100, 0.20);
|
||||||
|
}
|
||||||
|
|
||||||
.libraryViewNav .pageTabButton:focus {
|
.libraryViewNav .pageTabButton:focus {
|
||||||
font-weight: 500 !important;
|
font-weight: 500 !important;
|
||||||
}
|
}
|
||||||
|
@ -234,19 +242,20 @@
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .pageTabButton:before {
|
.libraryViewNav .pageTabButton:after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
border: 0;
|
border: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
transition: all .12s cubic-bezier(.4,0,1,1);
|
transition: all .2s cubic-bezier(.4,0,1,1);
|
||||||
right: 0;
|
right: 0;
|
||||||
transform: translateX(-100%);
|
transform: translateX(-100%);
|
||||||
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .pageTabButton.is-active:before {
|
.libraryViewNav .pageTabButton.is-active:after {
|
||||||
transform: none;
|
transform: none;
|
||||||
background: #52B54B;
|
background: #52B54B;
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,20 +52,18 @@ body:not(.dashboardDocument) .mainDrawerButton {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav a {
|
.libraryViewNav .pageTabButton {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
color: #ccc !important;
|
|
||||||
padding: 12px 13px 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .pageTabButton.is-active:after {
|
.libraryViewNav .pageTabButton.is-active:after {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .pageTabButton.is-active {
|
.libraryViewNav .pageTabButton.is-active {
|
||||||
color: #52B54B !important;
|
color: #52B54B !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-body-b .paperList:not(.criticReviewPaperList) {
|
.ui-body-b .paperList:not(.criticReviewPaperList) {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
|
|
@ -17,14 +17,10 @@
|
||||||
background: #161616;
|
background: #161616;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .mdl-tabs__tab.is-active {
|
.libraryViewNav .pageTabButton.is-active {
|
||||||
color: #52B54B !important;
|
color: #52B54B !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .mdl-tabs__tab.is-active:after {
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.libraryPage:not(.noSecondaryNavPage) {
|
.libraryPage:not(.noSecondaryNavPage) {
|
||||||
padding-top: 105px !important;
|
padding-top: 105px !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div id="musicRecommendedPage" data-dom-cache="true" data-role="page" class="page libraryPage backdropPage pageWithAbsoluteTabs" data-backdroptype="musicartist" data-require="scripts/musicrecommended,paper-checkbox,scripts/alphapicker">
|
<div id="musicRecommendedPage" data-dom-cache="true" data-role="page" class="page libraryPage backdropPage pageWithAbsoluteTabs" data-backdroptype="musicartist">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
<button class="pageTabButton is-active" data-index="0">${TabSuggestions}</button>
|
<button class="pageTabButton is-active" data-index="0">${TabSuggestions}</button>
|
||||||
|
|
|
@ -76,7 +76,7 @@
|
||||||
|
|
||||||
var mdlTabs = page.querySelector('.libraryViewNav');
|
var mdlTabs = page.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(page, mdlTabs, page.querySelectorAll('.pageTabContent'));
|
libraryBrowser.configurePaperLibraryTabs(page, mdlTabs, page.querySelectorAll('.pageTabContent'), true);
|
||||||
|
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
mdlTabs.addEventListener('tabchange', function (e) {
|
||||||
loadTab(page, parseInt(e.detail.selectedTabIndex));
|
loadTab(page, parseInt(e.detail.selectedTabIndex));
|
||||||
|
|
|
@ -249,7 +249,7 @@
|
||||||
|
|
||||||
var mdlTabs = view.querySelector('.libraryViewNav');
|
var mdlTabs = view.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'));
|
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), true);
|
||||||
|
|
||||||
var tabControllers = [];
|
var tabControllers = [];
|
||||||
var renderedTabs = [];
|
var renderedTabs = [];
|
||||||
|
|
|
@ -225,7 +225,7 @@
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
configurePaperLibraryTabs: function (ownerpage, tabs, panels) {
|
configurePaperLibraryTabs: function (ownerpage, tabs, panels, animate) {
|
||||||
|
|
||||||
if (!browserInfo.safari) {
|
if (!browserInfo.safari) {
|
||||||
LibraryBrowser.configureSwipeTabs(ownerpage, tabs);
|
LibraryBrowser.configureSwipeTabs(ownerpage, tabs);
|
||||||
|
@ -235,6 +235,8 @@
|
||||||
for (var i = 0, length = buttons.length; i < length; i++) {
|
for (var i = 0, length = buttons.length; i < length; i++) {
|
||||||
buttons[i].classList.add('mdl-button');
|
buttons[i].classList.add('mdl-button');
|
||||||
buttons[i].classList.add('mdl-js-button');
|
buttons[i].classList.add('mdl-js-button');
|
||||||
|
buttons[i].classList.add('mdl-js-ripple-effect');
|
||||||
|
componentHandler.upgradeElement(buttons[i], 'MaterialButton');
|
||||||
}
|
}
|
||||||
|
|
||||||
tabs.classList.add('hiddenScrollX');
|
tabs.classList.add('hiddenScrollX');
|
||||||
|
@ -275,9 +277,9 @@
|
||||||
|
|
||||||
panels[index].classList.add('is-active');
|
panels[index].classList.add('is-active');
|
||||||
|
|
||||||
//if (browserInfo.animate) {
|
if (browserInfo.animate && animate) {
|
||||||
// fadeInRight(panels[index]);
|
fadeInRight(panels[index]);
|
||||||
//}
|
}
|
||||||
|
|
||||||
// If toCenter is called syncronously within the click event, it sometimes ends up canceling it
|
// If toCenter is called syncronously within the click event, it sometimes ends up canceling it
|
||||||
//setTimeout(function() {
|
//setTimeout(function() {
|
||||||
|
@ -1905,7 +1907,8 @@
|
||||||
|
|
||||||
var showTitle = options.showTitle == 'auto' ? true : options.showTitle;
|
var showTitle = options.showTitle == 'auto' ? true : options.showTitle;
|
||||||
|
|
||||||
if (item.Type == 'PhotoAlbum') {
|
// Force the title for these
|
||||||
|
if (item.Type == 'PhotoAlbum' || item.Type == 'Folder') {
|
||||||
showTitle = true;
|
showTitle = true;
|
||||||
}
|
}
|
||||||
var coverImage = options.coverImage;
|
var coverImage = options.coverImage;
|
||||||
|
|
|
@ -204,7 +204,7 @@
|
||||||
baseUrl += '?topParentId=' + topParentId;
|
baseUrl += '?topParentId=' + topParentId;
|
||||||
}
|
}
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'));
|
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), true);
|
||||||
|
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
mdlTabs.addEventListener('tabchange', function (e) {
|
||||||
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
|
|
|
@ -1,161 +1,163 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
var data = {};
|
return function (view, params, tabContent) {
|
||||||
function getPageData(context) {
|
|
||||||
var key = getSavedQueryKey(context);
|
|
||||||
var pageData = data[key];
|
|
||||||
|
|
||||||
if (!pageData) {
|
var self = this;
|
||||||
pageData = data[key] = {
|
|
||||||
query: {
|
|
||||||
SortBy: "SortName",
|
|
||||||
SortOrder: "Ascending",
|
|
||||||
Recursive: true,
|
|
||||||
Fields: "PrimaryImageAspectRatio,SortName,DateCreated,SyncInfo,ItemCounts",
|
|
||||||
StartIndex: 0,
|
|
||||||
ImageTypeLimit: 1,
|
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
|
||||||
Limit: LibraryBrowser.getDefaultPageSize()
|
|
||||||
},
|
|
||||||
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
|
||||||
};
|
|
||||||
|
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
var data = {};
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
function getPageData(context) {
|
||||||
|
var key = getSavedQueryKey(context);
|
||||||
|
var pageData = data[key];
|
||||||
|
|
||||||
|
if (!pageData) {
|
||||||
|
pageData = data[key] = {
|
||||||
|
query: {
|
||||||
|
SortBy: "SortName",
|
||||||
|
SortOrder: "Ascending",
|
||||||
|
Recursive: true,
|
||||||
|
Fields: "PrimaryImageAspectRatio,SortName,DateCreated,SyncInfo,ItemCounts",
|
||||||
|
StartIndex: 0,
|
||||||
|
ImageTypeLimit: 1,
|
||||||
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
||||||
|
Limit: LibraryBrowser.getDefaultPageSize()
|
||||||
|
},
|
||||||
|
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
||||||
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
|
}
|
||||||
|
return pageData;
|
||||||
}
|
}
|
||||||
return pageData;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getQuery(context) {
|
function getQuery(context) {
|
||||||
|
|
||||||
return getPageData(context).query;
|
return getPageData(context).query;
|
||||||
}
|
|
||||||
|
|
||||||
function getSavedQueryKey(context) {
|
|
||||||
|
|
||||||
if (!context.savedQueryKey) {
|
|
||||||
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('albumartists');
|
|
||||||
}
|
}
|
||||||
return context.savedQueryKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
function reloadItems(page) {
|
function getSavedQueryKey(context) {
|
||||||
|
|
||||||
Dashboard.showLoadingMsg();
|
if (!context.savedQueryKey) {
|
||||||
|
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('albumartists');
|
||||||
var query = getQuery(page);
|
|
||||||
|
|
||||||
ApiClient.getAlbumArtists(Dashboard.getCurrentUserId(), query).then(function (result) {
|
|
||||||
|
|
||||||
// Scroll back up so they can see the results from the beginning
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
|
|
||||||
var view = getPageData(page).view;
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
|
||||||
startIndex: query.StartIndex,
|
|
||||||
limit: query.Limit,
|
|
||||||
totalRecordCount: result.TotalRecordCount,
|
|
||||||
showLimit: false,
|
|
||||||
updatePageSizeSetting: false,
|
|
||||||
addLayoutButton: true,
|
|
||||||
currentLayout: view,
|
|
||||||
filterButton: true
|
|
||||||
});
|
|
||||||
|
|
||||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
|
||||||
|
|
||||||
updateFilterControls(page);
|
|
||||||
|
|
||||||
if (view == "List") {
|
|
||||||
|
|
||||||
html = LibraryBrowser.getListViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
context: 'music',
|
|
||||||
sortBy: query.SortBy
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
else if (view == "Poster") {
|
return context.savedQueryKey;
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
}
|
||||||
items: result.Items,
|
|
||||||
shape: "square",
|
function reloadItems(page) {
|
||||||
context: 'music',
|
|
||||||
showTitle: true,
|
Dashboard.showLoadingMsg();
|
||||||
coverImage: true,
|
|
||||||
lazy: true,
|
var query = getQuery(page);
|
||||||
centerText: true,
|
|
||||||
overlayPlayButton: true
|
ApiClient.getAlbumArtists(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
|
|
||||||
|
// Scroll back up so they can see the results from the beginning
|
||||||
|
window.scrollTo(0, 0);
|
||||||
|
|
||||||
|
var view = getPageData(page).view;
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||||
|
startIndex: query.StartIndex,
|
||||||
|
limit: query.Limit,
|
||||||
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
showLimit: false,
|
||||||
|
updatePageSizeSetting: false,
|
||||||
|
addLayoutButton: true,
|
||||||
|
currentLayout: view,
|
||||||
|
filterButton: true
|
||||||
});
|
});
|
||||||
}
|
|
||||||
else if (view == "PosterCard") {
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||||
items: result.Items,
|
|
||||||
shape: "square",
|
updateFilterControls(page);
|
||||||
context: 'music',
|
|
||||||
showTitle: true,
|
if (view == "List") {
|
||||||
coverImage: true,
|
|
||||||
lazy: true,
|
html = LibraryBrowser.getListViewHtml({
|
||||||
cardLayout: true,
|
items: result.Items,
|
||||||
showSongCount: true
|
context: 'music',
|
||||||
|
sortBy: query.SortBy
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "Poster") {
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "square",
|
||||||
|
context: 'music',
|
||||||
|
showTitle: true,
|
||||||
|
coverImage: true,
|
||||||
|
lazy: true,
|
||||||
|
centerText: true,
|
||||||
|
overlayPlayButton: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "PosterCard") {
|
||||||
|
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "square",
|
||||||
|
context: 'music',
|
||||||
|
showTitle: true,
|
||||||
|
coverImage: true,
|
||||||
|
lazy: true,
|
||||||
|
cardLayout: true,
|
||||||
|
showSongCount: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var elem = page.querySelector('#items');
|
||||||
|
elem.innerHTML = html + pagingHtml;
|
||||||
|
ImageLoader.lazyChildren(elem);
|
||||||
|
|
||||||
|
$('.btnNextPage', page).on('click', function () {
|
||||||
|
query.StartIndex += query.Limit;
|
||||||
|
reloadItems(page);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
var elem = page.querySelector('#items');
|
$('.btnPreviousPage', page).on('click', function () {
|
||||||
elem.innerHTML = html + pagingHtml;
|
query.StartIndex -= query.Limit;
|
||||||
ImageLoader.lazyChildren(elem);
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
||||||
query.StartIndex += query.Limit;
|
getPageData(page).view = layout;
|
||||||
reloadItems(page);
|
LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout);
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnFilter', page).on('click', function () {
|
||||||
|
showFilterMenu(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$('.btnPreviousPage', page).on('click', function () {
|
function showFilterMenu(page) {
|
||||||
query.StartIndex -= query.Limit;
|
|
||||||
reloadItems(page);
|
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
||||||
|
|
||||||
|
var filterDialog = new filterDialogFactory({
|
||||||
|
query: getQuery(page),
|
||||||
|
mode: 'albumartists'
|
||||||
|
});
|
||||||
|
|
||||||
|
Events.on(filterDialog, 'filterchange', function () {
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
filterDialog.show();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
function updateFilterControls(tabContent) {
|
||||||
getPageData(page).view = layout;
|
|
||||||
LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout);
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnFilter', page).on('click', function () {
|
var query = getQuery(tabContent);
|
||||||
showFilterMenu(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
$('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater);
|
||||||
Dashboard.hideLoadingMsg();
|
}
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function showFilterMenu(page) {
|
|
||||||
|
|
||||||
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
|
||||||
|
|
||||||
var filterDialog = new filterDialogFactory({
|
|
||||||
query: getQuery(page),
|
|
||||||
mode: 'albumartists'
|
|
||||||
});
|
|
||||||
|
|
||||||
Events.on(filterDialog, 'filterchange', function () {
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
filterDialog.show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateFilterControls(tabContent) {
|
|
||||||
|
|
||||||
var query = getQuery(tabContent);
|
|
||||||
|
|
||||||
$('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater);
|
|
||||||
}
|
|
||||||
|
|
||||||
function initPage(tabContent) {
|
|
||||||
|
|
||||||
$('.alphabetPicker', tabContent).on('alphaselect', function (e, character) {
|
$('.alphabetPicker', tabContent).on('alphaselect', function (e, character) {
|
||||||
|
|
||||||
|
@ -174,16 +176,11 @@
|
||||||
|
|
||||||
reloadItems(tabContent);
|
reloadItems(tabContent);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
window.MusicPage.initAlbumArtistsTab = function (page, tabContent) {
|
self.renderTab = function () {
|
||||||
|
|
||||||
initPage(tabContent);
|
reloadItems(tabContent);
|
||||||
};
|
};
|
||||||
|
|
||||||
window.MusicPage.renderAlbumArtistsTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
reloadItems(tabContent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,214 +1,216 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
var data = {};
|
return function (view, params, tabContent) {
|
||||||
function getPageData(context) {
|
|
||||||
var key = getSavedQueryKey(context);
|
|
||||||
var pageData = data[key];
|
|
||||||
|
|
||||||
if (!pageData) {
|
var self = this;
|
||||||
pageData = data[key] = {
|
|
||||||
query: {
|
|
||||||
SortBy: "SortName",
|
|
||||||
SortOrder: "Ascending",
|
|
||||||
IncludeItemTypes: "MusicAlbum",
|
|
||||||
Recursive: true,
|
|
||||||
Fields: "PrimaryImageAspectRatio,SortName,SyncInfo",
|
|
||||||
StartIndex: 0,
|
|
||||||
ImageTypeLimit: 1,
|
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
|
||||||
Limit: LibraryBrowser.getDefaultPageSize()
|
|
||||||
},
|
|
||||||
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
|
||||||
};
|
|
||||||
|
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
var data = {};
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
function getPageData(context) {
|
||||||
|
var key = getSavedQueryKey(context);
|
||||||
|
var pageData = data[key];
|
||||||
|
|
||||||
|
if (!pageData) {
|
||||||
|
pageData = data[key] = {
|
||||||
|
query: {
|
||||||
|
SortBy: "SortName",
|
||||||
|
SortOrder: "Ascending",
|
||||||
|
IncludeItemTypes: "MusicAlbum",
|
||||||
|
Recursive: true,
|
||||||
|
Fields: "PrimaryImageAspectRatio,SortName,SyncInfo",
|
||||||
|
StartIndex: 0,
|
||||||
|
ImageTypeLimit: 1,
|
||||||
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
||||||
|
Limit: LibraryBrowser.getDefaultPageSize()
|
||||||
|
},
|
||||||
|
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
||||||
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
|
}
|
||||||
|
return pageData;
|
||||||
}
|
}
|
||||||
return pageData;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getQuery(context) {
|
function getQuery(context) {
|
||||||
|
|
||||||
return getPageData(context).query;
|
return getPageData(context).query;
|
||||||
}
|
|
||||||
|
|
||||||
function getSavedQueryKey(context) {
|
|
||||||
|
|
||||||
if (!context.savedQueryKey) {
|
|
||||||
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('albums');
|
|
||||||
}
|
}
|
||||||
return context.savedQueryKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
function reloadItems(page) {
|
function getSavedQueryKey(context) {
|
||||||
|
|
||||||
Dashboard.showLoadingMsg();
|
if (!context.savedQueryKey) {
|
||||||
|
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('albums');
|
||||||
var query = getQuery(page);
|
|
||||||
|
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
|
|
||||||
|
|
||||||
// Scroll back up so they can see the results from the beginning
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
var view = getPageData(page).view;
|
|
||||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
|
||||||
startIndex: query.StartIndex,
|
|
||||||
limit: query.Limit,
|
|
||||||
totalRecordCount: result.TotalRecordCount,
|
|
||||||
showLimit: false,
|
|
||||||
sortButton: true,
|
|
||||||
addLayoutButton: true,
|
|
||||||
currentLayout: view,
|
|
||||||
updatePageSizeSetting: false,
|
|
||||||
layouts: 'List,Poster,PosterCard,Timeline',
|
|
||||||
filterButton: true
|
|
||||||
});
|
|
||||||
|
|
||||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
|
||||||
|
|
||||||
updateFilterControls(page);
|
|
||||||
|
|
||||||
if (view == "Poster") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "square",
|
|
||||||
context: 'music',
|
|
||||||
showTitle: true,
|
|
||||||
showParentTitle: true,
|
|
||||||
lazy: true,
|
|
||||||
centerText: true,
|
|
||||||
overlayPlayButton: true
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
else if (view == "PosterCard") {
|
return context.savedQueryKey;
|
||||||
|
}
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
function reloadItems(page) {
|
||||||
items: result.Items,
|
|
||||||
shape: "square",
|
Dashboard.showLoadingMsg();
|
||||||
context: 'music',
|
|
||||||
showTitle: true,
|
var query = getQuery(page);
|
||||||
coverImage: true,
|
|
||||||
showParentTitle: true,
|
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
lazy: true,
|
|
||||||
cardLayout: true
|
// Scroll back up so they can see the results from the beginning
|
||||||
|
window.scrollTo(0, 0);
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
var view = getPageData(page).view;
|
||||||
|
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||||
|
startIndex: query.StartIndex,
|
||||||
|
limit: query.Limit,
|
||||||
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
showLimit: false,
|
||||||
|
sortButton: true,
|
||||||
|
addLayoutButton: true,
|
||||||
|
currentLayout: view,
|
||||||
|
updatePageSizeSetting: false,
|
||||||
|
layouts: 'List,Poster,PosterCard,Timeline',
|
||||||
|
filterButton: true
|
||||||
});
|
});
|
||||||
}
|
|
||||||
else if (view == "List") {
|
|
||||||
|
|
||||||
html = LibraryBrowser.getListViewHtml({
|
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||||
items: result.Items,
|
|
||||||
context: 'music',
|
|
||||||
sortBy: query.SortBy
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (view == "Timeline") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
shape: "square",
|
|
||||||
context: 'music',
|
|
||||||
showTitle: true,
|
|
||||||
showParentTitle: true,
|
|
||||||
timeline: true,
|
|
||||||
lazy: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var elem = page.querySelector('#items');
|
updateFilterControls(page);
|
||||||
elem.innerHTML = html + pagingHtml;
|
|
||||||
ImageLoader.lazyChildren(elem);
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
if (view == "Poster") {
|
||||||
query.StartIndex += query.Limit;
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
reloadItems(page);
|
items: result.Items,
|
||||||
});
|
shape: "square",
|
||||||
|
context: 'music',
|
||||||
|
showTitle: true,
|
||||||
|
showParentTitle: true,
|
||||||
|
lazy: true,
|
||||||
|
centerText: true,
|
||||||
|
overlayPlayButton: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "PosterCard") {
|
||||||
|
|
||||||
$('.btnPreviousPage', page).on('click', function () {
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
query.StartIndex -= query.Limit;
|
items: result.Items,
|
||||||
reloadItems(page);
|
shape: "square",
|
||||||
});
|
context: 'music',
|
||||||
|
showTitle: true,
|
||||||
|
coverImage: true,
|
||||||
|
showParentTitle: true,
|
||||||
|
lazy: true,
|
||||||
|
cardLayout: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "List") {
|
||||||
|
|
||||||
$('.btnFilter', page).on('click', function () {
|
html = LibraryBrowser.getListViewHtml({
|
||||||
showFilterMenu(page);
|
items: result.Items,
|
||||||
});
|
context: 'music',
|
||||||
|
sortBy: query.SortBy
|
||||||
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
});
|
||||||
|
}
|
||||||
if (layout == 'Timeline') {
|
else if (view == "Timeline") {
|
||||||
getQuery(page).SortBy = 'ProductionYear,PremiereDate,SortName';
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
getQuery(page).SortOrder = 'Descending';
|
items: result.Items,
|
||||||
|
shape: "square",
|
||||||
|
context: 'music',
|
||||||
|
showTitle: true,
|
||||||
|
showParentTitle: true,
|
||||||
|
timeline: true,
|
||||||
|
lazy: true
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getPageData(page).view = layout;
|
var elem = page.querySelector('#items');
|
||||||
LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout);
|
elem.innerHTML = html + pagingHtml;
|
||||||
reloadItems(page);
|
ImageLoader.lazyChildren(elem);
|
||||||
});
|
|
||||||
|
|
||||||
// On callback make sure to set StartIndex = 0
|
$('.btnNextPage', page).on('click', function () {
|
||||||
$('.btnSort', page).on('click', function () {
|
query.StartIndex += query.Limit;
|
||||||
LibraryBrowser.showSortMenu({
|
reloadItems(page);
|
||||||
items: [{
|
|
||||||
name: Globalize.translate('OptionNameSort'),
|
|
||||||
id: 'SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionAlbumArtist'),
|
|
||||||
id: 'AlbumArtist,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionCommunityRating'),
|
|
||||||
id: 'CommunityRating,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionCriticRating'),
|
|
||||||
id: 'CriticRating,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionDateAdded'),
|
|
||||||
id: 'DateCreated,SortName'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: Globalize.translate('OptionReleaseDate'),
|
|
||||||
id: 'ProductionYear,PremiereDate,SortName'
|
|
||||||
}],
|
|
||||||
callback: function () {
|
|
||||||
reloadItems(page);
|
|
||||||
},
|
|
||||||
query: query
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.btnPreviousPage', page).on('click', function () {
|
||||||
|
query.StartIndex -= query.Limit;
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnFilter', page).on('click', function () {
|
||||||
|
showFilterMenu(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
||||||
|
|
||||||
|
if (layout == 'Timeline') {
|
||||||
|
getQuery(page).SortBy = 'ProductionYear,PremiereDate,SortName';
|
||||||
|
getQuery(page).SortOrder = 'Descending';
|
||||||
|
}
|
||||||
|
|
||||||
|
getPageData(page).view = layout;
|
||||||
|
LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout);
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
// On callback make sure to set StartIndex = 0
|
||||||
|
$('.btnSort', page).on('click', function () {
|
||||||
|
LibraryBrowser.showSortMenu({
|
||||||
|
items: [{
|
||||||
|
name: Globalize.translate('OptionNameSort'),
|
||||||
|
id: 'SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionAlbumArtist'),
|
||||||
|
id: 'AlbumArtist,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionCommunityRating'),
|
||||||
|
id: 'CommunityRating,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionCriticRating'),
|
||||||
|
id: 'CriticRating,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionDateAdded'),
|
||||||
|
id: 'DateCreated,SortName'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: Globalize.translate('OptionReleaseDate'),
|
||||||
|
id: 'ProductionYear,PremiereDate,SortName'
|
||||||
|
}],
|
||||||
|
callback: function () {
|
||||||
|
reloadItems(page);
|
||||||
|
},
|
||||||
|
query: query
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
function showFilterMenu(page) {
|
||||||
Dashboard.hideLoadingMsg();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function showFilterMenu(page) {
|
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
||||||
|
|
||||||
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
var filterDialog = new filterDialogFactory({
|
||||||
|
query: getQuery(page),
|
||||||
|
mode: 'albums'
|
||||||
|
});
|
||||||
|
|
||||||
var filterDialog = new filterDialogFactory({
|
Events.on(filterDialog, 'filterchange', function () {
|
||||||
query: getQuery(page),
|
reloadItems(page);
|
||||||
mode: 'albums'
|
});
|
||||||
|
|
||||||
|
filterDialog.show();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Events.on(filterDialog, 'filterchange', function () {
|
function updateFilterControls(page) {
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
filterDialog.show();
|
var query = getQuery(page);
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
||||||
|
}
|
||||||
var query = getQuery(page);
|
|
||||||
|
|
||||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
|
||||||
}
|
|
||||||
|
|
||||||
function initPage(tabContent) {
|
|
||||||
|
|
||||||
$('.alphabetPicker', tabContent).on('alphaselect', function (e, character) {
|
$('.alphabetPicker', tabContent).on('alphaselect', function (e, character) {
|
||||||
|
|
||||||
|
@ -235,16 +237,10 @@
|
||||||
|
|
||||||
reloadItems(tabContent);
|
reloadItems(tabContent);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
window.MusicPage.initAlbumsTab = function (page, tabContent) {
|
self.renderTab = function () {
|
||||||
|
|
||||||
initPage(tabContent);
|
reloadItems(tabContent);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
window.MusicPage.renderAlbumsTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
reloadItems(tabContent);
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,189 +1,184 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
var data = {};
|
return function (view, params, tabContent) {
|
||||||
function getPageData(context) {
|
|
||||||
var key = getSavedQueryKey(context);
|
var self = this;
|
||||||
var pageData = data[key];
|
|
||||||
|
var data = {};
|
||||||
if (!pageData) {
|
function getPageData(context) {
|
||||||
pageData = data[key] = {
|
var key = getSavedQueryKey(context);
|
||||||
query: {
|
var pageData = data[key];
|
||||||
SortBy: "SortName",
|
|
||||||
SortOrder: "Ascending",
|
if (!pageData) {
|
||||||
Recursive: true,
|
pageData = data[key] = {
|
||||||
Fields: "PrimaryImageAspectRatio,SortName,DateCreated,SyncInfo,ItemCounts",
|
query: {
|
||||||
StartIndex: 0,
|
SortBy: "SortName",
|
||||||
ImageTypeLimit: 1,
|
SortOrder: "Ascending",
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
Recursive: true,
|
||||||
Limit: LibraryBrowser.getDefaultPageSize()
|
Fields: "PrimaryImageAspectRatio,SortName,DateCreated,SyncInfo,ItemCounts",
|
||||||
},
|
StartIndex: 0,
|
||||||
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
ImageTypeLimit: 1,
|
||||||
};
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
||||||
|
Limit: LibraryBrowser.getDefaultPageSize()
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
},
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
||||||
}
|
};
|
||||||
return pageData;
|
|
||||||
}
|
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
||||||
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
function getQuery(context) {
|
}
|
||||||
|
return pageData;
|
||||||
return getPageData(context).query;
|
}
|
||||||
}
|
|
||||||
|
function getQuery(context) {
|
||||||
function getSavedQueryKey(context) {
|
|
||||||
|
return getPageData(context).query;
|
||||||
if (!context.savedQueryKey) {
|
}
|
||||||
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('artists');
|
|
||||||
}
|
function getSavedQueryKey(context) {
|
||||||
return context.savedQueryKey;
|
|
||||||
}
|
if (!context.savedQueryKey) {
|
||||||
|
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('artists');
|
||||||
function reloadItems(page) {
|
}
|
||||||
|
return context.savedQueryKey;
|
||||||
Dashboard.showLoadingMsg();
|
}
|
||||||
|
|
||||||
var query = getQuery(page);
|
function reloadItems(page) {
|
||||||
|
|
||||||
ApiClient.getArtists(Dashboard.getCurrentUserId(), query).then(function (result) {
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
// Scroll back up so they can see the results from the beginning
|
var query = getQuery(page);
|
||||||
window.scrollTo(0, 0);
|
|
||||||
|
ApiClient.getArtists(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
var view = getPageData(page).view;
|
|
||||||
|
// Scroll back up so they can see the results from the beginning
|
||||||
var html = '';
|
window.scrollTo(0, 0);
|
||||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
|
||||||
startIndex: query.StartIndex,
|
var view = getPageData(page).view;
|
||||||
limit: query.Limit,
|
|
||||||
totalRecordCount: result.TotalRecordCount,
|
var html = '';
|
||||||
showLimit: false,
|
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||||
updatePageSizeSetting: false,
|
startIndex: query.StartIndex,
|
||||||
addLayoutButton: true,
|
limit: query.Limit,
|
||||||
currentLayout: view,
|
totalRecordCount: result.TotalRecordCount,
|
||||||
filterButton: true
|
showLimit: false,
|
||||||
});
|
updatePageSizeSetting: false,
|
||||||
|
addLayoutButton: true,
|
||||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
currentLayout: view,
|
||||||
|
filterButton: true
|
||||||
updateFilterControls(page);
|
});
|
||||||
|
|
||||||
if (view == "List") {
|
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||||
|
|
||||||
html = LibraryBrowser.getListViewHtml({
|
updateFilterControls(page);
|
||||||
items: result.Items,
|
|
||||||
context: 'music',
|
if (view == "List") {
|
||||||
sortBy: query.SortBy
|
|
||||||
});
|
html = LibraryBrowser.getListViewHtml({
|
||||||
}
|
items: result.Items,
|
||||||
else if (view == "Poster") {
|
context: 'music',
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
sortBy: query.SortBy
|
||||||
items: result.Items,
|
});
|
||||||
shape: "square",
|
}
|
||||||
context: 'music',
|
else if (view == "Poster") {
|
||||||
showTitle: true,
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
coverImage: true,
|
items: result.Items,
|
||||||
lazy: true,
|
shape: "square",
|
||||||
centerText: true,
|
context: 'music',
|
||||||
overlayPlayButton: true
|
showTitle: true,
|
||||||
});
|
coverImage: true,
|
||||||
}
|
lazy: true,
|
||||||
else if (view == "PosterCard") {
|
centerText: true,
|
||||||
|
overlayPlayButton: true
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
});
|
||||||
items: result.Items,
|
}
|
||||||
shape: "square",
|
else if (view == "PosterCard") {
|
||||||
context: 'music',
|
|
||||||
showTitle: true,
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
coverImage: true,
|
items: result.Items,
|
||||||
lazy: true,
|
shape: "square",
|
||||||
cardLayout: true,
|
context: 'music',
|
||||||
showSongCount: true
|
showTitle: true,
|
||||||
});
|
coverImage: true,
|
||||||
}
|
lazy: true,
|
||||||
|
cardLayout: true,
|
||||||
var elem = page.querySelector('#items');
|
showSongCount: true
|
||||||
elem.innerHTML = html + pagingHtml;
|
});
|
||||||
ImageLoader.lazyChildren(elem);
|
}
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
var elem = page.querySelector('#items');
|
||||||
query.StartIndex += query.Limit;
|
elem.innerHTML = html + pagingHtml;
|
||||||
reloadItems(page);
|
ImageLoader.lazyChildren(elem);
|
||||||
});
|
|
||||||
|
$('.btnNextPage', page).on('click', function () {
|
||||||
$('.btnPreviousPage', page).on('click', function () {
|
query.StartIndex += query.Limit;
|
||||||
query.StartIndex -= query.Limit;
|
reloadItems(page);
|
||||||
reloadItems(page);
|
});
|
||||||
});
|
|
||||||
|
$('.btnPreviousPage', page).on('click', function () {
|
||||||
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
query.StartIndex -= query.Limit;
|
||||||
getPageData(page).view = layout;
|
reloadItems(page);
|
||||||
LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout);
|
});
|
||||||
reloadItems(page);
|
|
||||||
});
|
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
||||||
|
getPageData(page).view = layout;
|
||||||
$('.btnFilter', page).on('click', function () {
|
LibraryBrowser.saveViewSetting(getSavedQueryKey(page), layout);
|
||||||
showFilterMenu(page);
|
reloadItems(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
$('.btnFilter', page).on('click', function () {
|
||||||
Dashboard.hideLoadingMsg();
|
showFilterMenu(page);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
function showFilterMenu(page) {
|
Dashboard.hideLoadingMsg();
|
||||||
|
});
|
||||||
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
}
|
||||||
|
|
||||||
var filterDialog = new filterDialogFactory({
|
function showFilterMenu(page) {
|
||||||
query: getQuery(page),
|
|
||||||
mode: 'artists'
|
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
||||||
});
|
|
||||||
|
var filterDialog = new filterDialogFactory({
|
||||||
Events.on(filterDialog, 'filterchange', function () {
|
query: getQuery(page),
|
||||||
reloadItems(page);
|
mode: 'artists'
|
||||||
});
|
});
|
||||||
|
|
||||||
filterDialog.show();
|
Events.on(filterDialog, 'filterchange', function () {
|
||||||
});
|
reloadItems(page);
|
||||||
}
|
});
|
||||||
|
|
||||||
function updateFilterControls(tabContent) {
|
filterDialog.show();
|
||||||
|
});
|
||||||
var query = getQuery(tabContent);
|
}
|
||||||
|
|
||||||
$('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater);
|
function updateFilterControls(tabContent) {
|
||||||
}
|
|
||||||
|
var query = getQuery(tabContent);
|
||||||
function initPage(tabContent) {
|
|
||||||
|
$('.alphabetPicker', tabContent).alphaValue(query.NameStartsWithOrGreater);
|
||||||
$('.alphabetPicker', tabContent).on('alphaselect', function (e, character) {
|
}
|
||||||
|
|
||||||
var query = getQuery(tabContent);
|
$('.alphabetPicker', tabContent).on('alphaselect', function (e, character) {
|
||||||
|
|
||||||
query.NameStartsWithOrGreater = character;
|
var query = getQuery(tabContent);
|
||||||
query.StartIndex = 0;
|
|
||||||
|
query.NameStartsWithOrGreater = character;
|
||||||
reloadItems(tabContent);
|
query.StartIndex = 0;
|
||||||
|
|
||||||
}).on('alphaclear', function (e) {
|
reloadItems(tabContent);
|
||||||
|
|
||||||
var query = getQuery(tabContent);
|
}).on('alphaclear', function (e) {
|
||||||
|
|
||||||
query.NameStartsWithOrGreater = '';
|
var query = getQuery(tabContent);
|
||||||
|
|
||||||
reloadItems(tabContent);
|
query.NameStartsWithOrGreater = '';
|
||||||
});
|
|
||||||
}
|
reloadItems(tabContent);
|
||||||
|
});
|
||||||
window.MusicPage.initArtistsTab = function (page, tabContent) {
|
self.renderTab = function () {
|
||||||
|
|
||||||
initPage(tabContent);
|
reloadItems(tabContent);
|
||||||
};
|
};
|
||||||
|
};
|
||||||
window.MusicPage.renderArtistsTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
reloadItems(tabContent);
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,107 +1,107 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
var data = {};
|
return function (view, params, tabContent) {
|
||||||
function getPageData() {
|
|
||||||
var key = getSavedQueryKey();
|
var self = this;
|
||||||
var pageData = data[key];
|
|
||||||
|
var data = {};
|
||||||
if (!pageData) {
|
function getPageData() {
|
||||||
pageData = data[key] = {
|
var key = getSavedQueryKey();
|
||||||
query: {
|
var pageData = data[key];
|
||||||
SortBy: "SortName",
|
|
||||||
SortOrder: "Ascending",
|
if (!pageData) {
|
||||||
Fields: "PrimaryImageAspectRatio,SortName,SyncInfo",
|
pageData = data[key] = {
|
||||||
StartIndex: 0,
|
query: {
|
||||||
ImageTypeLimit: 1,
|
SortBy: "SortName",
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
SortOrder: "Ascending",
|
||||||
Limit: LibraryBrowser.getDefaultPageSize()
|
Fields: "PrimaryImageAspectRatio,SortName,SyncInfo",
|
||||||
},
|
StartIndex: 0,
|
||||||
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
ImageTypeLimit: 1,
|
||||||
};
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
||||||
|
Limit: LibraryBrowser.getDefaultPageSize()
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
},
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
||||||
}
|
};
|
||||||
return pageData;
|
|
||||||
}
|
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
||||||
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
function getQuery() {
|
}
|
||||||
|
return pageData;
|
||||||
return getPageData().query;
|
}
|
||||||
}
|
|
||||||
|
function getQuery() {
|
||||||
function getSavedQueryKey() {
|
|
||||||
|
return getPageData().query;
|
||||||
return LibraryBrowser.getSavedQueryKey('folders');
|
}
|
||||||
}
|
|
||||||
|
function getSavedQueryKey() {
|
||||||
function reloadItems(page, viewPanel) {
|
|
||||||
|
return LibraryBrowser.getSavedQueryKey('folders');
|
||||||
Dashboard.showLoadingMsg();
|
}
|
||||||
|
|
||||||
var query = getQuery();
|
function reloadItems(context) {
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
// Scroll back up so they can see the results from the beginning
|
|
||||||
window.scrollTo(0, 0);
|
var query = getQuery();
|
||||||
|
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
var html = '';
|
|
||||||
var view = getPageData().view;
|
// Scroll back up so they can see the results from the beginning
|
||||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
window.scrollTo(0, 0);
|
||||||
startIndex: query.StartIndex,
|
|
||||||
limit: query.Limit,
|
var html = '';
|
||||||
totalRecordCount: result.TotalRecordCount,
|
var view = getPageData().view;
|
||||||
viewButton: false,
|
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||||
showLimit: false,
|
startIndex: query.StartIndex,
|
||||||
sortButton: false,
|
limit: query.Limit,
|
||||||
addLayoutButton: false,
|
totalRecordCount: result.TotalRecordCount,
|
||||||
currentLayout: view,
|
viewButton: false,
|
||||||
updatePageSizeSetting: false,
|
showLimit: false,
|
||||||
viewIcon: 'filter-list',
|
sortButton: false,
|
||||||
layouts: 'List,Poster,PosterCard,Timeline'
|
addLayoutButton: false,
|
||||||
});
|
currentLayout: view,
|
||||||
|
updatePageSizeSetting: false,
|
||||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
viewIcon: 'filter-list',
|
||||||
|
layouts: 'List,Poster,PosterCard,Timeline'
|
||||||
if (view == "Poster") {
|
});
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
context.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||||
shape: "square",
|
|
||||||
context: 'folders',
|
if (view == "Poster") {
|
||||||
showTitle: true,
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
showParentTitle: true,
|
items: result.Items,
|
||||||
lazy: true,
|
shape: "square",
|
||||||
centerText: true,
|
context: 'folders',
|
||||||
overlayPlayButton: true
|
showTitle: true,
|
||||||
});
|
showParentTitle: true,
|
||||||
}
|
lazy: true,
|
||||||
|
centerText: true,
|
||||||
var elem = page.querySelector('#items');
|
overlayPlayButton: true
|
||||||
elem.innerHTML = html + pagingHtml;
|
});
|
||||||
ImageLoader.lazyChildren(elem);
|
}
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
var elem = context.querySelector('#items');
|
||||||
query.StartIndex += query.Limit;
|
elem.innerHTML = html + pagingHtml;
|
||||||
reloadItems(page, viewPanel);
|
ImageLoader.lazyChildren(elem);
|
||||||
});
|
|
||||||
|
$('.btnNextPage', context).on('click', function () {
|
||||||
$('.btnPreviousPage', page).on('click', function () {
|
query.StartIndex += query.Limit;
|
||||||
query.StartIndex -= query.Limit;
|
reloadItems(context);
|
||||||
reloadItems(page, viewPanel);
|
});
|
||||||
});
|
|
||||||
|
$('.btnPreviousPage', context).on('click', function () {
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
query.StartIndex -= query.Limit;
|
||||||
Dashboard.hideLoadingMsg();
|
reloadItems(context);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||||
window.MusicPage.initFoldersTab = function (page, tabContent) {
|
Dashboard.hideLoadingMsg();
|
||||||
|
});
|
||||||
};
|
}
|
||||||
|
self.renderTab = function () {
|
||||||
window.MusicPage.renderFoldersTab = function (page, tabContent) {
|
|
||||||
|
reloadItems(tabContent);
|
||||||
reloadItems(tabContent);
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,131 +1,136 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
var data = {};
|
return function (view, params, tabContent) {
|
||||||
function getPageData() {
|
|
||||||
var key = getSavedQueryKey();
|
|
||||||
var pageData = data[key];
|
|
||||||
|
|
||||||
if (!pageData) {
|
var self = this;
|
||||||
pageData = data[key] = {
|
|
||||||
query: {
|
|
||||||
SortBy: "SortName",
|
|
||||||
SortOrder: "Ascending",
|
|
||||||
IncludeItemTypes: "Audio,MusicVideo",
|
|
||||||
Recursive: true,
|
|
||||||
Fields: "DateCreated,SyncInfo,ItemCounts",
|
|
||||||
StartIndex: 0,
|
|
||||||
Limit: LibraryBrowser.getDefaultPageSize()
|
|
||||||
},
|
|
||||||
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb')
|
|
||||||
};
|
|
||||||
|
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
var data = {};
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
function getPageData() {
|
||||||
|
var key = getSavedQueryKey();
|
||||||
|
var pageData = data[key];
|
||||||
|
|
||||||
|
if (!pageData) {
|
||||||
|
pageData = data[key] = {
|
||||||
|
query: {
|
||||||
|
SortBy: "SortName",
|
||||||
|
SortOrder: "Ascending",
|
||||||
|
IncludeItemTypes: "Audio,MusicVideo",
|
||||||
|
Recursive: true,
|
||||||
|
Fields: "DateCreated,SyncInfo,ItemCounts",
|
||||||
|
StartIndex: 0,
|
||||||
|
Limit: LibraryBrowser.getDefaultPageSize()
|
||||||
|
},
|
||||||
|
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Thumb', 'Thumb')
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
||||||
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
|
}
|
||||||
|
return pageData;
|
||||||
}
|
}
|
||||||
return pageData;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getQuery() {
|
function getQuery() {
|
||||||
|
|
||||||
return getPageData().query;
|
return getPageData().query;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSavedQueryKey() {
|
function getSavedQueryKey() {
|
||||||
|
|
||||||
return LibraryBrowser.getSavedQueryKey('genres');
|
return LibraryBrowser.getSavedQueryKey('genres');
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadItems(page) {
|
function reloadItems(context) {
|
||||||
|
|
||||||
Dashboard.showLoadingMsg();
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
var query = getQuery();
|
var query = getQuery();
|
||||||
|
|
||||||
ApiClient.getMusicGenres(Dashboard.getCurrentUserId(), query).then(function (result) {
|
ApiClient.getMusicGenres(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
|
|
||||||
// Scroll back up so they can see the results from the beginning
|
// Scroll back up so they can see the results from the beginning
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
var view = getPageData().view;
|
var view = getPageData().view;
|
||||||
|
|
||||||
$('.listTopPaging', page).html(LibraryBrowser.getQueryPagingHtml({
|
$('.listTopPaging', context).html(LibraryBrowser.getQueryPagingHtml({
|
||||||
startIndex: query.StartIndex,
|
startIndex: query.StartIndex,
|
||||||
limit: query.Limit,
|
limit: query.Limit,
|
||||||
totalRecordCount: result.TotalRecordCount,
|
totalRecordCount: result.TotalRecordCount,
|
||||||
showLimit: false,
|
showLimit: false,
|
||||||
updatePageSizeSetting: false,
|
updatePageSizeSetting: false,
|
||||||
addLayoutButton: true,
|
addLayoutButton: true,
|
||||||
currentLayout: view
|
currentLayout: view
|
||||||
|
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (view == "Thumb") {
|
if (view == "Thumb") {
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
preferThumb: true,
|
preferThumb: true,
|
||||||
showItemCounts: true,
|
showItemCounts: true,
|
||||||
context: 'music',
|
context: 'music',
|
||||||
lazy: true,
|
lazy: true,
|
||||||
centerText: true,
|
centerText: true,
|
||||||
overlayPlayButton: true
|
overlayPlayButton: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "ThumbCard") {
|
||||||
|
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "backdrop",
|
||||||
|
preferThumb: true,
|
||||||
|
context: 'music',
|
||||||
|
showItemCounts: true,
|
||||||
|
cardLayout: true,
|
||||||
|
lazy: true,
|
||||||
|
showTitle: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (view == "Poster") {
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
shape: "portrait",
|
||||||
|
context: 'music',
|
||||||
|
centerText: true,
|
||||||
|
showItemCounts: true,
|
||||||
|
lazy: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var elem = context.querySelector('#items');
|
||||||
|
elem.innerHTML = html;
|
||||||
|
ImageLoader.lazyChildren(elem);
|
||||||
|
|
||||||
|
$('.btnNextPage', context).on('click', function () {
|
||||||
|
query.StartIndex += query.Limit;
|
||||||
|
reloadItems(context);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
else if (view == "ThumbCard") {
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
$('.btnPreviousPage', context).on('click', function () {
|
||||||
items: result.Items,
|
query.StartIndex -= query.Limit;
|
||||||
shape: "backdrop",
|
reloadItems(context);
|
||||||
preferThumb: true,
|
|
||||||
context: 'music',
|
|
||||||
showItemCounts: true,
|
|
||||||
cardLayout: true,
|
|
||||||
lazy: true,
|
|
||||||
showTitle: true
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
else if (view == "Poster") {
|
$('.btnChangeLayout', context).on('layoutchange', function (e, layout) {
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
getPageData().view = layout;
|
||||||
items: result.Items,
|
LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout);
|
||||||
shape: "portrait",
|
reloadItems(context);
|
||||||
context: 'music',
|
|
||||||
centerText: true,
|
|
||||||
showItemCounts: true,
|
|
||||||
lazy: true
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
var elem = page.querySelector('#items');
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||||
elem.innerHTML = html;
|
|
||||||
ImageLoader.lazyChildren(elem);
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
Dashboard.hideLoadingMsg();
|
||||||
query.StartIndex += query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$('.btnPreviousPage', page).on('click', function () {
|
self.renderTab = function () {
|
||||||
query.StartIndex -= query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
reloadItems(tabContent);
|
||||||
getPageData().view = layout;
|
};
|
||||||
LibraryBrowser.saveViewSetting(getSavedQueryKey(), layout);
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
window.MusicPage.renderGenresTab = function (page, tabContent) {
|
|
||||||
|
|
||||||
reloadItems(tabContent);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -185,18 +185,6 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function initSuggestedTab(page, tabContent) {
|
|
||||||
|
|
||||||
var containers = tabContent.querySelectorAll('.itemsContainer');
|
|
||||||
if (enableScrollX()) {
|
|
||||||
$(containers).addClass('hiddenScrollX');
|
|
||||||
} else {
|
|
||||||
$(containers).removeClass('hiddenScrollX');
|
|
||||||
}
|
|
||||||
|
|
||||||
$(containers).createCardMenus();
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadSuggestionsTab(page, tabContent) {
|
function loadSuggestionsTab(page, tabContent) {
|
||||||
|
|
||||||
var parentId = LibraryMenu.getTopParentId();
|
var parentId = LibraryMenu.getTopParentId();
|
||||||
|
@ -214,93 +202,6 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadTab(page, index) {
|
|
||||||
|
|
||||||
var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
|
|
||||||
var depends = [];
|
|
||||||
var scope = 'MusicPage';
|
|
||||||
var renderMethod = '';
|
|
||||||
var initMethod = '';
|
|
||||||
|
|
||||||
switch (index) {
|
|
||||||
|
|
||||||
case 0:
|
|
||||||
initMethod = 'initSuggestedTab';
|
|
||||||
renderMethod = 'renderSuggestedTab';
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
depends.push('scripts/musicalbums');
|
|
||||||
renderMethod = 'renderAlbumsTab';
|
|
||||||
initMethod = 'initAlbumsTab';
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
depends.push('scripts/musicalbumartists');
|
|
||||||
renderMethod = 'renderAlbumArtistsTab';
|
|
||||||
initMethod = 'initAlbumArtistsTab';
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
depends.push('scripts/musicartists');
|
|
||||||
renderMethod = 'renderArtistsTab';
|
|
||||||
initMethod = 'initArtistsTab';
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
depends.push('scripts/songs');
|
|
||||||
renderMethod = 'renderSongsTab';
|
|
||||||
depends.push('paper-icon-item');
|
|
||||||
depends.push('paper-item-body');
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
depends.push('scripts/musicgenres');
|
|
||||||
renderMethod = 'renderGenresTab';
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
depends.push('scripts/musicfolders');
|
|
||||||
renderMethod = 'renderFoldersTab';
|
|
||||||
initMethod = 'initFoldersTab';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
require(depends, function () {
|
|
||||||
|
|
||||||
if (initMethod && !tabContent.initComplete) {
|
|
||||||
|
|
||||||
window[scope][initMethod](page, tabContent);
|
|
||||||
tabContent.initComplete = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
window[scope][renderMethod](page, tabContent);
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
window.MusicPage = window.MusicPage || {};
|
|
||||||
window.MusicPage.renderSuggestedTab = loadSuggestionsTab;
|
|
||||||
window.MusicPage.initSuggestedTab = initSuggestedTab;
|
|
||||||
|
|
||||||
pageIdOn('pageinit', "musicRecommendedPage", function () {
|
|
||||||
|
|
||||||
var page = this;
|
|
||||||
|
|
||||||
$('.recommendations', page).createCardMenus();
|
|
||||||
|
|
||||||
var mdlTabs = page.querySelector('.libraryViewNav');
|
|
||||||
|
|
||||||
var baseUrl = 'music.html';
|
|
||||||
var topParentId = LibraryMenu.getTopParentId();
|
|
||||||
if (topParentId) {
|
|
||||||
baseUrl += '?topParentId=' + topParentId;
|
|
||||||
}
|
|
||||||
|
|
||||||
libraryBrowser.configurePaperLibraryTabs(page, mdlTabs, page.querySelectorAll('.pageTabContent'));
|
|
||||||
|
|
||||||
mdlTabs.addEventListener('tabchange', function (e) {
|
|
||||||
loadTab(page, parseInt(e.detail.selectedTabIndex));
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
pageIdOn('pagebeforeshow', "musicRecommendedPage", function () {
|
pageIdOn('pagebeforeshow', "musicRecommendedPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
@ -326,5 +227,124 @@
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return function (view, params) {
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
function reload() {
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
|
var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
|
||||||
|
loadSuggestionsTab(view, tabContent);
|
||||||
|
}
|
||||||
|
|
||||||
|
function enableScrollX() {
|
||||||
|
return browserInfo.mobile && AppInfo.enableAppLayouts;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getThumbShape() {
|
||||||
|
return enableScrollX() ? 'overflowBackdrop' : 'backdrop';
|
||||||
|
}
|
||||||
|
|
||||||
|
self.initTab = function () {
|
||||||
|
|
||||||
|
var tabContent = view.querySelector('.pageTabContent[data-index=\'' + 0 + '\']');
|
||||||
|
|
||||||
|
var containers = tabContent.querySelectorAll('.itemsContainer');
|
||||||
|
if (enableScrollX()) {
|
||||||
|
$(containers).addClass('hiddenScrollX');
|
||||||
|
} else {
|
||||||
|
$(containers).removeClass('hiddenScrollX');
|
||||||
|
}
|
||||||
|
|
||||||
|
$(containers).createCardMenus();
|
||||||
|
};
|
||||||
|
|
||||||
|
self.renderTab = function () {
|
||||||
|
reload();
|
||||||
|
};
|
||||||
|
|
||||||
|
var tabControllers = [];
|
||||||
|
var renderedTabs = [];
|
||||||
|
|
||||||
|
function loadTab(page, index) {
|
||||||
|
|
||||||
|
var tabContent = page.querySelector('.pageTabContent[data-index=\'' + index + '\']');
|
||||||
|
var depends = [];
|
||||||
|
|
||||||
|
switch (index) {
|
||||||
|
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
depends.push('scripts/musicalbums');
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
depends.push('scripts/musicalbumartists');
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
depends.push('scripts/musicartists');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
depends.push('scripts/songs');
|
||||||
|
depends.push('paper-icon-item');
|
||||||
|
depends.push('paper-item-body');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
depends.push('scripts/musicgenres');
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
depends.push('scripts/musicfolders');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
require(depends, function (controllerFactory) {
|
||||||
|
|
||||||
|
if (index == 0) {
|
||||||
|
self.tabContent = tabContent;
|
||||||
|
}
|
||||||
|
var controller = tabControllers[index];
|
||||||
|
if (!controller) {
|
||||||
|
controller = index ? new controllerFactory(view, params, tabContent) : self;
|
||||||
|
tabControllers[index] = controller;
|
||||||
|
|
||||||
|
if (controller.initTab) {
|
||||||
|
controller.initTab();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (renderedTabs.indexOf(index) == -1) {
|
||||||
|
renderedTabs.push(index);
|
||||||
|
controller.renderTab();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var mdlTabs = view.querySelector('.libraryViewNav');
|
||||||
|
|
||||||
|
var baseUrl = 'music.html';
|
||||||
|
var topParentId = params.topParentId;
|
||||||
|
if (topParentId) {
|
||||||
|
baseUrl += '?topParentId=' + topParentId;
|
||||||
|
}
|
||||||
|
|
||||||
|
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'));
|
||||||
|
|
||||||
|
mdlTabs.addEventListener('tabchange', function (e) {
|
||||||
|
loadTab(view, parseInt(e.detail.selectedTabIndex));
|
||||||
|
});
|
||||||
|
|
||||||
|
view.addEventListener('viewdestroy', function (e) {
|
||||||
|
|
||||||
|
tabControllers.forEach(function (t) {
|
||||||
|
if (t.destroy) {
|
||||||
|
t.destroy();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
});
|
});
|
|
@ -2281,7 +2281,7 @@ var AppInfo = {};
|
||||||
|
|
||||||
var baseUrl = 'bower_components/emby-webcomponents/strings/';
|
var baseUrl = 'bower_components/emby-webcomponents/strings/';
|
||||||
|
|
||||||
var languages = ['en-US'];
|
var languages = ['en-US', 'kk', 'ru'];
|
||||||
|
|
||||||
var translations = languages.map(function (i) {
|
var translations = languages.map(function (i) {
|
||||||
return {
|
return {
|
||||||
|
@ -2613,7 +2613,7 @@ var AppInfo = {};
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: '/livetv.html',
|
path: '/livetv.html',
|
||||||
dependencies: ['paper-button', 'livetvcss', 'paper-checkbox'],
|
dependencies: ['paper-button', 'livetvcss'],
|
||||||
controller: 'scripts/livetvsuggested',
|
controller: 'scripts/livetvsuggested',
|
||||||
autoFocus: false
|
autoFocus: false
|
||||||
});
|
});
|
||||||
|
@ -2736,7 +2736,8 @@ var AppInfo = {};
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: '/music.html',
|
path: '/music.html',
|
||||||
dependencies: [],
|
dependencies: ['scripts/alphapicker'],
|
||||||
|
controller: 'scripts/musicrecommended',
|
||||||
autoFocus: false
|
autoFocus: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,166 +1,171 @@
|
||||||
define(['jQuery'], function ($) {
|
define(['jQuery'], function ($) {
|
||||||
|
|
||||||
var defaultSortBy = "Album,SortName";
|
|
||||||
|
return function (view, params, tabContent) {
|
||||||
var data = {};
|
|
||||||
function getPageData(context) {
|
var self = this;
|
||||||
var key = getSavedQueryKey(context);
|
|
||||||
var pageData = data[key];
|
var defaultSortBy = "Album,SortName";
|
||||||
|
|
||||||
if (!pageData) {
|
var data = {};
|
||||||
pageData = data[key] = {
|
function getPageData(context) {
|
||||||
query: {
|
var key = getSavedQueryKey(context);
|
||||||
SortBy: defaultSortBy,
|
var pageData = data[key];
|
||||||
SortOrder: "Ascending",
|
|
||||||
IncludeItemTypes: "Audio",
|
if (!pageData) {
|
||||||
Recursive: true,
|
pageData = data[key] = {
|
||||||
Fields: "AudioInfo,ParentId,SyncInfo",
|
query: {
|
||||||
Limit: 100,
|
SortBy: defaultSortBy,
|
||||||
StartIndex: 0,
|
SortOrder: "Ascending",
|
||||||
ImageTypeLimit: 1,
|
IncludeItemTypes: "Audio",
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb"
|
Recursive: true,
|
||||||
}
|
Fields: "AudioInfo,ParentId,SyncInfo",
|
||||||
};
|
Limit: 100,
|
||||||
|
StartIndex: 0,
|
||||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
ImageTypeLimit: 1,
|
||||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb"
|
||||||
}
|
}
|
||||||
return pageData;
|
};
|
||||||
}
|
|
||||||
|
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
||||||
function getQuery(context) {
|
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||||
|
}
|
||||||
return getPageData(context).query;
|
return pageData;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSavedQueryKey(context) {
|
function getQuery(context) {
|
||||||
|
|
||||||
if (!context.savedQueryKey) {
|
return getPageData(context).query;
|
||||||
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('songs');
|
}
|
||||||
}
|
|
||||||
return context.savedQueryKey;
|
function getSavedQueryKey(context) {
|
||||||
}
|
|
||||||
|
if (!context.savedQueryKey) {
|
||||||
function reloadItems(page) {
|
context.savedQueryKey = LibraryBrowser.getSavedQueryKey('songs');
|
||||||
|
}
|
||||||
Dashboard.showLoadingMsg();
|
return context.savedQueryKey;
|
||||||
|
}
|
||||||
var query = getQuery(page);
|
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
|
function reloadItems(context) {
|
||||||
|
|
||||||
// Scroll back up so they can see the results from the beginning
|
Dashboard.showLoadingMsg();
|
||||||
window.scrollTo(0, 0);
|
|
||||||
|
var query = getQuery(context);
|
||||||
var html = '';
|
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
|
||||||
startIndex: query.StartIndex,
|
// Scroll back up so they can see the results from the beginning
|
||||||
limit: query.Limit,
|
window.scrollTo(0, 0);
|
||||||
totalRecordCount: result.TotalRecordCount,
|
|
||||||
showLimit: false,
|
var html = '';
|
||||||
sortButton: true,
|
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||||
updatePageSizeSetting: false,
|
startIndex: query.StartIndex,
|
||||||
filterButton: true
|
limit: query.Limit,
|
||||||
});
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
showLimit: false,
|
||||||
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
sortButton: true,
|
||||||
|
updatePageSizeSetting: false,
|
||||||
html += LibraryBrowser.getListViewHtml({
|
filterButton: true
|
||||||
items: result.Items,
|
});
|
||||||
showIndex: true,
|
|
||||||
defaultAction: 'play',
|
context.querySelector('.listTopPaging').innerHTML = pagingHtml;
|
||||||
smallIcon: true
|
|
||||||
});
|
html += LibraryBrowser.getListViewHtml({
|
||||||
|
items: result.Items,
|
||||||
var elem = page.querySelector('#items');
|
showIndex: true,
|
||||||
elem.innerHTML = html + pagingHtml;
|
defaultAction: 'play',
|
||||||
ImageLoader.lazyChildren(elem);
|
smallIcon: true
|
||||||
|
});
|
||||||
$('.btnNextPage', page).on('click', function () {
|
|
||||||
query.StartIndex += query.Limit;
|
var elem = context.querySelector('#items');
|
||||||
reloadItems(page);
|
elem.innerHTML = html + pagingHtml;
|
||||||
});
|
ImageLoader.lazyChildren(elem);
|
||||||
|
|
||||||
$('.btnPreviousPage', page).on('click', function () {
|
$('.btnNextPage', context).on('click', function () {
|
||||||
query.StartIndex -= query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(context);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.btnFilter', page).on('click', function () {
|
$('.btnPreviousPage', context).on('click', function () {
|
||||||
showFilterMenu(page);
|
query.StartIndex -= query.Limit;
|
||||||
});
|
reloadItems(context);
|
||||||
|
});
|
||||||
// On callback make sure to set StartIndex = 0
|
|
||||||
$('.btnSort', page).on('click', function () {
|
$('.btnFilter', context).on('click', function () {
|
||||||
LibraryBrowser.showSortMenu({
|
showFilterMenu(context);
|
||||||
items: [{
|
});
|
||||||
name: Globalize.translate('OptionTrackName'),
|
|
||||||
id: 'Name'
|
// On callback make sure to set StartIndex = 0
|
||||||
},
|
$('.btnSort', context).on('click', function () {
|
||||||
{
|
LibraryBrowser.showSortMenu({
|
||||||
name: Globalize.translate('OptionAlbum'),
|
items: [{
|
||||||
id: 'Album,SortName'
|
name: Globalize.translate('OptionTrackName'),
|
||||||
},
|
id: 'Name'
|
||||||
{
|
},
|
||||||
name: Globalize.translate('OptionAlbumArtist'),
|
{
|
||||||
id: 'AlbumArtist,Album,SortName'
|
name: Globalize.translate('OptionAlbum'),
|
||||||
},
|
id: 'Album,SortName'
|
||||||
{
|
},
|
||||||
name: Globalize.translate('OptionArtist'),
|
{
|
||||||
id: 'Artist,Album,SortName'
|
name: Globalize.translate('OptionAlbumArtist'),
|
||||||
},
|
id: 'AlbumArtist,Album,SortName'
|
||||||
{
|
},
|
||||||
name: Globalize.translate('OptionDateAdded'),
|
{
|
||||||
id: 'DateCreated,SortName'
|
name: Globalize.translate('OptionArtist'),
|
||||||
},
|
id: 'Artist,Album,SortName'
|
||||||
{
|
},
|
||||||
name: Globalize.translate('OptionDatePlayed'),
|
{
|
||||||
id: 'DatePlayed,SortName'
|
name: Globalize.translate('OptionDateAdded'),
|
||||||
},
|
id: 'DateCreated,SortName'
|
||||||
{
|
},
|
||||||
name: Globalize.translate('OptionPlayCount'),
|
{
|
||||||
id: 'PlayCount,SortName'
|
name: Globalize.translate('OptionDatePlayed'),
|
||||||
},
|
id: 'DatePlayed,SortName'
|
||||||
{
|
},
|
||||||
name: Globalize.translate('OptionReleaseDate'),
|
{
|
||||||
id: 'PremiereDate,AlbumArtist,Album,SortName'
|
name: Globalize.translate('OptionPlayCount'),
|
||||||
},
|
id: 'PlayCount,SortName'
|
||||||
{
|
},
|
||||||
name: Globalize.translate('OptionRuntime'),
|
{
|
||||||
id: 'Runtime,AlbumArtist,Album,SortName'
|
name: Globalize.translate('OptionReleaseDate'),
|
||||||
}],
|
id: 'PremiereDate,AlbumArtist,Album,SortName'
|
||||||
callback: function () {
|
},
|
||||||
reloadItems(page);
|
{
|
||||||
},
|
name: Globalize.translate('OptionRuntime'),
|
||||||
query: query
|
id: 'Runtime,AlbumArtist,Album,SortName'
|
||||||
});
|
}],
|
||||||
});
|
callback: function () {
|
||||||
|
reloadItems(context);
|
||||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
},
|
||||||
|
query: query
|
||||||
Dashboard.hideLoadingMsg();
|
});
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
LibraryBrowser.saveQueryValues(getSavedQueryKey(context), query);
|
||||||
function showFilterMenu(page) {
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
});
|
||||||
|
}
|
||||||
var filterDialog = new filterDialogFactory({
|
|
||||||
query: getQuery(page),
|
function showFilterMenu(context) {
|
||||||
mode: 'songs'
|
|
||||||
});
|
require(['components/filterdialog/filterdialog'], function (filterDialogFactory) {
|
||||||
|
|
||||||
Events.on(filterDialog, 'filterchange', function () {
|
var filterDialog = new filterDialogFactory({
|
||||||
reloadItems(page);
|
query: getQuery(context),
|
||||||
});
|
mode: 'songs'
|
||||||
|
});
|
||||||
filterDialog.show();
|
|
||||||
});
|
Events.on(filterDialog, 'filterchange', function () {
|
||||||
}
|
reloadItems(context);
|
||||||
|
});
|
||||||
window.MusicPage.renderSongsTab = function (page, tabContent) {
|
|
||||||
|
filterDialog.show();
|
||||||
reloadItems(tabContent);
|
});
|
||||||
};
|
}
|
||||||
|
self.renderTab = function () {
|
||||||
|
|
||||||
|
reloadItems(tabContent);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
});
|
});
|
Loading…
Add table
Add a link
Reference in a new issue