config.html 3.7 KB

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