@@ -268,6 +268,16 @@
|
|||||||
- backend debug broadcasts
|
- backend debug broadcasts
|
||||||
|
|
||||||
## Recent Change Log
|
## Recent Change Log
|
||||||
|
- Date: `2026-03-24`
|
||||||
|
- What changed:
|
||||||
|
- Removed the remaining inline `Powered by GIPHY` / prompt-chip bar from Zone A image mode so the image search view now shows only the shared search controls and the results area.
|
||||||
|
- Why it changed:
|
||||||
|
- The user wanted that image-mode top strip removed entirely instead of reduced or restyled.
|
||||||
|
- How it was verified:
|
||||||
|
- static review of `frontend/index.html` and `frontend/app.js`
|
||||||
|
- What is still risky or incomplete:
|
||||||
|
- None beyond the usual need for a browser hard refresh if an older cached frontend bundle is still open in a tab.
|
||||||
|
|
||||||
- Date: `2026-03-24`
|
- Date: `2026-03-24`
|
||||||
- What changed:
|
- What changed:
|
||||||
- Restored the video-search request path to tolerate a scheme-less `SEARXNG_BASE_URL` such as `192.168.1.66:8087` by normalizing it to `http://...` during search-service initialization.
|
- Restored the video-search request path to tolerate a scheme-less `SEARXNG_BASE_URL` such as `192.168.1.66:8087` by normalizing it to `http://...` during search-service initialization.
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ const searchSubmitButton = document.getElementById("searchSubmitButton");
|
|||||||
const searchResultsViewport = document.getElementById("searchResultsViewport");
|
const searchResultsViewport = document.getElementById("searchResultsViewport");
|
||||||
const mediaTypeToggles = Array.from(document.querySelectorAll("[data-media-type-toggle]"));
|
const mediaTypeToggles = Array.from(document.querySelectorAll("[data-media-type-toggle]"));
|
||||||
const platformToggles = Array.from(document.querySelectorAll("[data-platform-toggle]"));
|
const platformToggles = Array.from(document.querySelectorAll("[data-platform-toggle]"));
|
||||||
const imagePromptBar = document.getElementById("imagePromptBar");
|
|
||||||
const imagePromptChips = Array.from(document.querySelectorAll("[data-image-prompt]"));
|
|
||||||
const dropzone = document.getElementById("dropzone");
|
const dropzone = document.getElementById("dropzone");
|
||||||
const fileInput = document.getElementById("fileInput");
|
const fileInput = document.getElementById("fileInput");
|
||||||
const uploadResult = document.getElementById("uploadResult");
|
const uploadResult = document.getElementById("uploadResult");
|
||||||
@@ -338,7 +336,6 @@ function renderImageResults(items = []) {
|
|||||||
function applyMediaTypeUI() {
|
function applyMediaTypeUI() {
|
||||||
const isImageMode = activeMediaType === "image";
|
const isImageMode = activeMediaType === "image";
|
||||||
syncMediaTypeButtons();
|
syncMediaTypeButtons();
|
||||||
setHidden(imagePromptBar, !isImageMode, "flex");
|
|
||||||
setHidden(queryVariants, true, "");
|
setHidden(queryVariants, true, "");
|
||||||
showWarning("");
|
showWarning("");
|
||||||
searchResultsViewport.classList.toggle("image-results-scroll", isImageMode);
|
searchResultsViewport.classList.toggle("image-results-scroll", isImageMode);
|
||||||
@@ -950,15 +947,6 @@ for (const button of mediaTypeToggles) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const chip of imagePromptChips) {
|
|
||||||
chip.addEventListener("click", () => {
|
|
||||||
searchQuery.value = chip.dataset.imagePrompt || "";
|
|
||||||
if (activeMediaType === "image") {
|
|
||||||
setStatus("image prompt applied", 0);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function uploadFile(file) {
|
async function uploadFile(file) {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append("file", file);
|
formData.append("file", file);
|
||||||
|
|||||||
@@ -52,12 +52,6 @@
|
|||||||
<input id="searchQuery" type="text" placeholder="한글 검색어를 입력하세요" class="flex-1 rounded-2xl border border-white/10 bg-black/40 px-5 py-4 text-base text-white outline-none ring-0 placeholder:text-zinc-500" />
|
<input id="searchQuery" type="text" placeholder="한글 검색어를 입력하세요" class="flex-1 rounded-2xl border border-white/10 bg-black/40 px-5 py-4 text-base text-white outline-none ring-0 placeholder:text-zinc-500" />
|
||||||
<button id="searchSubmitButton" class="rounded-2xl border border-white bg-white px-7 py-4 text-base font-medium text-black transition hover:bg-zinc-200">AI Search</button>
|
<button id="searchSubmitButton" class="rounded-2xl border border-white bg-white px-7 py-4 text-base font-medium text-black transition hover:bg-zinc-200">AI Search</button>
|
||||||
</form>
|
</form>
|
||||||
<div id="imagePromptBar" class="mt-4 hidden flex-wrap items-center gap-2">
|
|
||||||
<span class="mr-2 text-[11px] uppercase tracking-[0.24em] text-zinc-500">Powered by GIPHY</span>
|
|
||||||
<button type="button" class="image-prompt-chip rounded-full border border-white/10 px-3 py-2 text-xs uppercase tracking-[0.2em] text-zinc-200" data-image-prompt="cinematic city night">Cinematic City</button>
|
|
||||||
<button type="button" class="image-prompt-chip rounded-full border border-white/10 px-3 py-2 text-xs uppercase tracking-[0.2em] text-zinc-200" data-image-prompt="vintage fashion portrait">Vintage Portrait</button>
|
|
||||||
<button type="button" class="image-prompt-chip rounded-full border border-white/10 px-3 py-2 text-xs uppercase tracking-[0.2em] text-zinc-200" data-image-prompt="minimal product mockup">Product Mockup</button>
|
|
||||||
</div>
|
|
||||||
<div id="searchWarning" class="mt-3 hidden rounded-2xl border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm text-amber-200"></div>
|
<div id="searchWarning" class="mt-3 hidden rounded-2xl border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm text-amber-200"></div>
|
||||||
<div id="queryVariants" class="hidden"></div>
|
<div id="queryVariants" class="hidden"></div>
|
||||||
<div id="searchResultsViewport" class="mt-6">
|
<div id="searchResultsViewport" class="mt-6">
|
||||||
|
|||||||
Reference in New Issue
Block a user