@@ -1670,98 +1670,103 @@ <h3 class="sectionTitle">Web Plugin Status</h3>
16701670 } ) ;
16711671 }
16721672
1673+ function submit ( ) {
1674+ return ApiClient . getPluginConfiguration ( MoonfinConfig . pluginUniqueId ) . then ( function ( config ) {
1675+ config . EnableSettingsSync = document . querySelector ( '#EnableSettingsSync' ) . checked ;
1676+ config . JellyseerrEnabled = document . querySelector ( '#JellyseerrEnabled' ) . checked ;
1677+ config . JellyseerrUrl = document . querySelector ( '#JellyseerrUrl' ) . value || null ;
1678+ config . JellyseerrDisplayName = document . querySelector ( '#JellyseerrDisplayName' ) . value || null ;
1679+ config . MdblistApiKey = document . querySelector ( '#MdblistApiKey' ) . value || null ;
1680+ config . TmdbApiKey = document . querySelector ( '#TmdbApiKey' ) . value || null ;
1681+ config . WebDefaultServerUrl = document . querySelector ( '#WebDefaultServerUrl' ) . value || null ;
1682+ config . WebForcedServerUrl = document . querySelector ( '#WebForcedServerUrl' ) . value || null ;
1683+ config . WebEnableWebRtcScan = document . querySelector ( '#WebEnableWebRtcScan' ) . checked ;
1684+
1685+ config . DefaultUserSettings = config . DefaultUserSettings || { } ;
1686+ config . DefaultUserSettings . visualTheme = document . querySelector ( '#DefaultVisualTheme' ) . value || null ;
1687+ config . DefaultUserSettings . focusColor = document . querySelector ( '#DefaultFocusColor' ) . value || null ;
1688+ config . DefaultUserSettings . watchedIndicator = document . querySelector ( '#DefaultWatchedIndicator' ) . value || null ;
1689+ config . DefaultUserSettings . cardFocusExpansion = getNullableBoolSelect ( '#DefaultCardFocusExpansion' ) ;
1690+ config . DefaultUserSettings . screensaverMode = document . querySelector ( '#DefaultScreensaverMode' ) . value || null ;
1691+
1692+ config . DefaultUserSettings . navbarPosition = document . querySelector ( '#DefaultNavbarPosition' ) . value || null ;
1693+ config . DefaultUserSettings . navbarColor = document . querySelector ( '#DefaultNavbarColor' ) . value || null ;
1694+ config . DefaultUserSettings . navbarOpacity = getNullableIntInput ( '#DefaultNavbarOpacity' ) ;
1695+
1696+ config . DefaultUserSettings . mediaBarSourceType = document . querySelector ( '#DefaultMediaBarSourceType' ) . value || null ;
1697+ config . DefaultUserSettings . mediaBarMode = document . querySelector ( '#DefaultMediaBarMode' ) . value || null ;
1698+ config . DefaultUserSettings . mediaBarTrailerAudio = getNullableBoolSelect ( '#DefaultMediaBarTrailerAudio' ) ;
1699+
1700+ var collectionCbs = document . querySelectorAll ( '.adminCollectionCb:checked' ) ;
1701+ var collectionIds = [ ] ;
1702+ for ( var ci = 0 ; ci < collectionCbs . length ; ci ++ ) {
1703+ collectionIds . push ( collectionCbs [ ci ] . dataset . id ) ;
1704+ }
1705+ config . DefaultUserSettings . mediaBarCollectionIds = collectionIds . length > 0 ? collectionIds : null ;
1706+ var libraryCbs = document . querySelectorAll ( '.adminLibraryCb:checked' ) ;
1707+ var libraryIds = [ ] ;
1708+ for ( var li = 0 ; li < libraryCbs . length ; li ++ ) {
1709+ libraryIds . push ( libraryCbs [ li ] . dataset . id ) ;
1710+ }
1711+ config . DefaultUserSettings . mediaBarLibraryIds = libraryIds . length > 0 ? libraryIds : null ;
1712+ var genreCbs = document . querySelectorAll ( '.adminGenreCb:checked' ) ;
1713+ var genreIds = [ ] ;
1714+ for ( var gi = 0 ; gi < genreCbs . length ; gi ++ ) {
1715+ genreIds . push ( genreCbs [ gi ] . dataset . id ) ;
1716+ }
1717+ config . DefaultUserSettings . mediaBarExcludedGenres = genreIds . length > 0 ? genreIds : null ;
1718+
1719+ config . DefaultUserSettings . homeRowsStyle = document . querySelector ( '#DefaultHomeRowsStyle' ) . value || null ;
1720+ config . DefaultUserSettings . fullScreenRows = getNullableBoolSelect ( '#DefaultFullScreenRows' ) ;
1721+ config . DefaultUserSettings . homeImageTypeContinueWatching = document . querySelector ( '#DefaultHomeImageTypeContinueWatching' ) . value || null ;
1722+ config . DefaultUserSettings . posterSize = document . querySelector ( '#DefaultPosterSize' ) . value || null ;
1723+ config . DefaultUserSettings . displayFavoritesRows = getNullableBoolSelect ( '#DefaultDisplayFavoritesRows' ) ;
1724+ config . DefaultUserSettings . displayCollectionsRows = getNullableBoolSelect ( '#DefaultDisplayCollectionsRows' ) ;
1725+ config . DefaultUserSettings . displayGenresRows = getNullableBoolSelect ( '#DefaultDisplayGenresRows' ) ;
1726+ config . DefaultUserSettings . displaySeerrRows = getNullableBoolSelect ( '#DefaultDisplaySeerrRows' ) ;
1727+ config . DefaultUserSettings . favoritesRowSortBy = document . querySelector ( '#DefaultFavoritesRowSortBy' ) . value || null ;
1728+ config . DefaultUserSettings . collectionsRowSortBy = document . querySelector ( '#DefaultCollectionsRowSortBy' ) . value || null ;
1729+ config . DefaultUserSettings . genresRowSortBy = document . querySelector ( '#DefaultGenresRowSortBy' ) . value || null ;
1730+ config . DefaultUserSettings . genresRowItemFilter = document . querySelector ( '#DefaultGenresRowItemFilter' ) . value || null ;
1731+ config . DefaultUserSettings . homeImageUseSeriesImage = getNullableBoolSelect ( '#DefaultHomeImageUseSeriesImage' ) ;
1732+ config . DefaultUserSettings . homeRowOrder = getHomeRowOrderValue ( ) ;
1733+ config . DefaultUserSettings . mergeContinueWatchingNextUp = document . querySelector ( '#DefaultMergeContinueWatchingNextUp' ) . checked ;
1734+
1735+ config . DefaultUserSettings . showShuffleButton = document . querySelector ( '#DefaultShowShuffleButton' ) . checked ;
1736+ config . DefaultUserSettings . showGenresButton = document . querySelector ( '#DefaultShowGenresButton' ) . checked ;
1737+ config . DefaultUserSettings . showFavoritesButton = document . querySelector ( '#DefaultShowFavoritesButton' ) . checked ;
1738+ config . DefaultUserSettings . showCastButton = document . querySelector ( '#DefaultShowCastButton' ) . checked ;
1739+ config . DefaultUserSettings . showSyncPlayButton = document . querySelector ( '#DefaultShowSyncPlayButton' ) . checked ;
1740+ config . DefaultUserSettings . showLibrariesInToolbar = document . querySelector ( '#DefaultShowLibrariesInToolbar' ) . checked ;
1741+
1742+ config . DefaultUserSettings . episodePreviewEnabled = getNullableBoolSelect ( '#DefaultEpisodePreviewEnabled' ) ;
1743+ config . DefaultUserSettings . previewAudioEnabled = getNullableBoolSelect ( '#DefaultPreviewAudioEnabled' ) ;
1744+
1745+ config . DefaultUserSettings . mdblistEnabled = document . querySelector ( '#DefaultMdblistEnabled' ) . checked ;
1746+ config . DefaultUserSettings . tmdbEpisodeRatingsEnabled = document . querySelector ( '#DefaultTmdbEpisodeRatingsEnabled' ) . checked ;
1747+ config . DefaultUserSettings . mdblistShowRatingBadges = getNullableBoolSelect ( '#DefaultMdblistShowRatingBadges' ) ;
1748+ config . DefaultUserSettings . mdblistRatingSources = getRatingSourcesValue ( ) ;
1749+ config . DefaultUserSettings . jellyseerrBlockNsfw = getNullableBoolSelect ( '#DefaultJellyseerrBlockNsfw' ) ;
1750+
1751+ return ApiClient . updatePluginConfiguration ( MoonfinConfig . pluginUniqueId , config ) . then ( function ( result ) {
1752+ Dashboard . processPluginConfigurationUpdateResult ( result ) ;
1753+ } ) ;
1754+ } ) ;
1755+ }
1756+
16731757 document . querySelector ( '#MoonfinConfigForm' )
16741758 . addEventListener ( 'submit' , function ( ev ) {
16751759 ev . preventDefault ( ) ;
16761760 Dashboard . showLoadingMsg ( ) ;
1677- ApiClient . getPluginConfiguration ( MoonfinConfig . pluginUniqueId ) . then ( function ( config ) {
1678- config . EnableSettingsSync = document . querySelector ( '#EnableSettingsSync' ) . checked ;
1679- config . JellyseerrEnabled = document . querySelector ( '#JellyseerrEnabled' ) . checked ;
1680- config . JellyseerrUrl = document . querySelector ( '#JellyseerrUrl' ) . value || null ;
1681- config . JellyseerrDisplayName = document . querySelector ( '#JellyseerrDisplayName' ) . value || null ;
1682- config . MdblistApiKey = document . querySelector ( '#MdblistApiKey' ) . value || null ;
1683- config . TmdbApiKey = document . querySelector ( '#TmdbApiKey' ) . value || null ;
1684- config . WebDefaultServerUrl = document . querySelector ( '#WebDefaultServerUrl' ) . value || null ;
1685- config . WebForcedServerUrl = document . querySelector ( '#WebForcedServerUrl' ) . value || null ;
1686- config . WebEnableWebRtcScan = document . querySelector ( '#WebEnableWebRtcScan' ) . checked ;
1687-
1688- config . DefaultUserSettings = config . DefaultUserSettings || { } ;
1689- config . DefaultUserSettings . visualTheme = document . querySelector ( '#DefaultVisualTheme' ) . value || null ;
1690- config . DefaultUserSettings . focusColor = document . querySelector ( '#DefaultFocusColor' ) . value || null ;
1691- config . DefaultUserSettings . watchedIndicator = document . querySelector ( '#DefaultWatchedIndicator' ) . value || null ;
1692- config . DefaultUserSettings . cardFocusExpansion = getNullableBoolSelect ( '#DefaultCardFocusExpansion' ) ;
1693- config . DefaultUserSettings . screensaverMode = document . querySelector ( '#DefaultScreensaverMode' ) . value || null ;
1694-
1695- config . DefaultUserSettings . navbarPosition = document . querySelector ( '#DefaultNavbarPosition' ) . value || null ;
1696- config . DefaultUserSettings . navbarColor = document . querySelector ( '#DefaultNavbarColor' ) . value || null ;
1697- config . DefaultUserSettings . navbarOpacity = getNullableIntInput ( '#DefaultNavbarOpacity' ) ;
1698-
1699- config . DefaultUserSettings . mediaBarSourceType = document . querySelector ( '#DefaultMediaBarSourceType' ) . value || null ;
1700- config . DefaultUserSettings . mediaBarMode = document . querySelector ( '#DefaultMediaBarMode' ) . value || null ;
1701- config . DefaultUserSettings . mediaBarTrailerAudio = getNullableBoolSelect ( '#DefaultMediaBarTrailerAudio' ) ;
1702-
1703- var collectionCbs = document . querySelectorAll ( '.adminCollectionCb:checked' ) ;
1704- var collectionIds = [ ] ;
1705- for ( var ci = 0 ; ci < collectionCbs . length ; ci ++ ) {
1706- collectionIds . push ( collectionCbs [ ci ] . dataset . id ) ;
1707- }
1708- config . DefaultUserSettings . mediaBarCollectionIds = collectionIds . length > 0 ? collectionIds : null ;
1709- var libraryCbs = document . querySelectorAll ( '.adminLibraryCb:checked' ) ;
1710- var libraryIds = [ ] ;
1711- for ( var li = 0 ; li < libraryCbs . length ; li ++ ) {
1712- libraryIds . push ( libraryCbs [ li ] . dataset . id ) ;
1713- }
1714- config . DefaultUserSettings . mediaBarLibraryIds = libraryIds . length > 0 ? libraryIds : null ;
1715- var genreCbs = document . querySelectorAll ( '.adminGenreCb:checked' ) ;
1716- var genreIds = [ ] ;
1717- for ( var gi = 0 ; gi < genreCbs . length ; gi ++ ) {
1718- genreIds . push ( genreCbs [ gi ] . dataset . id ) ;
1719- }
1720- config . DefaultUserSettings . mediaBarExcludedGenres = genreIds . length > 0 ? genreIds : null ;
1721-
1722- config . DefaultUserSettings . homeRowsStyle = document . querySelector ( '#DefaultHomeRowsStyle' ) . value || null ;
1723- config . DefaultUserSettings . fullScreenRows = getNullableBoolSelect ( '#DefaultFullScreenRows' ) ;
1724- config . DefaultUserSettings . homeImageTypeContinueWatching = document . querySelector ( '#DefaultHomeImageTypeContinueWatching' ) . value || null ;
1725- config . DefaultUserSettings . posterSize = document . querySelector ( '#DefaultPosterSize' ) . value || null ;
1726- config . DefaultUserSettings . displayFavoritesRows = getNullableBoolSelect ( '#DefaultDisplayFavoritesRows' ) ;
1727- config . DefaultUserSettings . displayCollectionsRows = getNullableBoolSelect ( '#DefaultDisplayCollectionsRows' ) ;
1728- config . DefaultUserSettings . displayGenresRows = getNullableBoolSelect ( '#DefaultDisplayGenresRows' ) ;
1729- config . DefaultUserSettings . displaySeerrRows = getNullableBoolSelect ( '#DefaultDisplaySeerrRows' ) ;
1730- config . DefaultUserSettings . favoritesRowSortBy = document . querySelector ( '#DefaultFavoritesRowSortBy' ) . value || null ;
1731- config . DefaultUserSettings . collectionsRowSortBy = document . querySelector ( '#DefaultCollectionsRowSortBy' ) . value || null ;
1732- config . DefaultUserSettings . genresRowSortBy = document . querySelector ( '#DefaultGenresRowSortBy' ) . value || null ;
1733- config . DefaultUserSettings . genresRowItemFilter = document . querySelector ( '#DefaultGenresRowItemFilter' ) . value || null ;
1734- config . DefaultUserSettings . homeImageUseSeriesImage = getNullableBoolSelect ( '#DefaultHomeImageUseSeriesImage' ) ;
1735- config . DefaultUserSettings . homeRowOrder = getHomeRowOrderValue ( ) ;
1736- config . DefaultUserSettings . mergeContinueWatchingNextUp = document . querySelector ( '#DefaultMergeContinueWatchingNextUp' ) . checked ;
1737-
1738- config . DefaultUserSettings . showShuffleButton = document . querySelector ( '#DefaultShowShuffleButton' ) . checked ;
1739- config . DefaultUserSettings . showGenresButton = document . querySelector ( '#DefaultShowGenresButton' ) . checked ;
1740- config . DefaultUserSettings . showFavoritesButton = document . querySelector ( '#DefaultShowFavoritesButton' ) . checked ;
1741- config . DefaultUserSettings . showCastButton = document . querySelector ( '#DefaultShowCastButton' ) . checked ;
1742- config . DefaultUserSettings . showSyncPlayButton = document . querySelector ( '#DefaultShowSyncPlayButton' ) . checked ;
1743- config . DefaultUserSettings . showLibrariesInToolbar = document . querySelector ( '#DefaultShowLibrariesInToolbar' ) . checked ;
1744-
1745- config . DefaultUserSettings . episodePreviewEnabled = getNullableBoolSelect ( '#DefaultEpisodePreviewEnabled' ) ;
1746- config . DefaultUserSettings . previewAudioEnabled = getNullableBoolSelect ( '#DefaultPreviewAudioEnabled' ) ;
1747-
1748- config . DefaultUserSettings . mdblistEnabled = document . querySelector ( '#DefaultMdblistEnabled' ) . checked ;
1749- config . DefaultUserSettings . tmdbEpisodeRatingsEnabled = document . querySelector ( '#DefaultTmdbEpisodeRatingsEnabled' ) . checked ;
1750- config . DefaultUserSettings . mdblistShowRatingBadges = getNullableBoolSelect ( '#DefaultMdblistShowRatingBadges' ) ;
1751- config . DefaultUserSettings . mdblistRatingSources = getRatingSourcesValue ( ) ;
1752- config . DefaultUserSettings . jellyseerrBlockNsfw = getNullableBoolSelect ( '#DefaultJellyseerrBlockNsfw' ) ;
1753-
1754- ApiClient . updatePluginConfiguration ( MoonfinConfig . pluginUniqueId , config ) . then ( function ( result ) {
1755- Dashboard . processPluginConfigurationUpdateResult ( result ) ;
1756- } ) ;
1757- } ) ;
1761+ submit ( ) ;
17581762 return false ;
17591763 } ) ;
17601764
17611765 var pushDefaultsBtn = document . querySelector ( '#PushDefaultsBtn' ) ;
17621766 if ( pushDefaultsBtn && ! pushDefaultsBtn . dataset . bound ) {
17631767 pushDefaultsBtn . dataset . bound = 'true' ;
17641768 pushDefaultsBtn . addEventListener ( 'click' , function ( ) {
1769+
17651770 var overwrite = ! ! ( document . querySelector ( '#OverwriteAllCheckbox' ) || { } ) . checked ;
17661771
17671772 var confirmMsg = overwrite
@@ -1781,11 +1786,14 @@ <h3 class="sectionTitle">Web Plugin Status</h3>
17811786 }
17821787
17831788 Dashboard . showLoadingMsg ( ) ;
1784- fetch ( serverUrl + '/Moonfin/Admin/PushDefaults?overwrite=' + ( overwrite ? 'true' : 'false' ) , {
1789+ submit ( )
1790+ . then ( function ( ) {
1791+ return fetch ( serverUrl + '/Moonfin/Admin/PushDefaults?overwrite=' + ( overwrite ? 'true' : 'false' ) , {
17851792 method : 'POST' ,
17861793 headers : headers ,
17871794 body : '{}'
1788- } )
1795+ } ) ;
1796+ } )
17891797 . then ( parseJsonResponse )
17901798 . then ( function ( payload ) {
17911799 var usersAffected = payload . usersAffected != null ? payload . usersAffected : payload . UsersAffected ;
@@ -1833,6 +1841,7 @@ <h3 class="sectionTitle">Web Plugin Status</h3>
18331841 if ( applySingleUserBtn && ! applySingleUserBtn . dataset . bound ) {
18341842 applySingleUserBtn . dataset . bound = 'true' ;
18351843 applySingleUserBtn . addEventListener ( 'click' , function ( ) {
1844+
18361845 var select = document . querySelector ( '#SingleUserSelect' ) ;
18371846 var result = document . querySelector ( '#ApplySingleUserResult' ) ;
18381847 var userId = select ? select . value : '' ;
@@ -1864,11 +1873,14 @@ <h3 class="sectionTitle">Web Plugin Status</h3>
18641873 }
18651874
18661875 Dashboard . showLoadingMsg ( ) ;
1867- fetch ( serverUrl + '/Moonfin/Admin/PushDefaults/' + encodeURIComponent ( userId ) + '?overwrite=' + ( overwrite ? 'true' : 'false' ) , {
1876+ submit ( )
1877+ . then ( function ( ) {
1878+ return fetch ( serverUrl + '/Moonfin/Admin/PushDefaults/' + encodeURIComponent ( userId ) + '?overwrite=' + ( overwrite ? 'true' : 'false' ) , {
18681879 method : 'POST' ,
18691880 headers : headers ,
18701881 body : '{}'
1871- } )
1882+ } ) ;
1883+ } )
18721884 . then ( parseJsonResponse )
18731885 . then ( function ( ) {
18741886 if ( result ) {
0 commit comments