config.html 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>MusicBrainz</title>
  5. </head>
  6. <body>
  7. <div data-role="page" class="page type-interior pluginConfigurationPage musicBrainzConfigPage" data-require="emby-input,emby-button,emby-checkbox">
  8. <div data-role="content">
  9. <div class="content-primary">
  10. <form class="musicBrainzConfigForm">
  11. <div class="inputContainer">
  12. <input is="emby-input" type="text" id="server" required label="Server" />
  13. <div class="fieldDescription">This can be a mirror of the official server or even a custom server.</div>
  14. </div>
  15. <div class="inputContainer">
  16. <input is="emby-input" type="number" id="rateLimit" pattern="[0-9]*" required min="0" max="10000" label="Rate Limit" />
  17. <div class="fieldDescription">Span of time between requests in milliseconds. The official server is limited to one request every two seconds.</div>
  18. </div>
  19. <label class="checkboxContainer">
  20. <input is="emby-checkbox" type="checkbox" id="replaceArtistName" />
  21. <span>When an artist is found during a metadata search, replace the artist name with the value on the server.</span>
  22. </label>
  23. <br />
  24. <div>
  25. <button is="emby-button" type="submit" class="raised button-submit block"><span>Save</span></button>
  26. </div>
  27. </form>
  28. </div>
  29. </div>
  30. <script type="text/javascript">
  31. var MusicBrainzPluginConfig = {
  32. uniquePluginId: "8c95c4d2-e50c-4fb0-a4f3-6c06ff0f9a1a"
  33. };
  34. document.querySelector('.musicBrainzConfigPage')
  35. .addEventListener('pageshow', function () {
  36. Dashboard.showLoadingMsg();
  37. ApiClient.getPluginConfiguration(MusicBrainzPluginConfig.uniquePluginId).then(function (config) {
  38. var server = document.querySelector('#server');
  39. server.value = config.Server;
  40. server.dispatchEvent(new Event('change', {
  41. bubbles: true,
  42. cancelable: false
  43. }));
  44. var rateLimit = document.querySelector('#rateLimit');
  45. rateLimit.value = config.RateLimit;
  46. rateLimit.dispatchEvent(new Event('change', {
  47. bubbles: true,
  48. cancelable: false
  49. }));
  50. document.querySelector('#replaceArtistName').checked = config.ReplaceArtistName;
  51. Dashboard.hideLoadingMsg();
  52. });
  53. });
  54. document.querySelector('.musicBrainzConfigForm')
  55. .addEventListener('submit', function (e) {
  56. Dashboard.showLoadingMsg();
  57. ApiClient.getPluginConfiguration(MusicBrainzPluginConfig.uniquePluginId).then(function (config) {
  58. config.Server = document.querySelector('#server').value;
  59. config.RateLimit = document.querySelector('#rateLimit').value;
  60. config.ReplaceArtistName = document.querySelector('#replaceArtistName').checked;
  61. ApiClient.updatePluginConfiguration(MusicBrainzPluginConfig.uniquePluginId, config).then(Dashboard.processPluginConfigurationUpdateResult);
  62. });
  63. e.preventDefault();
  64. return false;
  65. });
  66. </script>
  67. </div>
  68. </body>
  69. </html>