From 265a3a0431394311cebaebcd8ab65d5d49f06db8 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Mon, 2 Mar 2026 11:49:04 +0530 Subject: [PATCH 01/76] Alert is moved from $.extend to proper function --- .../static/js/edges/admin.alerts.edge.js | 422 +++++++++--------- 1 file changed, 202 insertions(+), 220 deletions(-) diff --git a/portality/static/js/edges/admin.alerts.edge.js b/portality/static/js/edges/admin.alerts.edge.js index b5e5f603cb..838c85422c 100644 --- a/portality/static/js/edges/admin.alerts.edge.js +++ b/portality/static/js/edges/admin.alerts.edge.js @@ -1,242 +1,224 @@ // ~~ AdminAlerts:Edge ~~ // ~~-> Edges:Technology ~~ -$.extend(true, doaj, { - adminAlertsSearch : { - activeEdges : {}, +// Ensure namespace exists +doaj.adminAlertsSearch = { - init : function(params) { - if (!params) { params = {} } + activeEdges: {}, - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + init: function(params) { + if (!params) { params = {} } - var selector = params.selector || "#admin_alerts"; - var search_url = current_scheme + "//" + current_domain + doaj.adminAlertsSearchConfig.searchPath; + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var selector = params.selector || "#admin_alerts"; + var search_url = current_scheme + "//" + current_domain + doaj.adminAlertsSearchConfig.searchPath; - var components = [ - doaj.components.searchingNotification(), + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - // facets + var components = [ + doaj.components.searchingNotification(), - edges.newRefiningANDTermSelector({ - id: "source", - category: "facet", - field: "source.exact", - display: "Source", - deactivateThreshold: 0, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "state", - category: "facet", - field: "state.exact", - display: "State", - orderBy: "term", - orderDir: "asc", - deactivateThreshold: 0, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newDateHistogramSelector({ - id: "created_date", - category: "facet", - field : "created_date", - interval: "month", - display: "Date", - displayFormatter : function(val) { - let d = new Date(parseInt(val)) - return d.getUTCFullYear().toString() + "-" + doaj.valueMaps.monthPadding(d.getUTCMonth() + 1); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Alert Date','field':'created_date'} - ], - fieldOptions: [ - {'display':'Message','field':'message'}, - {'display':'Source','field':'source'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Alerts" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - noResultsText: "Great news, there are no alerts!", - rowDisplay : [ - [ - { - pre : "[", - field: "state", - post: "] " - }, - { - pre : "From ", - field: "source", - post: "" - }, - { - pre: " at ", - field: "created_date", - post: "" - } - ], - [ - { - pre : "

", - field: "message", - post: "

" - } - ], - [ - { - valueFunction: function(val, res, component) { - let frag = ""; - if (res.audit) { - frag += ""; + // facets + edges.newRefiningANDTermSelector({ + id: "source", + category: "facet", + field: "source.exact", + display: "Source", + deactivateThreshold: 0, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + + edges.newRefiningANDTermSelector({ + id: "state", + category: "facet", + field: "state.exact", + display: "State", + orderBy: "term", + orderDir: "asc", + deactivateThreshold: 0, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + + edges.newDateHistogramSelector({ + id: "created_date", + category: "facet", + field: "created_date", + interval: "month", + display: "Date", + displayFormatter: function(val) { + let d = new Date(parseInt(val)) + return d.getUTCFullYear().toString() + "-" + doaj.valueMaps.monthPadding(d.getUTCMonth() + 1); + }, + sortFunction: function(values) { + values.reverse(); + return values; + }, + renderer: edges.bs3.newDateHistogramSelectorRenderer({ + countFormat: countFormat, + hideInactive: true + }) + }), + + // search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Alert Date','field':'created_date'} + ], + fieldOptions: [ + {'display':'Message','field':'message'}, + {'display':'Source','field':'source'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search All Alerts" + }) + }), + + // pagers + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + + // results + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + noResultsText: "Great news, there are no alerts!", + rowDisplay: [ + [ + { pre: "[", field: "state", post: "] " }, + { pre: "From ", field: "source", post: "" }, + { pre: " at ", field: "created_date", post: "" } + ], + [ + { pre: "

", field: "message", post: "

" } + ], + [ + { + valueFunction: function(val, res) { + let frag = ""; + if (res.audit) { + frag += ""; } + return frag; } - ], - [ - { - valueFunction: function(val, res, component) { - let controlClass = edges.css_classes(component.namespace, "control"); - let in_progress = `Set In Progress`; - let resolved = `Mark Closed`; - let frag = ""; - if (res.state === "new") { - frag = in_progress + " " + resolved; - } else if (res.state === "in_progress") { - frag = resolved; - } - return frag; + } + ], + [ + { + valueFunction: function(val, res, component) { + let controlClass = edges.css_classes(component.namespace, "control"); + let in_progress = `Set In Progress`; + let resolved = `Mark Closed`; + let frag = ""; + if (res.state === "new") { + frag = in_progress + " " + resolved; + } else if (res.state === "in_progress") { + frag = resolved; } + return frag; } - ] + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "source.exact" : "Source", - "state.exact" : "State", - "created_date" : "Alert Date" - }, - rangeFunctions : { - "created_date" : doaj.valueMaps.displayYearMonthPeriod - } + ] }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - must: [es.newTermFilter({field: "state.exact", value: "new"})], - sort: [{field: "created_date", order: "desc"}], - size: 25 - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - }, - "edges:post-render" : function() { - let resultsComponent = doaj.adminAlertsSearch.activeEdges[selector].getComponent({id: "results"}); - let controllSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "control"); - $(controllSelector).on("click", function(e) { - e.preventDefault(); - let a = e.currentTarget; - let link = a.getAttribute("href"); - $.ajax({ - method: "POST", - url: link, - success: function(data) { - // reload the page to see the changes - // window.location.reload(); - alert("Updated successfully, reload the page to see the changes"); - }, - error: function(xhr, status, error) { - alert("There was an unexpected error processing your request."); - } - }) + }), + + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "source.exact": "Source", + "state.exact": "State", + "created_date": "Alert Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + openingQuery: es.newQuery({ + must: [es.newTermFilter({field: "state.exact", value: "new"})], + sort: [{field: "created_date", order: "desc"}], + size: 25 + }), + callbacks: { + "edges:query-fail": function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + }, + "edges:post-render": function() { + let resultsComponent = doaj.adminAlertsSearch.activeEdges[selector].getComponent({id: "results"}); + let controllSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "control"); + $(controllSelector).on("click", function(e) { + e.preventDefault(); + let link = e.currentTarget.getAttribute("href"); + $.ajax({ + method: "POST", + url: link, + success: function() { + alert("Updated successfully, reload the page to see the changes"); + }, + error: function() { + alert("There was an unexpected error processing your request."); + } }) - } + }) } - }); - doaj.adminAlertsSearch.activeEdges[selector] = e; - } - } -}); + } + }); + doaj.adminAlertsSearch.activeEdges[selector] = e; + } +}; -jQuery(document).ready(function($) { +jQuery(document).ready(function() { doaj.adminAlertsSearch.init(); -}); +}); \ No newline at end of file From ff8591c83d5cf0aeea6813b1c189a3911f3b0f6c Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 07:26:56 +0530 Subject: [PATCH 02/76] admin-application moved from $.extend --- .../js/edges/admin.applications.edge.js | 812 +++++++++--------- 1 file changed, 407 insertions(+), 405 deletions(-) diff --git a/portality/static/js/edges/admin.applications.edge.js b/portality/static/js/edges/admin.applications.edge.js index 77b7f4fafd..e496c2e21e 100644 --- a/portality/static/js/edges/admin.applications.edge.js +++ b/portality/static/js/edges/admin.applications.edge.js @@ -1,433 +1,435 @@ // ~~ AdminApplicationsSearch:Feature ~~ -$.extend(true, doaj, { - adminApplicationsSearch : { - activeEdges : {}, +// Direct namespace definition (replaces $.extend) +doaj.adminApplicationsSearch = { - init : function(params) { - if (!params) { params = {} } + activeEdges : {}, - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + init : function(params) { + if (!params) { params = {} } - var selector = params.selector || "#admin_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.adminApplicationsSearchConfig.searchPath; + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var selector = params.selector || "#admin_applications"; + var search_url = current_scheme + "//" + current_domain + doaj.adminApplicationsSearchConfig.searchPath; - var components = [ - doaj.components.searchingNotification(), - // filters - edges.newFilterSetter({ - id : "see_applications_no_charges", - category: "facet", - filters : [ - doaj.filters.noCharges() - ], - renderer : doaj.renderers.newFacetFilterSetterRenderer({ - facetTitle : "", - open: true, - togglable: false, - showCount: false - }) - }), - // facets - doaj.facets.openOrClosed(), - doaj.facets.applicationStatus(), - doaj.facets.hasEditorGroup(), - doaj.facets.hasEditor(), - doaj.facets.editorGroup(), - doaj.facets.editor(), - doaj.facets.classification(), - doaj.facets.language(), - doaj.facets.countryPublisher(), - doaj.facets.subject(), - doaj.facets.publisher(), - doaj.facets.journalLicence(), - - doaj.components.newFacetDivider({ - id: "reporting_tools_divider", - category: "facet", - display: "Reporting Tools" - }), - doaj.components.newSimultaneousDateRangeEntry({ - id: "date_limiter", - display: "Limit by Date Range", - fields: [ - {"field": "admin.date_applied", "display": "Date Applied"}, - {"field": "last_manual_update", "display": "Last Updated"}, - {"field": "admin.date_rejected", "display": "Date Rejected"} - ], - autoLookupRange: true, - category: "facet", - autoLookupFilters : [ - es.newRangeFilter({field: "last_manual_update", gte:"2000-01-01T00:00:00Z"}) - ], - renderer: doaj.renderers.newBSMultiDateRangeFacet({ - open: true - }) - }), + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - doaj.components.newDateHistogramSelector({ - id: "date_applied_histogram", - category: "facet", - field: "admin.date_applied", - display: "Date Applied Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "date_applied_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), + var components = [ + doaj.components.searchingNotification(), + // filters + edges.newFilterSetter({ + id : "see_applications_no_charges", + category: "facet", + filters : [ + doaj.filters.noCharges() + ], + renderer : doaj.renderers.newFacetFilterSetterRenderer({ + facetTitle : "", + open: true, + togglable: false, + showCount: false + }) + }), + // facets + doaj.facets.openOrClosed(), + doaj.facets.applicationStatus(), + doaj.facets.hasEditorGroup(), + doaj.facets.hasEditor(), + doaj.facets.editorGroup(), + doaj.facets.editor(), + doaj.facets.classification(), + doaj.facets.language(), + doaj.facets.countryPublisher(), + doaj.facets.subject(), + doaj.facets.publisher(), + doaj.facets.journalLicence(), - doaj.components.newDateHistogramSelector({ - id: "last_updated_histogram", - category: "facet", - field: "last_manual_update", - display: "Last Update Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "last_updated_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - if (values.length > 0 && values[0].display === "1970") { - values.shift(); - } - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), + doaj.components.newFacetDivider({ + id: "reporting_tools_divider", + category: "facet", + display: "Reporting Tools" + }), + doaj.components.newSimultaneousDateRangeEntry({ + id: "date_limiter", + display: "Limit by Date Range", + fields: [ + {"field": "admin.date_applied", "display": "Date Applied"}, + {"field": "last_manual_update", "display": "Last Updated"}, + {"field": "admin.date_rejected", "display": "Date Rejected"} + ], + autoLookupRange: true, + category: "facet", + autoLookupFilters : [ + es.newRangeFilter({field: "last_manual_update", gte:"2000-01-01T00:00:00Z"}) + ], + renderer: doaj.renderers.newBSMultiDateRangeFacet({ + open: true + }) + }), - doaj.components.newDateHistogramSelector({ - id: "date_rejected_histogram", - category: "facet", - field: "admin.date_rejected", - display: "Date Rejected Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "date_rejected_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - if (values.length > 0 && values[0].display === "1970") { - values.shift(); - } - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), + doaj.components.newDateHistogramSelector({ + id: "date_applied_histogram", + category: "facet", + field: "admin.date_applied", + display: "Date Applied Histogram", + interval: "year", + displayFormatter : function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "date_applied_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); + } else if (interval === "month") { + return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); + } + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: countFormat, + hideInactive: true + }) + }), - doaj.components.newReportExporter({ - id: "report-exporter", - category: "facet", - model: "application", - facetExports: [ - {component_id: "application_type", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "application_status", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "has_editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "has_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "classification", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "language", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "country_publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "subject", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "journal_license", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "date_applied_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "last_updated_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "date_rejected_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter} - ] - }), + doaj.components.newDateHistogramSelector({ + id: "last_updated_histogram", + category: "facet", + field: "last_manual_update", + display: "Last Update Histogram", + interval: "year", + displayFormatter : function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "last_updated_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); + } else if (interval === "month") { + return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); + } + }, + sortFunction : function(values) { + if (values.length > 0 && values[0].display === "1970") { + values.shift(); + } + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: countFormat, + hideInactive: true + }) + }), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date applied','field':'admin.date_applied'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'}, - {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'}, - {'display': "Date Rejected", 'field': 'admin.date_rejected'} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Journal: alternative title','field':'bibjson.alternative_title'}, - {'display':'Notes','field':'admin.notes.note'}, - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Applications" - }) - }), + doaj.components.newDateHistogramSelector({ + id: "date_rejected_histogram", + category: "facet", + field: "admin.date_rejected", + display: "Date Rejected Histogram", + interval: "year", + displayFormatter : function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "date_rejected_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); + } else if (interval === "month") { + return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); + } + }, + sortFunction : function(values) { + if (values.length > 0 && values[0].display === "1970") { + values.shift(); + } + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: countFormat, + hideInactive: true + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - doaj.components.pager("top-pager", "top-pager"), - doaj.components.pager("bottom-pager", "bottom-pager"), + doaj.components.newReportExporter({ + id: "report-exporter", + category: "facet", + model: "application", + facetExports: [ + {component_id: "application_type", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "application_status", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "has_editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "has_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "classification", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "language", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "country_publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "subject", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "journal_license", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "date_applied_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "last_updated_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "date_rejected_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter} + ] + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: doaj.renderers.newAdminBasicResultsRenderer({ - topRowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - valueFunction: doaj.fieldRender.editSuggestion({ - editUrl : doaj.adminApplicationsSearchConfig.applicationEditUrl - }) - } - ], - ], - leftRowDisplay : [ - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title" - } - ], - [ - { - valueFunction: doaj.fieldRender.issns - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Country of publisher: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Journal license: ", - valueFunction: doaj.fieldRender.journalLicense - } - ] - ], - rightRowDisplay : [ - [ - { - "pre" : "Application status: ", - valueFunction: doaj.fieldRender.applicationStatus - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - "pre" : "Editor group: ", - "field" : "admin.editor_group" - } - ], - [ - { - valueFunction: doaj.fieldRender.deadline - } - ], - [ - { - "pre": "Date applied: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre" : "Date Rejected: ", - valueFunction: doaj.fieldRender.dateRejected - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Date applied','field':'admin.date_applied'}, + {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) + {'display':'Title','field':'index.unpunctitle.exact'}, + {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'}, + {'display': "Date Rejected", 'field': 'admin.date_rejected'} + ], + fieldOptions: [ + {'display':'Title','field':'index.title'}, + {'display':'Keywords','field':'bibjson.keywords'}, + {'display':'Classification','field':'index.classification'}, + {'display':'ISSN', 'field':'index.issn.exact'}, + {'display':'Country of publisher','field':'index.country'}, + {'display':'Journal language','field':'index.language'}, + {'display':'Publisher','field':'bibjson.publisher.name'}, + {'display':'Journal: alternative title','field':'bibjson.alternative_title'}, + {'display':'Notes','field':'admin.notes.note'}, + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search All Applications" + }) + }), - ] - }) - }), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + doaj.components.pager("top-pager", "top-pager"), + doaj.components.pager("bottom-pager", "bottom-pager"), - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - compoundDisplays : [ - { - filters : [ - es.newTermFilter({ - field: "bibjson.apc.has_apc", - value: false - }), - es.newTermFilter({ - field: "bibjson.other_charges.has_other_charges", - value: false + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: doaj.renderers.newAdminBasicResultsRenderer({ + topRowDisplay : [ + [ + { + valueFunction: doaj.fieldRender.titleField + } + ], + [ + { + valueFunction: doaj.fieldRender.editSuggestion({ + editUrl : doaj.adminApplicationsSearchConfig.applicationEditUrl }) - ], - display : "Without article processing charges (APCs)" - } + } + ], ], - fieldDisplays: { - 'admin.application_status.exact': 'Status', - 'index.application_type.exact' : 'Application', - 'index.has_editor_group.exact' : 'Editor group', - 'index.has_editor.exact' : 'Associate Editor', - 'admin.editor_group.exact' : 'Editor group', - 'admin.editor.exact' : 'Editor', - 'index.classification.exact' : 'Classification', - 'index.language.exact' : 'Language', - 'index.country.exact' : 'Country', - 'index.subject.exact' : 'Subject', - 'bibjson.publisher.name.exact' : 'Publisher', - 'bibjson.provider.exact' : 'Platform, Host, Aggregator', - "index.has_apc.exact" : "Charges?", - 'index.license.exact' : 'License', - 'index.is_flagged': "Only Flagged Records", - 'index.flag_assignees.exact': "Flagged to me", - "admin.date_applied": "Date Applied", - "last_manual_update": "Last Updated", - "admin.date_rejected": "Date Rejected" - }, - valueMaps : { - "index.application_type.exact" : { - "finished application/update": "Closed", - "update request": "Open", - "new application": "Open" - } - }, - rangeFunctions : { - "admin.date_applied" : doaj.valueMaps.displayYearMonthPeriod, - "last_manual_update": doaj.valueMaps.displayYearMonthPeriod, - "admin.date_rejected": doaj.valueMaps.displayYearMonthPeriod - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - omit : [ - "bibjson.apc.has_apc", - "bibjson.other_charges.has_other_charges" + leftRowDisplay : [ + [ + { + "pre": 'Alternative title: ', + "field": "bibjson.alternative_title" + } + ], + [ + { + valueFunction: doaj.fieldRender.issns + } + ], + [ + { + valueFunction: doaj.fieldRender.links + } + ], + [ + { + "pre": "Classification: ", + "field": "index.classification" + } ], - hideValues: [ - 'index.is_flagged', - 'index.flag_assignees.exact' + [ + { + "pre": "Keywords: ", + "field": "bibjson.keywords" + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.publisher.name" + } + ], + [ + { + "pre": "Country of publisher: ", + valueFunction: doaj.fieldRender.countryName + } + ], + [ + { + "pre": "Journal language: ", + "field": "bibjson.language" + } + ], + [ + { + "pre": "Publication charges?: ", + valueFunction: doaj.fieldRender.authorPays + } + ], + [ + { + "pre": "Journal license: ", + valueFunction: doaj.fieldRender.journalLicense + } ] - }) + ], + rightRowDisplay : [ + [ + { + "pre" : "Application status: ", + valueFunction: doaj.fieldRender.applicationStatus + } + ], + [ + { + "pre" : "Owner: ", + valueFunction: doaj.fieldRender.owner + } + ], + [ + { + "pre" : "Editor group: ", + "field" : "admin.editor_group" + } + ], + [ + { + valueFunction: doaj.fieldRender.deadline + } + ], + [ + { + "pre": "Date applied: ", + valueFunction: doaj.fieldRender.suggestedOn + } + ], + [ + { + "pre" : "Date Rejected: ", + valueFunction: doaj.fieldRender.dateRejected + } + ], + [ + { + "pre": "Last updated: ", + valueFunction: doaj.fieldRender.lastManualUpdate + } + ], + + ] }) - ]; + }), - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "admin.date_applied", "order" : "asc"} - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + compoundDisplays : [ + { + filters : [ + es.newTermFilter({ + field: "bibjson.apc.has_apc", + value: false + }), + es.newTermFilter({ + field: "bibjson.other_charges.has_other_charges", + value: false + }) + ], + display : "Without article processing charges (APCs)" } + ], + fieldDisplays: { + 'admin.application_status.exact': 'Status', + 'index.application_type.exact' : 'Application', + 'index.has_editor_group.exact' : 'Editor group', + 'index.has_editor.exact' : 'Associate Editor', + 'admin.editor_group.exact' : 'Editor group', + 'admin.editor.exact' : 'Editor', + 'index.classification.exact' : 'Classification', + 'index.language.exact' : 'Language', + 'index.country.exact' : 'Country', + 'index.subject.exact' : 'Subject', + 'bibjson.publisher.name.exact' : 'Publisher', + 'bibjson.provider.exact' : 'Platform, Host, Aggregator', + "index.has_apc.exact" : "Charges?", + 'index.license.exact' : 'License', + 'index.is_flagged': "Only Flagged Records", + 'index.flag_assignees.exact': "Flagged to me", + "admin.date_applied": "Date Applied", + "last_manual_update": "Last Updated", + "admin.date_rejected": "Date Rejected" + }, + valueMaps : { + "index.application_type.exact" : { + "finished application/update": "Closed", + "update request": "Open", + "new application": "Open" + } + }, + rangeFunctions : { + "admin.date_applied" : doaj.valueMaps.displayYearMonthPeriod, + "last_manual_update": doaj.valueMaps.displayYearMonthPeriod, + "admin.date_rejected": doaj.valueMaps.displayYearMonthPeriod + }, + renderer : doaj.renderers.newSelectedFiltersRenderer({ + omit : [ + "bibjson.apc.has_apc", + "bibjson.other_charges.has_other_charges" + ], + hideValues: [ + 'index.is_flagged', + 'index.flag_assignees.exact' + ] + }) + }) + ]; + + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + openingQuery : es.newQuery({ + sort: {"field" : "admin.date_applied", "order" : "asc"} + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again."); } - }); - doaj.adminApplicationsSearch.activeEdges[selector] = e; + } + }); - doaj.multiFormBox.active = doaj.bulk.applicationMultiFormBox(e, "applications"); - $(selector).on("edges:pre-render", function() { - doaj.multiFormBox.active.validate(); - }); - } - } -}); + doaj.adminApplicationsSearch.activeEdges[selector] = e; + + doaj.multiFormBox.active = doaj.bulk.applicationMultiFormBox(e, "applications"); + $(selector).on("edges:pre-render", function() { + doaj.multiFormBox.active.validate(); + }); + } +}; -jQuery(document).ready(function($) { +jQuery(document).ready(function() { doaj.adminApplicationsSearch.init(); -}); +}); \ No newline at end of file From 93742c938121d2b208e60d0aebf2a07810d6008b Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 07:30:59 +0530 Subject: [PATCH 03/76] autoassign moved from $.extend --- portality/static/js/edges/admin.autoassign.edge.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.autoassign.edge.js b/portality/static/js/edges/admin.autoassign.edge.js index 565e7b523c..e6e2596414 100644 --- a/portality/static/js/edges/admin.autoassign.edge.js +++ b/portality/static/js/edges/admin.autoassign.edge.js @@ -1,8 +1,6 @@ // ~~ AdminAlerts:Edge ~~ // ~~-> Edges:Technology ~~ -$.extend(true, doaj, { - - adminAutoassignSearch : { +doaj.adminAutoassignSearch = { activeEdges : {}, init : function(params) { @@ -195,7 +193,6 @@ $.extend(true, doaj, { doaj.adminAutoassignSearch.activeEdges[selector] = e; } } -}); jQuery(document).ready(function($) { From 037d04043f1858f8e407b1fc25831c04c69b7626 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 07:37:22 +0530 Subject: [PATCH 04/76] admin.journal moved from $.extend --- .../static/js/edges/admin.journals.edge.js | 1358 ++++++++--------- 1 file changed, 677 insertions(+), 681 deletions(-) diff --git a/portality/static/js/edges/admin.journals.edge.js b/portality/static/js/edges/admin.journals.edge.js index cbd7397ea3..e5e324f002 100644 --- a/portality/static/js/edges/admin.journals.edge.js +++ b/portality/static/js/edges/admin.journals.edge.js @@ -1,722 +1,718 @@ // ~~ AdminJournalsSearch:Feature ~~ -$.extend(true, doaj, { +doaj.adminJournalsSearch = { + activeEdges : {}, - adminJournalsSearch : { - activeEdges : {}, + makeContinuation : function (val, resultobj, renderer) { + if (!resultobj.suggestion && !resultobj.bibjson.journal) { + // if it's not a suggestion or an article .. (it's a + // journal!) + // we really need to expose _type ... + var result = '
" + edges.escapeHtml(resultobj.admin.current_application) + ""; } - return false; - }, - - relatedApplications : function (val, resultobj, renderer) { - var result = ""; - if (resultobj.admin) { - if (resultobj.admin.current_application) { - var fvurl = doaj.adminJournalsSearchConfig.applicationsUrl + '?source=%7B"query"%3A%7B"query_string"%3A%7B"query"%3A"' + resultobj.admin.current_application + '"%2C"default_operator"%3A"AND"%7D%7D%2C"from"%3A0%2C"size"%3A10%7D'; - result += "Current Update Request: " + edges.escapeHtml(resultobj.admin.current_application) + ""; + if (resultobj.admin.related_applications && resultobj.admin.related_applications.length > 0) { + if (result != "") { + result += "
"; } - if (resultobj.admin.related_applications && resultobj.admin.related_applications.length > 0) { - if (result != "") { - result += "
"; + result += "Related Records: "; + for (var i = 0; i < resultobj.admin.related_applications.length; i++) { + if (i > 0) { + result += ", "; } - result += "Related Records: "; - for (var i = 0; i < resultobj.admin.related_applications.length; i++) { - if (i > 0) { - result += ", "; - } - var ra = resultobj.admin.related_applications[i]; - var fvurl = doaj.adminJournalsSearchConfig.applicationsUrl + '?source=%7B"query"%3A%7B"query_string"%3A%7B"query"%3A"' + ra.application_id + '"%2C"default_operator"%3A"AND"%7D%7D%2C"from"%3A0%2C"size"%3A10%7D'; - var linkName = ra.date_accepted; - if (!linkName) { - linkName = ra.application_id; - } - result += "" + linkName + ""; + var ra = resultobj.admin.related_applications[i]; + var fvurl = doaj.adminJournalsSearchConfig.applicationsUrl + '?source=%7B"query"%3A%7B"query_string"%3A%7B"query"%3A"' + ra.application_id + '"%2C"default_operator"%3A"AND"%7D%7D%2C"from"%3A0%2C"size"%3A10%7D'; + var linkName = ra.date_accepted; + if (!linkName) { + linkName = ra.application_id; } + result += "" + linkName + ""; } } - return result; - }, + } + return result; + }, - init : function(params) { - if (!params) { params = {} } + init : function(params) { + if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var selector = params.selector || "#admin_journals"; - var search_url = current_scheme + "//" + current_domain + doaj.adminJournalsSearchConfig.searchPath; + var selector = params.selector || "#admin_journals"; + var search_url = current_scheme + "//" + current_domain + doaj.adminJournalsSearchConfig.searchPath; - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var components = [ - doaj.components.searchingNotification(), + var components = [ + doaj.components.searchingNotification(), - // facets - edges.newFilterSetter({ - id : "flagged", - category: "facet", + // facets + edges.newFilterSetter({ + id : "flagged", + category: "facet", + showCount: true, + filters : [ + doaj.filters.isFlagged(), + doaj.filters.flaggedToMe() + ], + renderer : doaj.renderers.newFacetFilterSetterRenderer({ + facetTitle : "", + open: true, + togglable: false, showCount: true, - filters : [ - doaj.filters.isFlagged(), - doaj.filters.flaggedToMe() - ], - renderer : doaj.renderers.newFacetFilterSetterRenderer({ - facetTitle : "", - open: true, - togglable: false, - showCount: true, - countFormat: doaj.valueMaps.countFormat - }) - }), - doaj.facets.inDOAJ(), - edges.newRefiningANDTermSelector({ - id: "owner", - category: "facet", - field: "admin.owner.exact", - display: "Owner", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "has_editor_group", - category: "facet", - field: "index.has_editor_group.exact", - display: "Has editor group?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "has_associate_editor", - category: "facet", - field: "index.has_editor.exact", - display: "Has Associate Editor?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "editor_group", - category: "facet", - field: "admin.editor_group.exact", - display: "Editor group", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "associate_editor", - category: "facet", - field: "admin.editor.exact", - display: "Associate Editor", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - doaj.facets.adminHasAPC(), - doaj.facets.adminHasOtherCharges(), + countFormat: doaj.valueMaps.countFormat + }) + }), + doaj.facets.inDOAJ(), + edges.newRefiningANDTermSelector({ + id: "owner", + category: "facet", + field: "admin.owner.exact", + display: "Owner", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "has_editor_group", + category: "facet", + field: "index.has_editor_group.exact", + display: "Has editor group?", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "has_associate_editor", + category: "facet", + field: "index.has_editor.exact", + display: "Has Associate Editor?", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "editor_group", + category: "facet", + field: "admin.editor_group.exact", + display: "Editor group", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "associate_editor", + category: "facet", + field: "admin.editor.exact", + display: "Associate Editor", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + doaj.facets.adminHasAPC(), + doaj.facets.adminHasOtherCharges(), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "continued", - category: "facet", - field: "index.continued.exact", - display: "Continued", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newDateHistogramSelector({ - id: "discontinued_date", - category: "facet", - field : "bibjson.discontinued_date", - interval: "year", - display: "Discontinued Year", - displayFormatter : function(val) { - return (new Date(parseInt(val))).getUTCFullYear(); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true - }) - }), + edges.newRefiningANDTermSelector({ + id: "journal_license", + category: "facet", + field: "index.license.exact", + display: "Journal license", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "publisher", + category: "facet", + field: "bibjson.publisher.name.exact", + display: "Publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "classification", + category: "facet", + field: "index.classification.exact", + display: "Classification", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "subject", + category: "facet", + field: "index.subject.exact", + display: "Subject", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_language", + category: "facet", + field: "index.language.exact", + display: "Journal language", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat + }) + }), + edges.newRefiningANDTermSelector({ + id: "country_publisher", + category: "facet", + field: "index.country.exact", + display: "Country of publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "continued", + category: "facet", + field: "index.continued.exact", + display: "Continued", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newDateHistogramSelector({ + id: "discontinued_date", + category: "facet", + field : "bibjson.discontinued_date", + interval: "year", + display: "Discontinued Year", + displayFormatter : function(val) { + return (new Date(parseInt(val))).getUTCFullYear(); + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer: edges.bs3.newDateHistogramSelectorRenderer({ + countFormat: countFormat, + hideInactive: true + }) + }), - doaj.components.newFacetDivider({ - id: "reporting_tools_divider", - category: "facet", - display: "Reporting Tools" - }), - doaj.components.newSimultaneousDateRangeEntry({ - id: "date_limiter", - display: "Limit by Date Range", - fields: [ - {"field": "created_date", "display": "Created Date"}, - {"field": "last_manual_update", "display": "Last Updated"}, - {"field": "admin.last_full_review", "display": "Last Full Review"}, - {"field": "admin.last_reinstated", "display": "Last Reinstated"}, - {"field": "admin.last_withdrawn", "display": "Last Withdrawn"}, - {"field": "admin.last_owner_transfer", "display": "Last Owner Transfer"}, - {"field": "admin.date_applied", "display": "Date Applied"}, - ], - autoLookupRange: true, - autoLookupFilters : [ - es.newRangeFilter({field: "last_manual_update", gte:"2000-01-01T00:00:00Z"}) - ], - category: "facet", - renderer: doaj.renderers.newBSMultiDateRangeFacet({ - open: true - }) - }), + doaj.components.newFacetDivider({ + id: "reporting_tools_divider", + category: "facet", + display: "Reporting Tools" + }), + doaj.components.newSimultaneousDateRangeEntry({ + id: "date_limiter", + display: "Limit by Date Range", + fields: [ + {"field": "created_date", "display": "Created Date"}, + {"field": "last_manual_update", "display": "Last Updated"}, + {"field": "admin.last_full_review", "display": "Last Full Review"}, + {"field": "admin.last_reinstated", "display": "Last Reinstated"}, + {"field": "admin.last_withdrawn", "display": "Last Withdrawn"}, + {"field": "admin.last_owner_transfer", "display": "Last Owner Transfer"}, + {"field": "admin.date_applied", "display": "Date Applied"}, + ], + autoLookupRange: true, + autoLookupFilters : [ + es.newRangeFilter({field: "last_manual_update", gte:"2000-01-01T00:00:00Z"}) + ], + category: "facet", + renderer: doaj.renderers.newBSMultiDateRangeFacet({ + open: true + }) + }), - doaj.components.newDateHistogramSelector({ - id: "created_date_histogram", - category: "facet", - field: "created_date", - display: "Date Added Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "created_date_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), + doaj.components.newDateHistogramSelector({ + id: "created_date_histogram", + category: "facet", + field: "created_date", + display: "Date Added Histogram", + interval: "year", + displayFormatter : function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "created_date_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); + } else if (interval === "month") { + return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); + } + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: countFormat, + hideInactive: true + }) + }), - doaj.components.newDateHistogramSelector({ - id: "last_updated_histogram", - category: "facet", - field: "last_manual_update", - display: "Last Update Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "last_updated_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - if (values.length > 0 && values[0].display === "1970") { - values.shift(); - } - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), + doaj.components.newDateHistogramSelector({ + id: "last_updated_histogram", + category: "facet", + field: "last_manual_update", + display: "Last Update Histogram", + interval: "year", + displayFormatter : function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "last_updated_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); + } else if (interval === "month") { + return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); + } + }, + sortFunction : function(values) { + if (values.length > 0 && values[0].display === "1970") { + values.shift(); + } + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: countFormat, + hideInactive: true + }) + }), - doaj.components.newDateHistogramSelector({ - id: "last_full_review_histogram", - category: "facet", - field: "admin.last_full_review", - display: "Last Full Review Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "last_full_review_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - if (values.length > 0 && values[0].display === "1970") { - values.shift(); - } - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), + doaj.components.newDateHistogramSelector({ + id: "last_full_review_histogram", + category: "facet", + field: "admin.last_full_review", + display: "Last Full Review Histogram", + interval: "year", + displayFormatter : function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "last_full_review_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); + } else if (interval === "month") { + return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); + } + }, + sortFunction : function(values) { + if (values.length > 0 && values[0].display === "1970") { + values.shift(); + } + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: countFormat, + hideInactive: true + }) + }), - doaj.components.newReportExporter({ - id: "report-exporter", - category: "facet", - model: "journal", - facetExports: [ - {component_id: "in_doaj", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "owner", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "has_editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "has_associate_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "associate_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "admin_has_apc", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "admin_has_other_charges", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "journal_license", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "classification", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "subject", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "journal_language", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "country_publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "continued", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "discontinued_date", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "created_date_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "last_updated_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "last_full_review_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter} - ] - }), + doaj.components.newReportExporter({ + id: "report-exporter", + category: "facet", + model: "journal", + facetExports: [ + {component_id: "in_doaj", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "owner", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "has_editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "has_associate_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "associate_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "admin_has_apc", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "admin_has_other_charges", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "journal_license", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "classification", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "subject", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "journal_language", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "country_publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "continued", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "discontinued_date", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "created_date_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "last_updated_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "last_full_review_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter} + ] + }), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date added to DOAJ','field':'created_date'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'}, - {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'}, - {'display': "Last Full Review", "field": "admin.last_full_review"} - ], - fieldOptions: [ - {'display':'Owner','field':'admin.owner'}, - {'display':'Title','field':'index.title'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'}, - {'display':'Subject','field':'index.subject'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Notes','field':'admin.notes.note'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Journals" - }) - }), + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Date added to DOAJ','field':'created_date'}, + {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) + {'display':'Title','field':'index.unpunctitle.exact'}, + {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'}, + {'display': "Last Full Review", "field": "admin.last_full_review"} + ], + fieldOptions: [ + {'display':'Owner','field':'admin.owner'}, + {'display':'Title','field':'index.title'}, + {'display':'Alternative Title','field':'bibjson.alternative_title'}, + {'display':'Subject','field':'index.subject'}, + {'display':'Classification','field':'index.classification'}, + {'display':'ISSN', 'field':'index.issn.exact'}, + {'display':'Country of publisher','field':'index.country'}, + {'display':'Journal language','field':'index.language'}, + {'display':'Publisher','field':'bibjson.publisher.name'}, + {'display':'Notes','field':'admin.notes.note'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search All Journals" + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: doaj.renderers.newAdminBasicResultsRenderer({ - topRowDisplay: [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.adminJournalsSearchConfig.journalEditUrl}) - } - ], + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: doaj.renderers.newAdminBasicResultsRenderer({ + topRowDisplay: [ + [ + { + valueFunction: doaj.fieldRender.titleField + } ], - leftRowDisplay : [ - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - valueFunction : doaj.fieldRender.issns - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Country: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "License: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ] + [ + { + valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.adminJournalsSearchConfig.journalEditUrl}) + } ], - rightRowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.deadline - } - ], - [ - { - "pre" : "In DOAJ?: ", - valueFunction: doaj.fieldRender.inDoaj - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - "pre" : "Editor group: ", - "field" : "admin.editor_group" - } - ], - [ - { - "pre": "Date of Application: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre": "Date published in DOAJ: ", - valueFunction: doaj.fieldRender.createdDateWithTime - } - ], - [ - { - "pre": "Last full review: ", - valueFunction: doaj.fieldRender.lastFullReview - } - ], - [ - { - "pre": "Last Withdrawn: ", - valueFunction: doaj.fieldRender.lastWithdrawn - } - ], - [ - { - "pre": "Last Reinstated: ", - valueFunction: doaj.fieldRender.lastReinstated - } - ], - [ - { - "pre": "Last Owner Transfer: ", - valueFunction: doaj.fieldRender.lastOwnerTransfer - } - ], - [ - { - "pre": "Discontinued Date: ", - "field": "bibjson.discontinued_date" - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ] + ], + leftRowDisplay : [ + [ + { + "pre": 'Alternative title: ', + "field": "bibjson.alternative_title", + "post": "" + } + ], + [ + { + valueFunction : doaj.fieldRender.issns + } + ], + [ + { + valueFunction: doaj.fieldRender.links + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.publisher.name" + } + ], + [ + { + "pre": "Country: ", + valueFunction: doaj.fieldRender.countryName + } + ], + [ + { + "pre": "Language: ", + "field": "bibjson.language" + } + ], + [ + { + "pre": "License: ", + valueFunction: doaj.fieldRender.journalLicense + } ], - bottomRowDisplay: [ - [ - { - valueFunction: doaj.adminJournalsSearch.relatedApplications - } - ], - [ - { - valueFunction: doaj.adminJournalsSearch.makeContinuation - } - ] + [ + { + "pre": "Publication charges?: ", + valueFunction: doaj.fieldRender.authorPays + } + ], + [ + { + "pre": "Classification: ", + "field": "index.classification" + } + ], + [ + { + "pre": "Keywords: ", + "field": "bibjson.keywords" + } ] - }) - }), + ], + rightRowDisplay : [ + [ + { + valueFunction: doaj.fieldRender.deadline + } + ], + [ + { + "pre" : "In DOAJ?: ", + valueFunction: doaj.fieldRender.inDoaj + } + ], + [ + { + "pre" : "Owner: ", + valueFunction: doaj.fieldRender.owner + } + ], + [ + { + "pre" : "Editor group: ", + "field" : "admin.editor_group" + } + ], + [ + { + "pre": "Date of Application: ", + valueFunction: doaj.fieldRender.suggestedOn + } + ], + [ + { + "pre": "Date published in DOAJ: ", + valueFunction: doaj.fieldRender.createdDateWithTime + } + ], + [ + { + "pre": "Last full review: ", + valueFunction: doaj.fieldRender.lastFullReview + } + ], + [ + { + "pre": "Last Withdrawn: ", + valueFunction: doaj.fieldRender.lastWithdrawn + } + ], + [ + { + "pre": "Last Reinstated: ", + valueFunction: doaj.fieldRender.lastReinstated + } + ], + [ + { + "pre": "Last Owner Transfer: ", + valueFunction: doaj.fieldRender.lastOwnerTransfer + } + ], + [ + { + "pre": "Discontinued Date: ", + "field": "bibjson.discontinued_date" + } + ], + [ + { + "pre": "Last updated: ", + valueFunction: doaj.fieldRender.lastManualUpdate + } + ] + ], + bottomRowDisplay: [ + [ + { + valueFunction: doaj.adminJournalsSearch.relatedApplications + } + ], + [ + { + valueFunction: doaj.adminJournalsSearch.makeContinuation + } + ] + ] + }) + }), - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "admin.in_doaj" : "In DOAJ?", - "admin.owner.exact" : "Owner", - "index.has_editor_group.exact" : "Editor group?", - "index.has_editor.exact" : "Associate Editor?", - "admin.editor_group.exact" : "Editor group", - "admin.editor.exact" : "Associate Editor", - "index.license.exact" : "License", - "bibjson.publisher.name.exact" : "Publisher", - "index.classification.exact" : "Classification", - "index.subject.exact" : "Subject", - "index.language.exact" : "Language", - "index.country.exact" : "Country", - "index.continued.exact" : "Continued", - "bibjson.discontinued_date" : "Discontinued Year", - "bibjson.apc.has_apc": "Has APC?", - "bibjson.other_charges.has_other_charges": "Has other charges?", - 'index.is_flagged': "Only Flagged Records", - 'index.flag_assignees.exact': "Flagged to me", - "created_date": "Created Date", - "last_manual_update": "Last Updated", - "admin.last_full_review": "Last Full Review", - "admin.date_applied": "Date Applied", - "admin.last_withdrawn": "Last Withdrawn", - "admin.last_reinstated": "Last Reinstated", - "admin.last_owner_transfer": "Last Owner Transfer" + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "admin.in_doaj" : "In DOAJ?", + "admin.owner.exact" : "Owner", + "index.has_editor_group.exact" : "Editor group?", + "index.has_editor.exact" : "Associate Editor?", + "admin.editor_group.exact" : "Editor group", + "admin.editor.exact" : "Associate Editor", + "index.license.exact" : "License", + "bibjson.publisher.name.exact" : "Publisher", + "index.classification.exact" : "Classification", + "index.subject.exact" : "Subject", + "index.language.exact" : "Language", + "index.country.exact" : "Country", + "index.continued.exact" : "Continued", + "bibjson.discontinued_date" : "Discontinued Year", + "bibjson.apc.has_apc": "Has APC?", + "bibjson.other_charges.has_other_charges": "Has other charges?", + 'index.is_flagged': "Only Flagged Records", + 'index.flag_assignees.exact': "Flagged to me", + "created_date": "Created Date", + "last_manual_update": "Last Updated", + "admin.last_full_review": "Last Full Review", + "admin.date_applied": "Date Applied", + "admin.last_withdrawn": "Last Withdrawn", + "admin.last_reinstated": "Last Reinstated", + "admin.last_owner_transfer": "Last Owner Transfer" + }, + valueMaps : { + "admin.in_doaj" : { + true : "Yes", + false : "No" }, - valueMaps : { - "admin.in_doaj" : { - true : "Yes", - false : "No" - }, - "bibjson.apc.has_apc" : { - true : "Yes", - false : "No" - }, - "bibjson.other_charges.has_other_charges" : { - true : "Yes", - false : "No" - } + "bibjson.apc.has_apc" : { + true : "Yes", + false : "No" }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - hideValues: [ - 'index.is_flagged', - 'index.flag_assignees.exact' - ] - }), - rangeFunctions : { - "bibjson.discontinued_date" : doaj.valueMaps.displayYearPeriod, - "created_date" : doaj.valueMaps.displayYearMonthPeriod, - "last_manual_update": doaj.valueMaps.displayYearMonthPeriod, - "admin.last_full_review": doaj.valueMaps.displayYearMonthPeriod, - "admin.date_applied": doaj.valueMaps.displayYearMonthPeriod, - "admin.last_withdrawn": doaj.valueMaps.displayYearMonthPeriod, - "admin.last_reinstated": doaj.valueMaps.displayYearMonthPeriod, - "admin.last_owner_transfer": doaj.valueMaps.displayYearMonthPeriod + "bibjson.other_charges.has_other_charges" : { + true : "Yes", + false : "No" } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - sort: [{field: "created_date", order: "desc"}] + }, + renderer : doaj.renderers.newSelectedFiltersRenderer({ + hideValues: [ + 'index.is_flagged', + 'index.flag_assignees.exact' + ] }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + rangeFunctions : { + "bibjson.discontinued_date" : doaj.valueMaps.displayYearPeriod, + "created_date" : doaj.valueMaps.displayYearMonthPeriod, + "last_manual_update": doaj.valueMaps.displayYearMonthPeriod, + "admin.last_full_review": doaj.valueMaps.displayYearMonthPeriod, + "admin.date_applied": doaj.valueMaps.displayYearMonthPeriod, + "admin.last_withdrawn": doaj.valueMaps.displayYearMonthPeriod, + "admin.last_reinstated": doaj.valueMaps.displayYearMonthPeriod, + "admin.last_owner_transfer": doaj.valueMaps.displayYearMonthPeriod } - }); - doaj.adminJournalsSearch.activeEdges[selector] = e; - } - } -}); + }) + ]; + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + openingQuery: es.newQuery({ + sort: [{field: "created_date", order: "desc"}] + }), + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.adminJournalsSearch.activeEdges[selector] = e; + } +} jQuery(document).ready(function($) { doaj.adminJournalsSearch.init(); From 6ddc47a379166f99cac148d1197030691bb205bf Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 07:44:42 +0530 Subject: [PATCH 05/76] admin.users moved from $.extend --- portality/static/js/edges/admin.users.edge.js | 399 +++++++++--------- 1 file changed, 198 insertions(+), 201 deletions(-) diff --git a/portality/static/js/edges/admin.users.edge.js b/portality/static/js/edges/admin.users.edge.js index 057e6e9d7b..f96b87ff23 100644 --- a/portality/static/js/edges/admin.users.edge.js +++ b/portality/static/js/edges/admin.users.edge.js @@ -1,213 +1,210 @@ // ~~ AdminUserSearch:Feature ~~ -$.extend(true, doaj, { - - userSearch: { - activeEdges: {}, - - editUserLink : function (val, resultobj, renderer) { - var result = 'Edit this user'; - return result; - }, - - userJournalsLink : function (val, resultobj, renderer) { - var q = { - "query": { - "bool": { - "must": [{ - "term": {"admin.owner.exact": resultobj.id} - }] - } +doaj.userSearch = { + activeEdges: {}, + + editUserLink : function (val, resultobj, renderer) { + var result = 'Edit this user'; + return result; + }, + + userJournalsLink : function (val, resultobj, renderer) { + var q = { + "query": { + "bool": { + "must": [{ + "term": {"admin.owner.exact": resultobj.id} + }] } - }; - return '
View Journals' - }, - - init : function(params) { - if (!params) { - params = {} } + }; + return '
View Journals' + }, - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - - var selector = params.selector || "#users"; - var search_url = current_scheme + "//" + current_domain + doaj.userSearchConfig.userSearchPath; - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - edges.newRefiningANDTermSelector({ - id: "role", - category: "facet", - field: "role.exact", - display: "Role", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: true, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - edges.newDateHistogramSelector({ - id: "created_date", - category: "facet", - field : "created_date", - interval: "year", - display: "Created Date", - displayFormatter : function(val) { - return (new Date(parseInt(val))).getUTCFullYear(); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true, - open: true, - togglable: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Created Date','field':'created_date'}, - {'display':'Last Modified Date','field':'last_updated'}, - {'display':'User ID','field':'id.exact'}, - {'display':'Email address','field':'email.exact'} - ], - fieldOptions: [ - {'display':'User ID','field':'id'}, - {'display':'Email address','field':'email'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Users" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + init : function(params) { + if (!params) { + params = {} + } - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ - [ - { - "pre" : "

", - "field" : "id", - "post" : "

" - } - ], - [ - { - "pre": '' - }, - { - "field": "email", - "post": '' - } - ], - [ - { - "pre" : "Role(s): ", - "field" : "role", - "post" : "" - } - ], - [ - { - "pre" : "Account Created: ", - "field" : "created_date" - } - ], - [ - { - "pre": "Account Last Modified: ", - "field": "last_updated" - } - ], - [ - { - "valueFunction" : doaj.userSearch.userJournalsLink - }, - { - "valueFunction": doaj.userSearch.editUserLink - } - ] + var current_domain = document.location.host; + var current_scheme = window.location.protocol; + + var selector = params.selector || "#users"; + var search_url = current_scheme + "//" + current_domain + doaj.userSearchConfig.userSearchPath; + + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); + + var components = [ + doaj.components.searchingNotification(), + + // facets + edges.newRefiningANDTermSelector({ + id: "role", + category: "facet", + field: "role.exact", + display: "Role", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: true, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + + edges.newDateHistogramSelector({ + id: "created_date", + category: "facet", + field : "created_date", + interval: "year", + display: "Created Date", + displayFormatter : function(val) { + return (new Date(parseInt(val))).getUTCFullYear(); + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer: edges.bs3.newDateHistogramSelectorRenderer({ + countFormat: countFormat, + hideInactive: true, + open: true, + togglable: true + }) + }), + + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Created Date','field':'created_date'}, + {'display':'Last Modified Date','field':'last_updated'}, + {'display':'User ID','field':'id.exact'}, + {'display':'Email address','field':'email.exact'} + ], + fieldOptions: [ + {'display':'User ID','field':'id'}, + {'display':'Email address','field':'email'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search Users" + }) + }), + + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + rowDisplay : [ + [ + { + "pre" : "

", + "field" : "id", + "post" : "

" + } + ], + [ + { + "pre": '' + }, + { + "field": "email", + "post": '' + } + ], + [ + { + "pre" : "Role(s): ", + "field" : "role", + "post" : "" + } + ], + [ + { + "pre" : "Account Created: ", + "field" : "created_date" + } + ], + [ + { + "pre": "Account Last Modified: ", + "field": "last_updated" + } + ], + [ + { + "valueFunction" : doaj.userSearch.userJournalsLink + }, + { + "valueFunction": doaj.userSearch.editUserLink + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "role.exact": "Role", - "created_date": "Created Date" - }, - rangeFunctions : { - "created_date" : doaj.valueMaps.displayYearPeriod - } + ] }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - openingQuery : es.newQuery({size: 25}), - manageUrl: true, - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "role.exact": "Role", + "created_date": "Created Date" + }, + rangeFunctions : { + "created_date" : doaj.valueMaps.displayYearPeriod } - }); - doaj.userSearch.activeEdges[selector] = e; - } + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + openingQuery : es.newQuery({size: 25}), + manageUrl: true, + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.userSearch.activeEdges[selector] = e; } -}); +} jQuery(document).ready(function($) { doaj.userSearch.init(); From 20fae5df5c049432a0fd05fade959e8346b69000 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 07:52:10 +0530 Subject: [PATCH 06/76] admin.background moved from $.extend --- .../js/edges/admin.background_jobs.edge.js | 565 +++++++++--------- 1 file changed, 281 insertions(+), 284 deletions(-) diff --git a/portality/static/js/edges/admin.background_jobs.edge.js b/portality/static/js/edges/admin.background_jobs.edge.js index ed94d43aa6..832d734277 100644 --- a/portality/static/js/edges/admin.background_jobs.edge.js +++ b/portality/static/js/edges/admin.background_jobs.edge.js @@ -1,305 +1,302 @@ // ~~ BackgroundJobsSearch:Feature ~~ -$.extend(true, doaj, { - - adminBackgroundJobsSearch : { - activeEdges : {}, - - newBGResultsRenderer : function(params) { - return edges.instantiate(doaj.adminBackgroundJobsSearch.BGResultsRenderer, params, edges.newRenderer); - }, - BGResultsRenderer : function(params) { - this.noResultsText = edges.getParam(params.noResultsText, "No Results"); - - this.namespace = "doaj-bg-results"; - - this.draw = function(params) { - var frag = ""; - if (this.component.results !== false && this.component.results.length === 0) { - this.component.context.html(this.noResultsText); - return; +doaj.adminBackgroundJobsSearch = { + activeEdges : {}, + + newBGResultsRenderer : function(params) { + return edges.instantiate(doaj.adminBackgroundJobsSearch.BGResultsRenderer, params, edges.newRenderer); + }, + BGResultsRenderer : function(params) { + this.noResultsText = edges.getParam(params.noResultsText, "No Results"); + + this.namespace = "doaj-bg-results"; + + this.draw = function(params) { + var frag = ""; + if (this.component.results !== false && this.component.results.length === 0) { + this.component.context.html(this.noResultsText); + return; + } + + for (var k = 0; k < this.component.results.length; k++) { + var resultobj = this.component.results[k]; + var firstRow = ""; + if (resultobj.action) { + firstRow += "" + resultobj.action + ""; } - - for (var k = 0; k < this.component.results.length; k++) { - var resultobj = this.component.results[k]; - var firstRow = ""; - if (resultobj.action) { - firstRow += "" + resultobj.action + ""; - } - if (resultobj.user) { - firstRow += " by " + resultobj.user + ""; - } - if (resultobj.status) { - var color = "#000088"; - if (resultobj.status === "complete") { - color = "#008800" - } else if (resultobj.status === "error") { - color = "#880000"; - } else if (resultobj.status === "cancelled") { - color = "#b47e18"; - } - firstRow += " status: " + resultobj.status + ""; + if (resultobj.user) { + firstRow += " by " + resultobj.user + ""; + } + if (resultobj.status) { + var color = "#000088"; + if (resultobj.status === "complete") { + color = "#008800" + } else if (resultobj.status === "error") { + color = "#880000"; + } else if (resultobj.status === "cancelled") { + color = "#b47e18"; } + firstRow += " status: " + resultobj.status + ""; + } - var dateRow = ""; + var dateRow = ""; - // add the date added to doaj - if (resultobj.created_date) { - dateRow += "Job Created: " + doaj.dates.humanYearMonth(resultobj.created_date) + "
"; - } - if (resultobj.last_updated) { - dateRow += "Job Last Updated: " + doaj.dates.humanYearMonth(resultobj.last_updated) + "
"; - } + // add the date added to doaj + if (resultobj.created_date) { + dateRow += "Job Created: " + doaj.dates.humanYearMonth(resultobj.created_date) + "
"; + } + if (resultobj.last_updated) { + dateRow += "Job Last Updated: " + doaj.dates.humanYearMonth(resultobj.last_updated) + "
"; + } - var paramsBlock = ""; - if (resultobj.params) { - paramsBlock += "Parameters:
"; - for (var key in resultobj.params) { - var val = resultobj.params[key]; - if ($.isArray(val)) { - val = val.join(', '); - } - paramsBlock += key + " -- " + edges.escapeHtml(val) + "
"; + var paramsBlock = ""; + if (resultobj.params) { + paramsBlock += "Parameters:
"; + for (var key in resultobj.params) { + var val = resultobj.params[key]; + if ($.isArray(val)) { + val = val.join(', '); } + paramsBlock += key + " -- " + edges.escapeHtml(val) + "
"; } + } - var refsBlock = ""; - if (resultobj.reference) { - paramsBlock += "Reference:
"; - for (var key in resultobj.reference) { - var val = resultobj.reference[key]; - if ($.isArray(val) || $.isPlainObject(val)) { - val = JSON.stringify(val); - } - refsBlock += key + " -- " + edges.escapeHtml(val) + "
"; + var refsBlock = ""; + if (resultobj.reference) { + paramsBlock += "Reference:
"; + for (var key in resultobj.reference) { + var val = resultobj.reference[key]; + if ($.isArray(val) || $.isPlainObject(val)) { + val = JSON.stringify(val); } + refsBlock += key + " -- " + edges.escapeHtml(val) + "
"; } + } - var auditBlock = ""; - if (resultobj.audit) { - auditBlock += "Audit Messages:
"; - for (var i = 0; i < resultobj.audit.length; i++) { - var audit = resultobj.audit[i]; - auditBlock += audit.timestamp + " -- " + edges.escapeHtml(audit.message) + "
"; - } + var auditBlock = ""; + if (resultobj.audit) { + auditBlock += "Audit Messages:
"; + for (var i = 0; i < resultobj.audit.length; i++) { + var audit = resultobj.audit[i]; + auditBlock += audit.timestamp + " -- " + edges.escapeHtml(audit.message) + "
"; } - - var containerClass = edges.css_classes(this.namespace, "container", this); - var moreInfoClass = edges.css_classes(this.namespace, "more", this); - var toggleClass = edges.css_classes(this.namespace, "toggle", this); - - var expandBlock = ""; - - // start off the string to be rendered - var result = '
'; - - // start the main box that all the details go in - result += "
"; - - result += firstRow + "
"; - result += `Outcome Status: ${resultobj.outcome_status}
` - result += "Job ID: " + resultobj.id + "
"; - result += 'On Queue: ' + resultobj.queue_id + '
'; - result += dateRow + "
"; - - result += 'More Information
'; - result += expandBlock; - - // close off the result with the ending strings, and then return - result += "
"; - result += "
"; - - frag += result; } - this.component.context.html(frag); - - var moreInfoSelector = edges.css_class_selector(this.namespace, "toggle", this); - edges.on(moreInfoSelector, "click", this, "toggleMoreInformation"); - }; - - this.toggleMoreInformation = function(element) { - var moreSelector = edges.css_class_selector(this.namespace, "more", this); - var id = $(element).attr("data-id"); - var segment = this.component.context.find(moreSelector).filter("[data-id=" + id + "]"); - segment.slideToggle(300); - }; - }, - - init : function(params) { - if (!params) { params = {} } - - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - - var selector = params.selector || "#background_jobs"; - var search_url = current_scheme + "//" + current_domain + doaj.adminBackgroundJobsSearchConfig.searchPath; - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - edges.newRefiningANDTermSelector({ - id: "action", - category: "facet", - field: "action.exact", - display: "Action", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "user", - category: "facet", - field: "user.exact", - display: "Submitted By", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "status", - category: "facet", - field: "status.exact", - display: "Status", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "queue_id", - category: "facet", - field: "queue_id.exact", - display: "On Queue", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "outcome_status", - category: "facet", - field: "outcome_status.exact", - display: "Outcome Status", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Created Date','field':'created_date'}, - {'display':'Last Modified Date','field':'last_updated'} - ], - fieldOptions: [ - {'display':'ID','field':'id.exact'}, - {'display':'Action','field':'action.exact'}, - {'display':'Submitted By','field':'user.exact'}, - {'display':'Status','field':'status.exact'}, - {'display':'Outcome Status','field':'outcome_status.exact'}, - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Background Jobs" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: doaj.adminBackgroundJobsSearch.newBGResultsRenderer() - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'action.exact': 'Action', - 'user.exact' : 'Submitted By', - 'status.exact' : 'Status', - 'outcome_status.exact' : 'Outcome Status', - 'queue_id.exact' : 'On Queue', - } + var containerClass = edges.css_classes(this.namespace, "container", this); + var moreInfoClass = edges.css_classes(this.namespace, "more", this); + var toggleClass = edges.css_classes(this.namespace, "toggle", this); + + var expandBlock = ""; + + // start off the string to be rendered + var result = '
'; + + // start the main box that all the details go in + result += "
"; + + result += firstRow + "
"; + result += `Outcome Status: ${resultobj.outcome_status}
` + result += "Job ID: " + resultobj.id + "
"; + result += 'On Queue: ' + resultobj.queue_id + '
'; + result += dateRow + "
"; + + result += 'More Information
'; + result += expandBlock; + + // close off the result with the ending strings, and then return + result += "
"; + result += "
"; + + frag += result; + } + + this.component.context.html(frag); + + var moreInfoSelector = edges.css_class_selector(this.namespace, "toggle", this); + edges.on(moreInfoSelector, "click", this, "toggleMoreInformation"); + }; + + this.toggleMoreInformation = function(element) { + var moreSelector = edges.css_class_selector(this.namespace, "more", this); + var id = $(element).attr("data-id"); + var segment = this.component.context.find(moreSelector).filter("[data-id=" + id + "]"); + segment.slideToggle(300); + }; + }, + + init : function(params) { + if (!params) { params = {} } + + var current_domain = document.location.host; + var current_scheme = window.location.protocol; + + var selector = params.selector || "#background_jobs"; + var search_url = current_scheme + "//" + current_domain + doaj.adminBackgroundJobsSearchConfig.searchPath; + + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); + + var components = [ + doaj.components.searchingNotification(), + + // facets + edges.newRefiningANDTermSelector({ + id: "action", + category: "facet", + field: "action.exact", + display: "Action", + deactivateThreshold : 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "created_date", "order" : "desc"} - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + }), + edges.newRefiningANDTermSelector({ + id: "user", + category: "facet", + field: "user.exact", + display: "Submitted By", + deactivateThreshold : 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "status", + category: "facet", + field: "status.exact", + display: "Status", + deactivateThreshold : 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "queue_id", + category: "facet", + field: "queue_id.exact", + display: "On Queue", + deactivateThreshold : 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "outcome_status", + category: "facet", + field: "outcome_status.exact", + display: "Outcome Status", + deactivateThreshold : 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Created Date','field':'created_date'}, + {'display':'Last Modified Date','field':'last_updated'} + ], + fieldOptions: [ + {'display':'ID','field':'id.exact'}, + {'display':'Action','field':'action.exact'}, + {'display':'Submitted By','field':'user.exact'}, + {'display':'Status','field':'status.exact'}, + {'display':'Outcome Status','field':'outcome_status.exact'}, + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search Background Jobs" + }) + }), + + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: doaj.adminBackgroundJobsSearch.newBGResultsRenderer() + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + 'action.exact': 'Action', + 'user.exact' : 'Submitted By', + 'status.exact' : 'Status', + 'outcome_status.exact' : 'Outcome Status', + 'queue_id.exact' : 'On Queue', } - }); - doaj.adminBackgroundJobsSearch.activeEdges[selector] = e; - } + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + openingQuery : es.newQuery({ + sort: {"field" : "created_date", "order" : "desc"} + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.adminBackgroundJobsSearch.activeEdges[selector] = e; } -}); +} jQuery(document).ready(function($) { doaj.adminBackgroundJobsSearch.init(); From cc968cd2f9792f3f8ab5456af612ed292ef25cae Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 07:57:53 +0530 Subject: [PATCH 07/76] admin.editor moved from $.extend --- .../js/edges/admin.editor_groups.edge.js | 431 +++++++++--------- 1 file changed, 214 insertions(+), 217 deletions(-) diff --git a/portality/static/js/edges/admin.editor_groups.edge.js b/portality/static/js/edges/admin.editor_groups.edge.js index ddcecc4b12..1a05557b67 100644 --- a/portality/static/js/edges/admin.editor_groups.edge.js +++ b/portality/static/js/edges/admin.editor_groups.edge.js @@ -1,228 +1,225 @@ // ~~ EditorGroupsSearch:Feature ~~ -$.extend(true, doaj, { - - adminEditorGroupSearch: { - activeEdges: {}, - - linkedAssociates : function (val, resultobj, renderer) { - if (resultobj.associates) { - var frag = "Associate Editors: "; - for (var i = 0; i < resultobj.associates.length; i++) { - if (i > 0) { - frag += ", " - } - var ass = resultobj.associates[i]; - frag += '' + edges.escapeHtml(ass) + '' +doaj.adminEditorGroupSearch = { + activeEdges: {}, + + linkedAssociates : function (val, resultobj, renderer) { + if (resultobj.associates) { + var frag = "Associate Editors: "; + for (var i = 0; i < resultobj.associates.length; i++) { + if (i > 0) { + frag += ", " } - return frag + var ass = resultobj.associates[i]; + frag += '' + edges.escapeHtml(ass) + '' } - return false - }, - - editEditorGroup : function (val, resultobj, renderer) { - var result = 'Edit this group'; - return result; - }, - - deleteEditorGroup : function (val, resultobj, renderer) { - var result = '
", - "field" : "name", - "post" : "" - } - ], - [ - { - "pre": 'Editor: ' - }, - { - "field": "editor", - "post" : "" - } - ], - [ - { - "valueFunction" : doaj.adminEditorGroupSearch.linkedAssociates - } - ], - [ - { - "pre": 'Managing Editor: ' - }, - { - "field": "maned", - "post" : "" - } - ], - [ - { - "valueFunction" : doaj.adminEditorGroupSearch.deleteEditorGroup - }, - { - "valueFunction": doaj.adminEditorGroupSearch.editEditorGroup - } - ] + return frag + } + return false + }, + + editEditorGroup : function (val, resultobj, renderer) { + var result = 'Edit this group'; + return result; + }, + + deleteEditorGroup : function (val, resultobj, renderer) { + var result = '
", + "field" : "name", + "post" : "" + } + ], + [ + { + "pre": 'Editor: ' + }, + { + "field": "editor", + "post" : "" + } + ], + [ + { + "valueFunction" : doaj.adminEditorGroupSearch.linkedAssociates + } + ], + [ + { + "pre": 'Managing Editor: ' + }, + { + "field": "maned", + "post" : "" + } + ], + [ + { + "valueFunction" : doaj.adminEditorGroupSearch.deleteEditorGroup + }, + { + "valueFunction": doaj.adminEditorGroupSearch.editEditorGroup + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "name.exact": "Name", - "maned.exact": "Managing Editor" - } + ] }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - openingQuery : es.newQuery({size: 25}), - manageUrl: true, - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "name.exact": "Name", + "maned.exact": "Managing Editor" + } + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + openingQuery : es.newQuery({size: 25}), + manageUrl: true, + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.adminEditorGroupSearch.activeEdges[selector] = e; + + // bind the delete button + $(selector).on("edges:post-render", function() { + // now add the handlers for the article delete + $(".delete_editor_group_link").unbind("click").click(function(event) { + event.preventDefault(); + + function success_callback(data) { + alert("The group was successfully deleted"); + doaj.adminEditorGroupSearch.activeEdges[selector].cycle(); + } + + function error_callback() { + alert("There was an error deleting the group"); + } + + var c = confirm("Are you really really sure? You can't undo this operation!"); + if (c) { + var href = $(this).attr("href"); + var obj = {"delete" : "true"}; + $.ajax({ + type: "POST", + url: href, + data: obj, + success : success_callback, + error: error_callback + }) } }); - doaj.adminEditorGroupSearch.activeEdges[selector] = e; - - // bind the delete button - $(selector).on("edges:post-render", function() { - // now add the handlers for the article delete - $(".delete_editor_group_link").unbind("click").click(function(event) { - event.preventDefault(); - - function success_callback(data) { - alert("The group was successfully deleted"); - doaj.adminEditorGroupSearch.activeEdges[selector].cycle(); - } - - function error_callback() { - alert("There was an error deleting the group"); - } - - var c = confirm("Are you really really sure? You can't undo this operation!"); - if (c) { - var href = $(this).attr("href"); - var obj = {"delete" : "true"}; - $.ajax({ - type: "POST", - url: href, - data: obj, - success : success_callback, - error: error_callback - }) - } - }); - }); - } + }); } -}); +} jQuery(document).ready(function($) { doaj.adminEditorGroupSearch.init(); From e4a7cbbbd56ef0f490aa635f94035eba8f84d941 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 07:58:59 +0530 Subject: [PATCH 08/76] admin.journalarticle moved from $.extend --- .../js/edges/admin.journalarticle.edge.js | 1355 ++++++++--------- 1 file changed, 676 insertions(+), 679 deletions(-) diff --git a/portality/static/js/edges/admin.journalarticle.edge.js b/portality/static/js/edges/admin.journalarticle.edge.js index 31ca0cf58d..0f3e2fe324 100644 --- a/portality/static/js/edges/admin.journalarticle.edge.js +++ b/portality/static/js/edges/admin.journalarticle.edge.js @@ -1,711 +1,708 @@ // ~~ AdminJournalsArticlesSearch:Feature ~~ -$.extend(true, doaj, { - - adminJournalArticleSearch : { - activeEdges : {}, - - journalSelected : function(selector) { - return function() { - var type = doaj.adminJournalArticleSearch.activeEdges[selector].currentQuery.listMust(es.newTermFilter({field: "es_type.exact"})); - // var type = doaj.currentFVOptions.active_filters._type; - if (type && type.length > 0) { - type = type[0]; - } - if (!type || type.value !== "journal") { - return { - valid: false, - error_id: "journal_type_error" - } - } - return {valid : true}; +doaj.adminJournalArticleSearch = { + activeEdges : {}, + + journalSelected : function(selector) { + return function() { + var type = doaj.adminJournalArticleSearch.activeEdges[selector].currentQuery.listMust(es.newTermFilter({field: "es_type.exact"})); + // var type = doaj.currentFVOptions.active_filters._type; + if (type && type.length > 0) { + type = type[0]; } - }, - - anySelected : function(selector) { - return function() { - var type = doaj.adminJournalArticleSearch.activeEdges[selector].currentQuery.listMust(es.newTermFilter({field: "es_type.exact"})); - if (!type || type.length === 0) { - return { - valid: false, - error_id: "any_type_error" - } + if (!type || type.value !== "journal") { + return { + valid: false, + error_id: "journal_type_error" } - return {valid: true}; } - }, - - typeSelected : function(selector) { - return function() { - var type = doaj.adminJournalArticleSearch.activeEdges[selector].currentQuery.listMust(es.newTermFilter({field: "es_type.exact"})); - if (type && type.length > 0) { - return type[0].value; + return {valid : true}; + } + }, + + anySelected : function(selector) { + return function() { + var type = doaj.adminJournalArticleSearch.activeEdges[selector].currentQuery.listMust(es.newTermFilter({field: "es_type.exact"})); + if (!type || type.length === 0) { + return { + valid: false, + error_id: "any_type_error" } - return null; - } - }, - - lastUpdated : function (val, resultobj, renderer) { - return doaj.dates.humanYearMonth(resultobj['last_updated']); - }, - - deleteArticle : function (val, resultobj, renderer) { - if (!resultobj.suggestion && resultobj.bibjson.journal) { - // if it's not a suggestion or a journal .. (it's an article!) - // we really need to expose _type ... - var result = '
' - result += ' 0) { + return type[0].value; + } + return null; + } + }, + + lastUpdated : function (val, resultobj, renderer) { + return doaj.dates.humanYearMonth(resultobj['last_updated']); + }, + + deleteArticle : function (val, resultobj, renderer) { + if (!resultobj.suggestion && resultobj.bibjson.journal) { + // if it's not a suggestion or a journal .. (it's an article!) + // we really need to expose _type ... + var result = '
' + result += '
ID: ", + "field" : "id" + } + ], + // Journals + [ + { + valueFunction: doaj.fieldRender.titleField + } + ], + [ + { + "valueFunction": doaj.adminJournalArticleSearch.editArticle + } + ], + [ + { + "valueFunction": doaj.adminJournalArticleSearch.editJournal + } + ], + [ + { + "pre": 'Alternative title: ', + "field": "bibjson.alternative_title", + "post": "" + } + ], + [ + { + "pre" : "In DOAJ?: ", + "valueFunction" : doaj.fieldRender.inDoaj + } + ], + [ + { + "pre": "Classification: ", + "field": "index.classification" + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.publisher.name" + } + ], + [ + { + "pre": "Publication charges?: ", + "valueFunction": doaj.fieldRender.authorPays + } + ], + [ + { + "pre": "Journal language: ", + "field": "bibjson.language" + } + ], + // Articles + [ + { + "pre": "Authors: ", + "field": "bibjson.author.name" + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.journal.publisher" + } + ], + [ + { + "pre":'Date of publication: ', + "field": "bibjson.year" + }, + { + "pre":' ', + "field": "bibjson.month", + "post": "" + } + ], + [ + { + "pre": "Published in: ", + "field": "bibjson.journal.title", + "notrailingspace": true + }, + { + "pre": ", Vol ", + "field": "bibjson.journal.volume", + "notrailingspace": true + }, + { + "pre": ", Iss ", + "field": "bibjson.journal.number", + "notrailingspace": true + }, + { + "pre": ", Pp ", + "field": "bibjson.start_page", + "notrailingspace": true + }, + { + "pre": "-", + "field": "bibjson.end_page" + }, + { + "pre" : "(", + "field": "bibjson.year", + "post" : ")" + } + ], + [ + { + "valueFunction" : doaj.fieldRender.issns + } + ], + [ + { + "pre": "Keywords: ", + "field": "bibjson.keywords" + } + ], + [ + { + "pre": "Discontinued Date: ", + "field": "bibjson.discontinued_date" + } + ], + [ + { + "pre": "Date added to DOAJ: ", + "valueFunction": doaj.fieldRender.createdDateWithTime + } + ], + [ + { + "pre": "Last updated: ", + "valueFunction": doaj.adminJournalArticleSearch.lastUpdated + } + ], + [ + { + "pre": "DOI: ", + "valueFunction": doaj.fieldRender.doiLink + } + ], + [ + { + "valueFunction" : doaj.fieldRender.links + } + ], + [ + { + "pre": "Journal language(s): ", + "field": "bibjson.journal.language" + } + ], + [ + { + "pre": "Journal license: ", + "valueFunction": doaj.fieldRender.journalLicense + } + ], + [ + { + "pre": "Country of publisher: ", + "valueFunction": doaj.fieldRender.countryName + } + ], + [ + { + "pre": 'Abstract: ', + "valueFunction": doaj.fieldRender.abstract + } + ], + [ + { + "valueFunction": doaj.adminJournalArticleSearch.deleteArticle + } + ] + ] + }) + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "es_type.exact": "Showing", + "admin.in_doaj" : "In DOAJ?", + "index.language.exact" : "Language", + "bibjson.publisher.name.exact" : "Publisher", + "index.classification.exact" : "Classification", + "index.subject.exact" : "Subject", + "index.country.exact" : "Country", + "index.license.exact" : "License", + "bibjson.year.exact" : "Year of publication", + "bibjson.journal.title.exact" : "Title", + "index.has_apc.exact" : "Charges?" + }, + valueMaps : { + "es_type.exact" : { "journal" : "Journals", "article" : "Articles" }, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - doaj.facets.inDOAJ(), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publication_year", - category: "facet", - field: "bibjson.year.exact", - display: "Year of publication (Articles)", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_title", - category: "facet", - field: "bibjson.journal.title.exact", - display: "Journal title (Articles)", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date added to DOAJ','field':'created_date'}, - {'display':'Last updated','field':'last_updated'}, - {'display':'Title','field':'index.unpunctitle.exact'}, - {'display':'Article: Publication date','field':"index.date"} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Subject','field':'index.classification'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'DOI', 'field' : 'bibjson.identifier.id'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - - {'display':'Journal: Publisher','field':'bibjson.publisher.name'}, - - {'display':'Article: Abstract','field':'bibjson.abstract'}, - {'display':'Article: Author’s name','field':'bibjson.author.name'}, - {'display':'Article: Author’s ORCID iD','field':'bibjson.author.orcid_id'}, - {'display':'Article: Year','field':'bibjson.year'}, - {'display':'Article: Journal title','field':'bibjson.journal.title'}, - - {'display':'Journal: Alternative Title','field':'bibjson.alternative_title'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search all journals and articles" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ - [ - { - "pre" : "ID: ", - "field" : "id" - } - ], - // Journals - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "valueFunction": doaj.adminJournalArticleSearch.editArticle - } - ], - [ - { - "valueFunction": doaj.adminJournalArticleSearch.editJournal - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre" : "In DOAJ?: ", - "valueFunction" : doaj.fieldRender.inDoaj - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - "valueFunction": doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - // Articles - [ - { - "pre": "Authors: ", - "field": "bibjson.author.name" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.journal.publisher" - } - ], - [ - { - "pre":'Date of publication: ', - "field": "bibjson.year" - }, - { - "pre":' ', - "field": "bibjson.month", - "post": "" - } - ], - [ - { - "pre": "Published in: ", - "field": "bibjson.journal.title", - "notrailingspace": true - }, - { - "pre": ", Vol ", - "field": "bibjson.journal.volume", - "notrailingspace": true - }, - { - "pre": ", Iss ", - "field": "bibjson.journal.number", - "notrailingspace": true - }, - { - "pre": ", Pp ", - "field": "bibjson.start_page", - "notrailingspace": true - }, - { - "pre": "-", - "field": "bibjson.end_page" - }, - { - "pre" : "(", - "field": "bibjson.year", - "post" : ")" - } - ], - [ - { - "valueFunction" : doaj.fieldRender.issns - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Discontinued Date: ", - "field": "bibjson.discontinued_date" - } - ], - [ - { - "pre": "Date added to DOAJ: ", - "valueFunction": doaj.fieldRender.createdDateWithTime - } - ], - [ - { - "pre": "Last updated: ", - "valueFunction": doaj.adminJournalArticleSearch.lastUpdated - } - ], - [ - { - "pre": "DOI: ", - "valueFunction": doaj.fieldRender.doiLink - } - ], - [ - { - "valueFunction" : doaj.fieldRender.links - } - ], - [ - { - "pre": "Journal language(s): ", - "field": "bibjson.journal.language" - } - ], - [ - { - "pre": "Journal license: ", - "valueFunction": doaj.fieldRender.journalLicense - } - ], - [ - { - "pre": "Country of publisher: ", - "valueFunction": doaj.fieldRender.countryName - } - ], - [ - { - "pre": 'Abstract: ', - "valueFunction": doaj.fieldRender.abstract - } - ], - [ - { - "valueFunction": doaj.adminJournalArticleSearch.deleteArticle - } - ] - ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "es_type.exact": "Showing", - "admin.in_doaj" : "In DOAJ?", - "index.language.exact" : "Language", - "bibjson.publisher.name.exact" : "Publisher", - "index.classification.exact" : "Classification", - "index.subject.exact" : "Subject", - "index.country.exact" : "Country", - "index.license.exact" : "License", - "bibjson.year.exact" : "Year of publication", - "bibjson.journal.title.exact" : "Title", - "index.has_apc.exact" : "Charges?" - }, - valueMaps : { - "es_type.exact" : { - "journal" : "Journals", - "article" : "Articles" - }, - "admin.in_doaj" : { - true : "Yes", - false : "No" - } - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + "admin.in_doaj" : { + true : "Yes", + false : "No" } } - }); - doaj.adminJournalArticleSearch.activeEdges[selector] = e; - - var mfb = doaj.multiFormBox.newMultiFormBox({ - edge : e, - selector: "#admin-bulk-box", - bindings : { - editor_group : function(context) { - autocomplete($('#editor_group', context), 'name', 'editor_group', 1, false); - }, - edit_metadata : function(context) { - autocomplete($('#publisher_name', context), 'bibjson.publisher.name'); - $('#publisher_country', context).select2(); - autocomplete($('#owner', context), 'id', 'account'); + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.adminJournalArticleSearch.activeEdges[selector] = e; + + var mfb = doaj.multiFormBox.newMultiFormBox({ + edge : e, + selector: "#admin-bulk-box", + bindings : { + editor_group : function(context) { + autocomplete($('#editor_group', context), 'name', 'editor_group', 1, false); + }, + edit_metadata : function(context) { + autocomplete($('#publisher_name', context), 'bibjson.publisher.name'); + $('#publisher_country', context).select2(); + autocomplete($('#owner', context), 'id', 'account'); + } + }, + validators : { + withdraw : journalSelected, + reinstate: journalSelected, + delete: anySelected, + note : function(context) { + var valid = journalSelected(); + if (!valid.valid) { + return valid; } + var val = context.find("#note").val(); + if (val === "") { + return {valid: false}; + } + return {valid: true}; }, - validators : { - withdraw : journalSelected, - reinstate: journalSelected, - delete: anySelected, - note : function(context) { - var valid = journalSelected(); - if (!valid.valid) { - return valid; - } - var val = context.find("#note").val(); - if (val === "") { - return {valid: false}; - } - return {valid: true}; - }, - editor_group : function(context) { - var valid = journalSelected(); - if (!valid.valid) { - return valid; - } - var val = context.find("#editor_group").val(); - if (val === "") { - return {valid: false}; - } - return {valid: true}; - }, - edit_metadata : function(context) { - // first check that the journal has been selected - var valid = journalSelected(); - if (!valid.valid) { - return valid; - } + editor_group : function(context) { + var valid = journalSelected(); + if (!valid.valid) { + return valid; + } + var val = context.find("#editor_group").val(); + if (val === "") { + return {valid: false}; + } + return {valid: true}; + }, + edit_metadata : function(context) { + // first check that the journal has been selected + var valid = journalSelected(); + if (!valid.valid) { + return valid; + } - // now check that at least one field has been completed - var found = false; - var fields = ["#publisher_name", "#publisher_country", "#owner"]; - for (var i = 0; i < fields.length; i++) { - var val = context.find(fields[i]).val(); - if (val !== "") { - found = true; - } - } - if (!found) { - return {valid: false}; + // now check that at least one field has been completed + var found = false; + var fields = ["#publisher_name", "#publisher_country", "#owner"]; + for (var i = 0; i < fields.length; i++) { + var val = context.find(fields[i]).val(); + if (val !== "") { + found = true; } + } + if (!found) { + return {valid: false}; + } - return {valid: true}; + return {valid: true}; + } + }, + submit : { + delete : { + sure : 'Are you sure? This operation cannot be undone!' + }, + note : { + data: function(context) { + return { + note: $('#note', context).val() + }; } }, - submit : { - delete : { - sure : 'Are you sure? This operation cannot be undone!' - }, - note : { - data: function(context) { - return { - note: $('#note', context).val() - }; - } - }, - editor_group : { - data : function(context) { - return { - editor_group: $('#editor_group', context).val() - }; - } - }, - edit_metadata : { - data : function(context) { - var data = { - metadata : { - publisher_name: $('#publisher_name', context).select2("val"), - publisher_country: $('#publisher_country', context).select2("val"), - owner: $('#owner', context).select2("val") - } - }; - return data; - } + editor_group : { + data : function(context) { + return { + editor_group: $('#editor_group', context).val() + }; } }, - urls : { - withdraw: "/admin/journals/bulk/withdraw", - reinstate: "/admin/journals/bulk/reinstate", - delete : function() { - var type = typeSelected(); - if (type === "journal") { - return "/admin/journals/bulk/delete" - } else if (type === "article") { - return "/admin/articles/bulk/delete" - } - return null; - }, - note : "/admin/journals/bulk/add_note", - editor_group : "/admin/journals/bulk/assign_editor_group", - edit_metadata : "/admin/journals/bulk/edit_metadata" + edit_metadata : { + data : function(context) { + var data = { + metadata : { + publisher_name: $('#publisher_name', context).select2("val"), + publisher_country: $('#publisher_country', context).select2("val"), + owner: $('#owner', context).select2("val") + } + }; + return data; + } } + }, + urls : { + withdraw: "/admin/journals/bulk/withdraw", + reinstate: "/admin/journals/bulk/reinstate", + delete : function() { + var type = typeSelected(); + if (type === "journal") { + return "/admin/journals/bulk/delete" + } else if (type === "article") { + return "/admin/articles/bulk/delete" + } + return null; + }, + note : "/admin/journals/bulk/add_note", + editor_group : "/admin/journals/bulk/assign_editor_group", + edit_metadata : "/admin/journals/bulk/edit_metadata" + } + }); + doaj.multiFormBox.active = mfb; + + $(selector).on("edges:pre-render", function() { + doaj.multiFormBox.active.validate(); + }); + + // now bind the abstract expander + $(selector).on("edges:post-render", function() { + $(".abstract_action").off("click").on("click", function(event) { + event.preventDefault(); + var el = $(this); + var at = $(".abstract_text").filter('[rel="' + el.attr("rel") + '"]'); + at.slideToggle(300); }); - doaj.multiFormBox.active = mfb; - $(selector).on("edges:pre-render", function() { - doaj.multiFormBox.active.validate(); - }); + // now add the handlers for the article delete + $(".delete_article_link").off("click").on("click", function(event) { + event.preventDefault(); - // now bind the abstract expander - $(selector).on("edges:post-render", function() { - $(".abstract_action").off("click").on("click", function(event) { - event.preventDefault(); - var el = $(this); - var at = $(".abstract_text").filter('[rel="' + el.attr("rel") + '"]'); - at.slideToggle(300); - }); - - // now add the handlers for the article delete - $(".delete_article_link").off("click").on("click", function(event) { - event.preventDefault(); - - function success_callback(data) { - alert("The article was successfully deleted"); - doaj.adminJournalArticleSearch.activeEdges[selector].cycle(); - } + function success_callback(data) { + alert("The article was successfully deleted"); + doaj.adminJournalArticleSearch.activeEdges[selector].cycle(); + } - function error_callback() { - alert("There was an error deleting the article") - } + function error_callback() { + alert("There was an error deleting the article") + } - var c = confirm("Are you really really sure? You can't undo this operation!"); - if (c) { - var href = $(this).attr("href"); - var obj = {"delete" : "true"}; - $.ajax({ - type: "POST", - url: href, - data: obj, - success : success_callback, - error: error_callback - }) - } - }); + var c = confirm("Are you really really sure? You can't undo this operation!"); + if (c) { + var href = $(this).attr("href"); + var obj = {"delete" : "true"}; + $.ajax({ + type: "POST", + url: href, + data: obj, + success : success_callback, + error: error_callback + }) + } }); - } + }); } -}); +} jQuery(document).ready(function($) { From 3dfa03ebf7350e991154b96b827fbbc31e796aa5 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 07:59:57 +0530 Subject: [PATCH 09/76] admin.notification moved from $.extend --- .../js/edges/admin.notifications.edge.js | 490 +++++++++--------- 1 file changed, 243 insertions(+), 247 deletions(-) diff --git a/portality/static/js/edges/admin.notifications.edge.js b/portality/static/js/edges/admin.notifications.edge.js index c83eb72aa9..df1645fe72 100644 --- a/portality/static/js/edges/admin.notifications.edge.js +++ b/portality/static/js/edges/admin.notifications.edge.js @@ -1,257 +1,253 @@ // ~~ AdminNotifications:Edge -> Notifications:Feature ~~ // ~~-> Edges:Technology ~~ -$.extend(true, doaj, { - - adminNotificationsSearch : { - activeEdges : {}, - - createdByMap : { - "application:assed:acceptreject:notify": "Application: AssEd: Accepted/Rejected", - "application:assed:assigned:notify" : "Application: AssEd: Assigned", - "application:assed:inprogress:notify" : "Application: AssEd: Referred back", - "application:editor:acceptreject:notify": "Application: Editor: Accepted/Rejected", - "application:editor:completed:notify" : "Application: Editor: Completed", - "application:editor_group:assigned:notify" : "Application: Editor: Group assigned", - "application:editor:inprogress:notify" : "Application: Editor: Referred back", - "application:maned:ready:notify" : "Application: ManEd: Editor Sets Ready", - "application:publisher:accepted:notify" : "Application: Publisher: Accepted", - "application:publisher:assigned:notify" : "Application: Publisher: Assigned Editor", - "application:publisher:created:notify" : "Application: Publisher: Received", - "application:publisher:inprogress:notify" : "Application: Publisher: In progress", - "application:publisher:rejected:notify" : "Application: Publisher: Rejected", - "application:publisher:quickreject:notify" : "Application: Publisher: Quick-rejected", - "application:publisher:revision:notify" : "Application: Publisher: Requires revisions", - "bg:job_finished:notify" : "Background Job: Admin: Finished", - "journal:assed:assigned:notify" : "Journal: AssEd: Assigned", - "journal:editor_group:assigned:notify": "Journal: Editor: Group assigned", - "update_request:maned:editor_group_assigned:notify": "UR: ManEd: Assigned", - "update_request:publisher:accepted:notify": "UR: Publisher: Accepted", - "update_request:publisher:assigned:notify": "UR: Publisher: Assigned Editor", - "update_request:publisher:rejected:notify": "UR: Publisher: Rejected", - "update_request:publisher:submitted:notify": "UR: Publisher: Submitted" - }, - - init : function(params) { - if (!params) { params = {} } - - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - - var selector = params.selector || "#admin_notifications"; - var search_url = current_scheme + "//" + current_domain + doaj.adminNotificationsSearchConfig.searchPath; - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - let markdownConverter = new showdown.Converter({ - literalMidWordUnderscores: true - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - - edges.newRefiningANDTermSelector({ - id: "who", - category: "facet", - field: "who.exact", - display: "Notification For", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "created_by", - category: "facet", - field: "created_by.exact", - display: "Notification", - size: 20, - orderBy: "term", - orderDir: "asc", - deactivateThreshold: 1, - valueMap: doaj.adminNotificationsSearch.createdByMap, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "classification.exact", - display: "Type", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newDateHistogramSelector({ - id: "created_date", - category: "facet", - field : "created_date", - interval: "month", - display: "Notification Month", - displayFormatter : function(val) { - let d = new Date(parseInt(val)) - return d.getUTCFullYear().toString() + "-" + doaj.valueMaps.monthPadding(d.getUTCMonth() + 1); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Notification Date','field':'created_date'} - ], - fieldOptions: [ - {'display':'Notification For','field':'who'}, - {'display':'Title','field':'short'}, - {'display':'Body Text','field':'long'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Notifications" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ - [ - { - pre : "For ", - field: "who", - post: "" - }, - { - pre: " at ", - field: "created_date", - post: "" - }, - { - pre: " by ", - field: "created_by", - post: "" - }, - { - pre: " (", - field: "classification", - post: ")

" - } - ], - [ - { - pre : "", - field: "short", - post: "" - } - ], - [ - { - valueFunction: function(val, res, component) { - return markdownConverter.makeHtml(res.long); - } - } - ], - [ - { - pre: '
See action' +doaj.adminNotificationsSearch = { + activeEdges : {}, + + createdByMap : { + "application:assed:acceptreject:notify": "Application: AssEd: Accepted/Rejected", + "application:assed:assigned:notify" : "Application: AssEd: Assigned", + "application:assed:inprogress:notify" : "Application: AssEd: Referred back", + "application:editor:acceptreject:notify": "Application: Editor: Accepted/Rejected", + "application:editor:completed:notify" : "Application: Editor: Completed", + "application:editor_group:assigned:notify" : "Application: Editor: Group assigned", + "application:editor:inprogress:notify" : "Application: Editor: Referred back", + "application:maned:ready:notify" : "Application: ManEd: Editor Sets Ready", + "application:publisher:accepted:notify" : "Application: Publisher: Accepted", + "application:publisher:assigned:notify" : "Application: Publisher: Assigned Editor", + "application:publisher:created:notify" : "Application: Publisher: Received", + "application:publisher:inprogress:notify" : "Application: Publisher: In progress", + "application:publisher:rejected:notify" : "Application: Publisher: Rejected", + "application:publisher:quickreject:notify" : "Application: Publisher: Quick-rejected", + "application:publisher:revision:notify" : "Application: Publisher: Requires revisions", + "bg:job_finished:notify" : "Background Job: Admin: Finished", + "journal:assed:assigned:notify" : "Journal: AssEd: Assigned", + "journal:editor_group:assigned:notify": "Journal: Editor: Group assigned", + "update_request:maned:editor_group_assigned:notify": "UR: ManEd: Assigned", + "update_request:publisher:accepted:notify": "UR: Publisher: Accepted", + "update_request:publisher:assigned:notify": "UR: Publisher: Assigned Editor", + "update_request:publisher:rejected:notify": "UR: Publisher: Rejected", + "update_request:publisher:submitted:notify": "UR: Publisher: Submitted" + }, + + init : function(params) { + if (!params) { params = {} } + + var current_domain = document.location.host; + var current_scheme = window.location.protocol; + + var selector = params.selector || "#admin_notifications"; + var search_url = current_scheme + "//" + current_domain + doaj.adminNotificationsSearchConfig.searchPath; + + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); + + let markdownConverter = new showdown.Converter({ + literalMidWordUnderscores: true + }); + + var components = [ + doaj.components.searchingNotification(), + + // facets + + edges.newRefiningANDTermSelector({ + id: "who", + category: "facet", + field: "who.exact", + display: "Notification For", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "created_by", + category: "facet", + field: "created_by.exact", + display: "Notification", + size: 20, + orderBy: "term", + orderDir: "asc", + deactivateThreshold: 1, + valueMap: doaj.adminNotificationsSearch.createdByMap, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "classification", + category: "facet", + field: "classification.exact", + display: "Type", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newDateHistogramSelector({ + id: "created_date", + category: "facet", + field : "created_date", + interval: "month", + display: "Notification Month", + displayFormatter : function(val) { + let d = new Date(parseInt(val)) + return d.getUTCFullYear().toString() + "-" + doaj.valueMaps.monthPadding(d.getUTCMonth() + 1); + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer: edges.bs3.newDateHistogramSelectorRenderer({ + countFormat: countFormat, + hideInactive: true + }) + }), + + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Notification Date','field':'created_date'} + ], + fieldOptions: [ + {'display':'Notification For','field':'who'}, + {'display':'Title','field':'short'}, + {'display':'Body Text','field':'long'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search All Notifications" + }) + }), + + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + rowDisplay : [ + [ + { + pre : "For ", + field: "who", + post: "" + }, + { + pre: " at ", + field: "created_date", + post: "" + }, + { + pre: " by ", + field: "created_by", + post: "" + }, + { + pre: " (", + field: "classification", + post: ")

" + } + ], + [ + { + pre : "", + field: "short", + post: "" + } + ], + [ + { + valueFunction: function(val, res, component) { + return markdownConverter.makeHtml(res.long); } - ] + } + ], + [ + { + pre: 'See action' + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "who.exact" : "Who", - "created_by.exact" : "Action", - "classification.exact" : "Type", - "created_date" : "Notification Date" - }, - valueMaps : { - "created_by.exact" : doaj.adminNotificationsSearch.createdByMap, - }, - rangeFunctions : { - "created_date" : doaj.valueMaps.displayYearMonthPeriod - } + ] }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - sort: [{field: "created_date", order: "desc"}], - size: 25 - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "who.exact" : "Who", + "created_by.exact" : "Action", + "classification.exact" : "Type", + "created_date" : "Notification Date" + }, + valueMaps : { + "created_by.exact" : doaj.adminNotificationsSearch.createdByMap, + }, + rangeFunctions : { + "created_date" : doaj.valueMaps.displayYearMonthPeriod } - }); - doaj.adminNotificationsSearch.activeEdges[selector] = e; - } + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + openingQuery: es.newQuery({ + sort: [{field: "created_date", order: "desc"}], + size: 25 + }), + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.adminNotificationsSearch.activeEdges[selector] = e; } -}); - +} jQuery(document).ready(function($) { doaj.adminNotificationsSearch.init(); From c65b2960ff76ecbaabe5e1807333286c56052213 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:00:44 +0530 Subject: [PATCH 10/76] admin.reports moved from $.extend --- .../static/js/edges/admin.reports.edge.js | 374 +++++++++--------- 1 file changed, 185 insertions(+), 189 deletions(-) diff --git a/portality/static/js/edges/admin.reports.edge.js b/portality/static/js/edges/admin.reports.edge.js index 3bfe5dc1e6..35252a492a 100644 --- a/portality/static/js/edges/admin.reports.edge.js +++ b/portality/static/js/edges/admin.reports.edge.js @@ -1,212 +1,208 @@ -$.extend(true, doaj, { +doaj.adminReportsSearch : { + activeEdges : {}, - adminReportsSearch : { - activeEdges : {}, + init : function(params) { + if (!params) { params = {} } - init : function(params) { - if (!params) { params = {} } + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var selector = params.selector || "#reports"; + var search_url = current_scheme + "//" + current_domain + doaj.adminReportsSearchConfig.searchPath; - var selector = params.selector || "#reports"; - var search_url = current_scheme + "//" + current_domain + doaj.adminReportsSearchConfig.searchPath; + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var components = [ + doaj.components.searchingNotification(), - var components = [ - doaj.components.searchingNotification(), + // facets - // facets - - edges.newRefiningANDTermSelector({ - id: "requester", - category: "facet", - field: "requester.exact", - display: "Produced By", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newDateHistogramSelector({ - id: "generated_date", - category: "facet", - field : "generated_date", - interval: "month", - display: "Generated Date", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true - }) - }), + edges.newRefiningANDTermSelector({ + id: "requester", + category: "facet", + field: "requester.exact", + display: "Produced By", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newDateHistogramSelector({ + id: "generated_date", + category: "facet", + field : "generated_date", + interval: "month", + display: "Generated Date", + displayFormatter : function(val) { + let date = new Date(parseInt(val)); + return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer: edges.bs3.newDateHistogramSelectorRenderer({ + countFormat: countFormat, + hideInactive: true + }) + }), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Generated Date','field':'generated_date'}, - {"display": "Report Name", "field": "name.exact"} - ], - fieldOptions: [ - {'display':'Requested by','field':'requester'}, - {'display':'Report Name','field':'name'}, - {'display':'Filename','field':'filename'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Reports" - }) - }), + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Generated Date','field':'generated_date'}, + {"display": "Report Name", "field": "name.exact"} + ], + fieldOptions: [ + {'display':'Requested by','field':'requester'}, + {'display':'Report Name','field':'name'}, + {'display':'Filename','field':'filename'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search All Reports" + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ - [ - { - pre: "", - field: "name", - post: "" - }, - { - pre: " (", - field: "generated_date", - post: ")", - valueFunction: function (val, resultobj, renderer) { - return doaj.humanDateTime(val); - } + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + rowDisplay : [ + [ + { + pre: "", + field: "name", + post: "" + }, + { + pre: " (", + field: "generated_date", + post: ")", + valueFunction: function (val, resultobj, renderer) { + return doaj.humanDateTime(val); } - ], - [ - { - "pre": "A ", - field: "model", - post: " report " - }, - { - pre : "requested by ", - field: "requester", - post: "" - }, - { - pre: " on ", - field: "request_date", - post: "", - valueFunction: function (val, resultobj, renderer) { - return doaj.humanDateTime(val); - } - }, - { - pre: " and generated on ", - field: "generated_date", - post: "", - valueFunction: function (val, resultobj, renderer) { - return doaj.humanDateTime(val); - } + } + ], + [ + { + "pre": "A ", + field: "model", + post: " report " + }, + { + pre : "requested by ", + field: "requester", + post: "" + }, + { + pre: " on ", + field: "request_date", + post: "", + valueFunction: function (val, resultobj, renderer) { + return doaj.humanDateTime(val); + } + }, + { + pre: " and generated on ", + field: "generated_date", + post: "", + valueFunction: function (val, resultobj, renderer) { + return doaj.humanDateTime(val); } - ], - [ - { - field: "constraints", - valueFunction: function(val, res, component) { - // let source = encodeURIComponent(val); - let modelMap = { - "journal" : "/admin", - "application": "/admin/applications", - } - let route = modelMap[res.model]; - if (route === undefined) { - route = "/admin"; - } - return `Search again `; + } + ], + [ + { + field: "constraints", + valueFunction: function(val, res, component) { + // let source = encodeURIComponent(val); + let modelMap = { + "journal" : "/admin", + "application": "/admin/applications", } - }, - { - field: "id", - valueFunction: function(val, res, component) { - return `Download report`; + let route = modelMap[res.model]; + if (route === undefined) { + route = "/admin"; } + return `Search again `; } - ] + }, + { + field: "id", + valueFunction: function(val, res, component) { + return `Download report`; + } + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "requester.exact" : "Requested By", - "generated_date" : "Generated Date" - }, - rangeFunctions : { - "generated_date" : doaj.valueMaps.displayYearMonthPeriod - } + ] }) - ]; + }), - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - sort: [{field: "generated_date", order: "desc"}], - size: 25 - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "requester.exact" : "Requested By", + "generated_date" : "Generated Date" + }, + rangeFunctions : { + "generated_date" : doaj.valueMaps.displayYearMonthPeriod } - }); - doaj.adminReportsSearch.activeEdges[selector] = e; - } - } -}); + }) + ]; + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + openingQuery: es.newQuery({ + sort: [{field: "generated_date", order: "desc"}], + size: 25 + }), + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.adminReportsSearch.activeEdges[selector] = e; + } +} jQuery(document).ready(function($) { doaj.adminReportsSearch.init(); From 69593a966bb7ee95721f09e08ba6fabcbf9a383d Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:01:10 +0530 Subject: [PATCH 11/76] admin.reports moved from $.extend --- portality/static/js/edges/admin.reports.edge.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/portality/static/js/edges/admin.reports.edge.js b/portality/static/js/edges/admin.reports.edge.js index 35252a492a..e23d2db1b8 100644 --- a/portality/static/js/edges/admin.reports.edge.js +++ b/portality/static/js/edges/admin.reports.edge.js @@ -1,4 +1,4 @@ -doaj.adminReportsSearch : { +doaj.adminReportsSearch = { activeEdges : {}, init : function(params) { From fa86fd8366a38b38d54741880483fd622b63fa57 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:02:31 +0530 Subject: [PATCH 12/76] admin.ris moved from $.extend --- portality/static/js/edges/admin.ris.edge.js | 296 ++++++++++---------- 1 file changed, 146 insertions(+), 150 deletions(-) diff --git a/portality/static/js/edges/admin.ris.edge.js b/portality/static/js/edges/admin.ris.edge.js index c62b68d9f3..a6f6f0f6bf 100644 --- a/portality/static/js/edges/admin.ris.edge.js +++ b/portality/static/js/edges/admin.ris.edge.js @@ -1,172 +1,168 @@ // ~~ AdminAlerts:Edge ~~ // ~~-> Edges:Technology ~~ -$.extend(true, doaj, { +doaj.adminRISSearch = { + activeEdges : {}, - adminRISSearch : { - activeEdges : {}, + init : function(params) { + if (!params) { params = {} } - init : function(params) { - if (!params) { params = {} } + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var selector = params.selector || "#ris"; + var search_url = current_scheme + "//" + current_domain + doaj.adminRISSearchConfig.searchPath; - var selector = params.selector || "#ris"; - var search_url = current_scheme + "//" + current_domain + doaj.adminRISSearchConfig.searchPath; + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var components = [ + doaj.components.searchingNotification(), - var components = [ - doaj.components.searchingNotification(), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Created Date','field':'created_date'}, - {'display':'Last Updated','field':'last_updated'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All RIS Exports" - }) - }), + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Created Date','field':'created_date'}, + {'display':'Last Updated','field':'last_updated'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search All RIS Exports" + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - noResultsText: "No RIS exports match the selected criteria.", - // the fields to display in the results table - rowDisplay: [ - [{ - field: "created_date", - pre: "Created Date: " - }], - [{ - field: "created_date", - pre: "Last Updated: " - }], - [{ - field: "id", - pre: "Article ID: " - }], - [{ - field: "ris", - pre: "", - post: "", - valueFunction: function(val, res, component) { - return val.replace(/\n/g, "
"); - } - }], - [{ - valueFunction: function(val, res, renderer) { - const del_class = edges.css_classes(renderer.namespace, "delete", renderer); - const regen_class = edges.css_classes(renderer.namespace, "regenerate", renderer); - return ` - `; - } - }] - ] - }) + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + noResultsText: "No RIS exports match the selected criteria.", + // the fields to display in the results table + rowDisplay: [ + [{ + field: "created_date", + pre: "Created Date: " + }], + [{ + field: "created_date", + pre: "Last Updated: " + }], + [{ + field: "id", + pre: "Article ID: " + }], + [{ + field: "ris", + pre: "", + post: "", + valueFunction: function(val, res, component) { + return val.replace(/\n/g, "
"); + } + }], + [{ + valueFunction: function(val, res, renderer) { + const del_class = edges.css_classes(renderer.namespace, "delete", renderer); + const regen_class = edges.css_classes(renderer.namespace, "regenerate", renderer); + return ` + `; + } + }] + ] }) - ]; + }) + ]; - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - sort: [{field: "last_updated", order: "desc"}], - size: 25 - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - }, - "edges:post-render" : function() { - let resultsComponent = doaj.adminRISSearch.activeEdges[selector].getComponent({id: "results"}); - let deleteSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "delete"); - $(deleteSelector).on("click", function(e) { - e.preventDefault(); - let a = e.currentTarget; - let id = a.getAttribute("data-id"); - let proceed = confirm("Deleting the RIS export will cause it to be regenerated the next time it is requested, or the regular RIS export runs") - if (!proceed) { - return; + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + openingQuery: es.newQuery({ + sort: [{field: "last_updated", order: "desc"}], + size: 25 + }), + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + }, + "edges:post-render" : function() { + let resultsComponent = doaj.adminRISSearch.activeEdges[selector].getComponent({id: "results"}); + let deleteSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "delete"); + $(deleteSelector).on("click", function(e) { + e.preventDefault(); + let a = e.currentTarget; + let id = a.getAttribute("data-id"); + let proceed = confirm("Deleting the RIS export will cause it to be regenerated the next time it is requested, or the regular RIS export runs") + if (!proceed) { + return; + } + $.ajax({ + method: "POST", + url: "/admin/ris/" + id + "/delete", + success: function(data) { + // reload the page to see the changes + // window.location.reload(); + alert("Deleted successfully, reload the page to see the changes"); + }, + error: function(xhr, status, error) { + alert("There was an unexpected error processing your request."); } - $.ajax({ - method: "POST", - url: "/admin/ris/" + id + "/delete", - success: function(data) { - // reload the page to see the changes - // window.location.reload(); - alert("Deleted successfully, reload the page to see the changes"); - }, - error: function(xhr, status, error) { - alert("There was an unexpected error processing your request."); - } - }) }) + }) - let regenerateSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "regenerate"); - $(regenerateSelector).on("click", function(e) { - e.preventDefault(); - let a = e.currentTarget; - let id = a.getAttribute("data-id"); - let proceed = confirm("Regenerate the RIS Export?") - if (!proceed) { - return; + let regenerateSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "regenerate"); + $(regenerateSelector).on("click", function(e) { + e.preventDefault(); + let a = e.currentTarget; + let id = a.getAttribute("data-id"); + let proceed = confirm("Regenerate the RIS Export?") + if (!proceed) { + return; + } + $.ajax({ + method: "POST", + url: "/admin/ris/" + id + "/regenerate", + success: function(data) { + // reload the page to see the changes + // window.location.reload(); + alert("Regenerated successfully, reload the page to see the changes"); + }, + error: function(xhr, status, error) { + alert("There was an unexpected error processing your request."); } - $.ajax({ - method: "POST", - url: "/admin/ris/" + id + "/regenerate", - success: function(data) { - // reload the page to see the changes - // window.location.reload(); - alert("Regenerated successfully, reload the page to see the changes"); - }, - error: function(xhr, status, error) { - alert("There was an unexpected error processing your request."); - } - }) }) - } + }) } - }); - doaj.adminRISSearch.activeEdges[selector] = e; - } + } + }); + doaj.adminRISSearch.activeEdges[selector] = e; } -}); - +} jQuery(document).ready(function($) { doaj.adminRISSearch.init(); From b9f1a9125ced86559ac03e00075d8267b5cef748 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:05:43 +0530 Subject: [PATCH 13/76] admin.update_request moved from $.extend --- .../js/edges/admin.update_requests.edge.js | 501 +++++++++--------- 1 file changed, 249 insertions(+), 252 deletions(-) diff --git a/portality/static/js/edges/admin.update_requests.edge.js b/portality/static/js/edges/admin.update_requests.edge.js index 7123273c59..e0b304ec0a 100644 --- a/portality/static/js/edges/admin.update_requests.edge.js +++ b/portality/static/js/edges/admin.update_requests.edge.js @@ -1,274 +1,271 @@ // ~~ AdminUpdateRequestSearch:Feature ~~ -$.extend(true, doaj, { +doaj.adminApplicationsSearch = { + activeEdges : {}, - adminApplicationsSearch : { - activeEdges : {}, - - relatedJournal : function (val, resultobj, renderer) { - var result = ""; - if (resultobj.admin) { - var journals_url = doaj.adminApplicationsSearchConfig.journalsUrl; - if (resultobj.admin.current_journal) { - var fvurl = journals_url + '?source=%7B"query"%3A%7B"query_string"%3A%7B"query"%3A"' + edges.escapeHtml(resultobj.admin.current_journal) + '"%2C"default_operator"%3A"AND"%7D%7D%2C"from"%3A0%2C"size"%3A10%7D'; - result += "Update Request For: " + edges.escapeHtml(resultobj.admin.current_journal) + ''; + relatedJournal : function (val, resultobj, renderer) { + var result = ""; + if (resultobj.admin) { + var journals_url = doaj.adminApplicationsSearchConfig.journalsUrl; + if (resultobj.admin.current_journal) { + var fvurl = journals_url + '?source=%7B"query"%3A%7B"query_string"%3A%7B"query"%3A"' + edges.escapeHtml(resultobj.admin.current_journal) + '"%2C"default_operator"%3A"AND"%7D%7D%2C"from"%3A0%2C"size"%3A10%7D'; + result += "Update Request For: " + edges.escapeHtml(resultobj.admin.current_journal) + ''; + } + if (resultobj.admin.related_journal) { + var fvurl = journals_url + '?source=%7B"query"%3A%7B"query_string"%3A%7B"query"%3A"' + resultobj.admin.related_journal + '"%2C"default_operator"%3A"AND"%7D%7D%2C"from"%3A0%2C"size"%3A10%7D'; + if (result != "") { + result += "
"; } - if (resultobj.admin.related_journal) { - var fvurl = journals_url + '?source=%7B"query"%3A%7B"query_string"%3A%7B"query"%3A"' + resultobj.admin.related_journal + '"%2C"default_operator"%3A"AND"%7D%7D%2C"from"%3A0%2C"size"%3A10%7D'; - if (result != "") { - result += "
"; - } - let label = "Produced Journal"; - if (resultobj.admin.application_status === "rejected") { - label = "Originally For Journal"; - } - result += "" + label + ": " + edges.escapeHtml(resultobj.admin.related_journal) + ''; + let label = "Produced Journal"; + if (resultobj.admin.application_status === "rejected") { + label = "Originally For Journal"; } + result += "" + label + ": " + edges.escapeHtml(resultobj.admin.related_journal) + ''; } - return result; - }, + } + return result; + }, - init : function(params) { - if (!params) { params = {} } + init : function(params) { + if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var selector = params.selector || "#admin_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.adminApplicationsSearchConfig.searchPath; + var selector = params.selector || "#admin_applications"; + var search_url = current_scheme + "//" + current_domain + doaj.adminApplicationsSearchConfig.searchPath; - var components = [ - doaj.components.searchingNotification(), + var components = [ + doaj.components.searchingNotification(), - // facets - doaj.facets.openOrClosed(), - doaj.facets.applicationStatus(), - doaj.facets.hasEditorGroup(), - doaj.facets.hasEditor(), - doaj.facets.editorGroup(), - doaj.facets.editor(), - doaj.facets.hasAPC(), - doaj.facets.classification(), - doaj.facets.language(), - doaj.facets.countryPublisher(), - doaj.facets.subject(), - doaj.facets.publisher(), - doaj.facets.journalLicence(), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date applied','field':'admin.date_applied'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'}, - {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Journal: Alternative Title','field':'bibjson.alternative_title'}, - {'display':'Notes','field':'admin.notes.note'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Applications" - }) - }), + // facets + doaj.facets.openOrClosed(), + doaj.facets.applicationStatus(), + doaj.facets.hasEditorGroup(), + doaj.facets.hasEditor(), + doaj.facets.editorGroup(), + doaj.facets.editor(), + doaj.facets.hasAPC(), + doaj.facets.classification(), + doaj.facets.language(), + doaj.facets.countryPublisher(), + doaj.facets.subject(), + doaj.facets.publisher(), + doaj.facets.journalLicence(), + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Date applied','field':'admin.date_applied'}, + {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) + {'display':'Title','field':'index.unpunctitle.exact'}, + {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'} + ], + fieldOptions: [ + {'display':'Title','field':'index.title'}, + {'display':'Keywords','field':'bibjson.keywords'}, + {'display':'Classification','field':'index.classification'}, + {'display':'ISSN', 'field':'index.issn.exact'}, + {'display':'Country of publisher','field':'index.country'}, + {'display':'Journal language','field':'index.language'}, + {'display':'Publisher','field':'bibjson.publisher.name'}, + {'display':'Journal: Alternative Title','field':'bibjson.alternative_title'}, + {'display':'Notes','field':'admin.notes.note'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search All Applications" + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - doaj.components.pager("top-pager", "top-pager"), - doaj.components.pager("bottom-pager", "bottom-pager"), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + doaj.components.pager("top-pager", "top-pager"), + doaj.components.pager("bottom-pager", "bottom-pager"), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - valueFunction: doaj.fieldRender.editSuggestion({ - editUrl : doaj.adminApplicationsSearchConfig.applicationEditUrl - }) - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - valueFunction: doaj.fieldRender.deadline - } - ], - [ - { - "pre": "Date applied: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - valueFunction: doaj.fieldRender.issns - } - ], - [ - { - "pre" : "Application status: ", - valueFunction: doaj.fieldRender.applicationStatus - } - ], - [ - { - "pre" : "Editor Group: ", - "field" : "admin.editor_group" - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Country of publisher: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "Journal license: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - valueFunction: doaj.adminApplicationsSearch.relatedJournal - } - ] + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + rowDisplay : [ + [ + { + valueFunction: doaj.fieldRender.titleField + } + ], + [ + { + valueFunction: doaj.fieldRender.editSuggestion({ + editUrl : doaj.adminApplicationsSearchConfig.applicationEditUrl + }) + } + ], + [ + { + "pre": 'Alternative title: ', + "field": "bibjson.alternative_title", + "post": "" + } + ], + [ + { + valueFunction: doaj.fieldRender.deadline + } + ], + [ + { + "pre": "Date applied: ", + valueFunction: doaj.fieldRender.suggestedOn + } + ], + [ + { + "pre": "Last updated: ", + valueFunction: doaj.fieldRender.lastManualUpdate + } + ], + [ + { + "pre" : "Owner: ", + valueFunction: doaj.fieldRender.owner + } + ], + [ + { + valueFunction: doaj.fieldRender.issns + } + ], + [ + { + "pre" : "Application status: ", + valueFunction: doaj.fieldRender.applicationStatus + } + ], + [ + { + "pre" : "Editor Group: ", + "field" : "admin.editor_group" + } + ], + [ + { + "pre": "Classification: ", + "field": "index.classification" + } + ], + [ + { + "pre": "Keywords: ", + "field": "bibjson.keywords" + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.publisher.name" + } + ], + [ + { + "pre": "Publication charges?: ", + valueFunction: doaj.fieldRender.authorPays + } + ], + [ + { + "pre": "Country of publisher: ", + valueFunction: doaj.fieldRender.countryName + } + ], + [ + { + "pre": "Journal language: ", + "field": "bibjson.language" + } + ], + [ + { + "pre": "Journal license: ", + valueFunction: doaj.fieldRender.journalLicense + } + ], + [ + { + valueFunction: doaj.fieldRender.links + } + ], + [ + { + valueFunction: doaj.adminApplicationsSearch.relatedJournal + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'admin.application_status.exact': 'Status', - 'index.application_type.exact' : 'Update Request', - 'index.has_editor_group.exact' : 'Editor Group?', - 'index.has_editor.exact' : 'Associate Editor?', - 'admin.editor_group.exact' : 'Editor Group', - 'admin.editor.exact' : 'Editor', - 'index.classification.exact' : 'Classification', - 'index.language.exact' : 'Language', - 'index.country.exact' : 'Country', - 'index.subject.exact' : 'Subject', - 'bibjson.publisher.name.exact' : 'Publisher', - 'bibjson.provider.exact' : 'Platform, Host, Aggregator', - "index.has_apc.exact" : "Charges?", - 'index.license.exact' : 'License', - 'index.is_flagged': "Only Flagged Records", - 'index.flag_assignees.exact': "Flagged to me" - }, - valueMaps : { - "index.application_type.exact" : { - "finished application/update": "Closed", - "update request": "Open", - "new application": "Open" - } - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - hideValues: [ - 'index.is_flagged', - 'index.flag_assignees.exact' - ] - }) + ] }) - ]; + }), - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "admin.date_applied", "order" : "asc"} - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + 'admin.application_status.exact': 'Status', + 'index.application_type.exact' : 'Update Request', + 'index.has_editor_group.exact' : 'Editor Group?', + 'index.has_editor.exact' : 'Associate Editor?', + 'admin.editor_group.exact' : 'Editor Group', + 'admin.editor.exact' : 'Editor', + 'index.classification.exact' : 'Classification', + 'index.language.exact' : 'Language', + 'index.country.exact' : 'Country', + 'index.subject.exact' : 'Subject', + 'bibjson.publisher.name.exact' : 'Publisher', + 'bibjson.provider.exact' : 'Platform, Host, Aggregator', + "index.has_apc.exact" : "Charges?", + 'index.license.exact' : 'License', + 'index.is_flagged': "Only Flagged Records", + 'index.flag_assignees.exact': "Flagged to me" + }, + valueMaps : { + "index.application_type.exact" : { + "finished application/update": "Closed", + "update request": "Open", + "new application": "Open" } + }, + renderer : doaj.renderers.newSelectedFiltersRenderer({ + hideValues: [ + 'index.is_flagged', + 'index.flag_assignees.exact' + ] + }) + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + openingQuery : es.newQuery({ + sort: {"field" : "admin.date_applied", "order" : "asc"} + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); } - }); - doaj.adminApplicationsSearch.activeEdges[selector] = e; + } + }); + doaj.adminApplicationsSearch.activeEdges[selector] = e; - doaj.multiFormBox.active = doaj.bulk.applicationMultiFormBox(e, "update_requests"); - $(selector).on("edges:pre-render", function() { - doaj.multiFormBox.active.validate(); - }); - } + doaj.multiFormBox.active = doaj.bulk.applicationMultiFormBox(e, "update_requests"); + $(selector).on("edges:pre-render", function() { + doaj.multiFormBox.active.validate(); + }); } -}); +} jQuery(document).ready(function($) { From 3378f6ab03574e1dce9030ffcc05a07aaf83a398 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:17:12 +0530 Subject: [PATCH 14/76] associate files moved from $.extend --- .../js/edges/associate.applications.edge.js | 636 +++++++++-------- .../js/edges/associate.journals.edge.js | 662 +++++++++--------- 2 files changed, 645 insertions(+), 653 deletions(-) diff --git a/portality/static/js/edges/associate.applications.edge.js b/portality/static/js/edges/associate.applications.edge.js index 60b9433bf6..87a2610bb0 100644 --- a/portality/static/js/edges/associate.applications.edge.js +++ b/portality/static/js/edges/associate.applications.edge.js @@ -1,338 +1,334 @@ -$.extend(true, doaj, { +doaj.associateApplicationsSearch = { + activeEdges : {}, - associateApplicationsSearch : { - activeEdges : {}, - - editorStatusMap: function(value) { - if (doaj.valueMaps.applicationStatus.hasOwnProperty(value)) { - return doaj.valueMaps.applicationStatus[value]; - } - return value; - }, + editorStatusMap: function(value) { + if (doaj.valueMaps.applicationStatus.hasOwnProperty(value)) { + return doaj.valueMaps.applicationStatus[value]; + } + return value; + }, - init : function(params) { - if (!params) { params = {} } + init : function(params) { + if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var selector = params.selector || "#associate_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.associateApplicationsSearchConfig.searchPath; + var selector = params.selector || "#associate_applications"; + var search_url = current_scheme + "//" + current_domain + doaj.associateApplicationsSearchConfig.searchPath; - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var components = [ - doaj.components.searchingNotification(), - // facets - doaj.facets.openOrClosed(), + var components = [ + doaj.components.searchingNotification(), + // facets + doaj.facets.openOrClosed(), - edges.newRefiningANDTermSelector({ - id: "application_status", - category: "facet", - field: "admin.application_status.exact", - display: "Application Status", - deactivateThreshold: 1, - valueFunction : doaj.associateApplicationsSearch.editorStatusMap, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), + edges.newRefiningANDTermSelector({ + id: "application_status", + category: "facet", + field: "admin.application_status.exact", + display: "Application Status", + deactivateThreshold: 1, + valueFunction : doaj.associateApplicationsSearch.editorStatusMap, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "author_pays", + category: "facet", + field: "index.has_apc.exact", + display: "Publication charges?", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "classification", + category: "facet", + field: "index.classification.exact", + display: "Classification", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "language", + category: "facet", + field: "index.language.exact", + display: "Journal language", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "country_publisher", + category: "facet", + field: "index.country.exact", + display: "Country of publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "subject", + category: "facet", + field: "index.subject.exact", + display: "Subject", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "publisher", + category: "facet", + field: "bibjson.publisher.name.exact", + display: "Publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_license", + category: "facet", + field: "index.license.exact", + display: "Journal license", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date applied','field':'admin.date_applied'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Applications assigned to you" - }) - }), + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Date applied','field':'admin.date_applied'}, + {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) + {'display':'Title','field':'index.unpunctitle.exact'} + ], + fieldOptions: [ + {'display':'Title','field':'index.title'}, + {'display':'Keywords','field':'bibjson.keywords'}, + {'display':'Classification','field':'index.classification'}, + {'display':'ISSN', 'field':'index.issn.exact'}, + {'display':'Country of publisher','field':'index.country'}, + {'display':'Journal language','field':'index.language'}, + {'display':'Publisher','field':'bibjson.publisher.name'}, + {'display':'Alternative Title','field':'bibjson.alternative_title'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search Applications assigned to you" + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - noResultsText: "

There are no applications assigned to you that meet the search criteria

" + - "

If you have not set any search criteria, this means there are no applications currently assigned to you

", - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre": "Date applied: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - valueFunction: doaj.fieldRender.issns - } - ], - [ - { - "pre" : "Application status: ", - valueFunction: doaj.fieldRender.applicationStatus - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Country of publisher: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "Journal license: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - valueFunction: doaj.fieldRender.readOnlyJournal({ - readOnlyJournalUrl : doaj.associateApplicationsSearchConfig.readOnlyJournalUrl - }) - }, - { - valueFunction: doaj.fieldRender.editSuggestion({ - editUrl : doaj.associateApplicationsSearchConfig.applicationEditUrl - }) - } - ] + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + noResultsText: "

There are no applications assigned to you that meet the search criteria

" + + "

If you have not set any search criteria, this means there are no applications currently assigned to you

", + rowDisplay : [ + [ + { + valueFunction: doaj.fieldRender.titleField + } + ], + [ + { + "pre": 'Alternative title: ', + "field": "bibjson.alternative_title", + "post": "" + } + ], + [ + { + "pre": "Date applied: ", + valueFunction: doaj.fieldRender.suggestedOn + } + ], + [ + { + "pre": "Last updated: ", + valueFunction: doaj.fieldRender.lastManualUpdate + } + ], + [ + { + valueFunction: doaj.fieldRender.issns + } + ], + [ + { + "pre" : "Application status: ", + valueFunction: doaj.fieldRender.applicationStatus + } + ], + [ + { + "pre": "Classification: ", + "field": "index.classification" + } + ], + [ + { + "pre": "Keywords: ", + "field": "bibjson.keywords" + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.publisher.name" + } + ], + [ + { + "pre": "Publication charges?: ", + valueFunction: doaj.fieldRender.authorPays + } + ], + [ + { + "pre": "Country of publisher: ", + valueFunction: doaj.fieldRender.countryName + } + ], + [ + { + "pre": "Journal language: ", + "field": "bibjson.language" + } + ], + [ + { + "pre": "Journal license: ", + valueFunction: doaj.fieldRender.journalLicense + } + ], + [ + { + valueFunction: doaj.fieldRender.links + } + ], + [ + { + valueFunction: doaj.fieldRender.readOnlyJournal({ + readOnlyJournalUrl : doaj.associateApplicationsSearchConfig.readOnlyJournalUrl + }) + }, + { + valueFunction: doaj.fieldRender.editSuggestion({ + editUrl : doaj.associateApplicationsSearchConfig.applicationEditUrl + }) + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'admin.application_status.exact': 'Status', - 'index.application_type.exact': "Record type", - 'index.classification.exact' : 'Classification', - 'index.language.exact' : 'Language', - 'index.country.exact' : 'Country', - 'index.subject.exact' : 'Subject', - 'bibjson.publisher.name.exact' : 'Publisher', - 'index.license.exact' : 'License', - "index.has_apc.exact" : "Charges?" - } + ] }) - ]; + }), - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "admin.date_applied", "order" : "asc"} - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + 'admin.application_status.exact': 'Status', + 'index.application_type.exact': "Record type", + 'index.classification.exact' : 'Classification', + 'index.language.exact' : 'Language', + 'index.country.exact' : 'Country', + 'index.subject.exact' : 'Subject', + 'bibjson.publisher.name.exact' : 'Publisher', + 'index.license.exact' : 'License', + "index.has_apc.exact" : "Charges?" } - }); - doaj.associateApplicationsSearch.activeEdges[selector] = e; - } - } -}); + }) + ]; + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + openingQuery : es.newQuery({ + sort: {"field" : "admin.date_applied", "order" : "asc"} + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.associateApplicationsSearch.activeEdges[selector] = e; + } +} jQuery(document).ready(function($) { doaj.associateApplicationsSearch.init(); diff --git a/portality/static/js/edges/associate.journals.edge.js b/portality/static/js/edges/associate.journals.edge.js index 782990f589..759adf26d3 100644 --- a/portality/static/js/edges/associate.journals.edge.js +++ b/portality/static/js/edges/associate.journals.edge.js @@ -1,352 +1,348 @@ -$.extend(true, doaj, { +doaj.associateJournalsSearch = { + activeEdges : {}, - associateJournalsSearch : { - activeEdges : {}, + init : function(params) { + if (!params) { params = {} } - init : function(params) { - if (!params) { params = {} } + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var selector = params.selector || "#associate_journals"; + var search_url = current_scheme + "//" + current_domain + doaj.associateJournalsSearchConfig.searchPath; - var selector = params.selector || "#associate_journals"; - var search_url = current_scheme + "//" + current_domain + doaj.associateJournalsSearchConfig.searchPath; + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var components = [ + doaj.components.searchingNotification(), - var components = [ - doaj.components.searchingNotification(), - - // facets - doaj.facets.inDOAJ(), - edges.newRefiningANDTermSelector({ - id: "owner", - category: "facet", - field: "admin.owner.exact", - display: "Owner", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_title", - category: "facet", - field: "index.title.exact", - display: "Journal title", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), + // facets + doaj.facets.inDOAJ(), + edges.newRefiningANDTermSelector({ + id: "owner", + category: "facet", + field: "admin.owner.exact", + display: "Owner", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "author_pays", + category: "facet", + field: "index.has_apc.exact", + display: "Publication charges?", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_license", + category: "facet", + field: "index.license.exact", + display: "Journal license", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "publisher", + category: "facet", + field: "bibjson.publisher.name.exact", + display: "Publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "classification", + category: "facet", + field: "index.classification.exact", + display: "Classification", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "subject", + category: "facet", + field: "index.subject.exact", + display: "Subject", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_language", + category: "facet", + field: "index.language.exact", + display: "Journal language", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "country_publisher", + category: "facet", + field: "index.country.exact", + display: "Country of publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_title", + category: "facet", + field: "index.title.exact", + display: "Journal title", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date added to DOAJ','field':'created_date'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'} - ], - fieldOptions: [ - {'display':'Owner','field':'admin.owner'}, - {'display':'Title','field':'index.title'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'}, - {'display':'Subject','field':'index.subject'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Journals assigned to you" - }) - }), + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Date added to DOAJ','field':'created_date'}, + {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) + {'display':'Title','field':'index.unpunctitle.exact'} + ], + fieldOptions: [ + {'display':'Owner','field':'admin.owner'}, + {'display':'Title','field':'index.title'}, + {'display':'Alternative Title','field':'bibjson.alternative_title'}, + {'display':'Subject','field':'index.subject'}, + {'display':'Classification','field':'index.classification'}, + {'display':'ISSN', 'field':'index.issn.exact'}, + {'display':'Country of publisher','field':'index.country'}, + {'display':'Journal language','field':'index.language'}, + {'display':'Publisher','field':'bibjson.publisher.name'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search Journals assigned to you" + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - noResultsText: "

There are no journals assigned to you that meet the search criteria

" + - "

If you have not set any search criteria, this means there are no journals currently assigned to you

", - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre" : "In DOAJ?: ", - valueFunction: doaj.fieldRender.inDoaj - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - valueFunction : doaj.fieldRender.issns - } - ], - [ - { - "pre": "Date added to DOAJ: ", - valueFunction: doaj.fieldRender.createdDateWithTime - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - "pre": "License: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Country: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Language: ", - "field": "bibjson.language" - } - ], - [ - { - valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.associateJournalsSearchConfig.journalEditUrl}) - } - ] + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + noResultsText: "

There are no journals assigned to you that meet the search criteria

" + + "

If you have not set any search criteria, this means there are no journals currently assigned to you

", + rowDisplay : [ + [ + { + valueFunction: doaj.fieldRender.titleField + } + ], + [ + { + "pre": 'Alternative title: ', + "field": "bibjson.alternative_title", + "post": "" + } + ], + [ + { + "pre" : "In DOAJ?: ", + valueFunction: doaj.fieldRender.inDoaj + } + ], + [ + { + "pre" : "Owner: ", + valueFunction: doaj.fieldRender.owner + } + ], + [ + { + valueFunction : doaj.fieldRender.issns + } + ], + [ + { + "pre": "Date added to DOAJ: ", + valueFunction: doaj.fieldRender.createdDateWithTime + } + ], + [ + { + "pre": "Last updated: ", + valueFunction: doaj.fieldRender.lastManualUpdate + } + ], + [ + { + valueFunction: doaj.fieldRender.links + } + ], + [ + { + "pre": "License: ", + valueFunction: doaj.fieldRender.journalLicense + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.publisher.name" + } + ], + [ + { + "pre": "Publication charges?: ", + valueFunction: doaj.fieldRender.authorPays + } + ], + [ + { + "pre": "Classification: ", + "field": "index.classification" + } + ], + [ + { + "pre": "Keywords: ", + "field": "bibjson.keywords" + } + ], + [ + { + "pre": "Country: ", + valueFunction: doaj.fieldRender.countryName + } + ], + [ + { + "pre": "Language: ", + "field": "bibjson.language" + } + ], + [ + { + valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.associateJournalsSearchConfig.journalEditUrl}) + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "admin.in_doaj" : "In DOAJ?", - "admin.owner.exact" : "Owner", - "index.license.exact" : "License", - "bibjson.publisher.name.exact" : "Publisher", - "index.classification.exact" : "Classification", - "index.subject.exact" : "Subject", - "index.language.exact" : "Language", - "index.country.exact" : "Country", - "index.title.exact" : "Title", - "index.has_apc.exact" : "Charges?" - }, - valueMaps : { - "admin.in_doaj" : { - true : "True", - false : "False" - } - } + ] }) - ]; + }), - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - sort: [{field: "created_date", order: "desc"}] - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "admin.in_doaj" : "In DOAJ?", + "admin.owner.exact" : "Owner", + "index.license.exact" : "License", + "bibjson.publisher.name.exact" : "Publisher", + "index.classification.exact" : "Classification", + "index.subject.exact" : "Subject", + "index.language.exact" : "Language", + "index.country.exact" : "Country", + "index.title.exact" : "Title", + "index.has_apc.exact" : "Charges?" + }, + valueMaps : { + "admin.in_doaj" : { + true : "True", + false : "False" } } - }); - doaj.associateJournalsSearch.activeEdges[selector] = e; - } - } -}); + }) + ]; + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + openingQuery: es.newQuery({ + sort: [{field: "created_date", order: "desc"}] + }), + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.associateJournalsSearch.activeEdges[selector] = e; + } +} jQuery(document).ready(function($) { doaj.associateJournalsSearch.init(); From 1d67879932da9c5e93d04403ffa7c5a5a2862aee Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:23:09 +0530 Subject: [PATCH 15/76] associate files moved from $.extend --- portality/static/js/edges/associate.journals.edge.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/portality/static/js/edges/associate.journals.edge.js b/portality/static/js/edges/associate.journals.edge.js index 759adf26d3..5a3863d8e4 100644 --- a/portality/static/js/edges/associate.journals.edge.js +++ b/portality/static/js/edges/associate.journals.edge.js @@ -343,7 +343,7 @@ doaj.associateJournalsSearch = { doaj.associateJournalsSearch.activeEdges[selector] = e; } } - + jQuery(document).ready(function($) { doaj.associateJournalsSearch.init(); }); From 522c905f1f3912cae32da9721e0881fe3cdb19fe Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:23:27 +0530 Subject: [PATCH 16/76] editor.groupapp files moved from $.extend --- .../js/edges/editor.groupapplications.edge.js | 777 +++++++++--------- 1 file changed, 387 insertions(+), 390 deletions(-) diff --git a/portality/static/js/edges/editor.groupapplications.edge.js b/portality/static/js/edges/editor.groupapplications.edge.js index 6e7e9f5578..9cfe20eea1 100644 --- a/portality/static/js/edges/editor.groupapplications.edge.js +++ b/portality/static/js/edges/editor.groupapplications.edge.js @@ -1,409 +1,406 @@ -$.extend(true, doaj, { +doaj.editorGroupApplicationsSearch = { + activeEdges : {}, - editorGroupApplicationsSearch : { - activeEdges : {}, - - editorStatusMap: function(value) { - if (doaj.valueMaps.applicationStatus.hasOwnProperty(value)) { - return doaj.valueMaps.applicationStatus[value]; - } - return value; - }, + editorStatusMap: function(value) { + if (doaj.valueMaps.applicationStatus.hasOwnProperty(value)) { + return doaj.valueMaps.applicationStatus[value]; + } + return value; + }, - init : function(params) { - if (!params) { params = {} } + init : function(params) { + if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var selector = params.selector || "#group_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.editorGroupApplicationsSearchConfig.searchPath; + var selector = params.selector || "#group_applications"; + var search_url = current_scheme + "//" + current_domain + doaj.editorGroupApplicationsSearchConfig.searchPath; - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var components = [ - doaj.components.searchingNotification(), + var components = [ + doaj.components.searchingNotification(), - // facets - doaj.facets.openOrClosed(), + // facets + doaj.facets.openOrClosed(), - edges.newRefiningANDTermSelector({ - id: "application_status", - category: "facet", - field: "admin.application_status.exact", - display: "Application Status", - deactivateThreshold: 1, - valueFunction : doaj.editorGroupApplicationsSearch.editorStatusMap, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - // edges.newRefiningANDTermSelector({ - // id: "application_type", - // category: "facet", - // field: "index.application_type.exact", - // display: "Record type", - // deactivateThreshold: 1, - // renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - // controls: true, - // open: false, - // togglable: true, - // countFormat: countFormat, - // hideInactive: true - // }) - // }), - edges.newRefiningANDTermSelector({ - id: "has_editor", - category: "facet", - field: "index.has_editor.exact", - display: "Has Associate Editor?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "editor_group", - category: "facet", - field: "admin.editor_group.exact", - display: "Editor Group", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "editor", - category: "facet", - field: "admin.editor.exact", - display: "Editor", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), + edges.newRefiningANDTermSelector({ + id: "application_status", + category: "facet", + field: "admin.application_status.exact", + display: "Application Status", + deactivateThreshold: 1, + valueFunction : doaj.editorGroupApplicationsSearch.editorStatusMap, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + // edges.newRefiningANDTermSelector({ + // id: "application_type", + // category: "facet", + // field: "index.application_type.exact", + // display: "Record type", + // deactivateThreshold: 1, + // renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + // controls: true, + // open: false, + // togglable: true, + // countFormat: countFormat, + // hideInactive: true + // }) + // }), + edges.newRefiningANDTermSelector({ + id: "has_editor", + category: "facet", + field: "index.has_editor.exact", + display: "Has Associate Editor?", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "editor_group", + category: "facet", + field: "admin.editor_group.exact", + display: "Editor Group", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "editor", + category: "facet", + field: "admin.editor.exact", + display: "Editor", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "author_pays", + category: "facet", + field: "index.has_apc.exact", + display: "Publication charges?", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "classification", + category: "facet", + field: "index.classification.exact", + display: "Classification", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "language", + category: "facet", + field: "index.language.exact", + display: "Journal language", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "country_publisher", + category: "facet", + field: "index.country.exact", + display: "Country of publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "subject", + category: "facet", + field: "index.subject.exact", + display: "Subject", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "publisher", + category: "facet", + field: "bibjson.publisher.name.exact", + display: "Publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_license", + category: "facet", + field: "index.license.exact", + display: "Journal license", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date applied','field':'admin.date_applied'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Applications in your Group(s)" - }) - }), + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Date applied','field':'admin.date_applied'}, + {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) + {'display':'Title','field':'index.unpunctitle.exact'} + ], + fieldOptions: [ + {'display':'Title','field':'index.title'}, + {'display':'Keywords','field':'bibjson.keywords'}, + {'display':'Classification','field':'index.classification'}, + {'display':'ISSN', 'field':'index.issn.exact'}, + {'display':'Country of publisher','field':'index.country'}, + {'display':'Journal language','field':'index.language'}, + {'display':'Publisher','field':'bibjson.publisher.name'}, + {'display':'Alternative Title','field':'bibjson.alternative_title'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search Applications in your Group(s)" + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - noResultsText: "

There are no applications for your editor group(s) that meet the search criteria

" + - "

If you have not set any search criteria, this means there are no applications currently allocated to your group

", - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre": "Date applied: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - valueFunction: doaj.fieldRender.issns - } - ], - [ - { - "pre" : "Application status: ", - valueFunction: doaj.fieldRender.applicationStatus - } - ], - [ - { - "pre" : "Editor Group: ", - "field" : "admin.editor_group" - } - ], - [ - { - "pre" : "Editor: ", - "field" : "admin.editor" - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Country of publisher: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "Journal license: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - valueFunction: doaj.fieldRender.readOnlyJournal({ - readOnlyJournalUrl : doaj.editorGroupApplicationsSearchConfig.readOnlyJournalUrl - }) - }, - { - valueFunction: doaj.fieldRender.editSuggestion({ - editUrl : doaj.editorGroupApplicationsSearchConfig.applicationEditUrl - }) - } - ] + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + noResultsText: "

There are no applications for your editor group(s) that meet the search criteria

" + + "

If you have not set any search criteria, this means there are no applications currently allocated to your group

", + rowDisplay : [ + [ + { + valueFunction: doaj.fieldRender.titleField + } + ], + [ + { + "pre": 'Alternative title: ', + "field": "bibjson.alternative_title", + "post": "" + } + ], + [ + { + "pre": "Date applied: ", + valueFunction: doaj.fieldRender.suggestedOn + } + ], + [ + { + "pre": "Last updated: ", + valueFunction: doaj.fieldRender.lastManualUpdate + } + ], + [ + { + valueFunction: doaj.fieldRender.issns + } + ], + [ + { + "pre" : "Application status: ", + valueFunction: doaj.fieldRender.applicationStatus + } + ], + [ + { + "pre" : "Editor Group: ", + "field" : "admin.editor_group" + } + ], + [ + { + "pre" : "Editor: ", + "field" : "admin.editor" + } + ], + [ + { + "pre": "Classification: ", + "field": "index.classification" + } + ], + [ + { + "pre": "Keywords: ", + "field": "bibjson.keywords" + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.publisher.name" + } + ], + [ + { + "pre": "Publication charges?: ", + valueFunction: doaj.fieldRender.authorPays + } + ], + [ + { + "pre": "Country of publisher: ", + valueFunction: doaj.fieldRender.countryName + } + ], + [ + { + "pre": "Journal language: ", + "field": "bibjson.language" + } + ], + [ + { + "pre": "Journal license: ", + valueFunction: doaj.fieldRender.journalLicense + } + ], + [ + { + valueFunction: doaj.fieldRender.links + } + ], + [ + { + valueFunction: doaj.fieldRender.readOnlyJournal({ + readOnlyJournalUrl : doaj.editorGroupApplicationsSearchConfig.readOnlyJournalUrl + }) + }, + { + valueFunction: doaj.fieldRender.editSuggestion({ + editUrl : doaj.editorGroupApplicationsSearchConfig.applicationEditUrl + }) + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'admin.application_status.exact': 'Application Status', - 'index.application_type.exact' : 'Record type', - 'index.has_editor.exact' : 'Has Associate Editor?', - 'admin.editor_group.exact' : 'Editor Group', - 'admin.editor.exact' : 'Editor', - 'index.classification.exact' : 'Classification', - 'index.language.exact' : 'Journal language', - 'index.country.exact' : 'Country of publisher', - 'index.subject.exact' : 'Subject', - 'bibjson.publisher.name.exact' : 'Publisher', - 'index.license.exact' : 'Journal license', - "index.has_apc.exact" : "Publication charges?" - } + ] }) - ]; + }), - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "admin.date_applied", "order" : "asc"} - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + 'admin.application_status.exact': 'Application Status', + 'index.application_type.exact' : 'Record type', + 'index.has_editor.exact' : 'Has Associate Editor?', + 'admin.editor_group.exact' : 'Editor Group', + 'admin.editor.exact' : 'Editor', + 'index.classification.exact' : 'Classification', + 'index.language.exact' : 'Journal language', + 'index.country.exact' : 'Country of publisher', + 'index.subject.exact' : 'Subject', + 'bibjson.publisher.name.exact' : 'Publisher', + 'index.license.exact' : 'Journal license', + "index.has_apc.exact" : "Publication charges?" } - }); - doaj.editorGroupApplicationsSearch.activeEdges[selector] = e; - } + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + openingQuery : es.newQuery({ + sort: {"field" : "admin.date_applied", "order" : "asc"} + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.editorGroupApplicationsSearch.activeEdges[selector] = e; } -}); +} jQuery(document).ready(function($) { From 8f5bad719229f13da4077fb34a978063b3a1d79c Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:24:52 +0530 Subject: [PATCH 17/76] editor.groupjournal files moved from $.extend --- .../js/edges/editor.groupjournals.edge.js | 776 +++++++++--------- 1 file changed, 386 insertions(+), 390 deletions(-) diff --git a/portality/static/js/edges/editor.groupjournals.edge.js b/portality/static/js/edges/editor.groupjournals.edge.js index 277c9b02c4..6f503ffd7d 100644 --- a/portality/static/js/edges/editor.groupjournals.edge.js +++ b/portality/static/js/edges/editor.groupjournals.edge.js @@ -1,409 +1,405 @@ -$.extend(true, doaj, { +doaj.editorGroupJournalsSearch = { + activeEdges : {}, - editorGroupJournalsSearch : { - activeEdges : {}, + init : function(params) { + if (!params) { params = {} } - init : function(params) { - if (!params) { params = {} } + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var selector = params.selector || "#group_journals"; + var search_url = current_scheme + "//" + current_domain + doaj.editorGroupJournalsSearchConfig.searchPath; - var selector = params.selector || "#group_journals"; - var search_url = current_scheme + "//" + current_domain + doaj.editorGroupJournalsSearchConfig.searchPath; + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var components = [ + doaj.components.searchingNotification(), - var components = [ - doaj.components.searchingNotification(), - - // facets - doaj.facets.inDOAJ(), - edges.newRefiningANDTermSelector({ - id: "owner", - category: "facet", - field: "admin.owner.exact", - display: "Owner", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "has_associate_editor", - category: "facet", - field: "index.has_editor.exact", - display: "Has Associate Editor?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "editor_group", - category: "facet", - field: "admin.editor_group.exact", - display: "Editor Group", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "associate_editor", - category: "facet", - field: "admin.editor.exact", - display: "Associate Editor", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_title", - category: "facet", - field: "index.title.exact", - display: "Journal title", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), + // facets + doaj.facets.inDOAJ(), + edges.newRefiningANDTermSelector({ + id: "owner", + category: "facet", + field: "admin.owner.exact", + display: "Owner", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "has_associate_editor", + category: "facet", + field: "index.has_editor.exact", + display: "Has Associate Editor?", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "editor_group", + category: "facet", + field: "admin.editor_group.exact", + display: "Editor Group", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "associate_editor", + category: "facet", + field: "admin.editor.exact", + display: "Associate Editor", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "author_pays", + category: "facet", + field: "index.has_apc.exact", + display: "Publication charges?", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_license", + category: "facet", + field: "index.license.exact", + display: "Journal license", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "publisher", + category: "facet", + field: "bibjson.publisher.name.exact", + display: "Publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "classification", + category: "facet", + field: "index.classification.exact", + display: "Classification", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "subject", + category: "facet", + field: "index.subject.exact", + display: "Subject", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_language", + category: "facet", + field: "index.language.exact", + display: "Journal language", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "country_publisher", + category: "facet", + field: "index.country.exact", + display: "Country of publisher", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), + edges.newRefiningANDTermSelector({ + id: "journal_title", + category: "facet", + field: "index.title.exact", + display: "Journal title", + deactivateThreshold: 1, + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true + }) + }), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date added to DOAJ','field':'created_date'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'} - ], - fieldOptions: [ - {'display':'Owner','field':'admin.owner'}, - {'display':'Title','field':'index.title'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'}, - {'display':'Subject','field':'index.subject'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Journals in your Group(s)" - }) - }), + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: [ + {'display':'Date added to DOAJ','field':'created_date'}, + {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) + {'display':'Title','field':'index.unpunctitle.exact'} + ], + fieldOptions: [ + {'display':'Owner','field':'admin.owner'}, + {'display':'Title','field':'index.title'}, + {'display':'Alternative Title','field':'bibjson.alternative_title'}, + {'display':'Subject','field':'index.subject'}, + {'display':'Classification','field':'index.classification'}, + {'display':'ISSN', 'field':'index.issn.exact'}, + {'display':'Country of publisher','field':'index.country'}, + {'display':'Journal language','field':'index.language'}, + {'display':'Publisher','field':'bibjson.publisher.name'} + ], + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search Journals in your Group(s)" + }) + }), - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: [10, 25, 50, 100], + numberFormat: countFormat, + scroll: false + }) + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newResultsFieldsByRowRenderer({ - noResultsText: "

There are no journals for your editor group(s) that meet the search criteria

" + - "

If you have not set any search criteria, this means there are no journals currently allocated to your group

", - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre" : "In DOAJ?: ", - valueFunction: doaj.fieldRender.inDoaj - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - "pre" : "Editor Group: ", - "field" : "admin.editor_group" - } - ], - [ - { - "pre" : "Editor: ", - "field" : "admin.editor" - } - ], - [ - { - valueFunction : doaj.fieldRender.issns - } - ], - [ - { - "pre": "Date added to DOAJ: ", - valueFunction: doaj.fieldRender.createdDateWithTime - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - "pre": "License: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Country: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Language: ", - "field": "bibjson.language" - } - ], - [ - { - valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.editorGroupJournalsSearchConfig.journalEditUrl}) - } - ] + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newResultsFieldsByRowRenderer({ + noResultsText: "

There are no journals for your editor group(s) that meet the search criteria

" + + "

If you have not set any search criteria, this means there are no journals currently allocated to your group

", + rowDisplay : [ + [ + { + valueFunction: doaj.fieldRender.titleField + } + ], + [ + { + "pre": 'Alternative title: ', + "field": "bibjson.alternative_title", + "post": "" + } + ], + [ + { + "pre" : "In DOAJ?: ", + valueFunction: doaj.fieldRender.inDoaj + } + ], + [ + { + "pre" : "Owner: ", + valueFunction: doaj.fieldRender.owner + } + ], + [ + { + "pre" : "Editor Group: ", + "field" : "admin.editor_group" + } + ], + [ + { + "pre" : "Editor: ", + "field" : "admin.editor" + } + ], + [ + { + valueFunction : doaj.fieldRender.issns + } + ], + [ + { + "pre": "Date added to DOAJ: ", + valueFunction: doaj.fieldRender.createdDateWithTime + } + ], + [ + { + "pre": "Last updated: ", + valueFunction: doaj.fieldRender.lastManualUpdate + } + ], + [ + { + valueFunction: doaj.fieldRender.links + } + ], + [ + { + "pre": "License: ", + valueFunction: doaj.fieldRender.journalLicense + } + ], + [ + { + "pre": "Publisher: ", + "field": "bibjson.publisher.name" + } + ], + [ + { + "pre": "Publication charges?: ", + valueFunction: doaj.fieldRender.authorPays + } + ], + [ + { + "pre": "Classification: ", + "field": "index.classification" + } + ], + [ + { + "pre": "Keywords: ", + "field": "bibjson.keywords" + } + ], + [ + { + "pre": "Country: ", + valueFunction: doaj.fieldRender.countryName + } + ], + [ + { + "pre": "Language: ", + "field": "bibjson.language" + } + ], + [ + { + valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.editorGroupJournalsSearchConfig.journalEditUrl}) + } ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "admin.in_doaj" : "In DOAJ?", - "admin.owner.exact" : "Owner", - "index.has_editor.exact" : "Associate Editor?", - "admin.editor_group.exact" : "Editor group", - "admin.editor.exact" : "Associate Editor", - "index.license.exact" : "License", - "bibjson.publisher.name.exact" : "Publisher", - "index.classification.exact" : "Classification", - "index.subject.exact" : "Subject", - "index.language.exact" : "Language", - "index.country.exact" : "Country", - "index.title.exact" : "Title", - "index.has_apc.exact" : "Charges?" - }, - valueMaps : { - "admin.in_doaj" : { - true : "True", - false : "False" - } - } + ] }) - ]; + }), - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - sort: [{field: "created_date", order: "desc"}] - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + "admin.in_doaj" : "In DOAJ?", + "admin.owner.exact" : "Owner", + "index.has_editor.exact" : "Associate Editor?", + "admin.editor_group.exact" : "Editor group", + "admin.editor.exact" : "Associate Editor", + "index.license.exact" : "License", + "bibjson.publisher.name.exact" : "Publisher", + "index.classification.exact" : "Classification", + "index.subject.exact" : "Subject", + "index.language.exact" : "Language", + "index.country.exact" : "Country", + "index.title.exact" : "Title", + "index.has_apc.exact" : "Charges?" + }, + valueMaps : { + "admin.in_doaj" : { + true : "True", + false : "False" } } - }); - doaj.editorGroupJournalsSearch.activeEdges[selector] = e; - } - } -}); + }) + ]; + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + openingQuery: es.newQuery({ + sort: [{field: "created_date", order: "desc"}] + }), + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + } + } + }); + doaj.editorGroupJournalsSearch.activeEdges[selector] = e; + } +} jQuery(document).ready(function($) { doaj.editorGroupJournalsSearch.init(); From 6005f5aa7ce16c5f205773d501181f4841242829 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:36:07 +0530 Subject: [PATCH 18/76] notification moved from $.extend --- .../static/js/edges/notifications.edge.js | 454 +++++++++--------- 1 file changed, 225 insertions(+), 229 deletions(-) diff --git a/portality/static/js/edges/notifications.edge.js b/portality/static/js/edges/notifications.edge.js index 0b70fe52f1..8fac91f58c 100644 --- a/portality/static/js/edges/notifications.edge.js +++ b/portality/static/js/edges/notifications.edge.js @@ -2,255 +2,251 @@ // ~~-> Notifications:Model ~~ // ~~-> Elasticsearch:Technology ~~ // ~~-> Notifications:Feature ~~ -$.extend(true, doaj, { +doaj.notificationsSearch = { + activeEdges: {}, - notificationsSearch: { - activeEdges: {}, + seen_url: "/dashboard/notifications/{notification_id}/seen", - seen_url: "/dashboard/notifications/{notification_id}/seen", - - icons: { - alert: ` - - - `, - finished: ` - - - `, - status_change: ` - - `, - assign: ` - - - `, - unknown: ` - - + icons: { + alert: ` + + `, - seen: ` - - `, - unseen: ` - - ` - }, - - classifications: { - alert: "Requires attention", - finished: "Task has completed", - status_change: "Application status change", - assign: "Assigned to user" - }, - - init: function (params) { - if (!params) { params = {} } - - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - - var selector = params.selector || "#notifications"; - var search_url = current_scheme + "//" + current_domain + doaj.notificationsSearchConfig.searchPath; - - var components = [ - doaj.components.searchingNotification(), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Notifications", - clearButton: false - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - doaj.components.pager("top-pager", "top-pager"), - doaj.components.pager("bottom-pager", "bottom-pager"), - - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: doaj.notificationsSearch.newNotificationResultRenderer() - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: {} + finished: ` + + + `, + status_change: ` + + `, + assign: ` + + + `, + unknown: ` + + + `, + seen: ` + + `, + unseen: ` + + ` + }, + + classifications: { + alert: "Requires attention", + finished: "Task has completed", + status_change: "Application status change", + assign: "Assigned to user" + }, + + init: function (params) { + if (!params) { params = {} } + + var current_domain = document.location.host; + var current_scheme = window.location.protocol; + + var selector = params.selector || "#notifications"; + var search_url = current_scheme + "//" + current_domain + doaj.notificationsSearchConfig.searchPath; + + var components = [ + doaj.components.searchingNotification(), + + // configure the search controller + edges.newFullSearchController({ + id: "search-controller", + category: "controller", + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: "Search All Notifications", + clearButton: false }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: false, - openingQuery : es.newQuery({ - sort: {"field" : "created_date", "order" : "desc"}, - size: 25 - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - }, - "edges:post-render": function() { - $(".notification_action_button").on("click", doaj.notifications.notificationClicked); - } + }), + + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + doaj.components.pager("top-pager", "top-pager"), + doaj.components.pager("bottom-pager", "bottom-pager"), + + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: doaj.notificationsSearch.newNotificationResultRenderer() + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: {} + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: false, + openingQuery : es.newQuery({ + sort: {"field" : "created_date", "order" : "desc"}, + size: 25 + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + }, + "edges:post-render": function() { + $(".notification_action_button").on("click", doaj.notifications.notificationClicked); } - }); - doaj.notificationsSearch.activeEdges[selector] = e; - }, - - newNotificationResultRenderer : function(params) { - return edges.instantiate(doaj.notificationsSearch.NotificationResultRenderer, params, edges.newRenderer); - }, - NotificationResultRenderer : function(params) { - this.namespace = "doaj-notifications-search"; - - this.currentQueryString = ""; - - this.markdownConverter = new showdown.Converter({ - literalMidWordUnderscores: true - }); - - this.actionClass = false; - this.markAsSeenClass = false; - this.seenStatusSpan = false; - - this.draw = function () { - if (this.component.edge.currentQuery){ - let qs = this.component.edge.currentQuery.getQueryString(); - if (qs) { - this.currentQueryString = qs.queryString || ""; - } - } - var frag = "
  • You searched for ‘"; - frag += edges.escapeHtml(this.currentQueryString); - frag += "’ and we found no results.

    "; - frag += "

    Please try the following:

      \ -
    • Check the spelling and make sure that there are no missing characters.
    • \ -
    • Use fewer words in your search to make the search less specific.
    • \ -
    • Remove some of the filters you have set.
    • \ -
    • Do your search again in English as much of the index uses English terms.
    • \ -
  • \ - "; - - if (this.component.results === false) { - frag = ""; + } + }); + doaj.notificationsSearch.activeEdges[selector] = e; + }, + + newNotificationResultRenderer : function(params) { + return edges.instantiate(doaj.notificationsSearch.NotificationResultRenderer, params, edges.newRenderer); + }, + NotificationResultRenderer : function(params) { + this.namespace = "doaj-notifications-search"; + + this.currentQueryString = ""; + + this.markdownConverter = new showdown.Converter({ + literalMidWordUnderscores: true + }); + + this.actionClass = false; + this.markAsSeenClass = false; + this.seenStatusSpan = false; + + this.draw = function () { + if (this.component.edge.currentQuery){ + let qs = this.component.edge.currentQuery.getQueryString(); + if (qs) { + this.currentQueryString = qs.queryString || ""; } + } + var frag = "
  • You searched for ‘"; + frag += edges.escapeHtml(this.currentQueryString); + frag += "’ and we found no results.

    "; + frag += "

    Please try the following:

      \ +
    • Check the spelling and make sure that there are no missing characters.
    • \ +
    • Use fewer words in your search to make the search less specific.
    • \ +
    • Remove some of the filters you have set.
    • \ +
    • Do your search again in English as much of the index uses English terms.
    • \ +
  • \ + "; + + if (this.component.results === false) { + frag = ""; + } + + this.actionClass = edges.css_classes(this.namespace, "action", this); + this.markAsSeenClass = edges.css_classes(this.namespace, "seen", this); + this.seenStatusSpan = edges.css_classes(this.namespace, "seen_status", this); - this.actionClass = edges.css_classes(this.namespace, "action", this); - this.markAsSeenClass = edges.css_classes(this.namespace, "seen", this); - this.seenStatusSpan = edges.css_classes(this.namespace, "seen_status", this); - - var results = this.component.results; - if (results && results.length > 0) { - // now call the result renderer on each result to build the records - frag = ""; - for (var i = 0; i < results.length; i++) { - frag += this._renderResult(results[i]); - } + var results = this.component.results; + if (results && results.length > 0) { + // now call the result renderer on each result to build the records + frag = ""; + for (var i = 0; i < results.length; i++) { + frag += this._renderResult(results[i]); } + } - this.component.context.html(frag); - feather.replace(); + this.component.context.html(frag); + feather.replace(); - let actionSelector = edges.css_class_selector(this.namespace, "action", this); - edges.on(actionSelector, "click", this, "markAsSeen", false, false, false); + let actionSelector = edges.css_class_selector(this.namespace, "action", this); + edges.on(actionSelector, "click", this, "markAsSeen", false, false, false); - let markAsSeenSelector = edges.css_class_selector(this.namespace, "seen", this); - edges.on(markAsSeenSelector, "click", this, "markAsSeen") - }; + let markAsSeenSelector = edges.css_class_selector(this.namespace, "seen", this); + edges.on(markAsSeenSelector, "click", this, "markAsSeen") + }; - this._renderResult = function(notification) { - let seen_icon = this._seenIcon(notification.seen_date); + this._renderResult = function(notification) { + let seen_icon = this._seenIcon(notification.seen_date); - let typeIcon = doaj.notificationsSearch.icons[notification.classification]; - if (!typeIcon) { - typeIcon = doaj.notificationsSearch.icons.unknown; - } + let typeIcon = doaj.notificationsSearch.icons[notification.classification]; + if (!typeIcon) { + typeIcon = doaj.notificationsSearch.icons.unknown; + } - let typeTitle = doaj.notificationsSearch.classifications[notification.classification]; - if (!typeTitle) { - typeTitle = "Notification"; - } + let typeTitle = doaj.notificationsSearch.classifications[notification.classification]; + if (!typeTitle) { + typeTitle = "Notification"; + } - let actionFrag = `No action required` - if (notification.action) { - actionFrag = `See action`; - } else { - if (!notification.seen_date) { - actionFrag += `
    Mark as seen`; - } + let actionFrag = `No action required` + if (notification.action) { + actionFrag = `See action`; + } else { + if (!notification.seen_date) { + actionFrag += `
    Mark as seen`; } - - var body = this.markdownConverter.makeHtml(notification.long); - - var frag = `
    -
    -
    - ${seen_icon} ${typeIcon} -
    -
    -
    -

    ${notification.short}

    -
    -
    - ${body} -
    -
    -
    - - `; - - return frag; - }; - - this._seenIcon = function(seen_date) { - let seenIcon = seen_date ? doaj.notificationsSearch.icons.seen : doaj.notificationsSearch.icons.unseen; - let seenTitle = seen_date ? `Read on ${doaj.dates.humanDate(seen_date)}` : "Unread" - let frag = `${seenIcon}`; - return frag; } - this.markAsSeen = function(element) { - let notificationId = $(element).attr("data-notification-id"); - $.ajax({ - method: "post", - url: doaj.notificationsSearch.seen_url.replace("{notification_id}", notificationId), - contentType: "application/json", - dataType: "jsonp" - }); - let frag = this._seenIcon((new Date()).toString()) - - let row = $(`div[data-notification-id=${notificationId}]`); - - let seenSelector = edges.css_class_selector(this.namespace, "seen_status", this); - let icon = row.find(seenSelector); - icon.html(frag); - - let markSelector = edges.css_class_selector(this.namespace, "seen", this); - row.find(markSelector).remove(); - }; + var body = this.markdownConverter.makeHtml(notification.long); + + var frag = `
    +
    +
    + ${seen_icon} ${typeIcon} +
    +
    +
    +

    ${notification.short}

    +
    +
    + ${body} +
    +
    +
    + + `; + + return frag; + }; + + this._seenIcon = function(seen_date) { + let seenIcon = seen_date ? doaj.notificationsSearch.icons.seen : doaj.notificationsSearch.icons.unseen; + let seenTitle = seen_date ? `Read on ${doaj.dates.humanDate(seen_date)}` : "Unread" + let frag = `${seenIcon}`; + return frag; } - } -}); + this.markAsSeen = function(element) { + let notificationId = $(element).attr("data-notification-id"); + $.ajax({ + method: "post", + url: doaj.notificationsSearch.seen_url.replace("{notification_id}", notificationId), + contentType: "application/json", + dataType: "jsonp" + }); + let frag = this._seenIcon((new Date()).toString()) + + let row = $(`div[data-notification-id=${notificationId}]`); + + let seenSelector = edges.css_class_selector(this.namespace, "seen_status", this); + let icon = row.find(seenSelector); + icon.html(frag); + + let markSelector = edges.css_class_selector(this.namespace, "seen", this); + row.find(markSelector).remove(); + }; + } +} jQuery(document).ready(function($) { doaj.notificationsSearch.init(); From ac07fff22ee9881134a9d2e3391d444c37d98f49 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:37:47 +0530 Subject: [PATCH 19/76] public.article is moved from $.extend --- .../static/js/edges/public.article.edge.js | 432 +++++++++--------- 1 file changed, 214 insertions(+), 218 deletions(-) diff --git a/portality/static/js/edges/public.article.edge.js b/portality/static/js/edges/public.article.edge.js index bb7157194f..d0acc2c329 100644 --- a/portality/static/js/edges/public.article.edge.js +++ b/portality/static/js/edges/public.article.edge.js @@ -1,229 +1,225 @@ -$.extend(true, doaj, { +doaj.publicSearch = { + activeEdges : {}, - publicSearch : { - activeEdges : {}, - - embedSnippet : function(renderer) { - var snip = `
    `; - var query = renderer.component.edge.cloneQuery(); - query.addMust(es.newTermFilter({field: "_type", value: "article"})) - query = query.objectify({ - include_query_string : true, - include_filters : true, - include_paging : true, - include_sort : true, - include_fields : false, - include_aggregations : false - }); - snip = snip.replace(/{{QUERY}}/g, JSON.stringify(query)); - return snip; - }, - - init : function(params) { - if (!params) { params = {} } - - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - - var selector = params.selector || "#public-article-search"; - var search_url = current_scheme + "//" + current_domain + doaj.publicSearchConfig.publicSearchPath; - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - edges.newFullSearchController({ - id: "search-input-bar", - category: "controller", - fieldOptions : [ - {'display':'Title','field':'bibjson.title'}, - {'display':'Abstract','field':'bibjson.abstract'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Subject','field':'index.classification'}, - {'display':'Author','field':'bibjson.author.name'}, - {'display':'ORCID','field':'bibjson.author.orcid_id'}, - {'display':'DOI', 'field' : 'bibjson.identifier.id'}, - {'display':'Language','field':'index.language'} - ], - defaultOperator : "AND", - renderer : doaj.renderers.newSearchBarRenderer({ - freetextSubmitDelay: -1, - clearButton: false, - searchButton: true, - searchPlaceholder: "", - }) - }), - - edges.newPager({ - id: "result-count", - category: "pager", - renderer : edges.bs3.newResultCountRenderer({ - countFormat: countFormat, - suffix: " indexed articles", - htmlContainerWrapper: false - }) - }), - - // Subject Browser - /////////////////////////////////// - doaj.components.subjectBrowser({ - tree: doaj.publicSearchConfig.lccTree - }), - - edges.newORTermSelector({ - id: "journals", - category: "facet", - field: "bibjson.journal.title.exact", - display: "Journals", - size: 100, - syncCounts: false, - lifecycle: "update", - updateType: "fresh", - orderBy: "count", - orderDir: "desc", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: true, - open: false, - togglable: true - }) - }), - - edges.newDateHistogramSelector({ - id : "year_published", - category: "facet", - field: "index.date", - interval: "year", - display: "Year of publication", - displayFormatter : function(val) { - return (new Date(parseInt(val))).getUTCFullYear(); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer : doaj.renderers.newDateHistogramSelectorRenderer({ - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: false, - hideEmpty: true - }) - }), - - edges.newFullSearchController({ - id: "share_embed", - category: "controller", - urlShortener : doaj.doajUrlShortener, - embedSnippet : doaj.publicSearch.embedSnippet, - renderer: doaj.renderers.newShareEmbedRenderer({ - shareLinkText: ' Share or embed' - }) - }), - - edges.newFullSearchController({ - id: "sort_by", - category: "controller", - sortOptions : [ - {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, - {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, - {'display':'Publication date (most recent first)','field':'index.date', "dir" : "desc"}, - {'display':'Publication date (less recent first)','field':'index.date', "dir" : "asc"}, - {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, - {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, - {'display':'Relevance','field':'_score'} - ], - renderer: doaj.renderers.newSortRenderer({ - prefix: "Sort by", - dirSwitcher: false - }) - }), - - edges.newPager({ - id: "rpp", - category: "pager", - renderer : doaj.renderers.newPageSizeRenderer({ - sizeOptions: [50, 100, 200], - sizeLabel: "Results per page" - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays : { - "index.schema_codes_tree.exact" : "Subject", - "bibjson.journal.title.exact" : "Journal", - "index.date" : "Year of publication" - }, - rangeFunctions : { - "index.date" : doaj.valueMaps.displayYearPeriod - }, - valueFunctions : { - "index.schema_codes_tree.exact" : doaj.valueMaps.schemaCodeToNameClosure(doaj.publicSearchConfig.lccTree) - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({}) - }), - - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) - }), - - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer : doaj.renderers.newPublicSearchResultRenderer() - }), - - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) + var query = renderer.component.edge.cloneQuery(); + query.addMust(es.newTermFilter({field: "_type", value: "article"})) + query = query.objectify({ + include_query_string : true, + include_filters : true, + include_paging : true, + include_sort : true, + include_fields : false, + include_aggregations : false + }); + snip = snip.replace(/{{QUERY}}/g, JSON.stringify(query)); + return snip; + }, + + init : function(params) { + if (!params) { params = {} } + + var current_domain = document.location.host; + var current_scheme = window.location.protocol; + + var selector = params.selector || "#public-article-search"; + var search_url = current_scheme + "//" + current_domain + doaj.publicSearchConfig.publicSearchPath; + + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); + + var components = [ + doaj.components.searchingNotification(), + + edges.newFullSearchController({ + id: "search-input-bar", + category: "controller", + fieldOptions : [ + {'display':'Title','field':'bibjson.title'}, + {'display':'Abstract','field':'bibjson.abstract'}, + {'display':'Keywords','field':'bibjson.keywords'}, + {'display':'Subject','field':'index.classification'}, + {'display':'Author','field':'bibjson.author.name'}, + {'display':'ORCID','field':'bibjson.author.orcid_id'}, + {'display':'DOI', 'field' : 'bibjson.identifier.id'}, + {'display':'Language','field':'index.language'} + ], + defaultOperator : "AND", + renderer : doaj.renderers.newSearchBarRenderer({ + freetextSubmitDelay: -1, + clearButton: false, + searchButton: true, + searchPlaceholder: "", + }) + }), + + edges.newPager({ + id: "result-count", + category: "pager", + renderer : edges.bs3.newResultCountRenderer({ + countFormat: countFormat, + suffix: " indexed articles", + htmlContainerWrapper: false + }) + }), + + // Subject Browser + /////////////////////////////////// + doaj.components.subjectBrowser({ + tree: doaj.publicSearchConfig.lccTree + }), + + edges.newORTermSelector({ + id: "journals", + category: "facet", + field: "bibjson.journal.title.exact", + display: "Journals", + size: 100, + syncCounts: false, + lifecycle: "update", + updateType: "fresh", + orderBy: "count", + orderDir: "desc", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: true, + open: false, + togglable: true + }) + }), + + edges.newDateHistogramSelector({ + id : "year_published", + category: "facet", + field: "index.date", + interval: "year", + display: "Year of publication", + displayFormatter : function(val) { + return (new Date(parseInt(val))).getUTCFullYear(); + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer : doaj.renderers.newDateHistogramSelectorRenderer({ + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: false, + hideEmpty: true + }) + }), + + edges.newFullSearchController({ + id: "share_embed", + category: "controller", + urlShortener : doaj.doajUrlShortener, + embedSnippet : doaj.publicSearch.embedSnippet, + renderer: doaj.renderers.newShareEmbedRenderer({ + shareLinkText: ' Share or embed' + }) + }), + + edges.newFullSearchController({ + id: "sort_by", + category: "controller", + sortOptions : [ + {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, + {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, + {'display':'Publication date (most recent first)','field':'index.date', "dir" : "desc"}, + {'display':'Publication date (less recent first)','field':'index.date', "dir" : "asc"}, + {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, + {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, + {'display':'Relevance','field':'_score'} + ], + renderer: doaj.renderers.newSortRenderer({ + prefix: "Sort by", + dirSwitcher: false }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: doaj.templates.newPublicSearch({ - title: "Articles" - }), - search_url: search_url, - manageUrl : true, - openingQuery: es.newQuery({ - sort: [{"field" : "created_date", "order" : "desc"}], - size: 50 - }), - components : components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); - }, - "edges:post-init" : function() { - feather.replace(); - } + }), + + edges.newPager({ + id: "rpp", + category: "pager", + renderer : doaj.renderers.newPageSizeRenderer({ + sizeOptions: [50, 100, 200], + sizeLabel: "Results per page" + }) + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays : { + "index.schema_codes_tree.exact" : "Subject", + "bibjson.journal.title.exact" : "Journal", + "index.date" : "Year of publication" + }, + rangeFunctions : { + "index.date" : doaj.valueMaps.displayYearPeriod + }, + valueFunctions : { + "index.schema_codes_tree.exact" : doaj.valueMaps.schemaCodeToNameClosure(doaj.publicSearchConfig.lccTree) + }, + renderer : doaj.renderers.newSelectedFiltersRenderer({}) + }), + + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat + }) + }), + + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer : doaj.renderers.newPublicSearchResultRenderer() + }), + + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat + }) + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: doaj.templates.newPublicSearch({ + title: "Articles" + }), + search_url: search_url, + manageUrl : true, + openingQuery: es.newQuery({ + sort: [{"field" : "created_date", "order" : "desc"}], + size: 50 + }), + components : components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); + }, + "edges:post-init" : function() { + feather.replace(); } - }); - doaj.publicSearch.activeEdges[selector] = e; - } + } + }); + doaj.publicSearch.activeEdges[selector] = e; } - -}); +} jQuery(document).ready(function($) { doaj.publicSearch.init(); From 59e063fbd79ce6fed0efff28bf6844285b03b0d9 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:44:14 +0530 Subject: [PATCH 20/76] public.journal is moved from $.extend --- .../static/js/edges/public.journal.edge.js | 624 +++++++++--------- 1 file changed, 310 insertions(+), 314 deletions(-) diff --git a/portality/static/js/edges/public.journal.edge.js b/portality/static/js/edges/public.journal.edge.js index 42a9f7e874..8741a62e21 100644 --- a/portality/static/js/edges/public.journal.edge.js +++ b/portality/static/js/edges/public.journal.edge.js @@ -1,349 +1,345 @@ -$.extend(true, doaj, { +doaj.publicSearch = { + activeEdges : {}, - publicSearch : { - activeEdges : {}, - - embedSnippet : function(renderer) { - var snip = + embedSnippet : function(renderer) { + var snip = `
    `; - var query = renderer.component.edge.cloneQuery(); - query.addMust(es.newTermFilter({field: "_type", value: "journal"})) - query = query.objectify({ - include_query_string : true, - include_filters : true, - include_paging : true, - include_sort : true, - include_fields : false, - include_aggregations : false - }); - snip = snip.replace(/{{QUERY}}/g, JSON.stringify(query)); - return snip; - }, + var query = renderer.component.edge.cloneQuery(); + query.addMust(es.newTermFilter({field: "_type", value: "journal"})) + query = query.objectify({ + include_query_string : true, + include_filters : true, + include_paging : true, + include_sort : true, + include_fields : false, + include_aggregations : false + }); + snip = snip.replace(/{{QUERY}}/g, JSON.stringify(query)); + return snip; + }, - init : function(params) { - if (!params) { params = {} } + init : function(params) { + if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var selector = params.selector || "#public-journal-search"; - var search_url = current_scheme + "//" + current_domain + doaj.publicSearchConfig.publicSearchPath; + var selector = params.selector || "#public-journal-search"; + var search_url = current_scheme + "//" + current_domain + doaj.publicSearchConfig.publicSearchPath; - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var components = [ - doaj.components.searchingNotification(), - edges.newFullSearchController({ - id: "search-input-bar", - category: "controller", - fieldOptions : [ - {'display':'Title','field':'bibjson.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Subject','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'} - ], - defaultOperator : "AND", - renderer : doaj.renderers.newSearchBarRenderer({ - freetextSubmitDelay: -1, - clearButton: false, - searchButton: true, - searchPlaceholder: "", - }) - }), + var components = [ + doaj.components.searchingNotification(), + edges.newFullSearchController({ + id: "search-input-bar", + category: "controller", + fieldOptions : [ + {'display':'Title','field':'bibjson.title'}, + {'display':'Keywords','field':'bibjson.keywords'}, + {'display':'Subject','field':'index.classification'}, + {'display':'ISSN', 'field':'index.issn.exact'}, + {'display':'Publisher','field':'bibjson.publisher.name'}, + {'display':'Country of publisher','field':'index.country'}, + {'display':'Journal language','field':'index.language'} + ], + defaultOperator : "AND", + renderer : doaj.renderers.newSearchBarRenderer({ + freetextSubmitDelay: -1, + clearButton: false, + searchButton: true, + searchPlaceholder: "", + }) + }), - edges.newPager({ - id: "result-count", - category: "pager", - renderer : edges.bs3.newResultCountRenderer({ - countFormat: countFormat, - suffix: " indexed journals", - htmlContainerWrapper: false - }) - }), + edges.newPager({ + id: "result-count", + category: "pager", + renderer : edges.bs3.newResultCountRenderer({ + countFormat: countFormat, + suffix: " indexed journals", + htmlContainerWrapper: false + }) + }), - edges.newFilterSetter({ - id : "see_journals", - category: "facet", - filters : [ - doaj.filters.noCharges(), - { - id : "retains_copyrigths", - display: "Author retains all rights", - must : [ - es.newTermFilter({ - field: "bibjson.copyright.author_retains", - value: true - }) - ] - } - ], - renderer : doaj.renderers.newFacetFilterSetterRenderer({ - facetTitle : "See journals...", - open: true, - togglable: false, - showCount: false - }) - }), + edges.newFilterSetter({ + id : "see_journals", + category: "facet", + filters : [ + doaj.filters.noCharges(), + { + id : "retains_copyrigths", + display: "Author retains all rights", + must : [ + es.newTermFilter({ + field: "bibjson.copyright.author_retains", + value: true + }) + ] + } + ], + renderer : doaj.renderers.newFacetFilterSetterRenderer({ + facetTitle : "See journals...", + open: true, + togglable: false, + showCount: false + }) + }), - // Subject Browser - /////////////////////////////////// - doaj.components.subjectBrowser({tree: doaj.publicSearchConfig.lccTree}), + // Subject Browser + /////////////////////////////////// + doaj.components.subjectBrowser({tree: doaj.publicSearchConfig.lccTree}), - edges.newORTermSelector({ - id: "language", - category: "facet", - field: "index.language.exact", - display: "Languages", - size: 100, - syncCounts: false, - lifecycle: "update", - updateType: "fresh", - orderBy: "count", - orderDir: "desc", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: false, - open: false, - togglable: true - }) - }), + edges.newORTermSelector({ + id: "language", + category: "facet", + field: "index.language.exact", + display: "Languages", + size: 100, + syncCounts: false, + lifecycle: "update", + updateType: "fresh", + orderBy: "count", + orderDir: "desc", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: false, + open: false, + togglable: true + }) + }), - edges.newORTermSelector({ - id: "journal_licence", - category: "facet", - field: "index.license.exact", - display: "Licenses", - size: 99, - syncCounts: false, - lifecycle: "update", - updateType: "fresh", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: false, - open: false, - togglable: true - }) - }), + edges.newORTermSelector({ + id: "journal_licence", + category: "facet", + field: "index.license.exact", + display: "Licenses", + size: 99, + syncCounts: false, + lifecycle: "update", + updateType: "fresh", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: false, + open: false, + togglable: true + }) + }), - edges.newORTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publishers", - size: 100, - syncCounts: false, - lifecycle: "update", - updateType: "fresh", - orderBy: "count", - orderDir: "desc", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: false, - open: false, - togglable: true - }) - }), + edges.newORTermSelector({ + id: "publisher", + category: "facet", + field: "bibjson.publisher.name.exact", + display: "Publishers", + size: 100, + syncCounts: false, + lifecycle: "update", + updateType: "fresh", + orderBy: "count", + orderDir: "desc", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: false, + open: false, + togglable: true + }) + }), - edges.newORTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Publishers' countries", - size: 200, - syncCounts: false, - lifecycle: "update", - updateType: "fresh", - orderBy: "count", - orderDir: "desc", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: false, - open: false, - togglable: true - }) - }), + edges.newORTermSelector({ + id: "country_publisher", + category: "facet", + field: "index.country.exact", + display: "Publishers' countries", + size: 200, + syncCounts: false, + lifecycle: "update", + updateType: "fresh", + orderBy: "count", + orderDir: "desc", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: false, + open: false, + togglable: true + }) + }), - edges.newORTermSelector({ - id: "peer_review", - category: "facet", - field: "bibjson.editorial.review_process.exact", - display: "Peer review types", - size: 99, - syncCounts: false, - lifecycle: "update", - updateType: "fresh", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: false, - open: false, - togglable: true - }) - }), + edges.newORTermSelector({ + id: "peer_review", + category: "facet", + field: "bibjson.editorial.review_process.exact", + display: "Peer review types", + size: 99, + syncCounts: false, + lifecycle: "update", + updateType: "fresh", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: false, + open: false, + togglable: true + }) + }), - edges.newDateHistogramSelector({ - id : "year_added", - category: "facet", - field: "created_date", - interval: "year", - display: "Date added", - displayFormatter : function(val) { - return (new Date(parseInt(val))).getUTCFullYear(); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer : doaj.renderers.newDateHistogramSelectorRenderer({ - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: false - }) - }), + edges.newDateHistogramSelector({ + id : "year_added", + category: "facet", + field: "created_date", + interval: "year", + display: "Date added", + displayFormatter : function(val) { + return (new Date(parseInt(val))).getUTCFullYear(); + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer : doaj.renderers.newDateHistogramSelectorRenderer({ + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: false + }) + }), - edges.newFullSearchController({ - id: "share_embed", - category: "controller", - urlShortener : doaj.doajUrlShortener, - embedSnippet : doaj.publicSearch.embedSnippet, - renderer: doaj.renderers.newShareEmbedRenderer({ - shareLinkText: ' Share or embed' - }) - }), + edges.newFullSearchController({ + id: "share_embed", + category: "controller", + urlShortener : doaj.doajUrlShortener, + embedSnippet : doaj.publicSearch.embedSnippet, + renderer: doaj.renderers.newShareEmbedRenderer({ + shareLinkText: ' Share or embed' + }) + }), - edges.newFullSearchController({ - id: "sort_by", - category: "controller", - sortOptions : [ - {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, - {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, - {'display':'Last updated (most recent first)','field':'last_manual_update', "dir" : "desc"}, - {'display':'Last updated (less recent first)','field':'last_manual_update', "dir" : "asc"}, - {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, - {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, - {'display':'Relevance','field':'_score'} - ], - renderer: doaj.renderers.newSortRenderer({ - prefix: "Sort by", - dirSwitcher: false - }) - }), + edges.newFullSearchController({ + id: "sort_by", + category: "controller", + sortOptions : [ + {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, + {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, + {'display':'Last updated (most recent first)','field':'last_manual_update', "dir" : "desc"}, + {'display':'Last updated (less recent first)','field':'last_manual_update', "dir" : "asc"}, + {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, + {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, + {'display':'Relevance','field':'_score'} + ], + renderer: doaj.renderers.newSortRenderer({ + prefix: "Sort by", + dirSwitcher: false + }) + }), - edges.newPager({ - id: "rpp", - category: "pager", - renderer : doaj.renderers.newPageSizeRenderer({ - sizeOptions: [50, 100, 200], - sizeLabel: "Results per page" - }) - }), + edges.newPager({ + id: "rpp", + category: "pager", + renderer : doaj.renderers.newPageSizeRenderer({ + sizeOptions: [50, 100, 200], + sizeLabel: "Results per page" + }) + }), - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - compoundDisplays : [ - { - filters : [ - es.newTermFilter({ - field: "bibjson.apc.has_apc", - value: false - }), - es.newTermFilter({ - field: "bibjson.other_charges.has_other_charges", - value: false - }) - ], - display : "Without any fees" - } - ], - fieldDisplays : { - "index.schema_codes_tree.exact" : "Subject", - "index.license.exact" : "Licenses", - "bibjson.publisher.name.exact" : "Publishers", - "index.country.exact" : "Publishers' countries", - "index.language.exact" : "Languages", - "bibjson.editorial.review_process.exact" : "Peer review", - "bibjson.copyright.author_retains" : "Author retains all rights", - "created_date" : "Date added" - }, - rangeFunctions : { - "created_date" : doaj.valueMaps.displayYearPeriod - }, - valueFunctions : { - "index.schema_codes_tree.exact" : doaj.valueMaps.schemaCodeToNameClosure(doaj.publicSearchConfig.lccTree) - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - hideValues : [ - "bibjson.copyright.author_retains" + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + compoundDisplays : [ + { + filters : [ + es.newTermFilter({ + field: "bibjson.apc.has_apc", + value: false + }), + es.newTermFilter({ + field: "bibjson.other_charges.has_other_charges", + value: false + }) ], - omit : [ - "bibjson.apc.has_apc", - "bibjson.other_charges.has_other_charges" - ] - }) - }), + display : "Without any fees" + } + ], + fieldDisplays : { + "index.schema_codes_tree.exact" : "Subject", + "index.license.exact" : "Licenses", + "bibjson.publisher.name.exact" : "Publishers", + "index.country.exact" : "Publishers' countries", + "index.language.exact" : "Languages", + "bibjson.editorial.review_process.exact" : "Peer review", + "bibjson.copyright.author_retains" : "Author retains all rights", + "created_date" : "Date added" + }, + rangeFunctions : { + "created_date" : doaj.valueMaps.displayYearPeriod + }, + valueFunctions : { + "index.schema_codes_tree.exact" : doaj.valueMaps.schemaCodeToNameClosure(doaj.publicSearchConfig.lccTree) + }, + renderer : doaj.renderers.newSelectedFiltersRenderer({ + hideValues : [ + "bibjson.copyright.author_retains" + ], + omit : [ + "bibjson.apc.has_apc", + "bibjson.other_charges.has_other_charges" + ] + }) + }), - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) - }), + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat + }) + }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer : doaj.renderers.newPublicSearchResultRenderer() - }), + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer : doaj.renderers.newPublicSearchResultRenderer() + }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat }) - ]; + }) + ]; - var e = edges.newEdge({ - selector: selector, - template: doaj.templates.newPublicSearch({ - title: "Journals" - }), - search_url: search_url, - manageUrl : true, - openingQuery: es.newQuery({ - sort: [{"field" : "created_date", "order" : "desc"}], - size: 50 - }), - components : components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); - }, - "edges:post-init" : function() { - feather.replace(); - } + var e = edges.newEdge({ + selector: selector, + template: doaj.templates.newPublicSearch({ + title: "Journals" + }), + search_url: search_url, + manageUrl : true, + openingQuery: es.newQuery({ + sort: [{"field" : "created_date", "order" : "desc"}], + size: 50 + }), + components : components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); + }, + "edges:post-init" : function() { + feather.replace(); } - }); - doaj.publicSearch.activeEdges[selector] = e; - } + } + }); + doaj.publicSearch.activeEdges[selector] = e; } - -}); +} jQuery(document).ready(function($) { doaj.publicSearch.init(); From 19bc5fa89e6c21ace35c9255ccbfd53e7b18a116 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:45:49 +0530 Subject: [PATCH 21/76] public.toc is moved from $.extend --- portality/static/js/edges/public.toc.edge.js | 464 +++++++++---------- 1 file changed, 230 insertions(+), 234 deletions(-) diff --git a/portality/static/js/edges/public.toc.edge.js b/portality/static/js/edges/public.toc.edge.js index 3ec7c8f22f..66348afbc4 100644 --- a/portality/static/js/edges/public.toc.edge.js +++ b/portality/static/js/edges/public.toc.edge.js @@ -1,267 +1,263 @@ -$.extend(true, doaj, { +doaj.publicToC = { + activeEdges : {}, - publicToC : { - activeEdges : {}, + dynamicFacets : { + volume : [ + "issue" + ], + year_published : [ + "month_published" + ] + }, - dynamicFacets : { - volume : [ - "issue" - ], - year_published : [ - "month_published" - ] - }, + embedSnippet : function(renderer) { + var snip = '
    '; + var query = renderer.component.edge.currentQuery.objectify({ + include_query_string : true, + include_filters : true, + include_paging : true, + include_sort : true, + include_fields : false, + include_aggregations : false + }); + snip = snip.replace(/{{QUERY}}/g, JSON.stringify(query)); + return snip; + }, - embedSnippet : function(renderer) { - var snip = '
    '; - var query = renderer.component.edge.currentQuery.objectify({ - include_query_string : true, - include_filters : true, - include_paging : true, - include_sort : true, - include_fields : false, - include_aggregations : false - }); - snip = snip.replace(/{{QUERY}}/g, JSON.stringify(query)); - return snip; - }, + displayYearPeriod : function(params) { + var from = params.from; + var to = params.to; + var field = params.field; + var display = (new Date(parseInt(from))).getUTCFullYear(); + return {to: to, toType: "lt", from: from, fromType: "gte", display: display} + }, - displayYearPeriod : function(params) { - var from = params.from; - var to = params.to; - var field = params.field; - var display = (new Date(parseInt(from))).getUTCFullYear(); - return {to: to, toType: "lt", from: from, fromType: "gte", display: display} - }, + displayMonthPeriod : function(params) { + var from = params.from; + var to = params.to; + var field = params.field; + var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + var mi = (new Date(parseInt(from))).getUTCMonth(); + return {to: to, toType: "lt", from: from, fromType: "gte", display: months[mi]} + }, - displayMonthPeriod : function(params) { - var from = params.from; - var to = params.to; - var field = params.field; - var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - var mi = (new Date(parseInt(from))).getUTCMonth(); - return {to: to, toType: "lt", from: from, fromType: "gte", display: months[mi]} - }, + init : function(params) { + if (!params) { params = {} } - init : function(params) { - if (!params) { params = {} } + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var selector = params.selector || "#journal_toc_articles"; + var search_url = current_scheme + "//" + current_domain + doaj.publicToCConfig.publicSearchPath; - var selector = params.selector || "#journal_toc_articles"; - var search_url = current_scheme + "//" + current_domain + doaj.publicToCConfig.publicSearchPath; + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var components = [ + doaj.components.searchingNotification(), - var components = [ - doaj.components.searchingNotification(), - - edges.newPager({ - id: "result-count", - category: "pager", - renderer : edges.bs3.newResultCountRenderer({ - countFormat: countFormat, - suffix: " indexed articles", - htmlContainerWrapper: false - }) - }), + edges.newPager({ + id: "result-count", + category: "pager", + renderer : edges.bs3.newResultCountRenderer({ + countFormat: countFormat, + suffix: " indexed articles", + htmlContainerWrapper: false + }) + }), - edges.newFullSearchController({ - id: "search-controller", - category: "facet", - renderer : doaj.renderers.newSearchBoxFacetRenderer({ - freetextSubmitDelay: -1, - searchPlaceholder: "Additional keywords", - title: "Search within the results" - }) - }), + edges.newFullSearchController({ + id: "search-controller", + category: "facet", + renderer : doaj.renderers.newSearchBoxFacetRenderer({ + freetextSubmitDelay: -1, + searchPlaceholder: "Additional keywords", + title: "Search within the results" + }) + }), - edges.newDateHistogramSelector({ - id : "year_published", - category: "facet", - field: "index.date", - interval: "year", - display: "Year of publication", - displayFormatter : function(val) { - return (new Date(parseInt(val))).getUTCFullYear(); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer : doaj.renderers.newDateHistogramSelectorRenderer({ - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: false - }) - }), + edges.newDateHistogramSelector({ + id : "year_published", + category: "facet", + field: "index.date", + interval: "year", + display: "Year of publication", + displayFormatter : function(val) { + return (new Date(parseInt(val))).getUTCFullYear(); + }, + sortFunction : function(values) { + values.reverse(); + return values; + }, + renderer : doaj.renderers.newDateHistogramSelectorRenderer({ + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: false + }) + }), - edges.newDateHistogramSelector({ - id : "month_published", - category: "facet", - field: "index.date_toc_fv_month", - interval: "month", - display: "Month", - deactivateThreshold: 1, - active: true, - displayFormatter : function(val) { - var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - var mi = (new Date(parseInt(val))).getUTCMonth(); - return months[mi] - }, - sortFunction : function(values) { - return values; - }, - renderer : doaj.renderers.newDateHistogramSelectorRenderer({ - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true, - hideEmpty: true - }) - }), - - edges.newFullSearchController({ - id: "sort_by", - category: "controller", - sortOptions : [ - {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, - {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, - {'display':'Publication date (most recent first)','field':'index.date', "dir" : "desc"}, - {'display':'Publication date (less recent first)','field':'index.date', "dir" : "asc"}, - {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, - {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"} - ], - renderer: doaj.renderers.newSortRenderer({ - prefix: "Sort by", - dirSwitcher: false - }) - }), + edges.newDateHistogramSelector({ + id : "month_published", + category: "facet", + field: "index.date_toc_fv_month", + interval: "month", + display: "Month", + deactivateThreshold: 1, + active: true, + displayFormatter : function(val) { + var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + var mi = (new Date(parseInt(val))).getUTCMonth(); + return months[mi] + }, + sortFunction : function(values) { + return values; + }, + renderer : doaj.renderers.newDateHistogramSelectorRenderer({ + open: false, + togglable: true, + countFormat: countFormat, + hideInactive: true, + hideEmpty: true + }) + }), + + edges.newFullSearchController({ + id: "sort_by", + category: "controller", + sortOptions : [ + {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, + {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, + {'display':'Publication date (most recent first)','field':'index.date', "dir" : "desc"}, + {'display':'Publication date (less recent first)','field':'index.date', "dir" : "asc"}, + {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, + {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"} + ], + renderer: doaj.renderers.newSortRenderer({ + prefix: "Sort by", + dirSwitcher: false + }) + }), - edges.newPager({ - id: "rpp", - category: "pager", - renderer : doaj.renderers.newPageSizeRenderer({ - sizeOptions: [50, 100, 200], - sizeLabel: "Results per page" - }) - }), + edges.newPager({ + id: "rpp", + category: "pager", + renderer : doaj.renderers.newPageSizeRenderer({ + sizeOptions: [50, 100, 200], + sizeLabel: "Results per page" + }) + }), - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - ignoreUnknownFilters: true, - fieldDisplays : { - //"bibjson.journal.volume.exact" : "Volume", - //"bibjson.journal.number.exact" : "Issue", - "index.date" : "Year", - "index.date_toc_fv_month" : "Month" - }, - rangeFunctions : { - "index.date" : doaj.publicToC.displayYearPeriod, - "index.date_toc_fv_month" : doaj.publicToC.displayMonthPeriod - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({}) - }), + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + ignoreUnknownFilters: true, + fieldDisplays : { + //"bibjson.journal.volume.exact" : "Volume", + //"bibjson.journal.number.exact" : "Issue", + "index.date" : "Year", + "index.date_toc_fv_month" : "Month" + }, + rangeFunctions : { + "index.date" : doaj.publicToC.displayYearPeriod, + "index.date_toc_fv_month" : doaj.publicToC.displayMonthPeriod + }, + renderer : doaj.renderers.newSelectedFiltersRenderer({}) + }), - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) - }), - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer : doaj.renderers.newPublicSearchResultRenderer() - }), + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat + }) + }), + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer : doaj.renderers.newPublicSearchResultRenderer() + }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat }) - ]; + }) + ]; - var e = edges.newEdge({ - selector: selector, - template: doaj.templates.newPublicSearch({ - titleBar: false - }), - search_url: search_url, - baseQuery : es.newQuery({ - must : [ - es.newTermsFilter({field: "index.issn.exact", values: doaj.publicToCConfig.tocIssns}) - ] - }), - openingQuery : es.newQuery({ - sort: [{"field" : "created_date", "order" : "desc"}], - size: 100 - }), - manageUrl : true, - components : components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); - }, - "edges:post-init" : function() { - feather.replace(); - } + var e = edges.newEdge({ + selector: selector, + template: doaj.templates.newPublicSearch({ + titleBar: false + }), + search_url: search_url, + baseQuery : es.newQuery({ + must : [ + es.newTermsFilter({field: "index.issn.exact", values: doaj.publicToCConfig.tocIssns}) + ] + }), + openingQuery : es.newQuery({ + sort: [{"field" : "created_date", "order" : "desc"}], + size: 100 + }), + manageUrl : true, + components : components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); + }, + "edges:post-init" : function() { + feather.replace(); } - }); - doaj.publicToC.activeEdges[selector] = e; + } + }); + doaj.publicToC.activeEdges[selector] = e; - $(selector).on("edges:pre-render", function() { - var yearPublished = e.getComponent({id: "year_published"}); + $(selector).on("edges:pre-render", function() { + var yearPublished = e.getComponent({id: "year_published"}); - var deactivate = []; - var activate = []; + var deactivate = []; + var activate = []; - if (yearPublished.filters.length === 0) { - deactivate = deactivate.concat(doaj.publicToC.dynamicFacets.year_published); - } else { - activate = activate.concat(doaj.publicToC.dynamicFacets.year_published); - } + if (yearPublished.filters.length === 0) { + deactivate = deactivate.concat(doaj.publicToC.dynamicFacets.year_published); + } else { + activate = activate.concat(doaj.publicToC.dynamicFacets.year_published); + } - for (var i = 0; i < e.components.length; i++) { - var component = e.components[i]; - if ($.inArray(component.id, deactivate) !== -1) { - component.active = false; - } else if ($.inArray(component.id, activate) !== -1) { - component.active = true; - } + for (var i = 0; i < e.components.length; i++) { + var component = e.components[i]; + if ($.inArray(component.id, deactivate) !== -1) { + component.active = false; + } else if ($.inArray(component.id, activate) !== -1) { + component.active = true; } - }); + } + }); - $(selector).on("edges:pre-query", function() { - var yearPublished = e.getComponent({id: "year_published"}); - var yearMusts = e.currentQuery.listMust(es.newRangeFilter({field: yearPublished.field})); + $(selector).on("edges:pre-query", function() { + var yearPublished = e.getComponent({id: "year_published"}); + var yearMusts = e.currentQuery.listMust(es.newRangeFilter({field: yearPublished.field})); - var deactivate = []; - if (yearMusts.length === 0) { - deactivate = deactivate.concat(doaj.publicToC.dynamicFacets.year_published); - } + var deactivate = []; + if (yearMusts.length === 0) { + deactivate = deactivate.concat(doaj.publicToC.dynamicFacets.year_published); + } - for (var i = 0; i < e.components.length; i++) { - var component = e.components[i]; - if ($.inArray(component.id, deactivate) !== -1) { - // remove the filters - component.clearFilters({triggerQuery: false}); - } + for (var i = 0; i < e.components.length; i++) { + var component = e.components[i]; + if ($.inArray(component.id, deactivate) !== -1) { + // remove the filters + component.clearFilters({triggerQuery: false}); } - }); - } + } + }); } - -}); +} jQuery(document).ready(function($) { doaj.publicToC.init(); From cddd0645306dffd6857af93071708690cb0778ae Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:50:23 +0530 Subject: [PATCH 22/76] publisher.journal is moved from $.extend --- .../js/edges/publisher.journals.edge.js | 415 +++++++++--------- 1 file changed, 206 insertions(+), 209 deletions(-) diff --git a/portality/static/js/edges/publisher.journals.edge.js b/portality/static/js/edges/publisher.journals.edge.js index 64e90f1f41..74ec11e1a6 100644 --- a/portality/static/js/edges/publisher.journals.edge.js +++ b/portality/static/js/edges/publisher.journals.edge.js @@ -1,219 +1,216 @@ -$.extend(true, doaj, { +doaj.publisherJournalsSearch = { + activeEdges : {}, - publisherJournalsSearch : { - activeEdges : {}, - - makeUpdateRequest : function (resultobj) { - if (resultobj.admin && resultobj.admin.hasOwnProperty("in_doaj")) { - if (resultobj.admin.in_doaj === false) { - return false; - } + makeUpdateRequest : function (resultobj) { + if (resultobj.admin && resultobj.admin.hasOwnProperty("in_doaj")) { + if (resultobj.admin.in_doaj === false) { + return false; } + } - var result = {label : "", link : ""}; - if (resultobj.admin && resultobj.admin.current_application) { - var idquery = '%7B%22query%22%3A%7B%22query_string%22%3A%7B%22query%22%3A%22' + resultobj['id'] + '%22%7D%7D%7D'; - result.link = doaj.publisherJournalsSearchConfig.journalUpdateRequestsUrl + "?source=" + idquery; - result.label = 'View Update'; - } else { - result.link = doaj.publisherJournalsSearchConfig.journalUpdateUrl + resultobj['id']; - result.label = 'Update'; - } - return result; - }, - - init : function(params) { - if (!params) { params = {} } - - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - - var selector = params.selector || "#publisher_journals"; - var search_url = current_scheme + "//" + current_domain + doaj.publisherJournalsSearchConfig.searchPath; - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - edges.newPager({ - id: "result-count", - category: "pager", - renderer : edges.bs3.newResultCountRenderer({ - countFormat: countFormat, - suffix: " indexed journals", - htmlContainerWrapper: false - }) - }), - - edges.newORTermSelector({ - id: "journal_licence", - category: "facet", - field: "index.license.exact", - display: "Licenses", - size: 99, - syncCounts: false, - lifecycle: "update", - updateType: "fresh", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: false, - open: false, - togglable: true - }) - }), - - // Subject Browser - /////////////////////////////////// - doaj.components.subjectBrowser({ - tree: doaj.publisherJournalsSearchConfig.lccTree, - hideEmpty: true - }), - - edges.newORTermSelector({ - id: "keywords", - category: "facet", - field: "bibjson.keywords.exact", - display: "Keywords", - size: 99, - syncCounts: false, - lifecycle: "update", - updateType: "fresh", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: false, - open: false, - togglable: true - }) - }), - - edges.newFullSearchController({ - id: "sort_by", - category: "controller", - sortOptions : [ - {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, - {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, - {'display':'Last updated (most recent first)','field':'last_updated', "dir" : "desc"}, - {'display':'Last updated (less recent first)','field':'last_updated', "dir" : "asc"}, - {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, - {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, - {'display':'Relevance','field':'_score'} - ], - renderer: doaj.renderers.newSortRenderer({ - prefix: "Sort by", - dirSwitcher: false - }) - }), - - edges.newPager({ - id: "rpp", - category: "pager", - renderer : doaj.renderers.newPageSizeRenderer({ - sizeOptions: [50, 100, 200], - sizeLabel: "Results per page" - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - compoundDisplays : [ - { - filters : [ - es.newTermFilter({ - field: "bibjson.apc.has_apc", - value: false - }), - es.newTermFilter({ - field: "bibjson.other_charges.has_other_charges", - value: false - }) - ], - display : "Without publication fees" - } - ], - fieldDisplays : { - "index.schema_codes_tree.exact" : "Subject", - "index.license.exact" : "Licenses", - "bibjson.publisher.name.exact" : "Publishers", - "index.country.exact" : "Publishers' countries", - "index.language.exact" : "Languages", - "bibjson.editorial.review_process.exact" : "Peer review", - "created_date" : "Date added" - }, - rangeFunctions : { - "created_date" : doaj.valueMaps.displayYearPeriod - }, - valueFunctions : { - "index.schema_codes_tree.exact" : doaj.valueMaps.schemaCodeToNameClosure(doaj.publisherJournalsSearchConfig.lccTree) - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - hideValues : [ - ], - omit : [ - "bibjson.apc.has_apc", - "bibjson.other_charges.has_other_charges" - ] - }) - }), - - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) - }), - - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer : doaj.renderers.newPublicSearchResultRenderer({ - actions: [ - doaj.publisherJournalsSearch.makeUpdateRequest, - ] - }) - }), - - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) + var result = {label : "", link : ""}; + if (resultobj.admin && resultobj.admin.current_application) { + var idquery = '%7B%22query%22%3A%7B%22query_string%22%3A%7B%22query%22%3A%22' + resultobj['id'] + '%22%7D%7D%7D'; + result.link = doaj.publisherJournalsSearchConfig.journalUpdateRequestsUrl + "?source=" + idquery; + result.label = 'View Update'; + } else { + result.link = doaj.publisherJournalsSearchConfig.journalUpdateUrl + resultobj['id']; + result.label = 'Update'; + } + return result; + }, + + init : function(params) { + if (!params) { params = {} } + + var current_domain = document.location.host; + var current_scheme = window.location.protocol; + + var selector = params.selector || "#publisher_journals"; + var search_url = current_scheme + "//" + current_domain + doaj.publisherJournalsSearchConfig.searchPath; + + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); + + var components = [ + doaj.components.searchingNotification(), + + edges.newPager({ + id: "result-count", + category: "pager", + renderer : edges.bs3.newResultCountRenderer({ + countFormat: countFormat, + suffix: " indexed journals", + htmlContainerWrapper: false + }) + }), + + edges.newORTermSelector({ + id: "journal_licence", + category: "facet", + field: "index.license.exact", + display: "Licenses", + size: 99, + syncCounts: false, + lifecycle: "update", + updateType: "fresh", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: false, + open: false, + togglable: true }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: doaj.templates.newPublicSearch({ - titleBar: false, - title: "Journals" - }), - search_url: search_url, - manageUrl: true, - openingQuery: es.newQuery({ - sort: [{"field" : "created_date", "order" : "desc"}], - size: 50 - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); - }, - "edges:post-init" : function() { - feather.replace(); + }), + + // Subject Browser + /////////////////////////////////// + doaj.components.subjectBrowser({ + tree: doaj.publisherJournalsSearchConfig.lccTree, + hideEmpty: true + }), + + edges.newORTermSelector({ + id: "keywords", + category: "facet", + field: "bibjson.keywords.exact", + display: "Keywords", + size: 99, + syncCounts: false, + lifecycle: "update", + updateType: "fresh", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: false, + open: false, + togglable: true + }) + }), + + edges.newFullSearchController({ + id: "sort_by", + category: "controller", + sortOptions : [ + {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, + {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, + {'display':'Last updated (most recent first)','field':'last_updated', "dir" : "desc"}, + {'display':'Last updated (less recent first)','field':'last_updated', "dir" : "asc"}, + {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, + {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, + {'display':'Relevance','field':'_score'} + ], + renderer: doaj.renderers.newSortRenderer({ + prefix: "Sort by", + dirSwitcher: false + }) + }), + + edges.newPager({ + id: "rpp", + category: "pager", + renderer : doaj.renderers.newPageSizeRenderer({ + sizeOptions: [50, 100, 200], + sizeLabel: "Results per page" + }) + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + compoundDisplays : [ + { + filters : [ + es.newTermFilter({ + field: "bibjson.apc.has_apc", + value: false + }), + es.newTermFilter({ + field: "bibjson.other_charges.has_other_charges", + value: false + }) + ], + display : "Without publication fees" } + ], + fieldDisplays : { + "index.schema_codes_tree.exact" : "Subject", + "index.license.exact" : "Licenses", + "bibjson.publisher.name.exact" : "Publishers", + "index.country.exact" : "Publishers' countries", + "index.language.exact" : "Languages", + "bibjson.editorial.review_process.exact" : "Peer review", + "created_date" : "Date added" + }, + rangeFunctions : { + "created_date" : doaj.valueMaps.displayYearPeriod + }, + valueFunctions : { + "index.schema_codes_tree.exact" : doaj.valueMaps.schemaCodeToNameClosure(doaj.publisherJournalsSearchConfig.lccTree) + }, + renderer : doaj.renderers.newSelectedFiltersRenderer({ + hideValues : [ + ], + omit : [ + "bibjson.apc.has_apc", + "bibjson.other_charges.has_other_charges" + ] + }) + }), + + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat + }) + }), + + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer : doaj.renderers.newPublicSearchResultRenderer({ + actions: [ + doaj.publisherJournalsSearch.makeUpdateRequest, + ] + }) + }), + + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat + }) + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: doaj.templates.newPublicSearch({ + titleBar: false, + title: "Journals" + }), + search_url: search_url, + manageUrl: true, + openingQuery: es.newQuery({ + sort: [{"field" : "created_date", "order" : "desc"}], + size: 50 + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); + }, + "edges:post-init" : function() { + feather.replace(); } - }); - doaj.publisherJournalsSearch.activeEdges[selector] = e; - } + } + }); + doaj.publisherJournalsSearch.activeEdges[selector] = e; } -}); +} jQuery(document).ready(function($) { From 2df6887b11eb1d48ea2d8911d9be8513b9f1e7a0 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:50:42 +0530 Subject: [PATCH 23/76] publisher.mydraft is moved from $.extend --- .../js/edges/publisher.mydrafts.edge.js | 136 +++++++++--------- 1 file changed, 66 insertions(+), 70 deletions(-) diff --git a/portality/static/js/edges/publisher.mydrafts.edge.js b/portality/static/js/edges/publisher.mydrafts.edge.js index 836169bef9..d3be5796d5 100644 --- a/portality/static/js/edges/publisher.mydrafts.edge.js +++ b/portality/static/js/edges/publisher.mydrafts.edge.js @@ -1,83 +1,79 @@ -$.extend(true, doaj, { +doaj.publisherApplicationsSearch = { + activeEdges : {}, - publisherApplicationsSearch : { - activeEdges : {}, - - editUpdateRequest : function (value, resultobj, renderer) { - if (resultobj['suggestion']) { - if (resultobj.admin && resultobj.admin.application_status) { - var status = resultobj.admin.application_status; - var result = ""; - var view = '(view request)'; - if (status === "update_request" || status === "revisions_required") { - var actionUrl = doaj.publisherUpdatesSearchConfig.journalUpdateUrl + resultobj.admin.current_journal; - result = 'Delete this update request'; - } else if (status !== "rejected" && status !== "accepted") { - result = 'This update request is currently being reviewed by an Editor ' + view + '.'; - } else if (status === "rejected") { - result = 'This update request has been rejected ' + view + '.'; - } else if (status === "accepted") { - result = 'This update request has been accepted, and your journal in DOAJ updated ' + view + '.'; - } - return result; + editUpdateRequest : function (value, resultobj, renderer) { + if (resultobj['suggestion']) { + if (resultobj.admin && resultobj.admin.application_status) { + var status = resultobj.admin.application_status; + var result = ""; + var view = '(view request)'; + if (status === "update_request" || status === "revisions_required") { + var actionUrl = doaj.publisherUpdatesSearchConfig.journalUpdateUrl + resultobj.admin.current_journal; + result = 'Delete this update request'; + } else if (status !== "rejected" && status !== "accepted") { + result = 'This update request is currently being reviewed by an Editor ' + view + '.'; + } else if (status === "rejected") { + result = 'This update request has been rejected ' + view + '.'; + } else if (status === "accepted") { + result = 'This update request has been accepted, and your journal in DOAJ updated ' + view + '.'; } + return result; } - return false; - }, + } + return false; + }, - init : function(params) { - if (!params) { params = {} } + init : function(params) { + if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; + var current_domain = document.location.host; + var current_scheme = window.location.protocol; - var selector = params.selector || "#publisher_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.publisherApplicationsSearchConfig.searchPath; + var selector = params.selector || "#publisher_applications"; + var search_url = current_scheme + "//" + current_domain + doaj.publisherApplicationsSearchConfig.searchPath; - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); - var components = [ - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer : doaj.renderers.newPublisherApplicationRenderer() - }) - ]; - var e = edges.newEdge({ - selector: selector, - template: doaj.templates.newPublisherApplications(), - search_url: search_url, - manageUrl: true, - baseQuery: es.newQuery({ - must: [ - es.newTermsFilter({ - field: "admin.application_status.exact", - values: ["revisions_required", "pending", "in progress", "completed", "on hold", "ready", "draft"] - }) - ], - sort: [{"field" : "last_updated", "order" : "desc"}], - size: 50 - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); - }, - "edges:post-init" : function() { - feather.replace(); - } + var components = [ + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer : doaj.renderers.newPublisherApplicationRenderer() + }) + ]; + var e = edges.newEdge({ + selector: selector, + template: doaj.templates.newPublisherApplications(), + search_url: search_url, + manageUrl: true, + baseQuery: es.newQuery({ + must: [ + es.newTermsFilter({ + field: "admin.application_status.exact", + values: ["revisions_required", "pending", "in progress", "completed", "on hold", "ready", "draft"] + }) + ], + sort: [{"field" : "last_updated", "order" : "desc"}], + size: 50 + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); + }, + "edges:post-init" : function() { + feather.replace(); } - }); - doaj.publisherApplicationsSearch.activeEdges[selector] = e; - } + } + }); + doaj.publisherApplicationsSearch.activeEdges[selector] = e; } -}); - +} jQuery(document).ready(function($) { doaj.publisherApplicationsSearch.init(); From 45ff7fd5eef579e10c09bd0491f4515eba607ed7 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 08:51:40 +0530 Subject: [PATCH 24/76] pub.update_req is moved from $.extend --- .../edges/publisher.update_requests.edge.js | 294 +++++++++--------- 1 file changed, 145 insertions(+), 149 deletions(-) diff --git a/portality/static/js/edges/publisher.update_requests.edge.js b/portality/static/js/edges/publisher.update_requests.edge.js index b4d9a64ba6..1d0dfc1f3e 100644 --- a/portality/static/js/edges/publisher.update_requests.edge.js +++ b/portality/static/js/edges/publisher.update_requests.edge.js @@ -1,159 +1,155 @@ -$.extend(true, doaj, { +doaj.publisherUpdatesSearch = { + activeEdges : {}, - publisherUpdatesSearch : { - activeEdges : {}, - - publisherStatusMap: function(value) { - if (doaj.valueMaps.applicationStatus.hasOwnProperty(value)) { - return doaj.valueMaps.applicationStatus[value]; - } - return value; - }, - - editUpdateRequest : function (resultobj) { - if (resultobj.admin && resultobj.admin.application_status) { - var result = {label : "", link : ""}; - var status = resultobj.admin.application_status; - result.link = doaj.publisherUpdatesSearchConfig.journalReadOnlyUrl + resultobj['id']; - result.label = 'View'; - - if (status === "post_submission_review" || status === "update_request" || status === "revisions_required") { - result.link = doaj.publisherUpdatesSearchConfig.journalUpdateUrl + resultobj.admin.current_journal; - result.label = 'Edit'; - } - return result; + publisherStatusMap: function(value) { + if (doaj.valueMaps.applicationStatus.hasOwnProperty(value)) { + return doaj.valueMaps.applicationStatus[value]; + } + return value; + }, + + editUpdateRequest : function (resultobj) { + if (resultobj.admin && resultobj.admin.application_status) { + var result = {label : "", link : ""}; + var status = resultobj.admin.application_status; + result.link = doaj.publisherUpdatesSearchConfig.journalReadOnlyUrl + resultobj['id']; + result.label = 'View'; + + if (status === "post_submission_review" || status === "update_request" || status === "revisions_required") { + result.link = doaj.publisherUpdatesSearchConfig.journalUpdateUrl + resultobj.admin.current_journal; + result.label = 'Edit'; } - return false; - }, + return result; + } + return false; + }, - init : function(params) { - if (!params) { - params = {}; - } + init : function(params) { + if (!params) { + params = {}; + } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - - var selector = params.selector || "#publisher_update_requests"; - var search_url = current_scheme + "//" + current_domain + doaj.publisherUpdatesSearchConfig.searchPath; - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - edges.newORTermSelector({ - id: "application_status", - category: "facet", - field: "admin.application_status.exact", - display: "Application Status", - size: 99, - valueFunction: doaj.publisherUpdatesSearch.publisherStatusMap, - syncCounts: false, - lifecycle: "update", - renderer : doaj.renderers.newORTermSelectorRenderer({ - showCount: true, - hideEmpty: true, - open: true, - togglable: false - }) - }), - - edges.newFullSearchController({ - id: "sort_by", - category: "controller", - sortOptions : [ - {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, - {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, - {'display':'Last updated (most recent first)','field':'last_manual_update', "dir" : "desc"}, - {'display':'Last updated (less recent first)','field':'last_manual_update', "dir" : "asc"}, - {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, - {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, - {'display':'Relevance','field':'_score'} - ], - renderer: doaj.renderers.newSortRenderer({ - prefix: "Sort by", - dirSwitcher: false - }) - }), - - edges.newPager({ - id: "rpp", - category: "pager", - renderer : doaj.renderers.newPageSizeRenderer({ - sizeOptions: [50, 100, 200], - sizeLabel: "Results per page" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat - }) - }), - - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer : doaj.renderers.newPublisherUpdateRequestRenderer({ - actions: [ - doaj.publisherUpdatesSearch.editUpdateRequest - ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'admin.application_status.exact': 'Application Status' - }, - renderer : doaj.renderers.newSelectedFiltersRenderer() + var current_domain = document.location.host; + var current_scheme = window.location.protocol; + + var selector = params.selector || "#publisher_update_requests"; + var search_url = current_scheme + "//" + current_domain + doaj.publisherUpdatesSearchConfig.searchPath; + + var countFormat = edges.numFormat({ + thousandsSeparator: "," + }); + + var components = [ + doaj.components.searchingNotification(), + + // facets + edges.newORTermSelector({ + id: "application_status", + category: "facet", + field: "admin.application_status.exact", + display: "Application Status", + size: 99, + valueFunction: doaj.publisherUpdatesSearch.publisherStatusMap, + syncCounts: false, + lifecycle: "update", + renderer : doaj.renderers.newORTermSelectorRenderer({ + showCount: true, + hideEmpty: true, + open: true, + togglable: false + }) + }), + + edges.newFullSearchController({ + id: "sort_by", + category: "controller", + sortOptions : [ + {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, + {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, + {'display':'Last updated (most recent first)','field':'last_manual_update', "dir" : "desc"}, + {'display':'Last updated (less recent first)','field':'last_manual_update', "dir" : "asc"}, + {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, + {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, + {'display':'Relevance','field':'_score'} + ], + renderer: doaj.renderers.newSortRenderer({ + prefix: "Sort by", + dirSwitcher: false }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: doaj.templates.newPublicSearch({ - titleBar: false, - title: "Update requests" - }), - search_url: search_url, - manageUrl: true, - openingQuery: es.newQuery({ - sort: [{"field" : "last_manual_update", "order" : "desc"}], - size: 50 - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); - }, - "edges:post-init" : function() { - feather.replace(); - } + }), + + edges.newPager({ + id: "rpp", + category: "pager", + renderer : doaj.renderers.newPageSizeRenderer({ + sizeOptions: [50, 100, 200], + sizeLabel: "Results per page" + }) + }), + + // the pager, with the explicitly set page size options (see the openingQuery for the initial size) + edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat + }) + }), + edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer : doaj.renderers.newPagerRenderer({ + numberFormat: countFormat + }) + }), + + // results display + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer : doaj.renderers.newPublisherUpdateRequestRenderer({ + actions: [ + doaj.publisherUpdatesSearch.editUpdateRequest + ] + }) + }), + + // selected filters display, with all the fields given their display names + edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: { + 'admin.application_status.exact': 'Application Status' + }, + renderer : doaj.renderers.newSelectedFiltersRenderer() + }) + ]; + + var e = edges.newEdge({ + selector: selector, + template: doaj.templates.newPublicSearch({ + titleBar: false, + title: "Update requests" + }), + search_url: search_url, + manageUrl: true, + openingQuery: es.newQuery({ + sort: [{"field" : "last_manual_update", "order" : "desc"}], + size: 50 + }), + components: components, + callbacks : { + "edges:query-fail" : function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); + }, + "edges:post-init" : function() { + feather.replace(); } - }); - doaj.publisherUpdatesSearch.activeEdges[selector] = e; - } + } + }); + doaj.publisherUpdatesSearch.activeEdges[selector] = e; } -}); - +} jQuery(document).ready(function($) { doaj.publisherUpdatesSearch.init(); From 9bf1edf168b3c1457f25123a1e6a11862a8cce18 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 10:14:26 +0530 Subject: [PATCH 25/76] Moved search build url to a factory --- .../static/js/edges/admin.alerts.edge.js | 5 ++++- portality/static/js/edges/util/url.js | 21 +++++++++++++++++++ .../management/admin/alerts_search.html | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 portality/static/js/edges/util/url.js diff --git a/portality/static/js/edges/admin.alerts.edge.js b/portality/static/js/edges/admin.alerts.edge.js index 838c85422c..989b740a20 100644 --- a/portality/static/js/edges/admin.alerts.edge.js +++ b/portality/static/js/edges/admin.alerts.edge.js @@ -13,7 +13,10 @@ doaj.adminAlertsSearch = { var current_scheme = window.location.protocol; var selector = params.selector || "#admin_alerts"; - var search_url = current_scheme + "//" + current_domain + doaj.adminAlertsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminAlertsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," diff --git a/portality/static/js/edges/util/url.js b/portality/static/js/edges/util/url.js new file mode 100644 index 0000000000..d6c374f583 --- /dev/null +++ b/portality/static/js/edges/util/url.js @@ -0,0 +1,21 @@ +// ~~ Edge URL Utilities ~~ +doaj.edgeUtil = doaj.edgeUtil || {}; + +doaj.edgeUtil.url = { + + /** + * Returns base URL including scheme + host + * Example: https://doaj.org + */ + getBaseURL: function() { + return window.location.protocol + "//" + document.location.host; + }, + + /** + * Builds full URL from provided path + * @param {string} path + */ + build: function(path) { + return this.getBaseURL() + path; + } +}; \ No newline at end of file diff --git a/portality/templates-v2/management/admin/alerts_search.html b/portality/templates-v2/management/admin/alerts_search.html index 2388eaa990..0700c50628 100644 --- a/portality/templates-v2/management/admin/alerts_search.html +++ b/portality/templates-v2/management/admin/alerts_search.html @@ -24,5 +24,6 @@ {% include "includes/_edges_common_js.html" %} + {% endblock %} From 85771585052d839023c47aaeda6b2ef820a8420d Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 10:16:07 +0530 Subject: [PATCH 26/76] Moved search build url to a factory --- portality/static/js/edges/admin.alerts.edge.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/portality/static/js/edges/admin.alerts.edge.js b/portality/static/js/edges/admin.alerts.edge.js index 989b740a20..93e3dbc414 100644 --- a/portality/static/js/edges/admin.alerts.edge.js +++ b/portality/static/js/edges/admin.alerts.edge.js @@ -9,9 +9,6 @@ doaj.adminAlertsSearch = { init: function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#admin_alerts"; var search_url = doaj.edgeUtil.url.build( From c7c71ec28b6453736dc290ebc8071c7249faf344 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 10:16:30 +0530 Subject: [PATCH 27/76] Moved admin.application to search build url to a factory --- portality/static/js/edges/admin.applications.edge.js | 8 ++++---- portality/templates-v2/management/admin/applications.html | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.applications.edge.js b/portality/static/js/edges/admin.applications.edge.js index e496c2e21e..cf37026cee 100644 --- a/portality/static/js/edges/admin.applications.edge.js +++ b/portality/static/js/edges/admin.applications.edge.js @@ -8,11 +8,11 @@ doaj.adminApplicationsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#admin_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.adminApplicationsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminApplicationsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," diff --git a/portality/templates-v2/management/admin/applications.html b/portality/templates-v2/management/admin/applications.html index 7a4b780b78..c1f008b681 100644 --- a/portality/templates-v2/management/admin/applications.html +++ b/portality/templates-v2/management/admin/applications.html @@ -36,5 +36,6 @@

    Applications

    {% include "management/admin/includes/_applications_and_update_requests_common_js.html" %} + {% endblock %} From 7d819dc8ceb37e6b7d47b6e490a2bc8210761d2a Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 3 Mar 2026 13:00:44 +0530 Subject: [PATCH 28/76] Moved admin.autoassign to search build url to a factory --- portality/static/js/edges/admin.autoassign.edge.js | 8 ++++---- .../templates-v2/management/admin/autoassign_search.html | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.autoassign.edge.js b/portality/static/js/edges/admin.autoassign.edge.js index e6e2596414..a8ec4e9e4b 100644 --- a/portality/static/js/edges/admin.autoassign.edge.js +++ b/portality/static/js/edges/admin.autoassign.edge.js @@ -6,11 +6,11 @@ doaj.adminAutoassignSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#autoassign"; - var search_url = current_scheme + "//" + current_domain + doaj.adminAutoassignSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminAutoassignSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," diff --git a/portality/templates-v2/management/admin/autoassign_search.html b/portality/templates-v2/management/admin/autoassign_search.html index cad350b3ec..79f45a9062 100644 --- a/portality/templates-v2/management/admin/autoassign_search.html +++ b/portality/templates-v2/management/admin/autoassign_search.html @@ -26,5 +26,6 @@ {% include "includes/_edges_common_js.html" %} + {% endblock %} From d72c1150016a4d18b13a7e83871e583fc0761962 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:28:41 +0530 Subject: [PATCH 29/76] search_url for admin.background moved to factory --- .../static/js/edges/admin.background_jobs.edge.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/portality/static/js/edges/admin.background_jobs.edge.js b/portality/static/js/edges/admin.background_jobs.edge.js index 832d734277..c76527adc6 100644 --- a/portality/static/js/edges/admin.background_jobs.edge.js +++ b/portality/static/js/edges/admin.background_jobs.edge.js @@ -130,14 +130,15 @@ doaj.adminBackgroundJobsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#background_jobs"; - var search_url = current_scheme + "//" + current_domain + doaj.adminBackgroundJobsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminBackgroundJobsSearchConfig.searchPath + ); + var countFormat = edges.numFormat({ - thousandsSeparator: "," + thousandsSeparator: "," }); var components = [ From f13216a27674ea5ae905f3c6ba24153c1e29729c Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:30:14 +0530 Subject: [PATCH 30/76] search_url for admin.editor moved to factory --- portality/static/js/edges/admin.editor_groups.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.editor_groups.edge.js b/portality/static/js/edges/admin.editor_groups.edge.js index 1a05557b67..e4000ea74f 100644 --- a/portality/static/js/edges/admin.editor_groups.edge.js +++ b/portality/static/js/edges/admin.editor_groups.edge.js @@ -37,11 +37,11 @@ doaj.adminEditorGroupSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#editor_groups"; - var search_url = current_scheme + "//" + current_domain + doaj.adminEditorGroupSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminEditorGroupSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 9a80f56a33e6506560aad2e4dd7641d1854c9bce Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:30:59 +0530 Subject: [PATCH 31/76] search_url for admin.journal moved to factory --- portality/static/js/edges/admin.journalarticle.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.journalarticle.edge.js b/portality/static/js/edges/admin.journalarticle.edge.js index 0f3e2fe324..e83645077a 100644 --- a/portality/static/js/edges/admin.journalarticle.edge.js +++ b/portality/static/js/edges/admin.journalarticle.edge.js @@ -91,11 +91,11 @@ doaj.adminJournalArticleSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#admin_journals_and_articles"; - var search_url = current_scheme + "//" + current_domain + doaj.adminJournalArticleSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminJournalArticleSearchConfig.searchPath + ); var journalSelected = doaj.adminJournalArticleSearch.journalSelected(selector); var anySelected = doaj.adminJournalArticleSearch.anySelected(selector); From 302ee7cdae34335fbbcc630a36d0351cb1fd38cd Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:32:16 +0530 Subject: [PATCH 32/76] search_url for admin.journals moved to factory --- portality/static/js/edges/admin.journals.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.journals.edge.js b/portality/static/js/edges/admin.journals.edge.js index e5e324f002..73253b913d 100644 --- a/portality/static/js/edges/admin.journals.edge.js +++ b/portality/static/js/edges/admin.journals.edge.js @@ -56,11 +56,11 @@ doaj.adminJournalsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#admin_journals"; - var search_url = current_scheme + "//" + current_domain + doaj.adminJournalsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminJournalsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 359447f6ef05f3c7afadf8939aed5d635032b730 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:33:03 +0530 Subject: [PATCH 33/76] search_url for admin.notifcations moved to factory --- portality/static/js/edges/admin.notifications.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.notifications.edge.js b/portality/static/js/edges/admin.notifications.edge.js index df1645fe72..c54df27365 100644 --- a/portality/static/js/edges/admin.notifications.edge.js +++ b/portality/static/js/edges/admin.notifications.edge.js @@ -32,11 +32,11 @@ doaj.adminNotificationsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#admin_notifications"; - var search_url = current_scheme + "//" + current_domain + doaj.adminNotificationsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminNotificationsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 406debb9cf6a26073afa9e6d51696378cc2c5572 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:34:06 +0530 Subject: [PATCH 34/76] search_url for admin.reportss moved to factory --- portality/static/js/edges/admin.reports.edge.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.reports.edge.js b/portality/static/js/edges/admin.reports.edge.js index e23d2db1b8..f827bb21c8 100644 --- a/portality/static/js/edges/admin.reports.edge.js +++ b/portality/static/js/edges/admin.reports.edge.js @@ -4,11 +4,12 @@ doaj.adminReportsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#reports"; - var search_url = current_scheme + "//" + current_domain + doaj.adminReportsSearchConfig.searchPath; + + + var search_url = doaj.edgeUtil.url.build( + doaj.adminReportsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From efadac5f92f4896e3da7c7e84c469e7c2616ae44 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:34:48 +0530 Subject: [PATCH 35/76] search_url for admin.ris moved to factory --- portality/static/js/edges/admin.ris.edge.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/portality/static/js/edges/admin.ris.edge.js b/portality/static/js/edges/admin.ris.edge.js index a6f6f0f6bf..4fc90b5247 100644 --- a/portality/static/js/edges/admin.ris.edge.js +++ b/portality/static/js/edges/admin.ris.edge.js @@ -5,12 +5,12 @@ doaj.adminRISSearch = { init : function(params) { if (!params) { params = {} } - - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - + var selector = params.selector || "#ris"; - var search_url = current_scheme + "//" + current_domain + doaj.adminRISSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminRISSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 8baae88e6037796ddebbb3d7ddc40d088ae65f6d Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:36:07 +0530 Subject: [PATCH 36/76] search_url for admin.update_req moved to factory --- portality/static/js/edges/admin.update_requests.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.update_requests.edge.js b/portality/static/js/edges/admin.update_requests.edge.js index e0b304ec0a..e782d85317 100644 --- a/portality/static/js/edges/admin.update_requests.edge.js +++ b/portality/static/js/edges/admin.update_requests.edge.js @@ -28,11 +28,11 @@ doaj.adminApplicationsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#admin_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.adminApplicationsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.adminApplicationsSearchConfig.searchPath + ); var components = [ doaj.components.searchingNotification(), From 1209a242616dd301f4b1da7815f188d942b42323 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:36:47 +0530 Subject: [PATCH 37/76] search_url for admin.users moved to factory --- portality/static/js/edges/admin.users.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/admin.users.edge.js b/portality/static/js/edges/admin.users.edge.js index f96b87ff23..658eff6a93 100644 --- a/portality/static/js/edges/admin.users.edge.js +++ b/portality/static/js/edges/admin.users.edge.js @@ -28,11 +28,11 @@ doaj.userSearch = { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#users"; - var search_url = current_scheme + "//" + current_domain + doaj.userSearchConfig.userSearchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.userSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From d6356904bc45083ab1f711e4c2b07087d8efc37d Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:38:00 +0530 Subject: [PATCH 38/76] search_url for associate.app moved to factory --- portality/static/js/edges/associate.applications.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/associate.applications.edge.js b/portality/static/js/edges/associate.applications.edge.js index 87a2610bb0..81504cde23 100644 --- a/portality/static/js/edges/associate.applications.edge.js +++ b/portality/static/js/edges/associate.applications.edge.js @@ -11,11 +11,11 @@ doaj.associateApplicationsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#associate_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.associateApplicationsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.associateApplicationsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From ca07dce934c8b608964d6e8f3d00d47bad44cfdd Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:38:34 +0530 Subject: [PATCH 39/76] search_url for associate.journals moved to factory --- portality/static/js/edges/associate.journals.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/associate.journals.edge.js b/portality/static/js/edges/associate.journals.edge.js index 5a3863d8e4..9777c2898d 100644 --- a/portality/static/js/edges/associate.journals.edge.js +++ b/portality/static/js/edges/associate.journals.edge.js @@ -4,11 +4,11 @@ doaj.associateJournalsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#associate_journals"; - var search_url = current_scheme + "//" + current_domain + doaj.associateJournalsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.associateJournalsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 6f3766c251d84a7c81a9ef638046b8b7e8424beb Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:39:17 +0530 Subject: [PATCH 40/76] search_url for editor.groupapp moved to factory --- .../static/js/edges/editor.groupapplications.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/editor.groupapplications.edge.js b/portality/static/js/edges/editor.groupapplications.edge.js index 9cfe20eea1..780cbb678c 100644 --- a/portality/static/js/edges/editor.groupapplications.edge.js +++ b/portality/static/js/edges/editor.groupapplications.edge.js @@ -11,11 +11,11 @@ doaj.editorGroupApplicationsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#group_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.editorGroupApplicationsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.editorGroupApplicationsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 3821ee29f1d611ee12bcf89e22c2663789f3368b Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:39:56 +0530 Subject: [PATCH 41/76] search_url for editor.groupjournals moved to factory --- portality/static/js/edges/editor.groupjournals.edge.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/portality/static/js/edges/editor.groupjournals.edge.js b/portality/static/js/edges/editor.groupjournals.edge.js index 6f503ffd7d..07696d67c9 100644 --- a/portality/static/js/edges/editor.groupjournals.edge.js +++ b/portality/static/js/edges/editor.groupjournals.edge.js @@ -3,12 +3,12 @@ doaj.editorGroupJournalsSearch = { init : function(params) { if (!params) { params = {} } - - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - + var selector = params.selector || "#group_journals"; - var search_url = current_scheme + "//" + current_domain + doaj.editorGroupJournalsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.editorGroupJournalsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From ef0d2140a93d57e019b6e1dcc7dd5b2a051e0508 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:40:40 +0530 Subject: [PATCH 42/76] search_url for notifications moved to factory --- portality/static/js/edges/notifications.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/notifications.edge.js b/portality/static/js/edges/notifications.edge.js index 8fac91f58c..bf55e109ff 100644 --- a/portality/static/js/edges/notifications.edge.js +++ b/portality/static/js/edges/notifications.edge.js @@ -45,11 +45,11 @@ doaj.notificationsSearch = { init: function (params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#notifications"; - var search_url = current_scheme + "//" + current_domain + doaj.notificationsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.notificationsSearchConfig.searchPath + ); var components = [ doaj.components.searchingNotification(), From 8b620b59682146fd4ab766f4e7336b44e9d4f014 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:41:27 +0530 Subject: [PATCH 43/76] search_url for public.article moved to factory --- portality/static/js/edges/public.article.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/public.article.edge.js b/portality/static/js/edges/public.article.edge.js index d0acc2c329..3fb930c010 100644 --- a/portality/static/js/edges/public.article.edge.js +++ b/portality/static/js/edges/public.article.edge.js @@ -25,11 +25,11 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#public-article-search"; - var search_url = current_scheme + "//" + current_domain + doaj.publicSearchConfig.publicSearchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.publicSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From a70558d97a77dcd94c93d6058cd8532eb05d93d0 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:42:06 +0530 Subject: [PATCH 44/76] search_url for public.journal moved to factory --- portality/static/js/edges/public.journal.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/public.journal.edge.js b/portality/static/js/edges/public.journal.edge.js index 8741a62e21..da75e0c508 100644 --- a/portality/static/js/edges/public.journal.edge.js +++ b/portality/static/js/edges/public.journal.edge.js @@ -26,11 +26,11 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#public-journal-search"; - var search_url = current_scheme + "//" + current_domain + doaj.publicSearchConfig.publicSearchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.publicSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 306fc724035fbdd16c7aadb5be2029392cfff3b4 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:42:47 +0530 Subject: [PATCH 45/76] search_url for public.toc moved to factory --- portality/static/js/edges/public.toc.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/public.toc.edge.js b/portality/static/js/edges/public.toc.edge.js index 66348afbc4..edde7bb217 100644 --- a/portality/static/js/edges/public.toc.edge.js +++ b/portality/static/js/edges/public.toc.edge.js @@ -44,11 +44,11 @@ doaj.publicToC = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#journal_toc_articles"; - var search_url = current_scheme + "//" + current_domain + doaj.publicToCConfig.publicSearchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.publicToCConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From a95bc7f9a513d0bd61cc95192ebce524364ac4a0 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:43:29 +0530 Subject: [PATCH 46/76] search_url for publisher.journals moved to factory --- portality/static/js/edges/publisher.journals.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/publisher.journals.edge.js b/portality/static/js/edges/publisher.journals.edge.js index 74ec11e1a6..9701847518 100644 --- a/portality/static/js/edges/publisher.journals.edge.js +++ b/portality/static/js/edges/publisher.journals.edge.js @@ -23,11 +23,11 @@ doaj.publisherJournalsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#publisher_journals"; - var search_url = current_scheme + "//" + current_domain + doaj.publisherJournalsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.publisherJournalsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 6761486d1379ffba97ae403e8f7aeed1af220e89 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:44:06 +0530 Subject: [PATCH 47/76] search_url for publisher.mydrafts moved to factory --- portality/static/js/edges/publisher.mydrafts.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/publisher.mydrafts.edge.js b/portality/static/js/edges/publisher.mydrafts.edge.js index d3be5796d5..63d5b1e377 100644 --- a/portality/static/js/edges/publisher.mydrafts.edge.js +++ b/portality/static/js/edges/publisher.mydrafts.edge.js @@ -28,11 +28,11 @@ doaj.publisherApplicationsSearch = { init : function(params) { if (!params) { params = {} } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#publisher_applications"; - var search_url = current_scheme + "//" + current_domain + doaj.publisherApplicationsSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.publisherApplicationsSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 2ab9fd8b850063324dc15c5a7a54ba64a1fd8096 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:44:49 +0530 Subject: [PATCH 48/76] search_url for publisher.update_req moved to factory --- .../static/js/edges/publisher.update_requests.edge.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/static/js/edges/publisher.update_requests.edge.js b/portality/static/js/edges/publisher.update_requests.edge.js index 1d0dfc1f3e..4169629a9a 100644 --- a/portality/static/js/edges/publisher.update_requests.edge.js +++ b/portality/static/js/edges/publisher.update_requests.edge.js @@ -29,11 +29,11 @@ doaj.publisherUpdatesSearch = { params = {}; } - var current_domain = document.location.host; - var current_scheme = window.location.protocol; - var selector = params.selector || "#publisher_update_requests"; - var search_url = current_scheme + "//" + current_domain + doaj.publisherUpdatesSearchConfig.searchPath; + + var search_url = doaj.edgeUtil.url.build( + doaj.publisherUpdatesSearchConfig.searchPath + ); var countFormat = edges.numFormat({ thousandsSeparator: "," From 74d206d04750bf08ce4c968d772cec5a4d2f1203 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:58:39 +0530 Subject: [PATCH 49/76] search_url factory moved to edges common --- portality/templates-v2/includes/_edges_common_js.html | 5 ++++- portality/templates-v2/management/admin/alerts_search.html | 1 - portality/templates-v2/management/admin/applications.html | 1 - .../templates-v2/management/admin/autoassign_search.html | 1 - 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/portality/templates-v2/includes/_edges_common_js.html b/portality/templates-v2/includes/_edges_common_js.html index 29723bbff4..84737583ec 100644 --- a/portality/templates-v2/includes/_edges_common_js.html +++ b/portality/templates-v2/includes/_edges_common_js.html @@ -23,4 +23,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/portality/templates-v2/management/admin/alerts_search.html b/portality/templates-v2/management/admin/alerts_search.html index 0700c50628..2388eaa990 100644 --- a/portality/templates-v2/management/admin/alerts_search.html +++ b/portality/templates-v2/management/admin/alerts_search.html @@ -24,6 +24,5 @@ {% include "includes/_edges_common_js.html" %} - {% endblock %} diff --git a/portality/templates-v2/management/admin/applications.html b/portality/templates-v2/management/admin/applications.html index c1f008b681..7a4b780b78 100644 --- a/portality/templates-v2/management/admin/applications.html +++ b/portality/templates-v2/management/admin/applications.html @@ -36,6 +36,5 @@

    Applications

    {% include "management/admin/includes/_applications_and_update_requests_common_js.html" %} - {% endblock %} diff --git a/portality/templates-v2/management/admin/autoassign_search.html b/portality/templates-v2/management/admin/autoassign_search.html index 79f45a9062..cad350b3ec 100644 --- a/portality/templates-v2/management/admin/autoassign_search.html +++ b/portality/templates-v2/management/admin/autoassign_search.html @@ -26,6 +26,5 @@ {% include "includes/_edges_common_js.html" %} - {% endblock %} From 118332d8653945a9b43514092a05e6d1d400cc3a Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 11:59:17 +0530 Subject: [PATCH 50/76] broken search_url handled --- portality/static/js/edges/admin.users.edge.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/portality/static/js/edges/admin.users.edge.js b/portality/static/js/edges/admin.users.edge.js index 658eff6a93..83830c7337 100644 --- a/portality/static/js/edges/admin.users.edge.js +++ b/portality/static/js/edges/admin.users.edge.js @@ -31,7 +31,7 @@ doaj.userSearch = { var selector = params.selector || "#users"; var search_url = doaj.edgeUtil.url.build( - doaj.userSearchConfig.searchPath + doaj.userSearchConfig.userSearchPath ); var countFormat = edges.numFormat({ From 99f0fd738241361cca303026c320120e9747efb6 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 12:05:46 +0530 Subject: [PATCH 51/76] broken search_url handled --- portality/static/js/edges/public.article.edge.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/portality/static/js/edges/public.article.edge.js b/portality/static/js/edges/public.article.edge.js index 3fb930c010..6c04b4e093 100644 --- a/portality/static/js/edges/public.article.edge.js +++ b/portality/static/js/edges/public.article.edge.js @@ -28,7 +28,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} var selector = params.selector || "#public-article-search"; var search_url = doaj.edgeUtil.url.build( - doaj.publicSearchConfig.searchPath + doaj.publicSearchConfig.publicSearchPath ); var countFormat = edges.numFormat({ From b6048ed7c0136d5e2c343a36c69a98ea94c176f1 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 12:06:20 +0530 Subject: [PATCH 52/76] broken search_url handled --- portality/static/js/edges/public.journal.edge.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/portality/static/js/edges/public.journal.edge.js b/portality/static/js/edges/public.journal.edge.js index da75e0c508..182fbdcf39 100644 --- a/portality/static/js/edges/public.journal.edge.js +++ b/portality/static/js/edges/public.journal.edge.js @@ -29,7 +29,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} var selector = params.selector || "#public-journal-search"; var search_url = doaj.edgeUtil.url.build( - doaj.publicSearchConfig.searchPath + doaj.publicSearchConfig.publicSearchPath ); var countFormat = edges.numFormat({ From 5808a29cba1281ef56e394c98befbccd5b67a531 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Tue, 10 Mar 2026 12:06:59 +0530 Subject: [PATCH 53/76] broken search_url handled --- portality/static/js/edges/public.toc.edge.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/portality/static/js/edges/public.toc.edge.js b/portality/static/js/edges/public.toc.edge.js index edde7bb217..fae01a8b0d 100644 --- a/portality/static/js/edges/public.toc.edge.js +++ b/portality/static/js/edges/public.toc.edge.js @@ -47,7 +47,7 @@ doaj.publicToC = { var selector = params.selector || "#journal_toc_articles"; var search_url = doaj.edgeUtil.url.build( - doaj.publicToCConfig.searchPath + doaj.publicToCConfig.publicSearchPath ); var countFormat = edges.numFormat({ From 8a4f66a10d3040191b58f4e473b88928f1981a03 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Thu, 12 Mar 2026 15:17:45 +0530 Subject: [PATCH 54/76] Search factory added --- portality/static/js/doaj.fieldrender.edges.js | 157 ++++++++ .../static/js/edges/admin.alerts.edge.js | 158 ++------ .../js/edges/admin.system_objects.edge.js | 356 ++++++++++++++++++ .../admin/system_objects/_search.html | 28 ++ 4 files changed, 567 insertions(+), 132 deletions(-) create mode 100644 portality/static/js/edges/admin.system_objects.edge.js create mode 100644 portality/templates-v2/management/admin/system_objects/_search.html diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index a1799f220a..57402e3050 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -520,6 +520,163 @@ $.extend(true, doaj, { }) }, + //----------------------------- + // Reusable facet helpers + //----------------------------- + + // Standard RefiningAND term facet - replaces the ~10-line repeated block across all edge files. + // Required params: id, field, display + // Optional params: deactivateThreshold (default 0), orderBy, orderDir, open (default false) + refiningAndFacet: function(params) { + return edges.newRefiningANDTermSelector({ + id: params.id, + category: "facet", + field: params.field, + display: params.display, + deactivateThreshold: edges.getParam(params.deactivateThreshold, 0), + orderBy: edges.getParam(params.orderBy, undefined), + orderDir: edges.getParam(params.orderDir, undefined), + renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ + controls: true, + open: edges.getParam(params.open, false), + togglable: true, + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) + }); + }, + + // Month-interval date histogram facet. + // Required params: id, field, display + // Optional params: interval (default "month") + monthDateHistogramFacet: function(params) { + return edges.newDateHistogramSelector({ + id: params.id, + category: "facet", + field: params.field, + interval: edges.getParam(params.interval, "month"), + display: params.display, + displayFormatter: function(val) { + var d = new Date(parseInt(val)); + return d.getUTCFullYear().toString() + "-" + doaj.valueMaps.monthPadding(d.getUTCMonth() + 1); + }, + sortFunction: function(values) { + values.reverse(); + return values; + }, + renderer: edges.bs3.newDateHistogramSelectorRenderer({ + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) + }); + }, + + //----------------------------- + // makeSearch factory + //----------------------------- + // Builds a complete Edges search interface from a declarative config, handling all + // repeated boilerplate (searching notification, pagers, search controller, selected filters, + // error callback) so individual search definitions only need to specify what's unique. + // + // Required params: + // selector {string} CSS selector for the container div, e.g. "#admin_alerts" + // searchUrl {string} Full search URL (use doaj.edgeUtil.url.build(path) to construct) + // + // Optional params: + // facets {Array} Pre-built component objects (use refiningAndFacet / monthDateHistogramFacet) + // sortOptions {Array} [{display, field}] for the sort menu + // fieldOptions {Array} [{display, field}] for the field search menu + // searchPlaceholder {string} Search box placeholder text + // sizeOptions {Array} Page size options, default [25, 50, 100] + // resultsDisplay {Object} A pre-built edges.newResultsDisplay(...) component + // fieldDisplays {Object} Field name -> label map for the selected-filters bar + // rangeFunctions {Object} Field name -> range display function map + // openingQuery {Object} es.newQuery(...) for the initial page load + // callbacks {Object} Edge callbacks; edges:query-fail is always added if absent + makeSearch: function(params) { + var selector = params.selector; + var search_url = params.searchUrl; + + var sortOptions = edges.getParam(params.sortOptions, [{"display": "Date Created", "field": "created_date"}]); + var fieldOptions = edges.getParam(params.fieldOptions, []); + var sizeOptions = edges.getParam(params.sizeOptions, [25, 50, 100]); + var fieldDisplays = edges.getParam(params.fieldDisplays, {}); + var rangeFunctions = edges.getParam(params.rangeFunctions, {}); + var openingQuery = edges.getParam(params.openingQuery, es.newQuery({ + sort: [{field: "created_date", order: "desc"}], + size: 25 + })); + + var callbacks = edges.getParam(params.callbacks, {}); + if (!callbacks["edges:query-fail"]) { + callbacks["edges:query-fail"] = function() { + alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + }; + } + + var components = [doaj.components.searchingNotification()]; + + var facets = edges.getParam(params.facets, []); + for (var i = 0; i < facets.length; i++) { + components.push(facets[i]); + } + + components.push(edges.newFullSearchController({ + id: "search-controller", + category: "controller", + sortOptions: sortOptions, + fieldOptions: fieldOptions, + defaultOperator: "AND", + renderer: doaj.renderers.newFullSearchControllerRenderer({ + freetextSubmitDelay: -1, + searchButton: true, + searchPlaceholder: edges.getParam(params.searchPlaceholder, "Search") + }) + })); + + components.push(edges.newPager({ + id: "top-pager", + category: "top-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: sizeOptions, + numberFormat: doaj.valueMaps.countFormat, + scroll: false + }) + })); + components.push(edges.newPager({ + id: "bottom-pager", + category: "bottom-pager", + renderer: edges.bs3.newPagerRenderer({ + sizeOptions: sizeOptions, + numberFormat: doaj.valueMaps.countFormat, + scroll: false + }) + })); + + if (params.resultsDisplay) { + components.push(params.resultsDisplay); + } + + if (Object.keys(fieldDisplays).length > 0) { + components.push(edges.newSelectedFilters({ + id: "selected-filters", + category: "selected-filters", + fieldDisplays: fieldDisplays, + rangeFunctions: rangeFunctions + })); + } + + return edges.newEdge({ + selector: selector, + template: edges.bs3.newFacetview(), + search_url: search_url, + manageUrl: true, + components: components, + openingQuery: openingQuery, + callbacks: callbacks + }); + }, + newDateHistogramSelector : function(params) { if (!params) { params = {} } doaj.components.DateHistogramSelector.prototype = edges.newSelector(params); diff --git a/portality/static/js/edges/admin.alerts.edge.js b/portality/static/js/edges/admin.alerts.edge.js index 93e3dbc414..9d43c3aa82 100644 --- a/portality/static/js/edges/admin.alerts.edge.js +++ b/portality/static/js/edges/admin.alerts.edge.js @@ -1,7 +1,6 @@ // ~~ AdminAlerts:Edge ~~ // ~~-> Edges:Technology ~~ -// Ensure namespace exists doaj.adminAlertsSearch = { activeEdges: {}, @@ -11,112 +10,23 @@ doaj.adminAlertsSearch = { var selector = params.selector || "#admin_alerts"; - var search_url = doaj.edgeUtil.url.build( - doaj.adminAlertsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - edges.newRefiningANDTermSelector({ - id: "source", - category: "facet", - field: "source.exact", - display: "Source", - deactivateThreshold: 0, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - edges.newRefiningANDTermSelector({ - id: "state", - category: "facet", - field: "state.exact", - display: "State", - orderBy: "term", - orderDir: "asc", - deactivateThreshold: 0, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - edges.newDateHistogramSelector({ - id: "created_date", - category: "facet", - field: "created_date", - interval: "month", - display: "Date", - displayFormatter: function(val) { - let d = new Date(parseInt(val)) - return d.getUTCFullYear().toString() + "-" + doaj.valueMaps.monthPadding(d.getUTCMonth() + 1); - }, - sortFunction: function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true - }) - }), - - // search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Alert Date','field':'created_date'} - ], - fieldOptions: [ - {'display':'Message','field':'message'}, - {'display':'Source','field':'source'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Alerts" - }) - }), - - // pagers - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminAlertsSearchConfig.searchPath), + facets: [ + doaj.components.refiningAndFacet({id: "source", field: "source.exact", display: "Source"}), + doaj.components.refiningAndFacet({id: "state", field: "state.exact", display: "State", orderBy: "term", orderDir: "asc"}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date"}) + ], + sortOptions: [ + {'display': 'Alert Date', 'field': 'created_date'} + ], + fieldOptions: [ + {'display': 'Message', 'field': 'message'}, + {'display': 'Source', 'field': 'source'} + ], + searchPlaceholder: "Search All Alerts", + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ @@ -164,36 +74,20 @@ doaj.adminAlertsSearch = { ] }) }), - - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "source.exact": "Source", - "state.exact": "State", - "created_date": "Alert Date" - }, - rangeFunctions: { - "created_date": doaj.valueMaps.displayYearMonthPeriod - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, + fieldDisplays: { + "source.exact": "Source", + "state.exact": "State", + "created_date": "Alert Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + }, openingQuery: es.newQuery({ must: [es.newTermFilter({field: "state.exact", value: "new"})], sort: [{field: "created_date", order: "desc"}], size: 25 }), callbacks: { - "edges:query-fail": function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - }, "edges:post-render": function() { let resultsComponent = doaj.adminAlertsSearch.activeEdges[selector].getComponent({id: "results"}); let controllSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "control"); @@ -221,4 +115,4 @@ doaj.adminAlertsSearch = { jQuery(document).ready(function() { doaj.adminAlertsSearch.init(); -}); \ No newline at end of file +}); diff --git a/portality/static/js/edges/admin.system_objects.edge.js b/portality/static/js/edges/admin.system_objects.edge.js new file mode 100644 index 0000000000..5c1bc7ba0a --- /dev/null +++ b/portality/static/js/edges/admin.system_objects.edge.js @@ -0,0 +1,356 @@ +// ~~ SystemObjectsSearch:Feature ~~ +// ~~-> Edges:Technology ~~ +// +// Admin-only search interfaces for system objects. +// Uses doaj.components.makeSearch() from doaj.fieldrender.edges.js - each search +// is defined with a few lines of config. + +doaj.systemObjectSearch = { + + activeEdges: {}, + + //----------------------------- + // Generic JSON results renderer + //----------------------------- + // Displays each result as pretty-printed JSON. + // Used as the default results display for system objects where no custom rendering is needed. + + newJSONResultsRenderer: function(params) { + return edges.instantiate(doaj.systemObjectSearch.JSONResultsRenderer, params, edges.newRenderer); + }, + + JSONResultsRenderer: function(params) { + this.namespace = "doaj-json-results"; + this.noResultsText = edges.getParam(params.noResultsText, "No results found."); + + this.draw = function() { + if (this.component.results === false || this.component.results.length === 0) { + this.component.context.html("

    " + this.noResultsText + "

    "); + return; + } + var frag = ""; + for (var i = 0; i < this.component.results.length; i++) { + var res = this.component.results[i]; + frag += '
    '; + frag += '
    ';
    +                frag += edges.escapeHtml(JSON.stringify(res, null, 2));
    +                frag += '
    '; + frag += '
    '; + } + this.component.context.html(frag); + }; + }, + + // Builds a resultsDisplay component using the JSON renderer + jsonResultsDisplay: function() { + return edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: doaj.systemObjectSearch.newJSONResultsRenderer() + }); + }, + + //----------------------------- + // Per-object init functions + //----------------------------- + + initProvenance: function() { + var e = doaj.components.makeSearch({ + selector: "#provenance_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/provenance/_search"), + facets: [ + doaj.components.refiningAndFacet({id: "user", field: "user.exact", display: "User"}), + doaj.components.refiningAndFacet({id: "type", field: "type.exact", display: "Object Type"}), + doaj.components.refiningAndFacet({id: "subtype", field: "subtype.exact", display: "Subtype"}), + doaj.components.refiningAndFacet({id: "action", field: "action.exact", display: "Action"}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date"}) + ], + sortOptions: [ + {"display": "Date Created", "field": "created_date"}, + {"display": "User", "field": "user.exact"} + ], + fieldOptions: [ + {"display": "User", "field": "user"}, + {"display": "Resource ID", "field": "resource_id"}, + {"display": "Action", "field": "action"}, + {"display": "Object Type", "field": "type"} + ], + searchPlaceholder: "Search Provenance Records", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "user.exact": "User", + "type.exact": "Object Type", + "subtype.exact": "Subtype", + "action.exact": "Action", + "created_date": "Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }); + doaj.systemObjectSearch.activeEdges["#provenance_search"] = e; + }, + + initFileUploads: function() { + var e = doaj.components.makeSearch({ + selector: "#file_uploads_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/upload/_search"), + facets: [ + doaj.components.refiningAndFacet({id: "status", field: "status.exact", display: "Status"}), + doaj.components.refiningAndFacet({id: "owner", field: "owner.exact", display: "Owner"}), + doaj.components.refiningAndFacet({id: "schema", field: "schema.exact", display: "Schema"}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date"}) + ], + sortOptions: [ + {"display": "Date Created", "field": "created_date"}, + {"display": "Owner", "field": "owner.exact"} + ], + fieldOptions: [ + {"display": "Owner", "field": "owner"}, + {"display": "Filename", "field": "filename"}, + {"display": "Status", "field": "status.exact"} + ], + searchPlaceholder: "Search File Uploads", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "status.exact": "Status", + "owner.exact": "Owner", + "schema.exact": "Schema", + "created_date": "Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }); + doaj.systemObjectSearch.activeEdges["#file_uploads_search"] = e; + }, + + initBulkUploads: function() { + var e = doaj.components.makeSearch({ + selector: "#bulk_uploads_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/bulk_articles/_search"), + facets: [ + doaj.components.refiningAndFacet({id: "status", field: "status.exact", display: "Status"}), + doaj.components.refiningAndFacet({id: "owner", field: "owner.exact", display: "Owner"}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date"}) + ], + sortOptions: [ + {"display": "Date Created", "field": "created_date"}, + {"display": "Owner", "field": "owner.exact"} + ], + fieldOptions: [ + {"display": "Owner", "field": "owner"}, + {"display": "Status", "field": "status.exact"} + ], + searchPlaceholder: "Search Bulk Uploads", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "status.exact": "Status", + "owner.exact": "Owner", + "created_date": "Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }); + doaj.systemObjectSearch.activeEdges["#bulk_uploads_search"] = e; + }, + + initCache: function() { + var e = doaj.components.makeSearch({ + selector: "#cache_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/cache/_search"), + sortOptions: [ + {"display": "Date Created", "field": "created_date"}, + {"display": "Last Updated", "field": "last_updated"} + ], + searchPlaceholder: "Search Cache", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + openingQuery: es.newQuery({size: 25}) + }); + doaj.systemObjectSearch.activeEdges["#cache_search"] = e; + }, + + initLocks: function() { + var e = doaj.components.makeSearch({ + selector: "#locks_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/lock/_search"), + facets: [ + doaj.components.refiningAndFacet({id: "type", field: "type.exact", display: "Type"}), + doaj.components.refiningAndFacet({id: "username", field: "username.exact", display: "Username"}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date"}) + ], + sortOptions: [ + {"display": "Date Created", "field": "created_date"}, + {"display": "Expires", "field": "expires"}, + {"display": "Username", "field": "username.exact"} + ], + fieldOptions: [ + {"display": "Username", "field": "username"}, + {"display": "About (resource ID)", "field": "about"} + ], + searchPlaceholder: "Search Locks", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "type.exact": "Type", + "username.exact": "Username", + "created_date": "Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }); + doaj.systemObjectSearch.activeEdges["#locks_search"] = e; + }, + + initPreservation: function() { + var e = doaj.components.makeSearch({ + selector: "#preservation_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/preserve/_search"), + facets: [ + doaj.components.refiningAndFacet({id: "status", field: "status.exact", display: "Status"}), + doaj.components.refiningAndFacet({id: "owner", field: "owner.exact", display: "Owner"}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date"}) + ], + sortOptions: [ + {"display": "Date Created", "field": "created_date"}, + {"display": "Owner", "field": "owner.exact"} + ], + fieldOptions: [ + {"display": "Owner", "field": "owner"}, + {"display": "Filename", "field": "filename"}, + {"display": "Status", "field": "status.exact"} + ], + searchPlaceholder: "Search Preservation Files", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "status.exact": "Status", + "owner.exact": "Owner", + "created_date": "Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }); + doaj.systemObjectSearch.activeEdges["#preservation_search"] = e; + }, + + initArticleTombstones: function() { + var e = doaj.components.makeSearch({ + selector: "#article_tombstones_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/article_tombstone/_search"), + facets: [ + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date Deleted"}) + ], + sortOptions: [ + {"display": "Date Deleted", "field": "created_date"}, + {"display": "Last Updated", "field": "last_updated"} + ], + fieldOptions: [ + {"display": "DOI", "field": "bibjson.identifier.id"}, + {"display": "Title", "field": "bibjson.title"}, + {"display": "Author", "field": "bibjson.author.name"} + ], + searchPlaceholder: "Search Article Tombstones", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "created_date": "Date Deleted" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }); + doaj.systemObjectSearch.activeEdges["#article_tombstones_search"] = e; + }, + + initDraftApplications: function() { + var e = doaj.components.makeSearch({ + selector: "#draft_applications_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/draft_application/_search"), + facets: [ + doaj.components.refiningAndFacet({id: "owner", field: "admin.owner.exact", display: "Owner"}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date"}) + ], + sortOptions: [ + {"display": "Date Created", "field": "created_date"}, + {"display": "Last Updated", "field": "last_updated"} + ], + fieldOptions: [ + {"display": "Title", "field": "bibjson.title"}, + {"display": "ISSN", "field": "bibjson.identifier.id"}, + {"display": "Owner", "field": "admin.owner"} + ], + searchPlaceholder: "Search Draft Applications", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "admin.owner.exact": "Owner", + "created_date": "Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }); + doaj.systemObjectSearch.activeEdges["#draft_applications_search"] = e; + }, + + initHarvesterState: function() { + var e = doaj.components.makeSearch({ + selector: "#harvester_state_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/harvester_state/_search"), + facets: [ + doaj.components.refiningAndFacet({id: "status", field: "status.exact", display: "Status"}), + doaj.components.refiningAndFacet({id: "account", field: "account.exact", display: "Account"}) + ], + sortOptions: [ + {"display": "Last Updated", "field": "last_updated"}, + {"display": "Date Created", "field": "created_date"}, + {"display": "Account", "field": "account.exact"} + ], + fieldOptions: [ + {"display": "Account", "field": "account"}, + {"display": "ISSN", "field": "issn"}, + {"display": "Status", "field": "status.exact"} + ], + searchPlaceholder: "Search Harvester State", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "status.exact": "Status", + "account.exact": "Account" + }, + openingQuery: es.newQuery({ + sort: [{field: "last_updated", order: "desc"}], + size: 25 + }) + }); + doaj.systemObjectSearch.activeEdges["#harvester_state_search"] = e; + }, + + initAutochecks: function() { + var e = doaj.components.makeSearch({ + selector: "#autochecks_search", + searchUrl: doaj.edgeUtil.url.build("/admin_query/autocheck/_search"), + facets: [ + doaj.components.refiningAndFacet({id: "checked_by", field: "checks.checked_by.exact", display: "Checked By"}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Date"}) + ], + sortOptions: [ + {"display": "Date Created", "field": "created_date"}, + {"display": "Last Updated", "field": "last_updated"} + ], + fieldOptions: [ + {"display": "Application ID", "field": "application"}, + {"display": "Journal ID", "field": "journal"} + ], + searchPlaceholder: "Search Autochecks", + resultsDisplay: doaj.systemObjectSearch.jsonResultsDisplay(), + fieldDisplays: { + "checks.checked_by.exact": "Checked By", + "created_date": "Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod + } + }); + doaj.systemObjectSearch.activeEdges["#autochecks_search"] = e; + } +}; diff --git a/portality/templates-v2/management/admin/system_objects/_search.html b/portality/templates-v2/management/admin/system_objects/_search.html new file mode 100644 index 0000000000..883abd8b1f --- /dev/null +++ b/portality/templates-v2/management/admin/system_objects/_search.html @@ -0,0 +1,28 @@ +{% extends "management/admin/base.html" %} +{# ~~ AdminSystemObjectsSearch:Page -> SystemObjectsSearch:Feature ~~ #} +{# + Shared template for all system-object search pages. + Rendered via render_template(..., container_id="...", init_function="...", page_title="...") +#} + +{% block admin_stylesheets %} + {% include "management/includes/_edges_common_css.html" %} + +{% endblock %} + +{% block page_title %}{{ page_title }}{% endblock %} + +{% block admin_content %} +

    {{ page_title }}

    +
    +{% endblock %} + +{% block admin_js %} + {% include "includes/_edges_common_js.html" %} + + +{% endblock %} From 09e4a4d54552ec62e00ff8589769fb38cee399e4 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 10:48:55 +0530 Subject: [PATCH 55/76] admin notifications updated --- portality/static/js/doaj.fieldrender.edges.js | 6 +- .../js/edges/admin.notifications.edge.js | 230 +++--------------- 2 files changed, 44 insertions(+), 192 deletions(-) diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index 57402e3050..013d907597 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -536,6 +536,8 @@ $.extend(true, doaj, { deactivateThreshold: edges.getParam(params.deactivateThreshold, 0), orderBy: edges.getParam(params.orderBy, undefined), orderDir: edges.getParam(params.orderDir, undefined), + size: edges.getParam(params.size, undefined), + valueMap: edges.getParam(params.valueMap, undefined), renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ controls: true, open: edges.getParam(params.open, false), @@ -602,6 +604,7 @@ $.extend(true, doaj, { var sizeOptions = edges.getParam(params.sizeOptions, [25, 50, 100]); var fieldDisplays = edges.getParam(params.fieldDisplays, {}); var rangeFunctions = edges.getParam(params.rangeFunctions, {}); + var valueMaps = edges.getParam(params.valueMaps, {}); var openingQuery = edges.getParam(params.openingQuery, es.newQuery({ sort: [{field: "created_date", order: "desc"}], size: 25 @@ -662,7 +665,8 @@ $.extend(true, doaj, { id: "selected-filters", category: "selected-filters", fieldDisplays: fieldDisplays, - rangeFunctions: rangeFunctions + rangeFunctions: rangeFunctions, + valueMaps: valueMaps })); } diff --git a/portality/static/js/edges/admin.notifications.edge.js b/portality/static/js/edges/admin.notifications.edge.js index c54df27365..0b3deefc6d 100644 --- a/portality/static/js/edges/admin.notifications.edge.js +++ b/portality/static/js/edges/admin.notifications.edge.js @@ -34,217 +34,65 @@ doaj.adminNotificationsSearch = { var selector = params.selector || "#admin_notifications"; - var search_url = doaj.edgeUtil.url.build( - doaj.adminNotificationsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - let markdownConverter = new showdown.Converter({ literalMidWordUnderscores: true }); - var components = [ - doaj.components.searchingNotification(), - - // facets - - edges.newRefiningANDTermSelector({ - id: "who", - category: "facet", - field: "who.exact", - display: "Notification For", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "created_by", - category: "facet", - field: "created_by.exact", - display: "Notification", - size: 20, - orderBy: "term", - orderDir: "asc", - deactivateThreshold: 1, - valueMap: doaj.adminNotificationsSearch.createdByMap, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "classification.exact", - display: "Type", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newDateHistogramSelector({ - id: "created_date", - category: "facet", - field : "created_date", - interval: "month", - display: "Notification Month", - displayFormatter : function(val) { - let d = new Date(parseInt(val)) - return d.getUTCFullYear().toString() + "-" + doaj.valueMaps.monthPadding(d.getUTCMonth() + 1); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Notification Date','field':'created_date'} - ], - fieldOptions: [ - {'display':'Notification For','field':'who'}, - {'display':'Title','field':'short'}, - {'display':'Body Text','field':'long'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Notifications" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminNotificationsSearchConfig.searchPath), + facets: [ + doaj.components.refiningAndFacet({id: "who", field: "who.exact", display: "Notification For", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "created_by", field: "created_by.exact", display: "Notification", size: 20, orderBy: "term", orderDir: "asc", deactivateThreshold: 1, valueMap: doaj.adminNotificationsSearch.createdByMap}), + doaj.components.refiningAndFacet({id: "classification", field: "classification.exact", display: "Type", deactivateThreshold: 1}), + doaj.components.monthDateHistogramFacet({id: "created_date", field: "created_date", display: "Notification Month"}) + ], + sortOptions: [ + {'display': 'Notification Date', 'field': 'created_date'} + ], + fieldOptions: [ + {'display': 'Notification For', 'field': 'who'}, + {'display': 'Title', 'field': 'short'}, + {'display': 'Body Text', 'field': 'long'} + ], + searchPlaceholder: "Search All Notifications", + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ + rowDisplay: [ [ - { - pre : "For ", - field: "who", - post: "" - }, - { - pre: " at ", - field: "created_date", - post: "" - }, - { - pre: " by ", - field: "created_by", - post: "" - }, - { - pre: " (", - field: "classification", - post: ")

    " - } + {pre: "For ", field: "who", post: ""}, + {pre: " at ", field: "created_date", post: ""}, + {pre: " by ", field: "created_by", post: ""}, + {pre: " (", field: "classification", post: ")

    "} ], [ - { - pre : "", - field: "short", - post: "" - } + {pre: "", field: "short", post: ""} ], [ - { - valueFunction: function(val, res, component) { - return markdownConverter.makeHtml(res.long); - } - } + {valueFunction: function(val, res) { return markdownConverter.makeHtml(res.long); }} ], [ - { - pre: 'See action' - } + {pre: 'See action'} ] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "who.exact" : "Who", - "created_by.exact" : "Action", - "classification.exact" : "Type", - "created_date" : "Notification Date" - }, - valueMaps : { - "created_by.exact" : doaj.adminNotificationsSearch.createdByMap, - }, - rangeFunctions : { - "created_date" : doaj.valueMaps.displayYearMonthPeriod - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - sort: [{field: "created_date", order: "desc"}], - size: 25 - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } + fieldDisplays: { + "who.exact": "Who", + "created_by.exact": "Action", + "classification.exact": "Type", + "created_date": "Notification Date" + }, + valueMaps: { + "created_by.exact": doaj.adminNotificationsSearch.createdByMap + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearMonthPeriod } }); + doaj.adminNotificationsSearch.activeEdges[selector] = e; } } From 053487c0eeabeea0c367e7ed92b6ee2aa0b4ce96 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 10:51:44 +0530 Subject: [PATCH 56/76] admin users updated --- portality/static/js/doaj.fieldrender.edges.js | 34 ++- portality/static/js/edges/admin.users.edge.js | 202 ++++-------------- 2 files changed, 69 insertions(+), 167 deletions(-) diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index 013d907597..819b71733a 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -550,13 +550,13 @@ $.extend(true, doaj, { // Month-interval date histogram facet. // Required params: id, field, display - // Optional params: interval (default "month") + // Optional params: open (default false), togglable (default false) monthDateHistogramFacet: function(params) { return edges.newDateHistogramSelector({ id: params.id, category: "facet", field: params.field, - interval: edges.getParam(params.interval, "month"), + interval: "month", display: params.display, displayFormatter: function(val) { var d = new Date(parseInt(val)); @@ -568,7 +568,35 @@ $.extend(true, doaj, { }, renderer: edges.bs3.newDateHistogramSelectorRenderer({ countFormat: doaj.valueMaps.countFormat, - hideInactive: true + hideInactive: true, + open: edges.getParam(params.open, false), + togglable: edges.getParam(params.togglable, false) + }) + }); + }, + + // Year-interval date histogram facet. + // Required params: id, field, display + // Optional params: open (default false), togglable (default false) + yearDateHistogramFacet: function(params) { + return edges.newDateHistogramSelector({ + id: params.id, + category: "facet", + field: params.field, + interval: "year", + display: params.display, + displayFormatter: function(val) { + return (new Date(parseInt(val))).getUTCFullYear().toString(); + }, + sortFunction: function(values) { + values.reverse(); + return values; + }, + renderer: edges.bs3.newDateHistogramSelectorRenderer({ + countFormat: doaj.valueMaps.countFormat, + hideInactive: true, + open: edges.getParam(params.open, false), + togglable: edges.getParam(params.togglable, false) }) }); }, diff --git a/portality/static/js/edges/admin.users.edge.js b/portality/static/js/edges/admin.users.edge.js index 83830c7337..527b3d8dbd 100644 --- a/portality/static/js/edges/admin.users.edge.js +++ b/portality/static/js/edges/admin.users.edge.js @@ -24,184 +24,58 @@ doaj.userSearch = { }, init : function(params) { - if (!params) { - params = {} - } + if (!params) { params = {} } var selector = params.selector || "#users"; - var search_url = doaj.edgeUtil.url.build( - doaj.userSearchConfig.userSearchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - edges.newRefiningANDTermSelector({ - id: "role", - category: "facet", - field: "role.exact", - display: "Role", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: true, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - edges.newDateHistogramSelector({ - id: "created_date", - category: "facet", - field : "created_date", - interval: "year", - display: "Created Date", - displayFormatter : function(val) { - return (new Date(parseInt(val))).getUTCFullYear(); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true, - open: true, - togglable: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Created Date','field':'created_date'}, - {'display':'Last Modified Date','field':'last_updated'}, - {'display':'User ID','field':'id.exact'}, - {'display':'Email address','field':'email.exact'} - ], - fieldOptions: [ - {'display':'User ID','field':'id'}, - {'display':'Email address','field':'email'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Users" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.userSearchConfig.userSearchPath), + facets: [ + doaj.components.refiningAndFacet({id: "role", field: "role.exact", display: "Role", deactivateThreshold: 1, open: true}), + doaj.components.yearDateHistogramFacet({id: "created_date", field: "created_date", display: "Created Date", open: true, togglable: true}) + ], + sortOptions: [ + {'display': 'Created Date', 'field': 'created_date'}, + {'display': 'Last Modified Date', 'field': 'last_updated'}, + {'display': 'User ID', 'field': 'id.exact'}, + {'display': 'Email address', 'field': 'email.exact'} + ], + fieldOptions: [ + {'display': 'User ID', 'field': 'id'}, + {'display': 'Email address', 'field': 'email'} + ], + searchPlaceholder: "Search Users", + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ + rowDisplay: [ + [{pre: "

    ", field: "id", post: "

    "}], [ - { - "pre" : "

    ", - "field" : "id", - "post" : "

    " - } + {pre: ''}, + {field: "email", post: ''} ], + [{pre: "Role(s): ", field: "role", post: ""}], + [{pre: "Account Created: ", field: "created_date"}], + [{pre: "Account Last Modified: ", field: "last_updated"}], [ - { - "pre": '' - }, - { - "field": "email", - "post": '' - } - ], - [ - { - "pre" : "Role(s): ", - "field" : "role", - "post" : "" - } - ], - [ - { - "pre" : "Account Created: ", - "field" : "created_date" - } - ], - [ - { - "pre": "Account Last Modified: ", - "field": "last_updated" - } - ], - [ - { - "valueFunction" : doaj.userSearch.userJournalsLink - }, - { - "valueFunction": doaj.userSearch.editUserLink - } + {valueFunction: doaj.userSearch.userJournalsLink}, + {valueFunction: doaj.userSearch.editUserLink} ] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "role.exact": "Role", - "created_date": "Created Date" - }, - rangeFunctions : { - "created_date" : doaj.valueMaps.displayYearPeriod - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - openingQuery : es.newQuery({size: 25}), - manageUrl: true, - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } + fieldDisplays: { + "role.exact": "Role", + "created_date": "Created Date" + }, + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearPeriod + }, + openingQuery: es.newQuery({size: 25}) }); + doaj.userSearch.activeEdges[selector] = e; } } From 81b2f464dde7fdf92d8ab44a00fb20a95a46461e Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 10:53:48 +0530 Subject: [PATCH 57/76] admin update request updated --- portality/static/js/doaj.fieldrender.edges.js | 9 +- .../js/edges/admin.update_requests.edge.js | 316 ++++++------------ 2 files changed, 101 insertions(+), 224 deletions(-) diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index 819b71733a..6d83bfe777 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -633,6 +633,7 @@ $.extend(true, doaj, { var fieldDisplays = edges.getParam(params.fieldDisplays, {}); var rangeFunctions = edges.getParam(params.rangeFunctions, {}); var valueMaps = edges.getParam(params.valueMaps, {}); + var selectedFiltersRenderer = edges.getParam(params.selectedFiltersRenderer, undefined); var openingQuery = edges.getParam(params.openingQuery, es.newQuery({ sort: [{field: "created_date", order: "desc"}], size: 25 @@ -689,13 +690,17 @@ $.extend(true, doaj, { } if (Object.keys(fieldDisplays).length > 0) { - components.push(edges.newSelectedFilters({ + var sfParams = { id: "selected-filters", category: "selected-filters", fieldDisplays: fieldDisplays, rangeFunctions: rangeFunctions, valueMaps: valueMaps - })); + }; + if (selectedFiltersRenderer) { + sfParams.renderer = selectedFiltersRenderer; + } + components.push(edges.newSelectedFilters(sfParams)); } return edges.newEdge({ diff --git a/portality/static/js/edges/admin.update_requests.edge.js b/portality/static/js/edges/admin.update_requests.edge.js index e782d85317..34439cdaee 100644 --- a/portality/static/js/edges/admin.update_requests.edge.js +++ b/portality/static/js/edges/admin.update_requests.edge.js @@ -30,240 +30,112 @@ doaj.adminApplicationsSearch = { var selector = params.selector || "#admin_applications"; - var search_url = doaj.edgeUtil.url.build( - doaj.adminApplicationsSearchConfig.searchPath - ); - - var components = [ - doaj.components.searchingNotification(), - - // facets - doaj.facets.openOrClosed(), - doaj.facets.applicationStatus(), - doaj.facets.hasEditorGroup(), - doaj.facets.hasEditor(), - doaj.facets.editorGroup(), - doaj.facets.editor(), - doaj.facets.hasAPC(), - doaj.facets.classification(), - doaj.facets.language(), - doaj.facets.countryPublisher(), - doaj.facets.subject(), - doaj.facets.publisher(), - doaj.facets.journalLicence(), - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date applied','field':'admin.date_applied'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'}, - {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Journal: Alternative Title','field':'bibjson.alternative_title'}, - {'display':'Notes','field':'admin.notes.note'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Applications" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - doaj.components.pager("top-pager", "top-pager"), - doaj.components.pager("bottom-pager", "bottom-pager"), - - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminApplicationsSearchConfig.searchPath), + facets: [ + doaj.facets.openOrClosed(), + doaj.facets.applicationStatus(), + doaj.facets.hasEditorGroup(), + doaj.facets.hasEditor(), + doaj.facets.editorGroup(), + doaj.facets.editor(), + doaj.facets.hasAPC(), + doaj.facets.classification(), + doaj.facets.language(), + doaj.facets.countryPublisher(), + doaj.facets.subject(), + doaj.facets.publisher(), + doaj.facets.journalLicence() + ], + sortOptions: [ + {'display': 'Date applied', 'field': 'admin.date_applied'}, + {'display': 'Last updated', 'field': 'last_manual_update'}, + {'display': 'Title', 'field': 'index.unpunctitle.exact'}, + {'display': 'Flag deadline', 'field': 'index.most_urgent_flag_deadline'} + ], + fieldOptions: [ + {'display': 'Title', 'field': 'index.title'}, + {'display': 'Keywords', 'field': 'bibjson.keywords'}, + {'display': 'Classification', 'field': 'index.classification'}, + {'display': 'ISSN', 'field': 'index.issn.exact'}, + {'display': 'Country of publisher', 'field': 'index.country'}, + {'display': 'Journal language', 'field': 'index.language'}, + {'display': 'Publisher', 'field': 'bibjson.publisher.name'}, + {'display': 'Journal: Alternative Title', 'field': 'bibjson.alternative_title'}, + {'display': 'Notes', 'field': 'admin.notes.note'} + ], + searchPlaceholder: "Search All Applications", + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - valueFunction: doaj.fieldRender.editSuggestion({ - editUrl : doaj.adminApplicationsSearchConfig.applicationEditUrl - }) - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - valueFunction: doaj.fieldRender.deadline - } - ], - [ - { - "pre": "Date applied: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - valueFunction: doaj.fieldRender.issns - } - ], - [ - { - "pre" : "Application status: ", - valueFunction: doaj.fieldRender.applicationStatus - } - ], - [ - { - "pre" : "Editor Group: ", - "field" : "admin.editor_group" - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Country of publisher: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "Journal license: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - valueFunction: doaj.adminApplicationsSearch.relatedJournal - } - ] + rowDisplay: [ + [{valueFunction: doaj.fieldRender.titleField}], + [{valueFunction: doaj.fieldRender.editSuggestion({editUrl: doaj.adminApplicationsSearchConfig.applicationEditUrl})}], + [{pre: 'Alternative title: ', field: "bibjson.alternative_title", post: ""}], + [{valueFunction: doaj.fieldRender.deadline}], + [{pre: "Date applied: ", valueFunction: doaj.fieldRender.suggestedOn}], + [{pre: "Last updated: ", valueFunction: doaj.fieldRender.lastManualUpdate}], + [{pre: "Owner: ", valueFunction: doaj.fieldRender.owner}], + [{valueFunction: doaj.fieldRender.issns}], + [{pre: "Application status: ", valueFunction: doaj.fieldRender.applicationStatus}], + [{pre: "Editor Group: ", field: "admin.editor_group"}], + [{pre: "Classification: ", field: "index.classification"}], + [{pre: "Keywords: ", field: "bibjson.keywords"}], + [{pre: "Publisher: ", field: "bibjson.publisher.name"}], + [{pre: "Publication charges?: ", valueFunction: doaj.fieldRender.authorPays}], + [{pre: "Country of publisher: ", valueFunction: doaj.fieldRender.countryName}], + [{pre: "Journal language: ", field: "bibjson.language"}], + [{pre: "Journal license: ", valueFunction: doaj.fieldRender.journalLicense}], + [{valueFunction: doaj.fieldRender.links}], + [{valueFunction: doaj.adminApplicationsSearch.relatedJournal}] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'admin.application_status.exact': 'Status', - 'index.application_type.exact' : 'Update Request', - 'index.has_editor_group.exact' : 'Editor Group?', - 'index.has_editor.exact' : 'Associate Editor?', - 'admin.editor_group.exact' : 'Editor Group', - 'admin.editor.exact' : 'Editor', - 'index.classification.exact' : 'Classification', - 'index.language.exact' : 'Language', - 'index.country.exact' : 'Country', - 'index.subject.exact' : 'Subject', - 'bibjson.publisher.name.exact' : 'Publisher', - 'bibjson.provider.exact' : 'Platform, Host, Aggregator', - "index.has_apc.exact" : "Charges?", - 'index.license.exact' : 'License', - 'index.is_flagged': "Only Flagged Records", - 'index.flag_assignees.exact': "Flagged to me" - }, - valueMaps : { - "index.application_type.exact" : { - "finished application/update": "Closed", - "update request": "Open", - "new application": "Open" - } - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - hideValues: [ - 'index.is_flagged', - 'index.flag_assignees.exact' - ] - }) - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "admin.date_applied", "order" : "asc"} + fieldDisplays: { + 'admin.application_status.exact': 'Status', + 'index.application_type.exact': 'Update Request', + 'index.has_editor_group.exact': 'Editor Group?', + 'index.has_editor.exact': 'Associate Editor?', + 'admin.editor_group.exact': 'Editor Group', + 'admin.editor.exact': 'Editor', + 'index.classification.exact': 'Classification', + 'index.language.exact': 'Language', + 'index.country.exact': 'Country', + 'index.subject.exact': 'Subject', + 'bibjson.publisher.name.exact': 'Publisher', + 'bibjson.provider.exact': 'Platform, Host, Aggregator', + 'index.has_apc.exact': 'Charges?', + 'index.license.exact': 'License', + 'index.is_flagged': "Only Flagged Records", + 'index.flag_assignees.exact': "Flagged to me" + }, + valueMaps: { + "index.application_type.exact": { + "finished application/update": "Closed", + "update request": "Open", + "new application": "Open" + } + }, + selectedFiltersRenderer: doaj.renderers.newSelectedFiltersRenderer({ + hideValues: [ + 'index.is_flagged', + 'index.flag_assignees.exact' + ] }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + openingQuery: es.newQuery({ + sort: {"field": "admin.date_applied", "order": "asc"} + }), + callbacks: { + "edges:pre-render": function() { + doaj.multiFormBox.active.validate(); } } }); - doaj.adminApplicationsSearch.activeEdges[selector] = e; + doaj.adminApplicationsSearch.activeEdges[selector] = e; doaj.multiFormBox.active = doaj.bulk.applicationMultiFormBox(e, "update_requests"); - $(selector).on("edges:pre-render", function() { - doaj.multiFormBox.active.validate(); - }); } } From 53266827ce0173e0383895935b17e36cca07d590 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 10:56:17 +0530 Subject: [PATCH 58/76] admin journals updated --- portality/static/js/doaj.fieldrender.edges.js | 2 +- .../static/js/edges/admin.journals.edge.js | 907 ++++++------------ 2 files changed, 269 insertions(+), 640 deletions(-) diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index 6d83bfe777..b02e837752 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -543,7 +543,7 @@ $.extend(true, doaj, { open: edges.getParam(params.open, false), togglable: true, countFormat: doaj.valueMaps.countFormat, - hideInactive: true + hideInactive: edges.getParam(params.hideInactive, true) }) }); }, diff --git a/portality/static/js/edges/admin.journals.edge.js b/portality/static/js/edges/admin.journals.edge.js index 73253b913d..9728a7ba91 100644 --- a/portality/static/js/edges/admin.journals.edge.js +++ b/portality/static/js/edges/admin.journals.edge.js @@ -4,9 +4,6 @@ doaj.adminJournalsSearch = { makeContinuation : function (val, resultobj, renderer) { if (!resultobj.suggestion && !resultobj.bibjson.journal) { - // if it's not a suggestion or an article .. (it's a - // journal!) - // we really need to expose _type ... var result = '
    0 && values[0].display === "1970") { - values.shift(); - } - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), - - doaj.components.newDateHistogramSelector({ - id: "last_full_review_histogram", - category: "facet", - field: "admin.last_full_review", - display: "Last Full Review Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "last_full_review_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - if (values.length > 0 && values[0].display === "1970") { - values.shift(); - } - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), - - doaj.components.newReportExporter({ - id: "report-exporter", - category: "facet", - model: "journal", - facetExports: [ - {component_id: "in_doaj", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "owner", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "has_editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "has_associate_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "associate_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "admin_has_apc", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "admin_has_other_charges", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "journal_license", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "classification", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "subject", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "journal_language", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "country_publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "continued", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "discontinued_date", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "created_date_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "last_updated_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "last_full_review_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter} - ] - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date added to DOAJ','field':'created_date'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'}, - {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'}, - {'display': "Last Full Review", "field": "admin.last_full_review"} - ], - fieldOptions: [ - {'display':'Owner','field':'admin.owner'}, - {'display':'Title','field':'index.title'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'}, - {'display':'Subject','field':'index.subject'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Notes','field':'admin.notes.note'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Journals" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false + filters: [ + doaj.filters.isFlagged(), + doaj.filters.flaggedToMe() + ], + renderer: doaj.renderers.newFacetFilterSetterRenderer({ + facetTitle: "", + open: true, + togglable: false, + showCount: true, + countFormat: doaj.valueMaps.countFormat + }) + }), + doaj.facets.inDOAJ(), + doaj.components.refiningAndFacet({id: "owner", field: "admin.owner.exact", display: "Owner", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "has_editor_group", field: "index.has_editor_group.exact", display: "Has editor group?", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "has_associate_editor", field: "index.has_editor.exact", display: "Has Associate Editor?", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "editor_group", field: "admin.editor_group.exact", display: "Editor group", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "associate_editor", field: "admin.editor.exact", display: "Associate Editor", deactivateThreshold: 1}), + doaj.facets.adminHasAPC(), + doaj.facets.adminHasOtherCharges(), + doaj.components.refiningAndFacet({id: "journal_license", field: "index.license.exact", display: "Journal license", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "publisher", field: "bibjson.publisher.name.exact", display: "Publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "classification", field: "index.classification.exact", display: "Classification", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "subject", field: "index.subject.exact", display: "Subject", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_language", field: "index.language.exact", display: "Journal language", deactivateThreshold: 1, hideInactive: false}), + doaj.components.refiningAndFacet({id: "country_publisher", field: "index.country.exact", display: "Country of publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "continued", field: "index.continued.exact", display: "Continued", deactivateThreshold: 1}), + doaj.components.yearDateHistogramFacet({id: "discontinued_date", field: "bibjson.discontinued_date", display: "Discontinued Year"}), + doaj.components.newFacetDivider({ + id: "reporting_tools_divider", + category: "facet", + display: "Reporting Tools" + }), + doaj.components.newSimultaneousDateRangeEntry({ + id: "date_limiter", + display: "Limit by Date Range", + fields: [ + {"field": "created_date", "display": "Created Date"}, + {"field": "last_manual_update", "display": "Last Updated"}, + {"field": "admin.last_full_review", "display": "Last Full Review"}, + {"field": "admin.last_reinstated", "display": "Last Reinstated"}, + {"field": "admin.last_withdrawn", "display": "Last Withdrawn"}, + {"field": "admin.last_owner_transfer", "display": "Last Owner Transfer"}, + {"field": "admin.date_applied", "display": "Date Applied"}, + ], + autoLookupRange: true, + autoLookupFilters: [ + es.newRangeFilter({field: "last_manual_update", gte: "2000-01-01T00:00:00Z"}) + ], + category: "facet", + renderer: doaj.renderers.newBSMultiDateRangeFacet({ + open: true + }) + }), + doaj.components.newDateHistogramSelector({ + id: "created_date_histogram", + category: "facet", + field: "created_date", + display: "Date Added Histogram", + interval: "year", + displayFormatter: function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "created_date_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', {year: 'numeric', timeZone: "UTC"}); + } else if (interval === "month") { + return date.toLocaleString('default', {month: 'long', year: 'numeric', timeZone: "UTC"}); + } + }, + sortFunction: function(values) { + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) + }), + doaj.components.newDateHistogramSelector({ + id: "last_updated_histogram", + category: "facet", + field: "last_manual_update", + display: "Last Update Histogram", + interval: "year", + displayFormatter: function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "last_updated_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', {year: 'numeric', timeZone: "UTC"}); + } else if (interval === "month") { + return date.toLocaleString('default', {month: 'long', year: 'numeric', timeZone: "UTC"}); + } + }, + sortFunction: function(values) { + if (values.length > 0 && values[0].display === "1970") { + values.shift(); + } + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) + }), + doaj.components.newDateHistogramSelector({ + id: "last_full_review_histogram", + category: "facet", + field: "admin.last_full_review", + display: "Last Full Review Histogram", + interval: "year", + displayFormatter: function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminJournalsSearch.activeEdges[selector].getComponent({id: "last_full_review_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', {year: 'numeric', timeZone: "UTC"}); + } else if (interval === "month") { + return date.toLocaleString('default', {month: 'long', year: 'numeric', timeZone: "UTC"}); + } + }, + sortFunction: function(values) { + if (values.length > 0 && values[0].display === "1970") { + values.shift(); + } + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) + }), + doaj.components.newReportExporter({ + id: "report-exporter", + category: "facet", + model: "journal", + facetExports: [ + {component_id: "in_doaj", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "owner", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "has_editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "has_associate_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "associate_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "admin_has_apc", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "admin_has_other_charges", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "journal_license", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "classification", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "subject", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "journal_language", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "country_publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "continued", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "discontinued_date", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "created_date_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "last_updated_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "last_full_review_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter} + ] }) - }), - - // results display - edges.newResultsDisplay({ + ], + sortOptions: [ + {'display': 'Date added to DOAJ', 'field': 'created_date'}, + {'display': 'Last updated', 'field': 'last_manual_update'}, + {'display': 'Title', 'field': 'index.unpunctitle.exact'}, + {'display': 'Flag deadline', 'field': 'index.most_urgent_flag_deadline'}, + {'display': 'Last Full Review', 'field': 'admin.last_full_review'} + ], + fieldOptions: [ + {'display': 'Owner', 'field': 'admin.owner'}, + {'display': 'Title', 'field': 'index.title'}, + {'display': 'Alternative Title', 'field': 'bibjson.alternative_title'}, + {'display': 'Subject', 'field': 'index.subject'}, + {'display': 'Classification', 'field': 'index.classification'}, + {'display': 'ISSN', 'field': 'index.issn.exact'}, + {'display': 'Country of publisher', 'field': 'index.country'}, + {'display': 'Journal language', 'field': 'index.language'}, + {'display': 'Publisher', 'field': 'bibjson.publisher.name'}, + {'display': 'Notes', 'field': 'admin.notes.note'} + ], + searchPlaceholder: "Search All Journals", + sizeOptions: [10, 25, 50, 100], + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: doaj.renderers.newAdminBasicResultsRenderer({ topRowDisplay: [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.adminJournalsSearchConfig.journalEditUrl}) - } - ], + [{valueFunction: doaj.fieldRender.titleField}], + [{valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.adminJournalsSearchConfig.journalEditUrl})}] ], - leftRowDisplay : [ - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - valueFunction : doaj.fieldRender.issns - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Country: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "License: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ] + leftRowDisplay: [ + [{pre: 'Alternative title: ', field: "bibjson.alternative_title", post: ""}], + [{valueFunction: doaj.fieldRender.issns}], + [{valueFunction: doaj.fieldRender.links}], + [{pre: "Publisher: ", field: "bibjson.publisher.name"}], + [{pre: "Country: ", valueFunction: doaj.fieldRender.countryName}], + [{pre: "Language: ", field: "bibjson.language"}], + [{pre: "License: ", valueFunction: doaj.fieldRender.journalLicense}], + [{pre: "Publication charges?: ", valueFunction: doaj.fieldRender.authorPays}], + [{pre: "Classification: ", field: "index.classification"}], + [{pre: "Keywords: ", field: "bibjson.keywords"}] ], - rightRowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.deadline - } - ], - [ - { - "pre" : "In DOAJ?: ", - valueFunction: doaj.fieldRender.inDoaj - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - "pre" : "Editor group: ", - "field" : "admin.editor_group" - } - ], - [ - { - "pre": "Date of Application: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre": "Date published in DOAJ: ", - valueFunction: doaj.fieldRender.createdDateWithTime - } - ], - [ - { - "pre": "Last full review: ", - valueFunction: doaj.fieldRender.lastFullReview - } - ], - [ - { - "pre": "Last Withdrawn: ", - valueFunction: doaj.fieldRender.lastWithdrawn - } - ], - [ - { - "pre": "Last Reinstated: ", - valueFunction: doaj.fieldRender.lastReinstated - } - ], - [ - { - "pre": "Last Owner Transfer: ", - valueFunction: doaj.fieldRender.lastOwnerTransfer - } - ], - [ - { - "pre": "Discontinued Date: ", - "field": "bibjson.discontinued_date" - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ] + rightRowDisplay: [ + [{valueFunction: doaj.fieldRender.deadline}], + [{pre: "In DOAJ?: ", valueFunction: doaj.fieldRender.inDoaj}], + [{pre: "Owner: ", valueFunction: doaj.fieldRender.owner}], + [{pre: "Editor group: ", field: "admin.editor_group"}], + [{pre: "Date of Application: ", valueFunction: doaj.fieldRender.suggestedOn}], + [{pre: "Date published in DOAJ: ", valueFunction: doaj.fieldRender.createdDateWithTime}], + [{pre: "Last full review: ", valueFunction: doaj.fieldRender.lastFullReview}], + [{pre: "Last Withdrawn: ", valueFunction: doaj.fieldRender.lastWithdrawn}], + [{pre: "Last Reinstated: ", valueFunction: doaj.fieldRender.lastReinstated}], + [{pre: "Last Owner Transfer: ", valueFunction: doaj.fieldRender.lastOwnerTransfer}], + [{pre: "Discontinued Date: ", field: "bibjson.discontinued_date"}], + [{pre: "Last updated: ", valueFunction: doaj.fieldRender.lastManualUpdate}] ], bottomRowDisplay: [ - [ - { - valueFunction: doaj.adminJournalsSearch.relatedApplications - } - ], - [ - { - valueFunction: doaj.adminJournalsSearch.makeContinuation - } - ] + [{valueFunction: doaj.adminJournalsSearch.relatedApplications}], + [{valueFunction: doaj.adminJournalsSearch.makeContinuation}] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "admin.in_doaj" : "In DOAJ?", - "admin.owner.exact" : "Owner", - "index.has_editor_group.exact" : "Editor group?", - "index.has_editor.exact" : "Associate Editor?", - "admin.editor_group.exact" : "Editor group", - "admin.editor.exact" : "Associate Editor", - "index.license.exact" : "License", - "bibjson.publisher.name.exact" : "Publisher", - "index.classification.exact" : "Classification", - "index.subject.exact" : "Subject", - "index.language.exact" : "Language", - "index.country.exact" : "Country", - "index.continued.exact" : "Continued", - "bibjson.discontinued_date" : "Discontinued Year", - "bibjson.apc.has_apc": "Has APC?", - "bibjson.other_charges.has_other_charges": "Has other charges?", - 'index.is_flagged': "Only Flagged Records", - 'index.flag_assignees.exact': "Flagged to me", - "created_date": "Created Date", - "last_manual_update": "Last Updated", - "admin.last_full_review": "Last Full Review", - "admin.date_applied": "Date Applied", - "admin.last_withdrawn": "Last Withdrawn", - "admin.last_reinstated": "Last Reinstated", - "admin.last_owner_transfer": "Last Owner Transfer" - }, - valueMaps : { - "admin.in_doaj" : { - true : "Yes", - false : "No" - }, - "bibjson.apc.has_apc" : { - true : "Yes", - false : "No" - }, - "bibjson.other_charges.has_other_charges" : { - true : "Yes", - false : "No" - } - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - hideValues: [ - 'index.is_flagged', - 'index.flag_assignees.exact' - ] - }), - rangeFunctions : { - "bibjson.discontinued_date" : doaj.valueMaps.displayYearPeriod, - "created_date" : doaj.valueMaps.displayYearMonthPeriod, - "last_manual_update": doaj.valueMaps.displayYearMonthPeriod, - "admin.last_full_review": doaj.valueMaps.displayYearMonthPeriod, - "admin.date_applied": doaj.valueMaps.displayYearMonthPeriod, - "admin.last_withdrawn": doaj.valueMaps.displayYearMonthPeriod, - "admin.last_reinstated": doaj.valueMaps.displayYearMonthPeriod, - "admin.last_owner_transfer": doaj.valueMaps.displayYearMonthPeriod - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, + fieldDisplays: { + "admin.in_doaj": "In DOAJ?", + "admin.owner.exact": "Owner", + "index.has_editor_group.exact": "Editor group?", + "index.has_editor.exact": "Associate Editor?", + "admin.editor_group.exact": "Editor group", + "admin.editor.exact": "Associate Editor", + "index.license.exact": "License", + "bibjson.publisher.name.exact": "Publisher", + "index.classification.exact": "Classification", + "index.subject.exact": "Subject", + "index.language.exact": "Language", + "index.country.exact": "Country", + "index.continued.exact": "Continued", + "bibjson.discontinued_date": "Discontinued Year", + "bibjson.apc.has_apc": "Has APC?", + "bibjson.other_charges.has_other_charges": "Has other charges?", + 'index.is_flagged': "Only Flagged Records", + 'index.flag_assignees.exact': "Flagged to me", + "created_date": "Created Date", + "last_manual_update": "Last Updated", + "admin.last_full_review": "Last Full Review", + "admin.date_applied": "Date Applied", + "admin.last_withdrawn": "Last Withdrawn", + "admin.last_reinstated": "Last Reinstated", + "admin.last_owner_transfer": "Last Owner Transfer" + }, + valueMaps: { + "admin.in_doaj": {true: "Yes", false: "No"}, + "bibjson.apc.has_apc": {true: "Yes", false: "No"}, + "bibjson.other_charges.has_other_charges": {true: "Yes", false: "No"} + }, + selectedFiltersRenderer: doaj.renderers.newSelectedFiltersRenderer({ + hideValues: [ + 'index.is_flagged', + 'index.flag_assignees.exact' + ] + }), + rangeFunctions: { + "bibjson.discontinued_date": doaj.valueMaps.displayYearPeriod, + "created_date": doaj.valueMaps.displayYearMonthPeriod, + "last_manual_update": doaj.valueMaps.displayYearMonthPeriod, + "admin.last_full_review": doaj.valueMaps.displayYearMonthPeriod, + "admin.date_applied": doaj.valueMaps.displayYearMonthPeriod, + "admin.last_withdrawn": doaj.valueMaps.displayYearMonthPeriod, + "admin.last_reinstated": doaj.valueMaps.displayYearMonthPeriod, + "admin.last_owner_transfer": doaj.valueMaps.displayYearMonthPeriod + }, openingQuery: es.newQuery({ sort: [{field: "created_date", order: "desc"}] - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } + }) }); + doaj.adminJournalsSearch.activeEdges[selector] = e; } } From 964283e14c3a56d1df2b768a846b2430be79f4f6 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 10:58:42 +0530 Subject: [PATCH 59/76] admin application updated --- portality/static/js/doaj.fieldrender.edges.js | 4 + .../js/edges/admin.applications.edge.js | 656 +++++++----------- 2 files changed, 257 insertions(+), 403 deletions(-) diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index b02e837752..d93a884de3 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -633,6 +633,7 @@ $.extend(true, doaj, { var fieldDisplays = edges.getParam(params.fieldDisplays, {}); var rangeFunctions = edges.getParam(params.rangeFunctions, {}); var valueMaps = edges.getParam(params.valueMaps, {}); + var compoundDisplays = edges.getParam(params.compoundDisplays, undefined); var selectedFiltersRenderer = edges.getParam(params.selectedFiltersRenderer, undefined); var openingQuery = edges.getParam(params.openingQuery, es.newQuery({ sort: [{field: "created_date", order: "desc"}], @@ -697,6 +698,9 @@ $.extend(true, doaj, { rangeFunctions: rangeFunctions, valueMaps: valueMaps }; + if (compoundDisplays) { + sfParams.compoundDisplays = compoundDisplays; + } if (selectedFiltersRenderer) { sfParams.renderer = selectedFiltersRenderer; } diff --git a/portality/static/js/edges/admin.applications.edge.js b/portality/static/js/edges/admin.applications.edge.js index cf37026cee..8bb7e82dac 100644 --- a/portality/static/js/edges/admin.applications.edge.js +++ b/portality/static/js/edges/admin.applications.edge.js @@ -1,6 +1,4 @@ // ~~ AdminApplicationsSearch:Feature ~~ - -// Direct namespace definition (replaces $.extend) doaj.adminApplicationsSearch = { activeEdges : {}, @@ -10,426 +8,278 @@ doaj.adminApplicationsSearch = { var selector = params.selector || "#admin_applications"; - var search_url = doaj.edgeUtil.url.build( - doaj.adminApplicationsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - // filters - edges.newFilterSetter({ - id : "see_applications_no_charges", - category: "facet", - filters : [ - doaj.filters.noCharges() - ], - renderer : doaj.renderers.newFacetFilterSetterRenderer({ - facetTitle : "", - open: true, - togglable: false, - showCount: false - }) - }), - // facets - doaj.facets.openOrClosed(), - doaj.facets.applicationStatus(), - doaj.facets.hasEditorGroup(), - doaj.facets.hasEditor(), - doaj.facets.editorGroup(), - doaj.facets.editor(), - doaj.facets.classification(), - doaj.facets.language(), - doaj.facets.countryPublisher(), - doaj.facets.subject(), - doaj.facets.publisher(), - doaj.facets.journalLicence(), - - doaj.components.newFacetDivider({ - id: "reporting_tools_divider", - category: "facet", - display: "Reporting Tools" - }), - doaj.components.newSimultaneousDateRangeEntry({ - id: "date_limiter", - display: "Limit by Date Range", - fields: [ - {"field": "admin.date_applied", "display": "Date Applied"}, - {"field": "last_manual_update", "display": "Last Updated"}, - {"field": "admin.date_rejected", "display": "Date Rejected"} - ], - autoLookupRange: true, - category: "facet", - autoLookupFilters : [ - es.newRangeFilter({field: "last_manual_update", gte:"2000-01-01T00:00:00Z"}) - ], - renderer: doaj.renderers.newBSMultiDateRangeFacet({ - open: true - }) - }), - - doaj.components.newDateHistogramSelector({ - id: "date_applied_histogram", - category: "facet", - field: "admin.date_applied", - display: "Date Applied Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "date_applied_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), - - doaj.components.newDateHistogramSelector({ - id: "last_updated_histogram", - category: "facet", - field: "last_manual_update", - display: "Last Update Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "last_updated_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - if (values.length > 0 && values[0].display === "1970") { - values.shift(); - } - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), - - doaj.components.newDateHistogramSelector({ - id: "date_rejected_histogram", - category: "facet", - field: "admin.date_rejected", - display: "Date Rejected Histogram", - interval: "year", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "date_rejected_histogram"}).interval; - if (interval === "year") { - return date.toLocaleString('default', { year: 'numeric', timeZone: "UTC" }); - } else if (interval === "month") { - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - } - }, - sortFunction : function(values) { - if (values.length > 0 && values[0].display === "1970") { - values.shift(); - } - values.reverse(); - return values; - }, - renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ - showSelected: false, - countFormat: countFormat, - hideInactive: true - }) - }), - - doaj.components.newReportExporter({ - id: "report-exporter", - category: "facet", - model: "application", - facetExports: [ - {component_id: "application_type", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "application_status", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "has_editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "has_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "classification", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "language", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "country_publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "subject", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "journal_license", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, - {component_id: "date_applied_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "last_updated_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, - {component_id: "date_rejected_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter} - ] - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date applied','field':'admin.date_applied'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'}, - {'display':'Flag deadline', 'field': 'index.most_urgent_flag_deadline'}, - {'display': "Date Rejected", 'field': 'admin.date_rejected'} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Journal: alternative title','field':'bibjson.alternative_title'}, - {'display':'Notes','field':'admin.notes.note'}, - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Applications" + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminApplicationsSearchConfig.searchPath), + facets: [ + edges.newFilterSetter({ + id: "see_applications_no_charges", + category: "facet", + filters: [ + doaj.filters.noCharges() + ], + renderer: doaj.renderers.newFacetFilterSetterRenderer({ + facetTitle: "", + open: true, + togglable: false, + showCount: false + }) + }), + doaj.facets.openOrClosed(), + doaj.facets.applicationStatus(), + doaj.facets.hasEditorGroup(), + doaj.facets.hasEditor(), + doaj.facets.editorGroup(), + doaj.facets.editor(), + doaj.facets.classification(), + doaj.facets.language(), + doaj.facets.countryPublisher(), + doaj.facets.subject(), + doaj.facets.publisher(), + doaj.facets.journalLicence(), + doaj.components.newFacetDivider({ + id: "reporting_tools_divider", + category: "facet", + display: "Reporting Tools" + }), + doaj.components.newSimultaneousDateRangeEntry({ + id: "date_limiter", + display: "Limit by Date Range", + fields: [ + {"field": "admin.date_applied", "display": "Date Applied"}, + {"field": "last_manual_update", "display": "Last Updated"}, + {"field": "admin.date_rejected", "display": "Date Rejected"} + ], + autoLookupRange: true, + category: "facet", + autoLookupFilters: [ + es.newRangeFilter({field: "last_manual_update", gte: "2000-01-01T00:00:00Z"}) + ], + renderer: doaj.renderers.newBSMultiDateRangeFacet({ + open: true + }) + }), + doaj.components.newDateHistogramSelector({ + id: "date_applied_histogram", + category: "facet", + field: "admin.date_applied", + display: "Date Applied Histogram", + interval: "year", + displayFormatter: function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "date_applied_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', {year: 'numeric', timeZone: "UTC"}); + } else if (interval === "month") { + return date.toLocaleString('default', {month: 'long', year: 'numeric', timeZone: "UTC"}); + } + }, + sortFunction: function(values) { + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) + }), + doaj.components.newDateHistogramSelector({ + id: "last_updated_histogram", + category: "facet", + field: "last_manual_update", + display: "Last Update Histogram", + interval: "year", + displayFormatter: function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "last_updated_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', {year: 'numeric', timeZone: "UTC"}); + } else if (interval === "month") { + return date.toLocaleString('default', {month: 'long', year: 'numeric', timeZone: "UTC"}); + } + }, + sortFunction: function(values) { + if (values.length > 0 && values[0].display === "1970") { + values.shift(); + } + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) + }), + doaj.components.newDateHistogramSelector({ + id: "date_rejected_histogram", + category: "facet", + field: "admin.date_rejected", + display: "Date Rejected Histogram", + interval: "year", + displayFormatter: function(val) { + let date = new Date(parseInt(val)); + let interval = doaj.adminApplicationsSearch.activeEdges[selector].getComponent({id: "date_rejected_histogram"}).interval; + if (interval === "year") { + return date.toLocaleString('default', {year: 'numeric', timeZone: "UTC"}); + } else if (interval === "month") { + return date.toLocaleString('default', {month: 'long', year: 'numeric', timeZone: "UTC"}); + } + }, + sortFunction: function(values) { + if (values.length > 0 && values[0].display === "1970") { + values.shift(); + } + values.reverse(); + return values; + }, + renderer: doaj.renderers.newFlexibleDateHistogramSelectorRenderer({ + showSelected: false, + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) + }), + doaj.components.newReportExporter({ + id: "report-exporter", + category: "facet", + model: "application", + facetExports: [ + {component_id: "application_type", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "application_status", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "has_editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "has_editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "editor_group", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "editor", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "classification", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "language", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "country_publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "subject", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "publisher", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "journal_license", exporter: doaj.valueMaps.refiningANDTermSelectorExporter}, + {component_id: "date_applied_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "last_updated_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter}, + {component_id: "date_rejected_histogram", exporter: doaj.valueMaps.dateHistogramSelectorExporter} + ] }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - doaj.components.pager("top-pager", "top-pager"), - doaj.components.pager("bottom-pager", "bottom-pager"), - - // results display - edges.newResultsDisplay({ + ], + sortOptions: [ + {'display': 'Date applied', 'field': 'admin.date_applied'}, + {'display': 'Last updated', 'field': 'last_manual_update'}, + {'display': 'Title', 'field': 'index.unpunctitle.exact'}, + {'display': 'Flag deadline', 'field': 'index.most_urgent_flag_deadline'}, + {'display': 'Date Rejected', 'field': 'admin.date_rejected'} + ], + fieldOptions: [ + {'display': 'Title', 'field': 'index.title'}, + {'display': 'Keywords', 'field': 'bibjson.keywords'}, + {'display': 'Classification', 'field': 'index.classification'}, + {'display': 'ISSN', 'field': 'index.issn.exact'}, + {'display': 'Country of publisher', 'field': 'index.country'}, + {'display': 'Journal language', 'field': 'index.language'}, + {'display': 'Publisher', 'field': 'bibjson.publisher.name'}, + {'display': 'Journal: alternative title', 'field': 'bibjson.alternative_title'}, + {'display': 'Notes', 'field': 'admin.notes.note'} + ], + searchPlaceholder: "Search All Applications", + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: doaj.renderers.newAdminBasicResultsRenderer({ - topRowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - valueFunction: doaj.fieldRender.editSuggestion({ - editUrl : doaj.adminApplicationsSearchConfig.applicationEditUrl - }) - } - ], + topRowDisplay: [ + [{valueFunction: doaj.fieldRender.titleField}], + [{valueFunction: doaj.fieldRender.editSuggestion({editUrl: doaj.adminApplicationsSearchConfig.applicationEditUrl})}] ], - leftRowDisplay : [ - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title" - } - ], - [ - { - valueFunction: doaj.fieldRender.issns - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Country of publisher: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Journal license: ", - valueFunction: doaj.fieldRender.journalLicense - } - ] + leftRowDisplay: [ + [{pre: 'Alternative title: ', field: "bibjson.alternative_title"}], + [{valueFunction: doaj.fieldRender.issns}], + [{valueFunction: doaj.fieldRender.links}], + [{pre: "Classification: ", field: "index.classification"}], + [{pre: "Keywords: ", field: "bibjson.keywords"}], + [{pre: "Publisher: ", field: "bibjson.publisher.name"}], + [{pre: "Country of publisher: ", valueFunction: doaj.fieldRender.countryName}], + [{pre: "Journal language: ", field: "bibjson.language"}], + [{pre: "Publication charges?: ", valueFunction: doaj.fieldRender.authorPays}], + [{pre: "Journal license: ", valueFunction: doaj.fieldRender.journalLicense}] ], - rightRowDisplay : [ - [ - { - "pre" : "Application status: ", - valueFunction: doaj.fieldRender.applicationStatus - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - "pre" : "Editor group: ", - "field" : "admin.editor_group" - } - ], - [ - { - valueFunction: doaj.fieldRender.deadline - } - ], - [ - { - "pre": "Date applied: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre" : "Date Rejected: ", - valueFunction: doaj.fieldRender.dateRejected - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - + rightRowDisplay: [ + [{pre: "Application status: ", valueFunction: doaj.fieldRender.applicationStatus}], + [{pre: "Owner: ", valueFunction: doaj.fieldRender.owner}], + [{pre: "Editor group: ", field: "admin.editor_group"}], + [{valueFunction: doaj.fieldRender.deadline}], + [{pre: "Date applied: ", valueFunction: doaj.fieldRender.suggestedOn}], + [{pre: "Date Rejected: ", valueFunction: doaj.fieldRender.dateRejected}], + [{pre: "Last updated: ", valueFunction: doaj.fieldRender.lastManualUpdate}] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - compoundDisplays : [ - { - filters : [ - es.newTermFilter({ - field: "bibjson.apc.has_apc", - value: false - }), - es.newTermFilter({ - field: "bibjson.other_charges.has_other_charges", - value: false - }) - ], - display : "Without article processing charges (APCs)" - } - ], - fieldDisplays: { - 'admin.application_status.exact': 'Status', - 'index.application_type.exact' : 'Application', - 'index.has_editor_group.exact' : 'Editor group', - 'index.has_editor.exact' : 'Associate Editor', - 'admin.editor_group.exact' : 'Editor group', - 'admin.editor.exact' : 'Editor', - 'index.classification.exact' : 'Classification', - 'index.language.exact' : 'Language', - 'index.country.exact' : 'Country', - 'index.subject.exact' : 'Subject', - 'bibjson.publisher.name.exact' : 'Publisher', - 'bibjson.provider.exact' : 'Platform, Host, Aggregator', - "index.has_apc.exact" : "Charges?", - 'index.license.exact' : 'License', - 'index.is_flagged': "Only Flagged Records", - 'index.flag_assignees.exact': "Flagged to me", - "admin.date_applied": "Date Applied", - "last_manual_update": "Last Updated", - "admin.date_rejected": "Date Rejected" - }, - valueMaps : { - "index.application_type.exact" : { - "finished application/update": "Closed", - "update request": "Open", - "new application": "Open" - } - }, - rangeFunctions : { - "admin.date_applied" : doaj.valueMaps.displayYearMonthPeriod, - "last_manual_update": doaj.valueMaps.displayYearMonthPeriod, - "admin.date_rejected": doaj.valueMaps.displayYearMonthPeriod - }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - omit : [ - "bibjson.apc.has_apc", - "bibjson.other_charges.has_other_charges" + compoundDisplays: [ + { + filters: [ + es.newTermFilter({field: "bibjson.apc.has_apc", value: false}), + es.newTermFilter({field: "bibjson.other_charges.has_other_charges", value: false}) ], - hideValues: [ - 'index.is_flagged', - 'index.flag_assignees.exact' - ] - }) - }) - ]; - - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "admin.date_applied", "order" : "asc"} + display: "Without article processing charges (APCs)" + } + ], + fieldDisplays: { + 'admin.application_status.exact': 'Status', + 'index.application_type.exact': 'Application', + 'index.has_editor_group.exact': 'Editor group', + 'index.has_editor.exact': 'Associate Editor', + 'admin.editor_group.exact': 'Editor group', + 'admin.editor.exact': 'Editor', + 'index.classification.exact': 'Classification', + 'index.language.exact': 'Language', + 'index.country.exact': 'Country', + 'index.subject.exact': 'Subject', + 'bibjson.publisher.name.exact': 'Publisher', + 'bibjson.provider.exact': 'Platform, Host, Aggregator', + 'index.has_apc.exact': 'Charges?', + 'index.license.exact': 'License', + 'index.is_flagged': "Only Flagged Records", + 'index.flag_assignees.exact': "Flagged to me", + "admin.date_applied": "Date Applied", + "last_manual_update": "Last Updated", + "admin.date_rejected": "Date Rejected" + }, + valueMaps: { + "index.application_type.exact": { + "finished application/update": "Closed", + "update request": "Open", + "new application": "Open" + } + }, + rangeFunctions: { + "admin.date_applied": doaj.valueMaps.displayYearMonthPeriod, + "last_manual_update": doaj.valueMaps.displayYearMonthPeriod, + "admin.date_rejected": doaj.valueMaps.displayYearMonthPeriod + }, + selectedFiltersRenderer: doaj.renderers.newSelectedFiltersRenderer({ + omit: [ + "bibjson.apc.has_apc", + "bibjson.other_charges.has_other_charges" + ], + hideValues: [ + 'index.is_flagged', + 'index.flag_assignees.exact' + ] + }), + openingQuery: es.newQuery({ + sort: {"field": "admin.date_applied", "order": "asc"} }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again."); + callbacks: { + "edges:pre-render": function() { + doaj.multiFormBox.active.validate(); } } }); doaj.adminApplicationsSearch.activeEdges[selector] = e; - doaj.multiFormBox.active = doaj.bulk.applicationMultiFormBox(e, "applications"); - - $(selector).on("edges:pre-render", function() { - doaj.multiFormBox.active.validate(); - }); } }; jQuery(document).ready(function() { doaj.adminApplicationsSearch.init(); -}); \ No newline at end of file +}); From 20ac5083a6a7da6ec34615076e7aad94851c9286 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:00:24 +0530 Subject: [PATCH 60/76] admin autoassign updated to makeSearch --- .../static/js/edges/admin.autoassign.edge.js | 246 +++++------------- 1 file changed, 63 insertions(+), 183 deletions(-) diff --git a/portality/static/js/edges/admin.autoassign.edge.js b/portality/static/js/edges/admin.autoassign.edge.js index a8ec4e9e4b..538683affb 100644 --- a/portality/static/js/edges/admin.autoassign.edge.js +++ b/portality/static/js/edges/admin.autoassign.edge.js @@ -1,198 +1,78 @@ // ~~ AdminAlerts:Edge ~~ // ~~-> Edges:Technology ~~ doaj.adminAutoassignSearch = { - activeEdges : {}, + activeEdges : {}, - init : function(params) { - if (!params) { params = {} } + init : function(params) { + if (!params) { params = {} } - var selector = params.selector || "#autoassign"; + var selector = params.selector || "#autoassign"; - var search_url = doaj.edgeUtil.url.build( - doaj.adminAutoassignSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - edges.newRefiningANDTermSelector({ - id: "target", - category: "facet", - field: "target.exact", - display: "Editor Group", - orderBy: "term", - orderDir: "asc", - size: 50, - deactivateThreshold: 0, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - edges.newRefiningANDTermSelector({ - id: "account", - category: "facet", - field: "account_id.exact", - display: "Publisher", - orderBy: "term", - orderDir: "asc", - deactivateThreshold: 0, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - edges.newRefiningANDTermSelector({ - id: "country_name", - category: "facet", - field: "country_name.exact", - display: "Country Name", - orderBy: "term", - orderDir: "asc", - deactivateThreshold: 0, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Import Date','field':'created_date'}, - {'display':'Publisher','field':'account_id.exact'}, - {'display':'Country Name','field':'country_name.exact'}, - {'display':'Editor Group','field':'target.exact'} - ], - fieldOptions: [ - {'display':'Editor Group','field':'target'}, - {'display':'Publisher','field':'account_id'}, - {'display':'Country Name','field':'country_name'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Routers" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer: edges.bs3.newTabularResultsRenderer({ - // the fields to display in the results table - fieldDisplay: [ - { - field: "account_id", - display: "Publisher", - valueFunction: function(value, result) { - if (value && value !== "-") { - return `${value}`; - } - return value; + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminAutoassignSearchConfig.searchPath), + facets: [ + doaj.components.refiningAndFacet({id: "target", field: "target.exact", display: "Editor Group", orderBy: "term", orderDir: "asc", size: 50}), + doaj.components.refiningAndFacet({id: "account", field: "account_id.exact", display: "Publisher", orderBy: "term", orderDir: "asc"}), + doaj.components.refiningAndFacet({id: "country_name", field: "country_name.exact", display: "Country Name", orderBy: "term", orderDir: "asc"}) + ], + sortOptions: [ + {'display': 'Import Date', 'field': 'created_date'}, + {'display': 'Publisher', 'field': 'account_id.exact'}, + {'display': 'Country Name', 'field': 'country_name.exact'}, + {'display': 'Editor Group', 'field': 'target.exact'} + ], + fieldOptions: [ + {'display': 'Editor Group', 'field': 'target'}, + {'display': 'Publisher', 'field': 'account_id'}, + {'display': 'Country Name', 'field': 'country_name'} + ], + searchPlaceholder: "Search All Routers", + resultsDisplay: edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: edges.bs3.newTabularResultsRenderer({ + fieldDisplay: [ + { + field: "account_id", + display: "Publisher", + valueFunction: function(value, result) { + if (value && value !== "-") { + return `${value}`; } - }, - { - field: "country_name", - display: "Country Name", - }, - { - field: "country_code", - display: "Country Code" - }, - { - field: "target", - display: "Editor Group", - valueFunction: function(value, result) { - if (value && value !== "-") { - let source = doaj.searchQuerySource({ - queryString: value, - defaultField: "name", - }) - return `${value}`; - } - return value; + return value; + } + }, + {field: "country_name", display: "Country Name"}, + {field: "country_code", display: "Country Code"}, + { + field: "target", + display: "Editor Group", + valueFunction: function(value, result) { + if (value && value !== "-") { + let source = doaj.searchQuerySource({ + queryString: value, + defaultField: "name", + }); + return `${value}`; } - }, - { - field: "created_date", - display: "Import Date" + return value; } - ] - }) - }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "target.exact" : "Editor Group", - "country_name.exact" : "Country Name", - "account_id.exact" : "Publisher" - } + }, + {field: "created_date", display: "Import Date"} + ] }) - ]; + }), + fieldDisplays: { + "target.exact": "Editor Group", + "country_name.exact": "Country Name", + "account_id.exact": "Publisher" + } + }); - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - openingQuery: es.newQuery({ - sort: [{field: "created_date", order: "desc"}], - size: 25 - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } - }); - doaj.adminAutoassignSearch.activeEdges[selector] = e; - } + doaj.adminAutoassignSearch.activeEdges[selector] = e; } +} jQuery(document).ready(function($) { From e67db8ac8a69ed859f6d403fb1714c31b38ae01d Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:03:05 +0530 Subject: [PATCH 61/76] admin bg_jobs updated to makeSearch --- .../js/edges/admin.background_jobs.edge.js | 200 +++--------------- 1 file changed, 35 insertions(+), 165 deletions(-) diff --git a/portality/static/js/edges/admin.background_jobs.edge.js b/portality/static/js/edges/admin.background_jobs.edge.js index c76527adc6..790ff83f7a 100644 --- a/portality/static/js/edges/admin.background_jobs.edge.js +++ b/portality/static/js/edges/admin.background_jobs.edge.js @@ -91,22 +91,15 @@ doaj.adminBackgroundJobsSearch = { expandBlock += auditBlock; expandBlock += ""; - // start off the string to be rendered var result = '
    '; - - // start the main box that all the details go in result += "
    "; - result += firstRow + "
    "; - result += `Outcome Status: ${resultobj.outcome_status}
    ` + result += `Outcome Status: ${resultobj.outcome_status}
    `; result += "Job ID: " + resultobj.id + "
    "; result += 'On Queue: ' + resultobj.queue_id + '
    '; result += dateRow + "
    "; - result += 'More Information
    '; result += expandBlock; - - // close off the result with the ending strings, and then return result += "
    "; result += "
    "; @@ -132,169 +125,46 @@ doaj.adminBackgroundJobsSearch = { var selector = params.selector || "#background_jobs"; - var search_url = doaj.edgeUtil.url.build( - doaj.adminBackgroundJobsSearchConfig.searchPath - ); - - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - edges.newRefiningANDTermSelector({ - id: "action", - category: "facet", - field: "action.exact", - display: "Action", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "user", - category: "facet", - field: "user.exact", - display: "Submitted By", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "status", - category: "facet", - field: "status.exact", - display: "Status", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "queue_id", - category: "facet", - field: "queue_id.exact", - display: "On Queue", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "outcome_status", - category: "facet", - field: "outcome_status.exact", - display: "Outcome Status", - deactivateThreshold : 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Created Date','field':'created_date'}, - {'display':'Last Modified Date','field':'last_updated'} - ], - fieldOptions: [ - {'display':'ID','field':'id.exact'}, - {'display':'Action','field':'action.exact'}, - {'display':'Submitted By','field':'user.exact'}, - {'display':'Status','field':'status.exact'}, - {'display':'Outcome Status','field':'outcome_status.exact'}, - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Background Jobs" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminBackgroundJobsSearchConfig.searchPath), + facets: [ + doaj.components.refiningAndFacet({id: "action", field: "action.exact", display: "Action", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "user", field: "user.exact", display: "Submitted By", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "status", field: "status.exact", display: "Status", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "queue_id", field: "queue_id.exact", display: "On Queue", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "outcome_status", field: "outcome_status.exact", display: "Outcome Status", deactivateThreshold: 1}) + ], + sortOptions: [ + {'display': 'Created Date', 'field': 'created_date'}, + {'display': 'Last Modified Date', 'field': 'last_updated'} + ], + fieldOptions: [ + {'display': 'ID', 'field': 'id.exact'}, + {'display': 'Action', 'field': 'action.exact'}, + {'display': 'Submitted By', 'field': 'user.exact'}, + {'display': 'Status', 'field': 'status.exact'}, + {'display': 'Outcome Status', 'field': 'outcome_status.exact'} + ], + searchPlaceholder: "Search Background Jobs", + sizeOptions: [10, 25, 50, 100], + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: doaj.adminBackgroundJobsSearch.newBGResultsRenderer() }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'action.exact': 'Action', - 'user.exact' : 'Submitted By', - 'status.exact' : 'Status', - 'outcome_status.exact' : 'Outcome Status', - 'queue_id.exact' : 'On Queue', - } + fieldDisplays: { + 'action.exact': 'Action', + 'user.exact': 'Submitted By', + 'status.exact': 'Status', + 'outcome_status.exact': 'Outcome Status', + 'queue_id.exact': 'On Queue' + }, + openingQuery: es.newQuery({ + sort: {"field": "created_date", "order": "desc"} }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "created_date", "order" : "desc"} - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } }); + doaj.adminBackgroundJobsSearch.activeEdges[selector] = e; } } From 5b942631f11175bf1663a95418a9690c7749d499 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:04:23 +0530 Subject: [PATCH 62/76] admin editor_groups updated to makeSearch --- portality/static/js/doaj.fieldrender.edges.js | 2 +- .../js/edges/admin.editor_groups.edge.js | 226 +++++------------- 2 files changed, 64 insertions(+), 164 deletions(-) diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index d93a884de3..ae27dc34ab 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -541,7 +541,7 @@ $.extend(true, doaj, { renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ controls: true, open: edges.getParam(params.open, false), - togglable: true, + togglable: edges.getParam(params.togglable, true), countFormat: doaj.valueMaps.countFormat, hideInactive: edges.getParam(params.hideInactive, true) }) diff --git a/portality/static/js/edges/admin.editor_groups.edge.js b/portality/static/js/edges/admin.editor_groups.edge.js index e4000ea74f..1974e958fa 100644 --- a/portality/static/js/edges/admin.editor_groups.edge.js +++ b/portality/static/js/edges/admin.editor_groups.edge.js @@ -38,186 +38,86 @@ doaj.adminEditorGroupSearch = { if (!params) { params = {} } var selector = params.selector || "#editor_groups"; - - var search_url = doaj.edgeUtil.url.build( - doaj.adminEditorGroupSearchConfig.searchPath - ); - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - edges.newRefiningANDTermSelector({ - id: "maned", - category: "facet", - field: "maned.exact", - display: "Managing Editor", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: true, - togglable: false, - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Created Date','field':'created_date'}, - {'display':'Last Modified Date','field':'last_updated'}, - {'display':'Managing Editor ID','field':'maned.exact'}, - {'display':'Editor ID','field':'editor.exact'}, - {'display':'Group Name','field':'name.exact'} - ], - fieldOptions: [ - {'display':'Group Name','field':'name'}, - {'display':'Managing Editor ID','field':'maned'}, - {'display':'Editor ID','field':'editor'}, - {'display':'Associate Editor ID','field':'associate'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Editor Groups" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminEditorGroupSearchConfig.searchPath), + facets: [ + doaj.components.refiningAndFacet({id: "maned", field: "maned.exact", display: "Managing Editor", deactivateThreshold: 1, open: true, togglable: false}) + ], + sortOptions: [ + {'display': 'Created Date', 'field': 'created_date'}, + {'display': 'Last Modified Date', 'field': 'last_updated'}, + {'display': 'Managing Editor ID', 'field': 'maned.exact'}, + {'display': 'Editor ID', 'field': 'editor.exact'}, + {'display': 'Group Name', 'field': 'name.exact'} + ], + fieldOptions: [ + {'display': 'Group Name', 'field': 'name'}, + {'display': 'Managing Editor ID', 'field': 'maned'}, + {'display': 'Editor ID', 'field': 'editor'}, + {'display': 'Associate Editor ID', 'field': 'associate'} + ], + searchPlaceholder: "Search Editor Groups", + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ - [ - { - "pre" : "

    ", - "field" : "name", - "post" : "

    " - } - ], - [ - { - "pre": 'Editor: ' - }, - { - "field": "editor", - "post" : "" - } - ], + rowDisplay: [ + [{pre: "

    ", field: "name", post: "

    "}], [ - { - "valueFunction" : doaj.adminEditorGroupSearch.linkedAssociates - } + {pre: 'Editor: '}, + {field: "editor", post: ""} ], + [{valueFunction: doaj.adminEditorGroupSearch.linkedAssociates}], [ - { - "pre": 'Managing Editor: ' - }, - { - "field": "maned", - "post" : "" - } + {pre: 'Managing Editor: '}, + {field: "maned", post: ""} ], [ - { - "valueFunction" : doaj.adminEditorGroupSearch.deleteEditorGroup - }, - { - "valueFunction": doaj.adminEditorGroupSearch.editEditorGroup - } + {valueFunction: doaj.adminEditorGroupSearch.deleteEditorGroup}, + {valueFunction: doaj.adminEditorGroupSearch.editEditorGroup} ] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "name.exact": "Name", - "maned.exact": "Managing Editor" - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - openingQuery : es.newQuery({size: 25}), - manageUrl: true, - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + fieldDisplays: { + "name.exact": "Name", + "maned.exact": "Managing Editor" + }, + openingQuery: es.newQuery({size: 25}), + callbacks: { + "edges:post-render": function() { + $(".delete_editor_group_link").unbind("click").click(function(event) { + event.preventDefault(); + + function success_callback(data) { + alert("The group was successfully deleted"); + doaj.adminEditorGroupSearch.activeEdges[selector].cycle(); + } + + function error_callback() { + alert("There was an error deleting the group"); + } + + var c = confirm("Are you really really sure? You can't undo this operation!"); + if (c) { + var href = $(this).attr("href"); + var obj = {"delete" : "true"}; + $.ajax({ + type: "POST", + url: href, + data: obj, + success: success_callback, + error: error_callback + }) + } + }); } } }); - doaj.adminEditorGroupSearch.activeEdges[selector] = e; - // bind the delete button - $(selector).on("edges:post-render", function() { - // now add the handlers for the article delete - $(".delete_editor_group_link").unbind("click").click(function(event) { - event.preventDefault(); - - function success_callback(data) { - alert("The group was successfully deleted"); - doaj.adminEditorGroupSearch.activeEdges[selector].cycle(); - } - - function error_callback() { - alert("There was an error deleting the group"); - } - - var c = confirm("Are you really really sure? You can't undo this operation!"); - if (c) { - var href = $(this).attr("href"); - var obj = {"delete" : "true"}; - $.ajax({ - type: "POST", - url: href, - data: obj, - success : success_callback, - error: error_callback - }) - } - }); - }); + doaj.adminEditorGroupSearch.activeEdges[selector] = e; } } From f453fc1f59b6dee86c279b1d3a13d779b31dbe94 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:05:08 +0530 Subject: [PATCH 63/76] admin ris updated to makeSearch --- portality/static/js/edges/admin.ris.edge.js | 111 ++++---------------- 1 file changed, 22 insertions(+), 89 deletions(-) diff --git a/portality/static/js/edges/admin.ris.edge.js b/portality/static/js/edges/admin.ris.edge.js index 4fc90b5247..54a0bc7d12 100644 --- a/portality/static/js/edges/admin.ris.edge.js +++ b/portality/static/js/edges/admin.ris.edge.js @@ -5,76 +5,26 @@ doaj.adminRISSearch = { init : function(params) { if (!params) { params = {} } - - var selector = params.selector || "#ris"; - - var search_url = doaj.edgeUtil.url.build( - doaj.adminRISSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - var components = [ - doaj.components.searchingNotification(), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Created Date','field':'created_date'}, - {'display':'Last Updated','field':'last_updated'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All RIS Exports" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + var selector = params.selector || "#ris"; - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminRISSearchConfig.searchPath), + sortOptions: [ + {'display': 'Created Date', 'field': 'created_date'}, + {'display': 'Last Updated', 'field': 'last_updated'} + ], + searchPlaceholder: "Search All RIS Exports", + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ noResultsText: "No RIS exports match the selected criteria.", - // the fields to display in the results table rowDisplay: [ - [{ - field: "created_date", - pre: "Created Date: " - }], - [{ - field: "created_date", - pre: "Last Updated: " - }], - [{ - field: "id", - pre: "Article ID: " - }], + [{field: "created_date", pre: "Created Date: "}], + [{field: "created_date", pre: "Last Updated: "}], + [{field: "id", pre: "Article ID: "}], [{ field: "ris", pre: "", @@ -93,47 +43,33 @@ doaj.adminRISSearch = { }] ] }) - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, + }), openingQuery: es.newQuery({ sort: [{field: "last_updated", order: "desc"}], size: 25 }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - }, - "edges:post-render" : function() { + callbacks: { + "edges:post-render": function() { let resultsComponent = doaj.adminRISSearch.activeEdges[selector].getComponent({id: "results"}); + let deleteSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "delete"); $(deleteSelector).on("click", function(e) { e.preventDefault(); let a = e.currentTarget; let id = a.getAttribute("data-id"); let proceed = confirm("Deleting the RIS export will cause it to be regenerated the next time it is requested, or the regular RIS export runs") - if (!proceed) { - return; - } + if (!proceed) { return; } $.ajax({ method: "POST", url: "/admin/ris/" + id + "/delete", success: function(data) { - // reload the page to see the changes - // window.location.reload(); alert("Deleted successfully, reload the page to see the changes"); }, error: function(xhr, status, error) { alert("There was an unexpected error processing your request."); } }) - }) + }); let regenerateSelector = edges.css_class_selector(resultsComponent.renderer.namespace, "regenerate"); $(regenerateSelector).on("click", function(e) { @@ -141,25 +77,22 @@ doaj.adminRISSearch = { let a = e.currentTarget; let id = a.getAttribute("data-id"); let proceed = confirm("Regenerate the RIS Export?") - if (!proceed) { - return; - } + if (!proceed) { return; } $.ajax({ method: "POST", url: "/admin/ris/" + id + "/regenerate", success: function(data) { - // reload the page to see the changes - // window.location.reload(); alert("Regenerated successfully, reload the page to see the changes"); }, error: function(xhr, status, error) { alert("There was an unexpected error processing your request."); } }) - }) + }); } } }); + doaj.adminRISSearch.activeEdges[selector] = e; } } From 2a0a08274037a4d84c33ddd59fe705c32b0da896 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:06:36 +0530 Subject: [PATCH 64/76] admin reports updated --- .../static/js/edges/admin.reports.edge.js | 194 +++++------------- 1 file changed, 54 insertions(+), 140 deletions(-) diff --git a/portality/static/js/edges/admin.reports.edge.js b/portality/static/js/edges/admin.reports.edge.js index f827bb21c8..bff8e4b0f2 100644 --- a/portality/static/js/edges/admin.reports.edge.js +++ b/portality/static/js/edges/admin.reports.edge.js @@ -5,133 +5,66 @@ doaj.adminReportsSearch = { if (!params) { params = {} } var selector = params.selector || "#reports"; - - var search_url = doaj.edgeUtil.url.build( - doaj.adminReportsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - - edges.newRefiningANDTermSelector({ - id: "requester", - category: "facet", - field: "requester.exact", - display: "Produced By", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newDateHistogramSelector({ - id: "generated_date", - category: "facet", - field : "generated_date", - interval: "month", - display: "Generated Date", - displayFormatter : function(val) { - let date = new Date(parseInt(val)); - return date.toLocaleString('default', { month: 'long', year: 'numeric', timeZone: "UTC" }); - }, - sortFunction : function(values) { - values.reverse(); - return values; - }, - renderer: edges.bs3.newDateHistogramSelectorRenderer({ - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Generated Date','field':'generated_date'}, - {"display": "Report Name", "field": "name.exact"} - ], - fieldOptions: [ - {'display':'Requested by','field':'requester'}, - {'display':'Report Name','field':'name'}, - {'display':'Filename','field':'filename'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search All Reports" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [25, 50, 100], - numberFormat: countFormat, - scroll: false + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.adminReportsSearchConfig.searchPath), + facets: [ + doaj.components.refiningAndFacet({id: "requester", field: "requester.exact", display: "Produced By", deactivateThreshold: 1}), + edges.newDateHistogramSelector({ + id: "generated_date", + category: "facet", + field: "generated_date", + interval: "month", + display: "Generated Date", + displayFormatter: function(val) { + let date = new Date(parseInt(val)); + return date.toLocaleString('default', {month: 'long', year: 'numeric', timeZone: "UTC"}); + }, + sortFunction: function(values) { + values.reverse(); + return values; + }, + renderer: edges.bs3.newDateHistogramSelectorRenderer({ + countFormat: doaj.valueMaps.countFormat, + hideInactive: true + }) }) - }), - - // results display - edges.newResultsDisplay({ + ], + sortOptions: [ + {'display': 'Generated Date', 'field': 'generated_date'}, + {'display': 'Report Name', 'field': 'name.exact'} + ], + fieldOptions: [ + {'display': 'Requested by', 'field': 'requester'}, + {'display': 'Report Name', 'field': 'name'}, + {'display': 'Filename', 'field': 'filename'} + ], + searchPlaceholder: "Search All Reports", + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ - rowDisplay : [ + rowDisplay: [ [ - { - pre: "", - field: "name", - post: "" - }, + {pre: "", field: "name", post: ""}, { pre: " (", field: "generated_date", post: ")", - valueFunction: function (val, resultobj, renderer) { + valueFunction: function(val, resultobj, renderer) { return doaj.humanDateTime(val); } } ], [ - { - "pre": "A ", - field: "model", - post: " report " - }, - { - pre : "requested by ", - field: "requester", - post: "" - }, + {pre: "A ", field: "model", post: " report "}, + {pre: "requested by ", field: "requester", post: ""}, { pre: " on ", field: "request_date", post: "", - valueFunction: function (val, resultobj, renderer) { + valueFunction: function(val, resultobj, renderer) { return doaj.humanDateTime(val); } }, @@ -139,7 +72,7 @@ doaj.adminReportsSearch = { pre: " and generated on ", field: "generated_date", post: "", - valueFunction: function (val, resultobj, renderer) { + valueFunction: function(val, resultobj, renderer) { return doaj.humanDateTime(val); } } @@ -148,11 +81,10 @@ doaj.adminReportsSearch = { { field: "constraints", valueFunction: function(val, res, component) { - // let source = encodeURIComponent(val); let modelMap = { - "journal" : "/admin", - "application": "/admin/applications", - } + "journal": "/admin", + "application": "/admin/applications" + }; let route = modelMap[res.model]; if (route === undefined) { route = "/admin"; @@ -170,37 +102,19 @@ doaj.adminReportsSearch = { ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "requester.exact" : "Requested By", - "generated_date" : "Generated Date" - }, - rangeFunctions : { - "generated_date" : doaj.valueMaps.displayYearMonthPeriod - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, + fieldDisplays: { + "requester.exact": "Requested By", + "generated_date": "Generated Date" + }, + rangeFunctions: { + "generated_date": doaj.valueMaps.displayYearMonthPeriod + }, openingQuery: es.newQuery({ sort: [{field: "generated_date", order: "desc"}], size: 25 - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } + }) }); + doaj.adminReportsSearch.activeEdges[selector] = e; } } From 163787640de8dafa53a6b2b0325f697f9c71f1d7 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:08:41 +0530 Subject: [PATCH 65/76] admin journal article updated --- .../js/edges/admin.journalarticle.edge.js | 730 ++++-------------- 1 file changed, 170 insertions(+), 560 deletions(-) diff --git a/portality/static/js/edges/admin.journalarticle.edge.js b/portality/static/js/edges/admin.journalarticle.edge.js index e83645077a..949d8d0a95 100644 --- a/portality/static/js/edges/admin.journalarticle.edge.js +++ b/portality/static/js/edges/admin.journalarticle.edge.js @@ -5,17 +5,13 @@ doaj.adminJournalArticleSearch = { journalSelected : function(selector) { return function() { var type = doaj.adminJournalArticleSearch.activeEdges[selector].currentQuery.listMust(es.newTermFilter({field: "es_type.exact"})); - // var type = doaj.currentFVOptions.active_filters._type; if (type && type.length > 0) { type = type[0]; } if (!type || type.value !== "journal") { - return { - valid: false, - error_id: "journal_type_error" - } + return {valid: false, error_id: "journal_type_error"} } - return {valid : true}; + return {valid: true}; } }, @@ -23,10 +19,7 @@ doaj.adminJournalArticleSearch = { return function() { var type = doaj.adminJournalArticleSearch.activeEdges[selector].currentQuery.listMust(es.newTermFilter({field: "es_type.exact"})); if (!type || type.length === 0) { - return { - valid: false, - error_id: "any_type_error" - } + return {valid: false, error_id: "any_type_error"} } return {valid: true}; } @@ -42,14 +35,12 @@ doaj.adminJournalArticleSearch = { } }, - lastUpdated : function (val, resultobj, renderer) { + lastUpdated : function(val, resultobj, renderer) { return doaj.dates.humanYearMonth(resultobj['last_updated']); }, - deleteArticle : function (val, resultobj, renderer) { + deleteArticle : function(val, resultobj, renderer) { if (!resultobj.suggestion && resultobj.bibjson.journal) { - // if it's not a suggestion or a journal .. (it's an article!) - // we really need to expose _type ... var result = '
    ' result += 'ID: ", - "field" : "id" - } - ], - // Journals - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "valueFunction": doaj.adminJournalArticleSearch.editArticle - } - ], - [ - { - "valueFunction": doaj.adminJournalArticleSearch.editJournal - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre" : "In DOAJ?: ", - "valueFunction" : doaj.fieldRender.inDoaj - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - "valueFunction": doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - // Articles - [ - { - "pre": "Authors: ", - "field": "bibjson.author.name" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.journal.publisher" - } - ], + rowDisplay: [ + [{pre: "ID: ", field: "id"}], + [{valueFunction: doaj.fieldRender.titleField}], + [{valueFunction: doaj.adminJournalArticleSearch.editArticle}], + [{valueFunction: doaj.adminJournalArticleSearch.editJournal}], + [{pre: 'Alternative title: ', field: "bibjson.alternative_title", post: ""}], + [{pre: "In DOAJ?: ", valueFunction: doaj.fieldRender.inDoaj}], + [{pre: "Classification: ", field: "index.classification"}], + [{pre: "Publisher: ", field: "bibjson.publisher.name"}], + [{pre: "Publication charges?: ", valueFunction: doaj.fieldRender.authorPays}], + [{pre: "Journal language: ", field: "bibjson.language"}], + [{pre: "Authors: ", field: "bibjson.author.name"}], + [{pre: "Publisher: ", field: "bibjson.journal.publisher"}], [ - { - "pre":'Date of publication: ', - "field": "bibjson.year" - }, - { - "pre":' ', - "field": "bibjson.month", - "post": "" - } - ], - [ - { - "pre": "Published in: ", - "field": "bibjson.journal.title", - "notrailingspace": true - }, - { - "pre": ", Vol ", - "field": "bibjson.journal.volume", - "notrailingspace": true - }, - { - "pre": ", Iss ", - "field": "bibjson.journal.number", - "notrailingspace": true - }, - { - "pre": ", Pp ", - "field": "bibjson.start_page", - "notrailingspace": true - }, - { - "pre": "-", - "field": "bibjson.end_page" - }, - { - "pre" : "(", - "field": "bibjson.year", - "post" : ")" - } - ], - [ - { - "valueFunction" : doaj.fieldRender.issns - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } + {pre: 'Date of publication: ', field: "bibjson.year"}, + {pre: ' ', field: "bibjson.month", post: ""} ], [ - { - "pre": "Discontinued Date: ", - "field": "bibjson.discontinued_date" - } - ], - [ - { - "pre": "Date added to DOAJ: ", - "valueFunction": doaj.fieldRender.createdDateWithTime - } - ], - [ - { - "pre": "Last updated: ", - "valueFunction": doaj.adminJournalArticleSearch.lastUpdated - } - ], - [ - { - "pre": "DOI: ", - "valueFunction": doaj.fieldRender.doiLink - } + {pre: "Published in: ", field: "bibjson.journal.title", notrailingspace: true}, + {pre: ", Vol ", field: "bibjson.journal.volume", notrailingspace: true}, + {pre: ", Iss ", field: "bibjson.journal.number", notrailingspace: true}, + {pre: ", Pp ", field: "bibjson.start_page", notrailingspace: true}, + {pre: "-", field: "bibjson.end_page"}, + {pre: "(", field: "bibjson.year", post: ")"} ], - [ - { - "valueFunction" : doaj.fieldRender.links - } - ], - [ - { - "pre": "Journal language(s): ", - "field": "bibjson.journal.language" - } - ], - [ - { - "pre": "Journal license: ", - "valueFunction": doaj.fieldRender.journalLicense - } - ], - [ - { - "pre": "Country of publisher: ", - "valueFunction": doaj.fieldRender.countryName - } - ], - [ - { - "pre": 'Abstract: ', - "valueFunction": doaj.fieldRender.abstract - } - ], - [ - { - "valueFunction": doaj.adminJournalArticleSearch.deleteArticle - } - ] + [{valueFunction: doaj.fieldRender.issns}], + [{pre: "Keywords: ", field: "bibjson.keywords"}], + [{pre: "Discontinued Date: ", field: "bibjson.discontinued_date"}], + [{pre: "Date added to DOAJ: ", valueFunction: doaj.fieldRender.createdDateWithTime}], + [{pre: "Last updated: ", valueFunction: doaj.adminJournalArticleSearch.lastUpdated}], + [{pre: "DOI: ", valueFunction: doaj.fieldRender.doiLink}], + [{valueFunction: doaj.fieldRender.links}], + [{pre: "Journal language(s): ", field: "bibjson.journal.language"}], + [{pre: "Journal license: ", valueFunction: doaj.fieldRender.journalLicense}], + [{pre: "Country of publisher: ", valueFunction: doaj.fieldRender.countryName}], + [{pre: 'Abstract: ', valueFunction: doaj.fieldRender.abstract}], + [{valueFunction: doaj.adminJournalArticleSearch.deleteArticle}] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "es_type.exact": "Showing", - "admin.in_doaj" : "In DOAJ?", - "index.language.exact" : "Language", - "bibjson.publisher.name.exact" : "Publisher", - "index.classification.exact" : "Classification", - "index.subject.exact" : "Subject", - "index.country.exact" : "Country", - "index.license.exact" : "License", - "bibjson.year.exact" : "Year of publication", - "bibjson.journal.title.exact" : "Title", - "index.has_apc.exact" : "Charges?" + fieldDisplays: { + "es_type.exact": "Showing", + "admin.in_doaj": "In DOAJ?", + "index.language.exact": "Language", + "bibjson.publisher.name.exact": "Publisher", + "index.classification.exact": "Classification", + "index.subject.exact": "Subject", + "index.country.exact": "Country", + "index.license.exact": "License", + "bibjson.year.exact": "Year of publication", + "bibjson.journal.title.exact": "Title", + "index.has_apc.exact": "Charges?" + }, + valueMaps: { + "es_type.exact": {"journal": "Journals", "article": "Articles"}, + "admin.in_doaj": {true: "Yes", false: "No"} + }, + callbacks: { + "edges:pre-render": function() { + doaj.multiFormBox.active.validate(); }, - valueMaps : { - "es_type.exact" : { - "journal" : "Journals", - "article" : "Articles" - }, - "admin.in_doaj" : { - true : "Yes", - false : "No" - } - } - }) - ]; + "edges:post-render": function() { + $(".abstract_action").off("click").on("click", function(event) { + event.preventDefault(); + var el = $(this); + var at = $(".abstract_text").filter('[rel="' + el.attr("rel") + '"]'); + at.slideToggle(300); + }); + + $(".delete_article_link").off("click").on("click", function(event) { + event.preventDefault(); + + function success_callback(data) { + alert("The article was successfully deleted"); + doaj.adminJournalArticleSearch.activeEdges[selector].cycle(); + } - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); + function error_callback() { + alert("There was an error deleting the article") + } + + var c = confirm("Are you really really sure? You can't undo this operation!"); + if (c) { + var href = $(this).attr("href"); + var obj = {"delete": "true"}; + $.ajax({ + type: "POST", + url: href, + data: obj, + success: success_callback, + error: error_callback + }) + } + }); } } }); + doaj.adminJournalArticleSearch.activeEdges[selector] = e; - var mfb = doaj.multiFormBox.newMultiFormBox({ - edge : e, + doaj.multiFormBox.active = doaj.multiFormBox.newMultiFormBox({ + edge: e, selector: "#admin-bulk-box", - bindings : { - editor_group : function(context) { + bindings: { + editor_group: function(context) { autocomplete($('#editor_group', context), 'name', 'editor_group', 1, false); }, - edit_metadata : function(context) { + edit_metadata: function(context) { autocomplete($('#publisher_name', context), 'bibjson.publisher.name'); $('#publisher_country', context).select2(); autocomplete($('#owner', context), 'id', 'account'); } }, - validators : { - withdraw : journalSelected, + validators: { + withdraw: journalSelected, reinstate: journalSelected, delete: anySelected, - note : function(context) { + note: function(context) { var valid = journalSelected(); - if (!valid.valid) { - return valid; - } + if (!valid.valid) { return valid; } var val = context.find("#note").val(); - if (val === "") { - return {valid: false}; - } + if (val === "") { return {valid: false}; } return {valid: true}; }, - editor_group : function(context) { + editor_group: function(context) { var valid = journalSelected(); - if (!valid.valid) { - return valid; - } + if (!valid.valid) { return valid; } var val = context.find("#editor_group").val(); - if (val === "") { - return {valid: false}; - } + if (val === "") { return {valid: false}; } return {valid: true}; }, - edit_metadata : function(context) { - // first check that the journal has been selected + edit_metadata: function(context) { var valid = journalSelected(); - if (!valid.valid) { - return valid; - } - - // now check that at least one field has been completed + if (!valid.valid) { return valid; } var found = false; var fields = ["#publisher_name", "#publisher_country", "#owner"]; for (var i = 0; i < fields.length; i++) { - var val = context.find(fields[i]).val(); - if (val !== "") { - found = true; - } - } - if (!found) { - return {valid: false}; + if (context.find(fields[i]).val() !== "") { found = true; } } - + if (!found) { return {valid: false}; } return {valid: true}; } }, - submit : { - delete : { - sure : 'Are you sure? This operation cannot be undone!' - }, - note : { + submit: { + delete: {sure: 'Are you sure? This operation cannot be undone!'}, + note: { data: function(context) { - return { - note: $('#note', context).val() - }; + return {note: $('#note', context).val()}; } }, - editor_group : { - data : function(context) { - return { - editor_group: $('#editor_group', context).val() - }; + editor_group: { + data: function(context) { + return {editor_group: $('#editor_group', context).val()}; } }, - edit_metadata : { - data : function(context) { - var data = { - metadata : { + edit_metadata: { + data: function(context) { + return { + metadata: { publisher_name: $('#publisher_name', context).select2("val"), publisher_country: $('#publisher_country', context).select2("val"), owner: $('#owner', context).select2("val") } }; - return data; } } }, - urls : { + urls: { withdraw: "/admin/journals/bulk/withdraw", reinstate: "/admin/journals/bulk/reinstate", - delete : function() { + delete: function() { var type = typeSelected(); - if (type === "journal") { - return "/admin/journals/bulk/delete" - } else if (type === "article") { - return "/admin/articles/bulk/delete" - } + if (type === "journal") { return "/admin/journals/bulk/delete"; } + else if (type === "article") { return "/admin/articles/bulk/delete"; } return null; }, - note : "/admin/journals/bulk/add_note", - editor_group : "/admin/journals/bulk/assign_editor_group", - edit_metadata : "/admin/journals/bulk/edit_metadata" + note: "/admin/journals/bulk/add_note", + editor_group: "/admin/journals/bulk/assign_editor_group", + edit_metadata: "/admin/journals/bulk/edit_metadata" } }); - doaj.multiFormBox.active = mfb; - - $(selector).on("edges:pre-render", function() { - doaj.multiFormBox.active.validate(); - }); - - // now bind the abstract expander - $(selector).on("edges:post-render", function() { - $(".abstract_action").off("click").on("click", function(event) { - event.preventDefault(); - var el = $(this); - var at = $(".abstract_text").filter('[rel="' + el.attr("rel") + '"]'); - at.slideToggle(300); - }); - - // now add the handlers for the article delete - $(".delete_article_link").off("click").on("click", function(event) { - event.preventDefault(); - - function success_callback(data) { - alert("The article was successfully deleted"); - doaj.adminJournalArticleSearch.activeEdges[selector].cycle(); - } - - function error_callback() { - alert("There was an error deleting the article") - } - - var c = confirm("Are you really really sure? You can't undo this operation!"); - if (c) { - var href = $(this).attr("href"); - var obj = {"delete" : "true"}; - $.ajax({ - type: "POST", - url: href, - data: obj, - success : success_callback, - error: error_callback - }) - } - }); - }); } } From bce9061a47b85ebf16222bb3e6a8b3f9e6017af4 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:10:07 +0530 Subject: [PATCH 66/76] associate app article updated --- portality/static/js/doaj.fieldrender.edges.js | 1 + .../js/edges/associate.applications.edge.js | 366 +++--------------- 2 files changed, 65 insertions(+), 302 deletions(-) diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index ae27dc34ab..73cba1114d 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -538,6 +538,7 @@ $.extend(true, doaj, { orderDir: edges.getParam(params.orderDir, undefined), size: edges.getParam(params.size, undefined), valueMap: edges.getParam(params.valueMap, undefined), + valueFunction: edges.getParam(params.valueFunction, undefined), renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ controls: true, open: edges.getParam(params.open, false), diff --git a/portality/static/js/edges/associate.applications.edge.js b/portality/static/js/edges/associate.applications.edge.js index 81504cde23..3a2edda005 100644 --- a/portality/static/js/edges/associate.applications.edge.js +++ b/portality/static/js/edges/associate.applications.edge.js @@ -13,319 +13,81 @@ doaj.associateApplicationsSearch = { var selector = params.selector || "#associate_applications"; - var search_url = doaj.edgeUtil.url.build( - doaj.associateApplicationsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - // facets - doaj.facets.openOrClosed(), - - edges.newRefiningANDTermSelector({ - id: "application_status", - category: "facet", - field: "admin.application_status.exact", - display: "Application Status", - deactivateThreshold: 1, - valueFunction : doaj.associateApplicationsSearch.editorStatusMap, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date applied','field':'admin.date_applied'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Applications assigned to you" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.associateApplicationsSearchConfig.searchPath), + facets: [ + doaj.facets.openOrClosed(), + doaj.components.refiningAndFacet({id: "application_status", field: "admin.application_status.exact", display: "Application Status", deactivateThreshold: 1, valueFunction: doaj.associateApplicationsSearch.editorStatusMap}), + doaj.components.refiningAndFacet({id: "author_pays", field: "index.has_apc.exact", display: "Publication charges?", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "classification", field: "index.classification.exact", display: "Classification", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "language", field: "index.language.exact", display: "Journal language", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "country_publisher", field: "index.country.exact", display: "Country of publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "subject", field: "index.subject.exact", display: "Subject", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "publisher", field: "bibjson.publisher.name.exact", display: "Publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_license", field: "index.license.exact", display: "Journal license", deactivateThreshold: 1}) + ], + sortOptions: [ + {'display': 'Date applied', 'field': 'admin.date_applied'}, + {'display': 'Last updated', 'field': 'last_manual_update'}, + {'display': 'Title', 'field': 'index.unpunctitle.exact'} + ], + fieldOptions: [ + {'display': 'Title', 'field': 'index.title'}, + {'display': 'Keywords', 'field': 'bibjson.keywords'}, + {'display': 'Classification', 'field': 'index.classification'}, + {'display': 'ISSN', 'field': 'index.issn.exact'}, + {'display': 'Country of publisher', 'field': 'index.country'}, + {'display': 'Journal language', 'field': 'index.language'}, + {'display': 'Publisher', 'field': 'bibjson.publisher.name'}, + {'display': 'Alternative Title', 'field': 'bibjson.alternative_title'} + ], + searchPlaceholder: "Search Applications assigned to you", + sizeOptions: [10, 25, 50, 100], + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ noResultsText: "

    There are no applications assigned to you that meet the search criteria

    " + - "

    If you have not set any search criteria, this means there are no applications currently assigned to you

    ", - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre": "Date applied: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - valueFunction: doaj.fieldRender.issns - } - ], - [ - { - "pre" : "Application status: ", - valueFunction: doaj.fieldRender.applicationStatus - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], + "

    If you have not set any search criteria, this means there are no applications currently assigned to you

    ", + rowDisplay: [ + [{valueFunction: doaj.fieldRender.titleField}], + [{pre: 'Alternative title: ', field: "bibjson.alternative_title", post: ""}], + [{pre: "Date applied: ", valueFunction: doaj.fieldRender.suggestedOn}], + [{pre: "Last updated: ", valueFunction: doaj.fieldRender.lastManualUpdate}], + [{valueFunction: doaj.fieldRender.issns}], + [{pre: "Application status: ", valueFunction: doaj.fieldRender.applicationStatus}], + [{pre: "Classification: ", field: "index.classification"}], + [{pre: "Keywords: ", field: "bibjson.keywords"}], + [{pre: "Publisher: ", field: "bibjson.publisher.name"}], + [{pre: "Publication charges?: ", valueFunction: doaj.fieldRender.authorPays}], + [{pre: "Country of publisher: ", valueFunction: doaj.fieldRender.countryName}], + [{pre: "Journal language: ", field: "bibjson.language"}], + [{pre: "Journal license: ", valueFunction: doaj.fieldRender.journalLicense}], + [{valueFunction: doaj.fieldRender.links}], [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Country of publisher: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "Journal license: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - valueFunction: doaj.fieldRender.readOnlyJournal({ - readOnlyJournalUrl : doaj.associateApplicationsSearchConfig.readOnlyJournalUrl - }) - }, - { - valueFunction: doaj.fieldRender.editSuggestion({ - editUrl : doaj.associateApplicationsSearchConfig.applicationEditUrl - }) - } + {valueFunction: doaj.fieldRender.readOnlyJournal({readOnlyJournalUrl: doaj.associateApplicationsSearchConfig.readOnlyJournalUrl})}, + {valueFunction: doaj.fieldRender.editSuggestion({editUrl: doaj.associateApplicationsSearchConfig.applicationEditUrl})} ] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'admin.application_status.exact': 'Status', - 'index.application_type.exact': "Record type", - 'index.classification.exact' : 'Classification', - 'index.language.exact' : 'Language', - 'index.country.exact' : 'Country', - 'index.subject.exact' : 'Subject', - 'bibjson.publisher.name.exact' : 'Publisher', - 'index.license.exact' : 'License', - "index.has_apc.exact" : "Charges?" - } + fieldDisplays: { + 'admin.application_status.exact': 'Status', + 'index.application_type.exact': 'Record type', + 'index.classification.exact': 'Classification', + 'index.language.exact': 'Language', + 'index.country.exact': 'Country', + 'index.subject.exact': 'Subject', + 'bibjson.publisher.name.exact': 'Publisher', + 'index.license.exact': 'License', + 'index.has_apc.exact': 'Charges?' + }, + openingQuery: es.newQuery({ + sort: {"field": "admin.date_applied", "order": "asc"} }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "admin.date_applied", "order" : "asc"} - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } }); + doaj.associateApplicationsSearch.activeEdges[selector] = e; } } From e8e7087ad7f89a037cdf3dda354ea7e924e49ee3 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:11:15 +0530 Subject: [PATCH 67/76] associate journals updated --- .../js/edges/associate.journals.edge.js | 395 ++++-------------- 1 file changed, 70 insertions(+), 325 deletions(-) diff --git a/portality/static/js/edges/associate.journals.edge.js b/portality/static/js/edges/associate.journals.edge.js index 9777c2898d..9de1686251 100644 --- a/portality/static/js/edges/associate.journals.edge.js +++ b/portality/static/js/edges/associate.journals.edge.js @@ -6,344 +6,89 @@ doaj.associateJournalsSearch = { var selector = params.selector || "#associate_journals"; - var search_url = doaj.edgeUtil.url.build( - doaj.associateJournalsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - doaj.facets.inDOAJ(), - edges.newRefiningANDTermSelector({ - id: "owner", - category: "facet", - field: "admin.owner.exact", - display: "Owner", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_title", - category: "facet", - field: "index.title.exact", - display: "Journal title", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date added to DOAJ','field':'created_date'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'} - ], - fieldOptions: [ - {'display':'Owner','field':'admin.owner'}, - {'display':'Title','field':'index.title'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'}, - {'display':'Subject','field':'index.subject'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Journals assigned to you" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.associateJournalsSearchConfig.searchPath), + facets: [ + doaj.facets.inDOAJ(), + doaj.components.refiningAndFacet({id: "owner", field: "admin.owner.exact", display: "Owner", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "author_pays", field: "index.has_apc.exact", display: "Publication charges?", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_license", field: "index.license.exact", display: "Journal license", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "publisher", field: "bibjson.publisher.name.exact", display: "Publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "classification", field: "index.classification.exact", display: "Classification", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "subject", field: "index.subject.exact", display: "Subject", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_language", field: "index.language.exact", display: "Journal language", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "country_publisher", field: "index.country.exact", display: "Country of publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_title", field: "index.title.exact", display: "Journal title", deactivateThreshold: 1}) + ], + sortOptions: [ + {'display': 'Date added to DOAJ', 'field': 'created_date'}, + {'display': 'Last updated', 'field': 'last_manual_update'}, + {'display': 'Title', 'field': 'index.unpunctitle.exact'} + ], + fieldOptions: [ + {'display': 'Owner', 'field': 'admin.owner'}, + {'display': 'Title', 'field': 'index.title'}, + {'display': 'Alternative Title', 'field': 'bibjson.alternative_title'}, + {'display': 'Subject', 'field': 'index.subject'}, + {'display': 'Classification', 'field': 'index.classification'}, + {'display': 'ISSN', 'field': 'index.issn.exact'}, + {'display': 'Country of publisher', 'field': 'index.country'}, + {'display': 'Journal language', 'field': 'index.language'}, + {'display': 'Publisher', 'field': 'bibjson.publisher.name'} + ], + searchPlaceholder: "Search Journals assigned to you", + sizeOptions: [10, 25, 50, 100], + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ noResultsText: "

    There are no journals assigned to you that meet the search criteria

    " + - "

    If you have not set any search criteria, this means there are no journals currently assigned to you

    ", - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre" : "In DOAJ?: ", - valueFunction: doaj.fieldRender.inDoaj - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - valueFunction : doaj.fieldRender.issns - } - ], - [ - { - "pre": "Date added to DOAJ: ", - valueFunction: doaj.fieldRender.createdDateWithTime - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - "pre": "License: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Country: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Language: ", - "field": "bibjson.language" - } - ], - [ - { - valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.associateJournalsSearchConfig.journalEditUrl}) - } - ] + "

    If you have not set any search criteria, this means there are no journals currently assigned to you

    ", + rowDisplay: [ + [{valueFunction: doaj.fieldRender.titleField}], + [{pre: 'Alternative title: ', field: "bibjson.alternative_title", post: ""}], + [{pre: "In DOAJ?: ", valueFunction: doaj.fieldRender.inDoaj}], + [{pre: "Owner: ", valueFunction: doaj.fieldRender.owner}], + [{valueFunction: doaj.fieldRender.issns}], + [{pre: "Date added to DOAJ: ", valueFunction: doaj.fieldRender.createdDateWithTime}], + [{pre: "Last updated: ", valueFunction: doaj.fieldRender.lastManualUpdate}], + [{valueFunction: doaj.fieldRender.links}], + [{pre: "License: ", valueFunction: doaj.fieldRender.journalLicense}], + [{pre: "Publisher: ", field: "bibjson.publisher.name"}], + [{pre: "Publication charges?: ", valueFunction: doaj.fieldRender.authorPays}], + [{pre: "Classification: ", field: "index.classification"}], + [{pre: "Keywords: ", field: "bibjson.keywords"}], + [{pre: "Country: ", valueFunction: doaj.fieldRender.countryName}], + [{pre: "Language: ", field: "bibjson.language"}], + [{valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.associateJournalsSearchConfig.journalEditUrl})}] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "admin.in_doaj" : "In DOAJ?", - "admin.owner.exact" : "Owner", - "index.license.exact" : "License", - "bibjson.publisher.name.exact" : "Publisher", - "index.classification.exact" : "Classification", - "index.subject.exact" : "Subject", - "index.language.exact" : "Language", - "index.country.exact" : "Country", - "index.title.exact" : "Title", - "index.has_apc.exact" : "Charges?" - }, - valueMaps : { - "admin.in_doaj" : { - true : "True", - false : "False" - } - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, + fieldDisplays: { + "admin.in_doaj": "In DOAJ?", + "admin.owner.exact": "Owner", + "index.license.exact": "License", + "bibjson.publisher.name.exact": "Publisher", + "index.classification.exact": "Classification", + "index.subject.exact": "Subject", + "index.language.exact": "Language", + "index.country.exact": "Country", + "index.title.exact": "Title", + "index.has_apc.exact": "Charges?" + }, + valueMaps: { + "admin.in_doaj": {true: "True", false: "False"} + }, openingQuery: es.newQuery({ sort: [{field: "created_date", order: "desc"}] - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } + }) }); + doaj.associateJournalsSearch.activeEdges[selector] = e; } } - + jQuery(document).ready(function($) { doaj.associateJournalsSearch.init(); }); From 4e813a758ee59e3c89752371e3f8eeba273a404e Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:13:26 +0530 Subject: [PATCH 68/76] editor groupapp updated --- .../js/edges/editor.groupapplications.edge.js | 448 +++--------------- 1 file changed, 73 insertions(+), 375 deletions(-) diff --git a/portality/static/js/edges/editor.groupapplications.edge.js b/portality/static/js/edges/editor.groupapplications.edge.js index 780cbb678c..41dcfc0811 100644 --- a/portality/static/js/edges/editor.groupapplications.edge.js +++ b/portality/static/js/edges/editor.groupapplications.edge.js @@ -13,391 +13,89 @@ doaj.editorGroupApplicationsSearch = { var selector = params.selector || "#group_applications"; - var search_url = doaj.edgeUtil.url.build( - doaj.editorGroupApplicationsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - - // facets - doaj.facets.openOrClosed(), - - edges.newRefiningANDTermSelector({ - id: "application_status", - category: "facet", - field: "admin.application_status.exact", - display: "Application Status", - deactivateThreshold: 1, - valueFunction : doaj.editorGroupApplicationsSearch.editorStatusMap, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - // edges.newRefiningANDTermSelector({ - // id: "application_type", - // category: "facet", - // field: "index.application_type.exact", - // display: "Record type", - // deactivateThreshold: 1, - // renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - // controls: true, - // open: false, - // togglable: true, - // countFormat: countFormat, - // hideInactive: true - // }) - // }), - edges.newRefiningANDTermSelector({ - id: "has_editor", - category: "facet", - field: "index.has_editor.exact", - display: "Has Associate Editor?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "editor_group", - category: "facet", - field: "admin.editor_group.exact", - display: "Editor Group", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "editor", - category: "facet", - field: "admin.editor.exact", - display: "Editor", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date applied','field':'admin.date_applied'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'} - ], - fieldOptions: [ - {'display':'Title','field':'index.title'}, - {'display':'Keywords','field':'bibjson.keywords'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Applications in your Group(s)" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.editorGroupApplicationsSearchConfig.searchPath), + facets: [ + doaj.facets.openOrClosed(), + doaj.components.refiningAndFacet({id: "application_status", field: "admin.application_status.exact", display: "Application Status", deactivateThreshold: 1, valueFunction: doaj.editorGroupApplicationsSearch.editorStatusMap}), + doaj.components.refiningAndFacet({id: "has_editor", field: "index.has_editor.exact", display: "Has Associate Editor?", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "editor_group", field: "admin.editor_group.exact", display: "Editor Group", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "editor", field: "admin.editor.exact", display: "Editor", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "author_pays", field: "index.has_apc.exact", display: "Publication charges?", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "classification", field: "index.classification.exact", display: "Classification", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "language", field: "index.language.exact", display: "Journal language", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "country_publisher", field: "index.country.exact", display: "Country of publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "subject", field: "index.subject.exact", display: "Subject", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "publisher", field: "bibjson.publisher.name.exact", display: "Publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_license", field: "index.license.exact", display: "Journal license", deactivateThreshold: 1}) + ], + sortOptions: [ + {'display': 'Date applied', 'field': 'admin.date_applied'}, + {'display': 'Last updated', 'field': 'last_manual_update'}, + {'display': 'Title', 'field': 'index.unpunctitle.exact'} + ], + fieldOptions: [ + {'display': 'Title', 'field': 'index.title'}, + {'display': 'Keywords', 'field': 'bibjson.keywords'}, + {'display': 'Classification', 'field': 'index.classification'}, + {'display': 'ISSN', 'field': 'index.issn.exact'}, + {'display': 'Country of publisher', 'field': 'index.country'}, + {'display': 'Journal language', 'field': 'index.language'}, + {'display': 'Publisher', 'field': 'bibjson.publisher.name'}, + {'display': 'Alternative Title', 'field': 'bibjson.alternative_title'} + ], + searchPlaceholder: "Search Applications in your Group(s)", + sizeOptions: [10, 25, 50, 100], + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ noResultsText: "

    There are no applications for your editor group(s) that meet the search criteria

    " + - "

    If you have not set any search criteria, this means there are no applications currently allocated to your group

    ", - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre": "Date applied: ", - valueFunction: doaj.fieldRender.suggestedOn - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - valueFunction: doaj.fieldRender.issns - } - ], - [ - { - "pre" : "Application status: ", - valueFunction: doaj.fieldRender.applicationStatus - } - ], - [ - { - "pre" : "Editor Group: ", - "field" : "admin.editor_group" - } - ], - [ - { - "pre" : "Editor: ", - "field" : "admin.editor" - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Country of publisher: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Journal language: ", - "field": "bibjson.language" - } - ], - [ - { - "pre": "Journal license: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - valueFunction: doaj.fieldRender.readOnlyJournal({ - readOnlyJournalUrl : doaj.editorGroupApplicationsSearchConfig.readOnlyJournalUrl - }) - }, - { - valueFunction: doaj.fieldRender.editSuggestion({ - editUrl : doaj.editorGroupApplicationsSearchConfig.applicationEditUrl - }) - } + "

    If you have not set any search criteria, this means there are no applications currently allocated to your group

    ", + rowDisplay: [ + [{valueFunction: doaj.fieldRender.titleField}], + [{pre: 'Alternative title: ', field: "bibjson.alternative_title", post: ""}], + [{pre: "Date applied: ", valueFunction: doaj.fieldRender.suggestedOn}], + [{pre: "Last updated: ", valueFunction: doaj.fieldRender.lastManualUpdate}], + [{valueFunction: doaj.fieldRender.issns}], + [{pre: "Application status: ", valueFunction: doaj.fieldRender.applicationStatus}], + [{pre: "Editor Group: ", field: "admin.editor_group"}], + [{pre: "Editor: ", field: "admin.editor"}], + [{pre: "Classification: ", field: "index.classification"}], + [{pre: "Keywords: ", field: "bibjson.keywords"}], + [{pre: "Publisher: ", field: "bibjson.publisher.name"}], + [{pre: "Publication charges?: ", valueFunction: doaj.fieldRender.authorPays}], + [{pre: "Country of publisher: ", valueFunction: doaj.fieldRender.countryName}], + [{pre: "Journal language: ", field: "bibjson.language"}], + [{pre: "Journal license: ", valueFunction: doaj.fieldRender.journalLicense}], + [{valueFunction: doaj.fieldRender.links}], + [ + {valueFunction: doaj.fieldRender.readOnlyJournal({readOnlyJournalUrl: doaj.editorGroupApplicationsSearchConfig.readOnlyJournalUrl})}, + {valueFunction: doaj.fieldRender.editSuggestion({editUrl: doaj.editorGroupApplicationsSearchConfig.applicationEditUrl})} ] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - 'admin.application_status.exact': 'Application Status', - 'index.application_type.exact' : 'Record type', - 'index.has_editor.exact' : 'Has Associate Editor?', - 'admin.editor_group.exact' : 'Editor Group', - 'admin.editor.exact' : 'Editor', - 'index.classification.exact' : 'Classification', - 'index.language.exact' : 'Journal language', - 'index.country.exact' : 'Country of publisher', - 'index.subject.exact' : 'Subject', - 'bibjson.publisher.name.exact' : 'Publisher', - 'index.license.exact' : 'Journal license', - "index.has_apc.exact" : "Publication charges?" - } + fieldDisplays: { + 'admin.application_status.exact': 'Application Status', + 'index.application_type.exact': 'Record type', + 'index.has_editor.exact': 'Has Associate Editor?', + 'admin.editor_group.exact': 'Editor Group', + 'admin.editor.exact': 'Editor', + 'index.classification.exact': 'Classification', + 'index.language.exact': 'Journal language', + 'index.country.exact': 'Country of publisher', + 'index.subject.exact': 'Subject', + 'bibjson.publisher.name.exact': 'Publisher', + 'index.license.exact': 'Journal license', + 'index.has_apc.exact': 'Publication charges?' + }, + openingQuery: es.newQuery({ + sort: {"field": "admin.date_applied", "order": "asc"} }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - openingQuery : es.newQuery({ - sort: {"field" : "admin.date_applied", "order" : "asc"} - }), - components: components, - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } }); + doaj.editorGroupApplicationsSearch.activeEdges[selector] = e; } } From 11682c92338225a21b423f917dae42d014180b05 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:15:03 +0530 Subject: [PATCH 69/76] editor group journals updated --- .../js/edges/editor.groupjournals.edge.js | 460 +++--------------- 1 file changed, 78 insertions(+), 382 deletions(-) diff --git a/portality/static/js/edges/editor.groupjournals.edge.js b/portality/static/js/edges/editor.groupjournals.edge.js index 07696d67c9..1f5ae79998 100644 --- a/portality/static/js/edges/editor.groupjournals.edge.js +++ b/portality/static/js/edges/editor.groupjournals.edge.js @@ -3,400 +3,96 @@ doaj.editorGroupJournalsSearch = { init : function(params) { if (!params) { params = {} } - - var selector = params.selector || "#group_journals"; - - var search_url = doaj.edgeUtil.url.build( - doaj.editorGroupJournalsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - doaj.components.searchingNotification(), - // facets - doaj.facets.inDOAJ(), - edges.newRefiningANDTermSelector({ - id: "owner", - category: "facet", - field: "admin.owner.exact", - display: "Owner", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "has_associate_editor", - category: "facet", - field: "index.has_editor.exact", - display: "Has Associate Editor?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "editor_group", - category: "facet", - field: "admin.editor_group.exact", - display: "Editor Group", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "associate_editor", - category: "facet", - field: "admin.editor.exact", - display: "Associate Editor", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "author_pays", - category: "facet", - field: "index.has_apc.exact", - display: "Publication charges?", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_license", - category: "facet", - field: "index.license.exact", - display: "Journal license", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "publisher", - category: "facet", - field: "bibjson.publisher.name.exact", - display: "Publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "classification", - category: "facet", - field: "index.classification.exact", - display: "Classification", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "subject", - category: "facet", - field: "index.subject.exact", - display: "Subject", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_language", - category: "facet", - field: "index.language.exact", - display: "Journal language", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "country_publisher", - category: "facet", - field: "index.country.exact", - display: "Country of publisher", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - edges.newRefiningANDTermSelector({ - id: "journal_title", - category: "facet", - field: "index.title.exact", - display: "Journal title", - deactivateThreshold: 1, - renderer: edges.bs3.newRefiningANDTermSelectorRenderer({ - controls: true, - open: false, - togglable: true, - countFormat: countFormat, - hideInactive: true - }) - }), - - - // configure the search controller - edges.newFullSearchController({ - id: "search-controller", - category: "controller", - sortOptions: [ - {'display':'Date added to DOAJ','field':'created_date'}, - {'display':'Last updated','field':'last_manual_update'}, // Note: last updated on UI points to when last updated by a person (via form) - {'display':'Title','field':'index.unpunctitle.exact'} - ], - fieldOptions: [ - {'display':'Owner','field':'admin.owner'}, - {'display':'Title','field':'index.title'}, - {'display':'Alternative Title','field':'bibjson.alternative_title'}, - {'display':'Subject','field':'index.subject'}, - {'display':'Classification','field':'index.classification'}, - {'display':'ISSN', 'field':'index.issn.exact'}, - {'display':'Country of publisher','field':'index.country'}, - {'display':'Journal language','field':'index.language'}, - {'display':'Publisher','field':'bibjson.publisher.name'} - ], - defaultOperator: "AND", - renderer: doaj.renderers.newFullSearchControllerRenderer({ - freetextSubmitDelay: -1, - searchButton: true, - searchPlaceholder: "Search Journals in your Group(s)" - }) - }), - - // the pager, with the explicitly set page size options (see the openingQuery for the initial size) - edges.newPager({ - id: "top-pager", - category: "top-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), - edges.newPager({ - id: "bottom-pager", - category: "bottom-pager", - renderer: edges.bs3.newPagerRenderer({ - sizeOptions: [10, 25, 50, 100], - numberFormat: countFormat, - scroll: false - }) - }), + var selector = params.selector || "#group_journals"; - // results display - edges.newResultsDisplay({ + var e = doaj.components.makeSearch({ + selector: selector, + searchUrl: doaj.edgeUtil.url.build(doaj.editorGroupJournalsSearchConfig.searchPath), + facets: [ + doaj.facets.inDOAJ(), + doaj.components.refiningAndFacet({id: "owner", field: "admin.owner.exact", display: "Owner", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "has_associate_editor", field: "index.has_editor.exact", display: "Has Associate Editor?", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "editor_group", field: "admin.editor_group.exact", display: "Editor Group", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "associate_editor", field: "admin.editor.exact", display: "Associate Editor", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "author_pays", field: "index.has_apc.exact", display: "Publication charges?", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_license", field: "index.license.exact", display: "Journal license", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "publisher", field: "bibjson.publisher.name.exact", display: "Publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "classification", field: "index.classification.exact", display: "Classification", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "subject", field: "index.subject.exact", display: "Subject", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_language", field: "index.language.exact", display: "Journal language", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "country_publisher", field: "index.country.exact", display: "Country of publisher", deactivateThreshold: 1}), + doaj.components.refiningAndFacet({id: "journal_title", field: "index.title.exact", display: "Journal title", deactivateThreshold: 1}) + ], + sortOptions: [ + {'display': 'Date added to DOAJ', 'field': 'created_date'}, + {'display': 'Last updated', 'field': 'last_manual_update'}, + {'display': 'Title', 'field': 'index.unpunctitle.exact'} + ], + fieldOptions: [ + {'display': 'Owner', 'field': 'admin.owner'}, + {'display': 'Title', 'field': 'index.title'}, + {'display': 'Alternative Title', 'field': 'bibjson.alternative_title'}, + {'display': 'Subject', 'field': 'index.subject'}, + {'display': 'Classification', 'field': 'index.classification'}, + {'display': 'ISSN', 'field': 'index.issn.exact'}, + {'display': 'Country of publisher', 'field': 'index.country'}, + {'display': 'Journal language', 'field': 'index.language'}, + {'display': 'Publisher', 'field': 'bibjson.publisher.name'} + ], + searchPlaceholder: "Search Journals in your Group(s)", + sizeOptions: [10, 25, 50, 100], + resultsDisplay: edges.newResultsDisplay({ id: "results", category: "results", renderer: edges.bs3.newResultsFieldsByRowRenderer({ noResultsText: "

    There are no journals for your editor group(s) that meet the search criteria

    " + - "

    If you have not set any search criteria, this means there are no journals currently allocated to your group

    ", - rowDisplay : [ - [ - { - valueFunction: doaj.fieldRender.titleField - } - ], - [ - { - "pre": 'Alternative title: ', - "field": "bibjson.alternative_title", - "post": "" - } - ], - [ - { - "pre" : "In DOAJ?: ", - valueFunction: doaj.fieldRender.inDoaj - } - ], - [ - { - "pre" : "Owner: ", - valueFunction: doaj.fieldRender.owner - } - ], - [ - { - "pre" : "Editor Group: ", - "field" : "admin.editor_group" - } - ], - [ - { - "pre" : "Editor: ", - "field" : "admin.editor" - } - ], - [ - { - valueFunction : doaj.fieldRender.issns - } - ], - [ - { - "pre": "Date added to DOAJ: ", - valueFunction: doaj.fieldRender.createdDateWithTime - } - ], - [ - { - "pre": "Last updated: ", - valueFunction: doaj.fieldRender.lastManualUpdate - } - ], - [ - { - valueFunction: doaj.fieldRender.links - } - ], - [ - { - "pre": "License: ", - valueFunction: doaj.fieldRender.journalLicense - } - ], - [ - { - "pre": "Publisher: ", - "field": "bibjson.publisher.name" - } - ], - [ - { - "pre": "Publication charges?: ", - valueFunction: doaj.fieldRender.authorPays - } - ], - [ - { - "pre": "Classification: ", - "field": "index.classification" - } - ], - [ - { - "pre": "Keywords: ", - "field": "bibjson.keywords" - } - ], - [ - { - "pre": "Country: ", - valueFunction: doaj.fieldRender.countryName - } - ], - [ - { - "pre": "Language: ", - "field": "bibjson.language" - } - ], - [ - { - valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.editorGroupJournalsSearchConfig.journalEditUrl}) - } - ] + "

    If you have not set any search criteria, this means there are no journals currently allocated to your group

    ", + rowDisplay: [ + [{valueFunction: doaj.fieldRender.titleField}], + [{pre: 'Alternative title: ', field: "bibjson.alternative_title", post: ""}], + [{pre: "In DOAJ?: ", valueFunction: doaj.fieldRender.inDoaj}], + [{pre: "Owner: ", valueFunction: doaj.fieldRender.owner}], + [{pre: "Editor Group: ", field: "admin.editor_group"}], + [{pre: "Editor: ", field: "admin.editor"}], + [{valueFunction: doaj.fieldRender.issns}], + [{pre: "Date added to DOAJ: ", valueFunction: doaj.fieldRender.createdDateWithTime}], + [{pre: "Last updated: ", valueFunction: doaj.fieldRender.lastManualUpdate}], + [{valueFunction: doaj.fieldRender.links}], + [{pre: "License: ", valueFunction: doaj.fieldRender.journalLicense}], + [{pre: "Publisher: ", field: "bibjson.publisher.name"}], + [{pre: "Publication charges?: ", valueFunction: doaj.fieldRender.authorPays}], + [{pre: "Classification: ", field: "index.classification"}], + [{pre: "Keywords: ", field: "bibjson.keywords"}], + [{pre: "Country: ", valueFunction: doaj.fieldRender.countryName}], + [{pre: "Language: ", field: "bibjson.language"}], + [{valueFunction: doaj.fieldRender.editJournal({editUrl: doaj.editorGroupJournalsSearchConfig.journalEditUrl})}] ] }) }), - - // selected filters display, with all the fields given their display names - edges.newSelectedFilters({ - id: "selected-filters", - category: "selected-filters", - fieldDisplays: { - "admin.in_doaj" : "In DOAJ?", - "admin.owner.exact" : "Owner", - "index.has_editor.exact" : "Associate Editor?", - "admin.editor_group.exact" : "Editor group", - "admin.editor.exact" : "Associate Editor", - "index.license.exact" : "License", - "bibjson.publisher.name.exact" : "Publisher", - "index.classification.exact" : "Classification", - "index.subject.exact" : "Subject", - "index.language.exact" : "Language", - "index.country.exact" : "Country", - "index.title.exact" : "Title", - "index.has_apc.exact" : "Charges?" - }, - valueMaps : { - "admin.in_doaj" : { - true : "True", - false : "False" - } - } - }) - ]; - - var e = edges.newEdge({ - selector: selector, - template: edges.bs3.newFacetview(), - search_url: search_url, - manageUrl: true, - components: components, + fieldDisplays: { + "admin.in_doaj": "In DOAJ?", + "admin.owner.exact": "Owner", + "index.has_editor.exact": "Associate Editor?", + "admin.editor_group.exact": "Editor group", + "admin.editor.exact": "Associate Editor", + "index.license.exact": "License", + "bibjson.publisher.name.exact": "Publisher", + "index.classification.exact": "Classification", + "index.subject.exact": "Subject", + "index.language.exact": "Language", + "index.country.exact": "Country", + "index.title.exact": "Title", + "index.has_apc.exact": "Charges?" + }, + valueMaps: { + "admin.in_doaj": {true: "True", false: "False"} + }, openingQuery: es.newQuery({ sort: [{field: "created_date", order: "desc"}] - }), - callbacks : { - "edges:query-fail" : function() { - alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact an administrator."); - } - } + }) }); + doaj.editorGroupJournalsSearch.activeEdges[selector] = e; } } From 5a6bdfa90dfd9c6d3f505a1a76bb2338f4daec23 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:16:45 +0530 Subject: [PATCH 70/76] pub journals journals updated --- .../js/edges/publisher.journals.edge.js | 108 ++++++++---------- 1 file changed, 45 insertions(+), 63 deletions(-) diff --git a/portality/static/js/edges/publisher.journals.edge.js b/portality/static/js/edges/publisher.journals.edge.js index 9701847518..995405cf69 100644 --- a/portality/static/js/edges/publisher.journals.edge.js +++ b/portality/static/js/edges/publisher.journals.edge.js @@ -25,22 +25,14 @@ doaj.publisherJournalsSearch = { var selector = params.selector || "#publisher_journals"; - var search_url = doaj.edgeUtil.url.build( - doaj.publisherJournalsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - var components = [ doaj.components.searchingNotification(), edges.newPager({ id: "result-count", category: "pager", - renderer : edges.bs3.newResultCountRenderer({ - countFormat: countFormat, + renderer: edges.bs3.newResultCountRenderer({ + countFormat: doaj.valueMaps.countFormat, suffix: " indexed journals", htmlContainerWrapper: false }) @@ -55,7 +47,7 @@ doaj.publisherJournalsSearch = { syncCounts: false, lifecycle: "update", updateType: "fresh", - renderer : doaj.renderers.newORTermSelectorRenderer({ + renderer: doaj.renderers.newORTermSelectorRenderer({ showCount: true, hideEmpty: false, open: false, @@ -63,8 +55,6 @@ doaj.publisherJournalsSearch = { }) }), - // Subject Browser - /////////////////////////////////// doaj.components.subjectBrowser({ tree: doaj.publisherJournalsSearchConfig.lccTree, hideEmpty: true @@ -79,7 +69,7 @@ doaj.publisherJournalsSearch = { syncCounts: false, lifecycle: "update", updateType: "fresh", - renderer : doaj.renderers.newORTermSelectorRenderer({ + renderer: doaj.renderers.newORTermSelectorRenderer({ showCount: true, hideEmpty: false, open: false, @@ -90,14 +80,14 @@ doaj.publisherJournalsSearch = { edges.newFullSearchController({ id: "sort_by", category: "controller", - sortOptions : [ - {'display':'Added to DOAJ (newest first)','field':'created_date', "dir" : "desc"}, - {'display':'Added to DOAJ (oldest first)','field':'created_date', "dir" : "asc"}, - {'display':'Last updated (most recent first)','field':'last_updated', "dir" : "desc"}, - {'display':'Last updated (less recent first)','field':'last_updated', "dir" : "asc"}, - {'display':'Title (A-Z)','field':'index.unpunctitle.exact', "dir" : "asc"}, - {'display':'Title (Z-A)','field':'index.unpunctitle.exact', "dir" : "desc"}, - {'display':'Relevance','field':'_score'} + sortOptions: [ + {'display': 'Added to DOAJ (newest first)', 'field': 'created_date', "dir": "desc"}, + {'display': 'Added to DOAJ (oldest first)', 'field': 'created_date', "dir": "asc"}, + {'display': 'Last updated (most recent first)', 'field': 'last_updated', "dir": "desc"}, + {'display': 'Last updated (less recent first)', 'field': 'last_updated', "dir": "asc"}, + {'display': 'Title (A-Z)', 'field': 'index.unpunctitle.exact', "dir": "asc"}, + {'display': 'Title (Z-A)', 'field': 'index.unpunctitle.exact', "dir": "desc"}, + {'display': 'Relevance', 'field': '_score'} ], renderer: doaj.renderers.newSortRenderer({ prefix: "Sort by", @@ -108,50 +98,42 @@ doaj.publisherJournalsSearch = { edges.newPager({ id: "rpp", category: "pager", - renderer : doaj.renderers.newPageSizeRenderer({ + renderer: doaj.renderers.newPageSizeRenderer({ sizeOptions: [50, 100, 200], sizeLabel: "Results per page" }) }), - // selected filters display, with all the fields given their display names edges.newSelectedFilters({ id: "selected-filters", category: "selected-filters", - compoundDisplays : [ + compoundDisplays: [ { - filters : [ - es.newTermFilter({ - field: "bibjson.apc.has_apc", - value: false - }), - es.newTermFilter({ - field: "bibjson.other_charges.has_other_charges", - value: false - }) + filters: [ + es.newTermFilter({field: "bibjson.apc.has_apc", value: false}), + es.newTermFilter({field: "bibjson.other_charges.has_other_charges", value: false}) ], - display : "Without publication fees" + display: "Without publication fees" } ], - fieldDisplays : { - "index.schema_codes_tree.exact" : "Subject", - "index.license.exact" : "Licenses", - "bibjson.publisher.name.exact" : "Publishers", - "index.country.exact" : "Publishers' countries", - "index.language.exact" : "Languages", - "bibjson.editorial.review_process.exact" : "Peer review", - "created_date" : "Date added" + fieldDisplays: { + "index.schema_codes_tree.exact": "Subject", + "index.license.exact": "Licenses", + "bibjson.publisher.name.exact": "Publishers", + "index.country.exact": "Publishers' countries", + "index.language.exact": "Languages", + "bibjson.editorial.review_process.exact": "Peer review", + "created_date": "Date added" }, - rangeFunctions : { - "created_date" : doaj.valueMaps.displayYearPeriod + rangeFunctions: { + "created_date": doaj.valueMaps.displayYearPeriod }, - valueFunctions : { - "index.schema_codes_tree.exact" : doaj.valueMaps.schemaCodeToNameClosure(doaj.publisherJournalsSearchConfig.lccTree) + valueFunctions: { + "index.schema_codes_tree.exact": doaj.valueMaps.schemaCodeToNameClosure(doaj.publisherJournalsSearchConfig.lccTree) }, - renderer : doaj.renderers.newSelectedFiltersRenderer({ - hideValues : [ - ], - omit : [ + renderer: doaj.renderers.newSelectedFiltersRenderer({ + hideValues: [], + omit: [ "bibjson.apc.has_apc", "bibjson.other_charges.has_other_charges" ] @@ -161,18 +143,17 @@ doaj.publisherJournalsSearch = { edges.newPager({ id: "top-pager", category: "top-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + renderer: doaj.renderers.newPagerRenderer({ + numberFormat: doaj.valueMaps.countFormat }) }), - // results display edges.newResultsDisplay({ id: "results", category: "results", - renderer : doaj.renderers.newPublicSearchResultRenderer({ + renderer: doaj.renderers.newPublicSearchResultRenderer({ actions: [ - doaj.publisherJournalsSearch.makeUpdateRequest, + doaj.publisherJournalsSearch.makeUpdateRequest ] }) }), @@ -180,8 +161,8 @@ doaj.publisherJournalsSearch = { edges.newPager({ id: "bottom-pager", category: "bottom-pager", - renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + renderer: doaj.renderers.newPagerRenderer({ + numberFormat: doaj.valueMaps.countFormat }) }) ]; @@ -192,22 +173,23 @@ doaj.publisherJournalsSearch = { titleBar: false, title: "Journals" }), - search_url: search_url, + search_url: doaj.edgeUtil.url.build(doaj.publisherJournalsSearchConfig.searchPath), manageUrl: true, openingQuery: es.newQuery({ - sort: [{"field" : "created_date", "order" : "desc"}], + sort: [{"field": "created_date", "order": "desc"}], size: 50 }), components: components, - callbacks : { - "edges:query-fail" : function() { + callbacks: { + "edges:query-fail": function() { alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); }, - "edges:post-init" : function() { + "edges:post-init": function() { feather.replace(); } } }); + doaj.publisherJournalsSearch.activeEdges[selector] = e; } } From 0fadc79d7ec144593e304f93fd28fcfc3e6ee96b Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:19:33 +0530 Subject: [PATCH 71/76] pub update req updated --- .../js/edges/publisher.mydrafts.edge.js | 37 +++++++------------ .../edges/publisher.update_requests.edge.js | 14 ++----- 2 files changed, 17 insertions(+), 34 deletions(-) diff --git a/portality/static/js/edges/publisher.mydrafts.edge.js b/portality/static/js/edges/publisher.mydrafts.edge.js index 63d5b1e377..42c682f59d 100644 --- a/portality/static/js/edges/publisher.mydrafts.edge.js +++ b/portality/static/js/edges/publisher.mydrafts.edge.js @@ -12,7 +12,7 @@ doaj.publisherApplicationsSearch = { result = '
    Delete this update request'; - } else if (status !== "rejected" && status !== "accepted") { + } else if (status !== "rejected" && status !== "accepted") { result = 'This update request is currently being reviewed by an Editor ' + view + '.'; } else if (status === "rejected") { result = 'This update request has been rejected ' + view + '.'; @@ -30,26 +30,10 @@ doaj.publisherApplicationsSearch = { var selector = params.selector || "#publisher_applications"; - var search_url = doaj.edgeUtil.url.build( - doaj.publisherApplicationsSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - - var components = [ - // results display - edges.newResultsDisplay({ - id: "results", - category: "results", - renderer : doaj.renderers.newPublisherApplicationRenderer() - }) - ]; var e = edges.newEdge({ selector: selector, template: doaj.templates.newPublisherApplications(), - search_url: search_url, + search_url: doaj.edgeUtil.url.build(doaj.publisherApplicationsSearchConfig.searchPath), manageUrl: true, baseQuery: es.newQuery({ must: [ @@ -58,19 +42,26 @@ doaj.publisherApplicationsSearch = { values: ["revisions_required", "pending", "in progress", "completed", "on hold", "ready", "draft"] }) ], - sort: [{"field" : "last_updated", "order" : "desc"}], + sort: [{"field": "last_updated", "order": "desc"}], size: 50 }), - components: components, - callbacks : { - "edges:query-fail" : function() { + components: [ + edges.newResultsDisplay({ + id: "results", + category: "results", + renderer: doaj.renderers.newPublisherApplicationRenderer() + }) + ], + callbacks: { + "edges:query-fail": function() { alert("There was an unexpected error. Please reload the page and try again. If the issue persists please contact us."); }, - "edges:post-init" : function() { + "edges:post-init": function() { feather.replace(); } } }); + doaj.publisherApplicationsSearch.activeEdges[selector] = e; } } diff --git a/portality/static/js/edges/publisher.update_requests.edge.js b/portality/static/js/edges/publisher.update_requests.edge.js index 4169629a9a..cb3879b620 100644 --- a/portality/static/js/edges/publisher.update_requests.edge.js +++ b/portality/static/js/edges/publisher.update_requests.edge.js @@ -31,14 +31,6 @@ doaj.publisherUpdatesSearch = { var selector = params.selector || "#publisher_update_requests"; - var search_url = doaj.edgeUtil.url.build( - doaj.publisherUpdatesSearchConfig.searchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - var components = [ doaj.components.searchingNotification(), @@ -92,14 +84,14 @@ doaj.publisherUpdatesSearch = { id: "top-pager", category: "top-pager", renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + numberFormat: doaj.valueMaps.countFormat }) }), edges.newPager({ id: "bottom-pager", category: "bottom-pager", renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + numberFormat: doaj.valueMaps.countFormat }) }), @@ -131,7 +123,7 @@ doaj.publisherUpdatesSearch = { titleBar: false, title: "Update requests" }), - search_url: search_url, + search_url: doaj.edgeUtil.url.build(doaj.publisherUpdatesSearchConfig.searchPath), manageUrl: true, openingQuery: es.newQuery({ sort: [{"field" : "last_manual_update", "order" : "desc"}], From af408a2b301b4baa3ff890141d7c40f826e30991 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:20:44 +0530 Subject: [PATCH 72/76] notifications updated --- portality/static/js/edges/notifications.edge.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/portality/static/js/edges/notifications.edge.js b/portality/static/js/edges/notifications.edge.js index bf55e109ff..86747aa7fc 100644 --- a/portality/static/js/edges/notifications.edge.js +++ b/portality/static/js/edges/notifications.edge.js @@ -47,10 +47,6 @@ doaj.notificationsSearch = { var selector = params.selector || "#notifications"; - var search_url = doaj.edgeUtil.url.build( - doaj.notificationsSearchConfig.searchPath - ); - var components = [ doaj.components.searchingNotification(), @@ -88,7 +84,7 @@ doaj.notificationsSearch = { var e = edges.newEdge({ selector: selector, template: edges.bs3.newFacetview(), - search_url: search_url, + search_url: doaj.edgeUtil.url.build(doaj.notificationsSearchConfig.searchPath), manageUrl: false, openingQuery : es.newQuery({ sort: {"field" : "created_date", "order" : "desc"}, From bd2d2683473e39b80018659f70ebc98fe427bdfa Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:21:48 +0530 Subject: [PATCH 73/76] pubn article updated --- .../static/js/edges/public.article.edge.js | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/portality/static/js/edges/public.article.edge.js b/portality/static/js/edges/public.article.edge.js index 6c04b4e093..3f52c563b4 100644 --- a/portality/static/js/edges/public.article.edge.js +++ b/portality/static/js/edges/public.article.edge.js @@ -27,14 +27,6 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} var selector = params.selector || "#public-article-search"; - var search_url = doaj.edgeUtil.url.build( - doaj.publicSearchConfig.publicSearchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - var components = [ doaj.components.searchingNotification(), @@ -64,7 +56,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} id: "result-count", category: "pager", renderer : edges.bs3.newResultCountRenderer({ - countFormat: countFormat, + countFormat: doaj.valueMaps.countFormat, suffix: " indexed articles", htmlContainerWrapper: false }) @@ -111,7 +103,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} renderer : doaj.renderers.newDateHistogramSelectorRenderer({ open: false, togglable: true, - countFormat: countFormat, + countFormat: doaj.valueMaps.countFormat, hideInactive: false, hideEmpty: true }) @@ -176,7 +168,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} id: "top-pager", category: "top-pager", renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + numberFormat: doaj.valueMaps.countFormat }) }), @@ -191,7 +183,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} id: "bottom-pager", category: "bottom-pager", renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + numberFormat: doaj.valueMaps.countFormat }) }) ]; @@ -201,7 +193,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} template: doaj.templates.newPublicSearch({ title: "Articles" }), - search_url: search_url, + search_url: doaj.edgeUtil.url.build(doaj.publicSearchConfig.publicSearchPath), manageUrl : true, openingQuery: es.newQuery({ sort: [{"field" : "created_date", "order" : "desc"}], From 7ab22599d8914cb2bbd40eb968e645257b98d29d Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:22:36 +0530 Subject: [PATCH 74/76] pubn journal updated --- .../static/js/edges/public.journal.edge.js | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/portality/static/js/edges/public.journal.edge.js b/portality/static/js/edges/public.journal.edge.js index 182fbdcf39..c6d7902c3e 100644 --- a/portality/static/js/edges/public.journal.edge.js +++ b/portality/static/js/edges/public.journal.edge.js @@ -28,14 +28,6 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} var selector = params.selector || "#public-journal-search"; - var search_url = doaj.edgeUtil.url.build( - doaj.publicSearchConfig.publicSearchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - var components = [ doaj.components.searchingNotification(), edges.newFullSearchController({ @@ -63,7 +55,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} id: "result-count", category: "pager", renderer : edges.bs3.newResultCountRenderer({ - countFormat: countFormat, + countFormat: doaj.valueMaps.countFormat, suffix: " indexed journals", htmlContainerWrapper: false }) @@ -204,7 +196,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} renderer : doaj.renderers.newDateHistogramSelectorRenderer({ open: false, togglable: true, - countFormat: countFormat, + countFormat: doaj.valueMaps.countFormat, hideInactive: false }) }), @@ -296,7 +288,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} id: "top-pager", category: "top-pager", renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + numberFormat: doaj.valueMaps.countFormat }) }), @@ -311,7 +303,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} id: "bottom-pager", category: "bottom-pager", renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + numberFormat: doaj.valueMaps.countFormat }) }) ]; @@ -321,7 +313,7 @@ var SEARCH_CONFIGURED_OPTIONS={{QUERY}} template: doaj.templates.newPublicSearch({ title: "Journals" }), - search_url: search_url, + search_url: doaj.edgeUtil.url.build(doaj.publicSearchConfig.publicSearchPath), manageUrl : true, openingQuery: es.newQuery({ sort: [{"field" : "created_date", "order" : "desc"}], From 945fae7b73da22d802d69e9b45e1c89e87550c44 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 11:24:06 +0530 Subject: [PATCH 75/76] pub toc updated --- portality/static/js/edges/public.toc.edge.js | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/portality/static/js/edges/public.toc.edge.js b/portality/static/js/edges/public.toc.edge.js index fae01a8b0d..85c877e140 100644 --- a/portality/static/js/edges/public.toc.edge.js +++ b/portality/static/js/edges/public.toc.edge.js @@ -46,14 +46,6 @@ doaj.publicToC = { var selector = params.selector || "#journal_toc_articles"; - var search_url = doaj.edgeUtil.url.build( - doaj.publicToCConfig.publicSearchPath - ); - - var countFormat = edges.numFormat({ - thousandsSeparator: "," - }); - var components = [ doaj.components.searchingNotification(), @@ -61,7 +53,7 @@ doaj.publicToC = { id: "result-count", category: "pager", renderer : edges.bs3.newResultCountRenderer({ - countFormat: countFormat, + countFormat: doaj.valueMaps.countFormat, suffix: " indexed articles", htmlContainerWrapper: false }) @@ -93,7 +85,7 @@ doaj.publicToC = { renderer : doaj.renderers.newDateHistogramSelectorRenderer({ open: false, togglable: true, - countFormat: countFormat, + countFormat: doaj.valueMaps.countFormat, hideInactive: false }) }), @@ -117,7 +109,7 @@ doaj.publicToC = { renderer : doaj.renderers.newDateHistogramSelectorRenderer({ open: false, togglable: true, - countFormat: countFormat, + countFormat: doaj.valueMaps.countFormat, hideInactive: true, hideEmpty: true }) @@ -170,7 +162,7 @@ doaj.publicToC = { id: "top-pager", category: "top-pager", renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + numberFormat: doaj.valueMaps.countFormat }) }), // results display @@ -184,7 +176,7 @@ doaj.publicToC = { id: "bottom-pager", category: "bottom-pager", renderer : doaj.renderers.newPagerRenderer({ - numberFormat: countFormat + numberFormat: doaj.valueMaps.countFormat }) }) ]; @@ -194,7 +186,7 @@ doaj.publicToC = { template: doaj.templates.newPublicSearch({ titleBar: false }), - search_url: search_url, + search_url: doaj.edgeUtil.url.build(doaj.publicToCConfig.publicSearchPath), baseQuery : es.newQuery({ must : [ es.newTermsFilter({field: "index.issn.exact", values: doaj.publicToCConfig.tocIssns}) From 4760eb0b9ec95d04d1e8df3fe34d4a7f68dcddc1 Mon Sep 17 00:00:00 2001 From: "kush.varade.19" Date: Wed, 25 Mar 2026 14:46:45 +0530 Subject: [PATCH 76/76] $.extend is remove --- portality/static/js/doaj.fieldrender.edges.js | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/portality/static/js/doaj.fieldrender.edges.js b/portality/static/js/doaj.fieldrender.edges.js index 73cba1114d..d15924e75e 100644 --- a/portality/static/js/doaj.fieldrender.edges.js +++ b/portality/static/js/doaj.fieldrender.edges.js @@ -1,5 +1,4 @@ -$.extend(true, doaj, { - filters: { +doaj.filters = { noCharges: function () { return { id: "no_charges", @@ -43,8 +42,9 @@ $.extend(true, doaj, { } } - }, - facets: { +}; + +doaj.facets = { inDOAJ: function () { return edges.newRefiningANDTermSelector({ id: "in_doaj", @@ -336,9 +336,9 @@ $.extend(true, doaj, { }) }) } - }, +}; - valueMaps: { +doaj.valueMaps = { // This must be updated in line with the list in formcontext/choices.py applicationStatus: { 'update_request': 'Update Request', @@ -440,8 +440,9 @@ $.extend(true, doaj, { dateHistogramSelectorExporter: function(component) { return component.values; } - }, - components: { +}; + +doaj.components = { pager: function (id, category) { return edges.newPager({ id: id, @@ -1396,9 +1397,9 @@ $.extend(true, doaj, { this.drawn = true; }; } - }, +}; - templates: { +doaj.templates = { newPublicSearch: function (params) { return edges.instantiate(doaj.templates.PublicSearch, params, edges.newTemplate); }, @@ -1524,9 +1525,9 @@ $.extend(true, doaj, { edge.context.html(frag); }; } - }, +}; - renderers: { +doaj.renderers = { newAdminBasicResultsRenderer: function (params) { if (!params) { params = {} @@ -5533,9 +5534,9 @@ $.extend(true, doaj, { this.component.setSort({field: field, dir: dir}); }; } - }, +}; - fieldRender: { +doaj.fieldRender = { fragment: { fullFlagHTML: ` @@ -5912,9 +5913,9 @@ $.extend(true, doaj, { return false; } }, - }, +}; - bulk: { +doaj.bulk = { applicationMultiFormBox: function (edge_instance, doaj_type) { return doaj.multiFormBox.newMultiFormBox({ edge: edge_instance, @@ -5977,6 +5978,4 @@ $.extend(true, doaj, { } }); } - } - -}); +};