diff --git a/pages/editor/database/database.go b/pages/editor/database/database.go deleted file mode 100644 index fc396b59..00000000 --- a/pages/editor/database/database.go +++ /dev/null @@ -1,11 +0,0 @@ -package database - -import ( - "github.com/aerogo/aero" - "github.com/animenotifier/notify.moe/components" -) - -// Get the dashboard. -func Get(ctx *aero.Context) string { - return ctx.HTML(components.Database(ctx.URI())) -} diff --git a/pages/editor/database/database.pixy b/pages/editor/database/database.pixy deleted file mode 100644 index 67dd6f27..00000000 --- a/pages/editor/database/database.pixy +++ /dev/null @@ -1,37 +0,0 @@ -component Database(url string) - //- EditorTabs(url) - - //- .widget-form - //- .widget - //- h1.mountable Database search - - //- .widget-section.mountable - //- label(for="data-type") Search - //- select#data-type.widget-ui-element(value="Anime") - //- option(value="Analytics") Analytics - //- option(value="Anime") Anime - //- option(value="AnimeList") AnimeList - //- option(value="Character") Character - //- option(value="Group") Group - //- option(value="Post") Post - //- option(value="Settings") Settings - //- option(value="SoundTrack") SoundTrack - //- option(value="Thread") Thread - //- option(value="User") User - //- option(value="Quote") Quote - - //- .widget-section.mountable - //- label(for="field") where - //- input#field.widget-ui-element(type="text", placeholder="Field name (e.g. Title or Title.Canonical)") - - //- .widget-section.mountable - //- label(for="field-value") is - //- input#field-value.widget-ui-element(type="text") - - //- .buttons.mountable - //- button.action(data-action="searchDB", data-trigger="click") - //- Icon("search") - //- span Search - - //- h3.text-center Results - //- #records \ No newline at end of file diff --git a/pages/editor/database/database.scarlet b/pages/editor/database/database.scarlet deleted file mode 100644 index 9c1638d1..00000000 --- a/pages/editor/database/database.scarlet +++ /dev/null @@ -1,25 +0,0 @@ -#records - horizontal-wrap - justify-content space-around - margin-top content-padding - -.record - vertical - ui-element - padding 0.5rem 1rem - margin 0.5rem - -.record-id - :before - content "ID: " - -.record-view - // - -.record-view-api - // - -.record-count - text-align right - font-size 0.8rem - opacity 0.5 \ No newline at end of file diff --git a/pages/editor/database/select.go b/pages/editor/database/select.go deleted file mode 100644 index a9666d1c..00000000 --- a/pages/editor/database/select.go +++ /dev/null @@ -1,70 +0,0 @@ -package database - -import ( - "net/http" - - "github.com/aerogo/aero" - "github.com/aerogo/mirror" - "github.com/animenotifier/arn" -) - -// QueryResponse .. -type QueryResponse struct { - Results []interface{} `json:"results"` -} - -// Select ... -func Select(ctx *aero.Context) string { - dataTypeName := ctx.Get("data-type") - field := ctx.Get("field") - searchValue := ctx.Get("field-value") - - // Empty values - if dataTypeName == "+" { - dataTypeName = "" - } - - if field == "+" { - field = "" - } - - if searchValue == "+" { - searchValue = "" - } - - // Check empty parameters - if dataTypeName == "" || field == "" { - return ctx.Error(http.StatusBadRequest, "Not enough parameters", nil) - } - - // Check data type parameter - _, found := arn.DB.Types()[dataTypeName] - - if !found { - return ctx.Error(http.StatusBadRequest, "Invalid type", nil) - } - - response := &QueryResponse{ - Results: []interface{}{}, - } - - stream := arn.DB.All(dataTypeName) - - process := func(obj interface{}) { - _, _, value, _ := mirror.GetField(obj, field) - - if value.String() == searchValue { - response.Results = append(response.Results, obj) - } - } - - for obj := range stream { - process(obj) - } - - for _, obj := range response.Results { - mirror.GetField(obj, field) - } - - return ctx.JSON(response) -} diff --git a/scripts/Actions/Search.ts b/scripts/Actions/Search.ts index 531fc9df..efc4f4f1 100644 --- a/scripts/Actions/Search.ts +++ b/scripts/Actions/Search.ts @@ -155,81 +155,3 @@ function showResponseInElement(arn: AnimeNotifier, url: string, typeName: string arn.app.emit("DOMContentLoaded") } } - -// Search database -export function searchDB(arn: AnimeNotifier, input: HTMLInputElement, e: KeyboardEvent) { - if(e.ctrlKey || e.altKey) { - return - } - - let dataType = (arn.app.find("data-type") as HTMLInputElement).value || "+" - let field = (arn.app.find("field") as HTMLInputElement).value || "+" - let fieldValue = (arn.app.find("field-value") as HTMLInputElement).value || "+" - let records = arn.app.find("records") - - arn.loading(true) - - fetch(`/api/select/${dataType}/where/${field}/is/${fieldValue}`) - .then(response => { - if(response.status !== 200) { - throw response - } - - return response - }) - .then(response => response.json()) - .then(data => { - records.innerHTML = "" - let count = 0 - - if(data.results.length === 0) { - records.innerText = "No results." - return - } - - for(let record of data.results) { - count++ - - let container = document.createElement("div") - container.classList.add("record") - - let id = document.createElement("div") - id.innerText = record.id - id.classList.add("record-id") - container.appendChild(id) - - let link = document.createElement("a") - link.classList.add("record-view") - link.innerText = "Open " + dataType.toLowerCase() - - if(dataType === "User") { - link.href = "/+" + record.nick - } else { - link.href = "/" + dataType.toLowerCase() + "/" + record.id - } - - link.target = "_blank" - container.appendChild(link) - - let apiLink = document.createElement("a") - apiLink.classList.add("record-view-api") - apiLink.innerText = "JSON data" - apiLink.href = "/api/" + dataType.toLowerCase() + "/" + record.id - apiLink.target = "_blank" - container.appendChild(apiLink) - - let recordCount = document.createElement("div") - recordCount.innerText = count + "/" + data.results.length - recordCount.classList.add("record-count") - container.appendChild(recordCount) - - records.appendChild(container) - } - }) - .catch(response => { - response.text().then(text => { - arn.statusMessage.showError(text) - }) - }) - .then(() => arn.loading(false)) -} \ No newline at end of file