extensions.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. function extensions_apply(_disabled_list, _update_list, disable_all) {
  2. var disable = [];
  3. var update = [];
  4. const extensions_input = gradioApp().querySelectorAll('#extensions input[type="checkbox"]');
  5. if (extensions_input.length == 0) {
  6. throw Error("Extensions page not yet loaded.");
  7. }
  8. extensions_input.forEach(function(x) {
  9. if (x.name.startsWith("enable_") && !x.checked) {
  10. disable.push(x.name.substring(7));
  11. }
  12. if (x.name.startsWith("update_") && x.checked) {
  13. update.push(x.name.substring(7));
  14. }
  15. });
  16. restart_reload();
  17. return [JSON.stringify(disable), JSON.stringify(update), disable_all];
  18. }
  19. function extensions_check() {
  20. var disable = [];
  21. gradioApp().querySelectorAll('#extensions input[type="checkbox"]').forEach(function(x) {
  22. if (x.name.startsWith("enable_") && !x.checked) {
  23. disable.push(x.name.substring(7));
  24. }
  25. });
  26. gradioApp().querySelectorAll('#extensions .extension_status').forEach(function(x) {
  27. x.innerHTML = "Loading...";
  28. });
  29. var id = randomId();
  30. requestProgress(id, gradioApp().getElementById('extensions_installed_html'), null, function() {
  31. });
  32. return [id, JSON.stringify(disable)];
  33. }
  34. function install_extension_from_index(button, url) {
  35. button.disabled = "disabled";
  36. button.value = "Installing...";
  37. var textarea = gradioApp().querySelector('#extension_to_install textarea');
  38. textarea.value = url;
  39. updateInput(textarea);
  40. gradioApp().querySelector('#install_extension_button').click();
  41. }
  42. function config_state_confirm_restore(_, config_state_name, config_restore_type) {
  43. if (config_state_name == "Current") {
  44. return [false, config_state_name, config_restore_type];
  45. }
  46. let restored = "";
  47. if (config_restore_type == "extensions") {
  48. restored = "all saved extension versions";
  49. } else if (config_restore_type == "webui") {
  50. restored = "the webui version";
  51. } else {
  52. restored = "the webui version and all saved extension versions";
  53. }
  54. let confirmed = confirm("Are you sure you want to restore from this state?\nThis will reset " + restored + ".");
  55. if (confirmed) {
  56. restart_reload();
  57. gradioApp().querySelectorAll('#extensions .extension_status').forEach(function(x) {
  58. x.innerHTML = "Loading...";
  59. });
  60. }
  61. return [confirmed, config_state_name, config_restore_type];
  62. }
  63. function toggle_all_extensions(event) {
  64. gradioApp().querySelectorAll('#extensions .extension_toggle').forEach(function(checkbox_el) {
  65. checkbox_el.checked = event.target.checked;
  66. });
  67. }
  68. function toggle_extension() {
  69. let all_extensions_toggled = true;
  70. for (const checkbox_el of gradioApp().querySelectorAll('#extensions .extension_toggle')) {
  71. if (!checkbox_el.checked) {
  72. all_extensions_toggled = false;
  73. break;
  74. }
  75. }
  76. gradioApp().querySelector('#extensions .all_extensions_toggle').checked = all_extensions_toggled;
  77. }