|
1 | 1 | <script> |
| 2 | + document.addEventListener('DOMContentLoaded', function() { |
| 3 | + const checkbox = document.getElementById('use_manual_input'); |
| 4 | + const hiddenInput = document.getElementById('file_size_manual'); |
| 5 | +
|
| 6 | + if (hiddenInput.value === "true") { |
| 7 | + checkbox.checked = true; |
| 8 | + toggleSizeInputType(checkbox); |
| 9 | + } |
| 10 | + }); |
| 11 | +
|
2 | 12 | function changePattern(element) { |
3 | 13 | console.log("Pattern changed", element.value); |
4 | 14 | let patternType = element.value; |
|
8 | 18 | if (element.textContent.includes("Directory structure:")) { |
9 | 19 | return; |
10 | 20 | } |
11 | | -
|
12 | 21 | element.classList.toggle('line-through'); |
13 | 22 | element.classList.toggle('text-gray-500'); |
14 | 23 | element.classList.toggle('hover:text-inherit'); |
|
17 | 26 | element.classList.toggle('hover:text-gray-500'); |
18 | 27 | }); |
19 | 28 | } |
| 29 | +
|
| 30 | + function toggleSizeInputType(element) { |
| 31 | + const hiddenInput = document.getElementById('file_size_manual'); |
| 32 | + const sliderContainer = document.getElementById('slider_container'); |
| 33 | + const manualSizeInput = document.getElementById('manual_size_input_container'); |
| 34 | + const manualSizeValueInput = document.getElementById('max_file_size_manual_input'); |
| 35 | + const hiddenSizeInput = document.getElementById('max_file_size_manual'); |
| 36 | + hiddenSizeInput.value = manualSizeValueInput.value; |
| 37 | + hiddenInput.value = element.checked ? "true" : "false"; |
| 38 | +
|
| 39 | + if (element.checked) { |
| 40 | + sliderContainer.classList.add('hidden'); |
| 41 | + manualSizeInput.classList.remove('hidden'); |
| 42 | +
|
| 43 | + if (!manualSizeValueInput.value || manualSizeValueInput.value.trim() === '') { |
| 44 | + manualSizeValueInput.value = "1024"; |
| 45 | + } |
| 46 | + hiddenSizeInput.value = manualSizeValueInput.value || "1024"; |
| 47 | + } else { |
| 48 | + sliderContainer.classList.remove('hidden'); |
| 49 | + manualSizeInput.classList.add('hidden'); |
| 50 | +
|
| 51 | + const sliderValue = document.getElementById('file_size').value; |
| 52 | + hiddenSizeInput.value = sliderValue; |
| 53 | + } |
| 54 | +
|
| 55 | + console.log("Use manual input: " + hiddenInput.value); |
| 56 | + console.log("Manual size value: " + hiddenSizeInput.value); |
| 57 | + } |
| 58 | +
|
| 59 | + function updateManualSizeValue(element) { |
| 60 | + const hiddenSizeInput = document.getElementById('max_file_size_manual'); |
| 61 | + hiddenSizeInput.value = element.value || "1024"; |
| 62 | + console.log("Manual size updated to: " + hiddenSizeInput.value + "KB"); |
| 63 | + } |
20 | 64 | </script> |
21 | 65 | <div class="relative"> |
22 | 66 | <div class="w-full h-full absolute inset-0 bg-gray-900 rounded-xl translate-y-2 translate-x-2"></div> |
|
43 | 87 | Ingest |
44 | 88 | </button> |
45 | 89 | </div> |
| 90 | + <input type="hidden" |
| 91 | + id="file_size_manual" |
| 92 | + name="use_manual_input" |
| 93 | + value="{{ use_manual_input }}"> |
| 94 | + <input type="hidden" |
| 95 | + id="max_file_size_manual" |
| 96 | + name="max_file_size_manual" |
| 97 | + value="{{ max_file_size_manual }}"> |
46 | 98 | <input type="hidden" name="pattern_type" value="exclude"> |
47 | 99 | <input type="hidden" name="pattern" value=""> |
48 | 100 | </form> |
49 | | - <div class="mt-4 relative z-20 flex flex-wrap gap-4 items-start"> |
| 101 | + <div class="mt-4 relative z-20 flex flex-wrap gap-4 items-center"> |
50 | 102 | <!-- Pattern selector --> |
51 | 103 | <div class="w-[200px] sm:w-[250px] mr-9 mt-4"> |
52 | 104 | <div class="relative"> |
|
83 | 135 | </div> |
84 | 136 | </div> |
85 | 137 | </div> |
86 | | - <div class="w-[200px] sm:w-[200px] mt-3"> |
87 | | - <label for="file_size" class="block text-gray-700 mb-1"> |
88 | | - Include files under: <span id="size_value" class="font-bold">50kb</span> |
89 | | - </label> |
90 | | - <input type="range" |
91 | | - id="file_size" |
92 | | - name="max_file_size" |
93 | | - min="0" |
94 | | - max="500" |
95 | | - required |
96 | | - value="{{ default_file_size }}" |
97 | | - class="w-full h-3 bg-[#FAFAFA] bg-no-repeat bg-[length:50%_100%] bg-[#ebdbb7] appearance-none border-[3px] border-gray-900 rounded-sm focus:outline-none bg-gradient-to-r from-[#FE4A60] to-[#FE4A60] [&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:h-7 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:rounded-sm [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-solid [&::-webkit-slider-thumb]:border-[3px] [&::-webkit-slider-thumb]:border-gray-900 [&::-webkit-slider-thumb]:shadow-[3px_3px_0_#000] "> |
| 138 | + <div class="flex items-center gap-4 h-[50px]"> |
| 139 | + <div class="mt-4"> |
| 140 | + <label class="flex flex-col items-center cursor-pointer"> |
| 141 | + <input type="checkbox" id="use_manual_input" name="use_manual_input" value="false" checked={false} class="sr-only peer w-12" onchange="toggleSizeInputType(this)"> |
| 142 | + <div class="relative w-12 h-6 bg-[#ebdbb7] peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-[#FE4A60]/30 rounded-full peer border-[2px] border-gray-900 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-4 after:w-5 after:transition-all peer-checked:bg-[#FE4A60]"> |
| 143 | + </div> |
| 144 | + <p class="ms-1 text-sm font-medium text-gray-900">Manual</p> |
| 145 | + </label> |
| 146 | + </div> |
| 147 | + <div id="slider_container" class="w-[200px] sm:w-[200px] mt-3"> |
| 148 | + <label for="file_size" class="block text-gray-700 mb-1"> |
| 149 | + Include files under: <span id="size_value" class="font-bold">50kb</span> |
| 150 | + </label> |
| 151 | + <input type="range" |
| 152 | + id="file_size" |
| 153 | + name="max_file_size" |
| 154 | + min="0" |
| 155 | + max="500" |
| 156 | + required |
| 157 | + value="{{ default_file_size }}" |
| 158 | + class="w-full h-3 bg-[#FAFAFA] bg-no-repeat bg-[length:50%_100%] bg-[#ebdbb7] appearance-none border-[3px] border-gray-900 rounded-sm focus:outline-none bg-gradient-to-r from-[#FE4A60] to-[#FE4A60] [&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:h-7 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:rounded-sm [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-solid [&::-webkit-slider-thumb]:border-[3px] [&::-webkit-slider-thumb]:border-gray-900 [&::-webkit-slider-thumb]:shadow-[3px_3px_0_#000]"> |
| 159 | + </div> |
| 160 | + <div id="manual_size_input_container" class="hidden mt-3"> |
| 161 | + <label for="max_file_size_manual_input" class="block text-gray-700 mb-1">Manual size (kb):</label> |
| 162 | + <input type="number" |
| 163 | + id="max_file_size_manual_input" |
| 164 | + name="max_file_size_manual" |
| 165 | + min="1" |
| 166 | + max="102400" |
| 167 | + value="1024" |
| 168 | + class="lg:w-[150px] sm:w-[100px] border-[3px] border-gray-900 rounded-sm focus:outline-none bg-[#ebdbb7] appearance-none indent-2" |
| 169 | + style="-webkit-appearance: none; |
| 170 | + color: #333" |
| 171 | + onchange="updateManualSizeValue(this)"> |
| 172 | + </div> |
98 | 173 | </div> |
99 | 174 | </div> |
100 | 175 | {% if show_examples %} |
|
0 commit comments