diff --git a/actions/index.js b/actions/index.js
index e995a893..fd04e4a8 100644
--- a/actions/index.js
+++ b/actions/index.js
@@ -2144,8 +2144,25 @@ export const getNewDocumentsPaged = async (
fieldSort,
showNumberOfRecords,
documentType,
+ documentOrigin,
selectedWeeks
) => {
+ console.log(
+ "/api/admin/getlatestdocuments_api?pageNumber=" +
+ pageNumber +
+ "&orderby=" +
+ orderBy +
+ "&fieldSort=" +
+ fieldSort +
+ "&showNumberOfRecords=" +
+ showNumberOfRecords +
+ "&documentType=" +
+ documentType +
+ "&numberWeeks=" +
+ selectedWeeks +
+ "&documentOrigin=" +
+ documentOrigin
+ );
return axios
.get(
"/api/admin/getlatestdocuments_api?pageNumber=" +
@@ -2159,7 +2176,9 @@ export const getNewDocumentsPaged = async (
"&documentType=" +
documentType +
"&numberWeeks=" +
- selectedWeeks
+ selectedWeeks +
+ "&documentOrigin=" +
+ documentOrigin
)
.then((res) => {
return res.data;
diff --git a/components/admin/tabs/accounts.js b/components/admin/tabs/accounts.js
index 97498248..8d802860 100644
--- a/components/admin/tabs/accounts.js
+++ b/components/admin/tabs/accounts.js
@@ -26,6 +26,8 @@ export default function AccountsTab({ userData }) {
>
{user.email}
+
+ {user.id}
Last accessed: {user.created}
diff --git a/components/admin/tabs/documents.js b/components/admin/tabs/documents.js
index 23818da2..94bc359a 100644
--- a/components/admin/tabs/documents.js
+++ b/components/admin/tabs/documents.js
@@ -7,6 +7,9 @@ import { connect } from "react-redux";
import transLookup from "../../../data/lookuptranslations.json";
import { formatDates } from "../../utils";
import PaginationControl from "../../../components/case/pagination";
+import DocumentLink from "../../utils/downloads";
+import { useDownloadQueue } from "../../utils/downloadmanager";
+
import { sendGAEvent } from "@next/third-parties/google";
import {
@@ -170,6 +173,21 @@ const getDocumentTypes = [
},
];
+const getOrigin = [
+ {
+ "Value": 846040000,
+ "Label": "MDU",
+ },
+ {
+ "Value": 846040001,
+ "Label": "Portal",
+ },
+ {
+ "Value": 846040002,
+ "Label": "Manual",
+ },
+];
+
const DocumentsTab = (props) => {
let { t, lang } = useTranslation();
const firstRender = useRef(false);
@@ -189,12 +207,15 @@ const DocumentsTab = (props) => {
const { locale } = router;
var documentDetailsArr = documentDetailsObj || [];
-
+ const { startDownload, getStatus } = useDownloadQueue(3);
const [selectedOption, setSelectedOption] = useState(10);
const [selectedWeeks, setSelectedWeeks] = useState(1);
const [documentTypes, setDocumentTypes] = useState(getDocumentTypes);
+ const [documentOrigin, setDocumentOrigin] = useState(getOrigin);
const [selectedDocumentType, setSelectedDocumentType] = useState("all");
+ const [selectedDocumentOrigin, setSelectedDocumentOrigin] = useState("all");
const [selectAll, setSelectAll] = useState(false);
+ const [selectOriginAll, setSelectOriginAll] = useState(false);
const [checkedItems, setCheckedItems] = useState(
documentTypes.reduce((acc, item) => {
@@ -203,6 +224,13 @@ const DocumentsTab = (props) => {
}, {})
);
+ const [checkedOriginItems, setCheckedOriginItems] = useState(
+ documentOrigin.reduce((acc, item) => {
+ acc[item.pinswg_origin] = false;
+ return acc;
+ }, {})
+ );
+
const handleCheckboxChange = (e) => {
const { name, checked } = e.target;
@@ -213,6 +241,16 @@ const DocumentsTab = (props) => {
setSelectAll(false);
};
+ const handleCheckboxOriginChange = (e) => {
+ const { name, checked } = e.target;
+
+ setCheckedOriginItems((prev) => ({
+ ...prev,
+ [name]: checked,
+ }));
+ setSelectOriginAll(false);
+ };
+
const handleSelectAllChange = (e) => {
const { checked } = e.target;
setSelectAll(checked); // Set the 'Select All' state
@@ -230,16 +268,42 @@ const DocumentsTab = (props) => {
}
};
+ const handleSelectOriginAllChange = (e) => {
+ const { checked } = e.target;
+ setSelectOriginAll(checked); // Set the 'Select All' state
+ if (checked) {
+ // If 'Select All' is checked, check all the other checkboxes
+
+ setCheckedOriginItems(
+ documentOrigin.reduce((acc, item) => {
+ acc[item.pinswg_origin] = true;
+ return acc;
+ }, {})
+ );
+ } else {
+ clearCheckboxes();
+ }
+ };
+
const clearCheckboxes = () => {
setSelectAll(false);
+ setSelectOriginAll(false);
setCheckedItems(
documentTypes.reduce((acc, item) => {
acc[item.pinswg_isharedocumentlocations] = false;
return acc;
}, {}),
+
setSelectedDocumentType("all"),
setCurrentPage(1)
);
+ setCheckedOriginItems(
+ documentOrigin.reduce((acc, item) => {
+ acc["origin_" + item.pinswg_origin] = false;
+ return acc;
+ }, {}),
+ setSelectedDocumentOrigin("all")
+ );
};
let ShowDocLinks = false;
let checkShowDocLinks = docsOffline != false ? true : false;
@@ -314,6 +378,9 @@ const DocumentsTab = (props) => {
{t("search:clear-filter-button-label")}
+
+ Document Type
+
{" "}
<>
@@ -335,17 +402,6 @@ const DocumentsTab = (props) => {
{router.locale == "cy"
? "Pawb"
: "All"}{" "}
- - (
- {documentTypes.reduce(
- (accumulator, currentItem) => {
- return (
- accumulator +
- currentItem.count
- );
- },
- 0
- )}
- )
>
@@ -389,17 +445,105 @@ const DocumentsTab = (props) => {
);
})}
{" "}
+
+ Document Origin
+
+ {" "}
diff --git a/pages/api/admin/getlatestdocuments_api.js b/pages/api/admin/getlatestdocuments_api.js
index c5742dab..36b7117c 100644
--- a/pages/api/admin/getlatestdocuments_api.js
+++ b/pages/api/admin/getlatestdocuments_api.js
@@ -64,9 +64,11 @@ export default async function ApiProxy(req, res) {
var fieldSort = req.query.fieldSort || "desc";
var showNumberOfRecords = req.query.showNumberOfRecords || 10;
var documentType = req.query.documentType || "all";
+ var documentOrigin = req.query.documentOrigin || "all";
var numberOfWeeks = req.query.numberWeeks || 1;
var docTypeQueryString = "";
+ var docOriginQueryString = "";
if (documentType != "all") {
if (documentType.indexOf(",") >= 0) {
@@ -91,6 +93,27 @@ export default async function ApiProxy(req, res) {
}
}
+ if (documentOrigin != "all") {
+ if (documentOrigin.indexOf(",") >= 0) {
+ const documentOriginArr = documentOrigin.split(",");
+
+ docOriginQueryString = " and (";
+ documentOriginArr.forEach(function (item, index) {
+ console.log(item, index);
+
+ if (item != "all") {
+ docOriginQueryString += " pinswg_origin eq " + item;
+
+ docOriginQueryString +=
+ index < documentOriginArr.length - 1 ? " or " : "";
+ }
+ });
+ docOriginQueryString += " )";
+ } else {
+ docOriginQueryString += " and pinswg_origin eq " + documentOrigin;
+ }
+ }
+
function daysAgoISO(days) {
const today = new Date();
const resultDate = new Date(today);
@@ -103,6 +126,7 @@ export default async function ApiProxy(req, res) {
"pinswg_documents?$select=pinswg_name,createdon,pinswg_publishtoweb,_pinswg_documentids_value,pinswg_isharedocumentlocations,pinswg_isharedocumentreference,pinswg_uploadurl,pinswg_uploadstatus,pinswg_origin&$filter=createdon ge " +
daysAgoISO(numberOfWeeks) +
docTypeQueryString +
+ docOriginQueryString +
"&$orderby=" +
orderby +
" " +
@@ -115,7 +139,7 @@ export default async function ApiProxy(req, res) {
console.log(
"\n==========================================\n",
- "\nnew docs search ",
+ "\nnew docs search---- ",
"\n\nQuery url: " + queryUrl,
"\n\nRelay link: " + WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
"\n==========================================\n"