statusform.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. $(document).ready(function() {
  2. $('#statusForm .btn-filter-select').on('click', function(e) {
  3. let el = $(this);
  4. });
  5. pixelfed.create = {};
  6. pixelfed.filters = {};
  7. pixelfed.create.hasGeneratedSelect = false;
  8. pixelfed.create.selectedFilter = false;
  9. pixelfed.create.currentFilterName = false;
  10. pixelfed.create.currentFilterClass = false;
  11. pixelfed.filters.list = [
  12. ['1977','filter-1977'],
  13. ['Aden','filter-aden'],
  14. ['Amaro','filter-amaro'],
  15. ['Ashby','filter-ashby'],
  16. ['Brannan','filter-brannan'],
  17. ['Brooklyn','filter-brooklyn'],
  18. ['Charmes','filter-charmes'],
  19. ['Clarendon','filter-clarendon'],
  20. ['Crema','filter-crema'],
  21. ['Dogpatch','filter-dogpatch'],
  22. ['Earlybird','filter-earlybird'],
  23. ['Gingham','filter-gingham'],
  24. ['Ginza','filter-ginza'],
  25. ['Hefe','filter-hefe'],
  26. ['Helena','filter-helena'],
  27. ['Hudson','filter-hudson'],
  28. ['Inkwell','filter-inkwell'],
  29. ['Kelvin','filter-kelvin'],
  30. ['Kuno','filter-juno'],
  31. ['Lark','filter-lark'],
  32. ['Lo-Fi','filter-lofi'],
  33. ['Ludwig','filter-ludwig'],
  34. ['Maven','filter-maven'],
  35. ['Mayfair','filter-mayfair'],
  36. ['Moon','filter-moon'],
  37. ['Nashville','filter-nashville'],
  38. ['Perpetua','filter-perpetua'],
  39. ['Poprocket','filter-poprocket'],
  40. ['Reyes','filter-reyes'],
  41. ['Rise','filter-rise'],
  42. ['Sierra','filter-sierra'],
  43. ['Skyline','filter-skyline'],
  44. ['Slumber','filter-slumber'],
  45. ['Stinson','filter-stinson'],
  46. ['Sutro','filter-sutro'],
  47. ['Toaster','filter-toaster'],
  48. ['Valencia','filter-valencia'],
  49. ['Vesper','filter-vesper'],
  50. ['Walden','filter-walden'],
  51. ['Willow','filter-willow'],
  52. ['X-Pro II','filter-xpro-ii']
  53. ];
  54. function previewImage(input) {
  55. if (input.files && input.files[0]) {
  56. var reader = new FileReader();
  57. reader.onload = function(e) {
  58. $('.filterPreview').attr('src', e.target.result);
  59. }
  60. reader.readAsDataURL(input.files[0]);
  61. }
  62. }
  63. function generateFilterSelect() {
  64. let filters = pixelfed.filters.list;
  65. for(var i = 0, len = filters.length; i < len; i++) {
  66. let filter = filters[i];
  67. let name = filter[0];
  68. let className = filter[1];
  69. let select = $('#filterSelectDropdown');
  70. var template = '<option value="' + className + '">' + name + '</option>';
  71. select.append(template);
  72. }
  73. pixelfed.create.hasGeneratedSelect = true;
  74. }
  75. $('#fileInput').on('change', function() {
  76. previewImage(this);
  77. $('#statusForm .form-filters.d-none').removeClass('d-none');
  78. $('#statusForm .form-preview.d-none').removeClass('d-none');
  79. $('#statusForm #collapsePreview').collapse('show');
  80. if(!pixelfed.create.hasGeneratedSelect) {
  81. generateFilterSelect();
  82. }
  83. });
  84. $('#filterSelectDropdown').on('change', function() {
  85. let el = $(this);
  86. let filter = el.val();
  87. let oldFilter = pixelfed.create.currentFilterClass;
  88. if(filter == 'none') {
  89. $('.filterContainer').removeClass(oldFilter);
  90. pixelfed.create.currentFilterClass = false;
  91. pixelfed.create.currentFilterName = 'None';
  92. $('.form-group.form-preview .form-text').text('Current Filter: No filter selected');
  93. return;
  94. }
  95. $('.filterContainer').removeClass(oldFilter).addClass(filter);
  96. pixelfed.create.currentFilterClass = filter;
  97. pixelfed.create.currentFilterName = el.find(':selected').text();
  98. $('.form-group.form-preview .form-text').text('Current Filter: ' + pixelfed.create.currentFilterName);
  99. $('input[name=filter_class]').val(pixelfed.create.currentFilterClass);
  100. $('input[name=filter_name]').val(pixelfed.create.currentFilterName);
  101. });
  102. });