form.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const selectors = {
  2. get sortControl() {
  3. return document.forms.sortControl.elements;
  4. },
  5. get clusterControl() {
  6. return document.forms.clusterControl.elements;
  7. },
  8. };
  9. const onMetricChange = (elements) => {
  10. elements.sortOrderLabel.value = elements.sortOrder.checked
  11. ? "Maximizing"
  12. : "Minimizing";
  13. const kind = elements.metricKind.value;
  14. elements.whole.disabled = kind !== "whole";
  15. elements.mean.disabled = kind !== "mean";
  16. elements.statistic.disabled = kind !== "statistic";
  17. elements.sortMetric.value = elements[kind].value;
  18. sortImages();
  19. showResults(selectors.sortControl.resultsToDisplay.value);
  20. };
  21. const onColorChange = (inputValue) => {
  22. console.log(inputValue);
  23. const colorInput = "#" + (inputValue?.replace("#", "") ?? "FFFFFF");
  24. if (colorInput.length !== 7) {
  25. return;
  26. }
  27. const rgb = d3.color(colorInput);
  28. if (!rgb) {
  29. return;
  30. }
  31. const refomatted = rgb.formatHex();
  32. selectors.sortControl.colorText.value = refomatted;
  33. selectors.sortControl.colorPicker.value = refomatted;
  34. scoreImages();
  35. sortImages();
  36. showResults(selectors.sortControl.resultsToDisplay.value);
  37. };
  38. const scoreImages = () => {
  39. // TODO
  40. };
  41. const sortImages = () => {
  42. // TODO
  43. };
  44. const showResults = (resultsToDisplay) => {
  45. // TODO
  46. };
  47. window.onload = () => {
  48. const metricTemplate = document.getElementById("metric-form-template").content;
  49. selectors.sortControl.metric.appendChild(metricTemplate.cloneNode(true));
  50. selectors.sortControl.metricKind.value = "whole";
  51. selectors.sortControl.whole.value = "alpha";
  52. onMetricChange(selectors.sortControl);
  53. selectors.clusterControl.metric.appendChild(metricTemplate.cloneNode(true));
  54. selectors.clusterControl.sortOrder.checked = true;
  55. selectors.clusterControl.metricKind.value = "statistic";
  56. selectors.clusterControl.statistic.value = "importance";
  57. onMetricChange(selectors.clusterControl);
  58. };