{"id":12126,"date":"2024-02-27T16:34:02","date_gmt":"2024-02-27T11:04:02","guid":{"rendered":"https:\/\/ncfe.org.in\/?page_id=12126"},"modified":"2024-07-11T12:23:38","modified_gmt":"2024-07-11T06:53:38","slug":"tenders-archives","status":"publish","type":"page","link":"https:\/\/ncfe.org.in\/tenders-archives\/","title":{"rendered":"Tenders Archives"},"content":{"rendered":"\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\n\n\n\nModern Layout for Data<\/title>\n<style>\nbody{font-family:\"Rubik\", Sans-serif;}\n \/* Pagination styles *\/\n .pagination-container {\n margin-top: 10px;\n text-align: center;\n display: flex;\n justify-content: flex-end;\n align-items: baseline;\n flex-direction: row;\n flex-wrap: nowrap;\n align-content: space-around;\n margin-left: 10px;\n margin-right: 10px;\n padding-left: 10px;\n padding-right: 10px;\n }\n\n .pagination-container a,\n .pagination-container span {\n display: inline-block;\n padding: 4px 10px 4px 8px;\n margin-right: 5px;\n border: 1px solid #ddd;\n background-color: #f9f9f9;\n color: #333;\n text-decoration: none;\n border-radius: 100px;\n }\n.pagination-container button{\n background-color: white;\n border: 1px solid #043e87;\n color: #043e87;\n margin: 4px;\n}\n\n .pagination-container>a{\n color: #043E87;\n padding-left: 8px;\n border: 1px solid;\n border-radius: 100px;\n padding-right: 8px;\n padding-top: 4px;\n padding-bottom: 2px;\n margin: 3px;\n }\n\n .pagination-container a:hover {\n background-color: #043E87;\n color: #fff;\n }\n\n .pagination-container a.active,\n .pagination-container span.active {\n background-color: #007bff;\n color: #fff;\n padding: 4px 10px 4px 8px;\n border-radius: 100px;\n }\n\n \/* Table styles *\/\n table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 20px;\n }\n\n th, td {\n border: 1px solid #ddd;\n padding: 8px;\n text-align: left;\n }\n\n th {\n background-color: #f2f2f2;\n }\n\n \/* Card styles *\/\n .card-container1 {\n display: none;\n }\n\n .card1 {\n padding: 30px;\n margin-bottom: 20px;\n border: 1px solid #ddd;\n border-radius: 5px;\n }\n\n .card-header1 {\n font-size: 0.9em;\n color: #777;\n margin-bottom: 5px;\n }\n\n .card-title1 {\n font-size: 25px;\n font-weight: bold;\n margin-bottom: 10px;\n }\n\n .card-content1 {\n font-size: 20px;\n color: #333;\n margin-bottom: 15px;\n }\n\n .card-link1 {\n text-decoration: none;\n color: white;\n background-color: #007bff;\n padding: 10px 15px;\n border-radius: 5px;\n font-size: 20px;\n }\n .pre{\n padding: 10px!important;\n margin: 10px!important;\n border-radius: 6px!important;\n color: black!important;\n border-color: black!important;\n }\n .pre:hover{\n background-color: #043e87;\n color: white!important; \n }\n .th2{\n background-color: #043e87;\n color: white;\n }\n<\/style>\n<\/head>\n<body>\n<div class=\"table-responsive\">\n<table id=\"announcement-table\">\n <thead>\n <tr>\n <th class=\"th2\">Published Date<\/th>\n <th class=\"th2\">Recruitment Notification<\/th>\n <th class=\"th2\">Last date of submission<\/th>\n <th class=\"th2\">Documents<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <!-- Announcement data will be populated dynamically here -->\n <\/tbody>\n<\/table>\n<\/div>\n<div class=\"pagination-container\" id=\"pagination-container\">\n <!-- Pagination buttons will be added dynamically -->\n<\/div>\n<script>\nlet currentPage = 1;\nconst perPage = 28;\nlet totalPages = 0;\n\nasync function fetchData(page = 1) {\n try {\n const url = `https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/tenders?page=${page}&per_page=${perPage}`;\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n \n const data = await response.json();\n console.log(\"Fetched data:\", data); \/\/ Log the fetched data array\n const tableBody = document.querySelector('#announcement-table tbody');\n tableBody.innerHTML = ''; \/\/ Clear existing rows\n \n let showFound = false;\n\n data.forEach((item) => {\n if (item.show_hide === 'hide') {\n showFound = true;\n const row = document.createElement('tr');\n appendCell(row, 'td', formatDate(item.date));\n appendCell(row, 'td', item.title.rendered);\n appendCell(row, 'td', formatDate(parseDateString(item.acf.last_date_for_submission)) + ' (Closed)');\n\n appendDocumentLink(row, item); \/\/ Pass the entire item object\n console.log(\"Processing item:\", item); \/\/ Log the item being processed\n tableBody.appendChild(row);\n }\n });\n\n if (!showFound) {\n const row = document.createElement('tr');\n const noValueCell = document.createElement('td');\n noValueCell.colSpan = 4; \/\/ Update the colspan to match the number of columns\n noValueCell.textContent = 'No Tenders Available';\n row.appendChild(noValueCell);\n tableBody.appendChild(row);\n }\n\n totalPages = Math.ceil(data.length \/ perPage);\n updatePagination();\n } catch (error) {\n console.error('Error:', error);\n }\n}\n\nfunction formatDate(dateString) {\n const options = { year: 'numeric', month: 'long', day: 'numeric' };\n return new Date(dateString).toLocaleDateString(undefined, options);\n}\n\nfunction parseDateString(dateString) {\n if (!dateString || dateString.length !== 8) return 'Invalid Date';\n const year = dateString.substring(0, 4);\n const month = dateString.substring(4, 6) - 1; \/\/ Months are zero-based in JavaScript Date\n const day = dateString.substring(6, 8);\n return new Date(year, month, day).toISOString();\n}\n\nfunction appendCell(row, cellType, text) {\n const cell = document.createElement(cellType);\n cell.textContent = text;\n row.appendChild(cell);\n}\n\nasync function appendDocumentLink(row, item) {\n console.log(\"Appending document link for item:\", item);\n\n \/\/ Ensure item is defined and has acf property\n if (!item || !item.acf) {\n console.log(\"Invalid item or item does not have acf property:\", item);\n appendNoDocumentCell(row);\n return;\n }\n\n const documentId = item.acf.document;\n\n if (!documentId) {\n console.log(\"No document available for item:\", item);\n appendNoDocumentCell(row);\n return;\n }\n\n console.log(\"Document ID found:\", documentId);\n\n \/\/ Check if documentId is a string and if it's directly a URL\n if (typeof documentId === 'string' && documentId.includes(\"http\")) {\n console.log(\"Document ID is a direct URL:\", documentId);\n const docCell = document.createElement('td');\n const docLink = document.createElement('a');\n docLink.href = documentId; \/\/ Directly use documentId as the URL\n docLink.innerHTML = \"<img src='https:\/\/ncfe.org.in\/wp-content\/uploads\/2023\/12\/ico_pdf.svg' alt='Download Document'>\";\n docLink.target = '_blank';\n docCell.appendChild(docLink);\n row.appendChild(docCell);\n } else {\n console.log(\"Fetching document details for ID:\", documentId);\n \/\/ Assume documentId is an ID that needs to fetch the URL\n const mediaUrl = `https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/media\/${documentId}`;\n try {\n const response = await fetch(mediaUrl);\n if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);\n const mediaItem = await response.json();\n console.log(\"Media item details:\", mediaItem);\n const docCell = document.createElement('td');\n const docLink = document.createElement('a');\n docLink.href = mediaItem.guid.rendered;\n docLink.innerHTML = \"<img src='https:\/\/ncfe.org.in\/wp-content\/uploads\/2023\/12\/ico_pdf.svg' alt='Download Document'>\";\n docLink.target = '_blank';\n docCell.appendChild(docLink);\n row.appendChild(docCell);\n } catch (error) {\n console.error('Error fetching document details:', error);\n appendNoDocumentCell(row);\n }\n }\n}\n\nfunction appendNoDocumentCell(row) {\n const noDocCell = document.createElement('td');\n noDocCell.textContent = 'No document available';\n row.appendChild(noDocCell);\n}\n\nfunction updatePagination() {\n const paginationContainer = document.getElementById('pagination-container');\n paginationContainer.innerHTML = ''; \/\/ Clear existing pagination buttons\n\n \/\/ Previous Button\n const prevButton = document.createElement('button');\n prevButton.textContent = 'Previous';\n prevButton.addEventListener('click', () => {\n goToPreviousPage();\n });\n paginationContainer.appendChild(prevButton);\n\n \/\/ Page Number Buttons\n for (let i = 1; i <= totalPages; i++) {\n const pageButton = document.createElement('button');\n pageButton.textContent = i;\n pageButton.addEventListener('click', () => {\n currentPage = i;\n fetchData(i);\n });\n\n if (i === currentPage) {\n pageButton.classList.add('active');\n }\n paginationContainer.appendChild(pageButton);\n }\n\n \/\/ Next Button\n const nextButton = document.createElement('button');\n nextButton.textContent = 'Next';\n nextButton.addEventListener('click', () => {\n goToNextPage();\n });\n paginationContainer.appendChild(nextButton);\n}\n\nfunction goToPreviousPage() {\n if (currentPage > 1) {\n currentPage--;\n fetchData(currentPage);\n }\n}\n\nfunction goToNextPage() {\n if (currentPage < totalPages) {\n currentPage++;\n fetchData(currentPage);\n }\n}\n\n\/\/ Initial fetch\nfetchData(currentPage);\n<\/script>\n\n<\/body>\n<\/html>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Modern Layout for Data Published Date Recruitment Notification Last date of submission Documents<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-12126","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tenders Archives - English (NCFE)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ncfe.org.in\/tenders-archives\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tenders Archives - English (NCFE)\" \/>\n<meta property=\"og:description\" content=\"Modern Layout for Data Published Date Recruitment Notification Last date of submission Documents\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ncfe.org.in\/tenders-archives\/\" \/>\n<meta property=\"og:site_name\" content=\"English (NCFE)\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-11T06:53:38+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ncfe.org.in\/tenders-archives\/\",\"url\":\"https:\/\/ncfe.org.in\/tenders-archives\/\",\"name\":\"Tenders Archives - English (NCFE)\",\"isPartOf\":{\"@id\":\"https:\/\/ncfe.org.in\/#website\"},\"datePublished\":\"2024-02-27T11:04:02+00:00\",\"dateModified\":\"2024-07-11T06:53:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ncfe.org.in\/tenders-archives\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ncfe.org.in\/tenders-archives\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ncfe.org.in\/tenders-archives\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ncfe.org.in\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tenders Archives\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ncfe.org.in\/#website\",\"url\":\"https:\/\/ncfe.org.in\/\",\"name\":\"English (NCFE)\",\"description\":\"English (NCFE)\",\"publisher\":{\"@id\":\"https:\/\/ncfe.org.in\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ncfe.org.in\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ncfe.org.in\/#organization\",\"name\":\"English (NCFE)\",\"url\":\"https:\/\/ncfe.org.in\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ncfe.org.in\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ncfe.org.in\/wp-content\/uploads\/2024\/03\/NCFE_logo-1-1.svg\",\"contentUrl\":\"https:\/\/ncfe.org.in\/wp-content\/uploads\/2024\/03\/NCFE_logo-1-1.svg\",\"width\":436,\"height\":113,\"caption\":\"English (NCFE)\"},\"image\":{\"@id\":\"https:\/\/ncfe.org.in\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tenders Archives - English (NCFE)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ncfe.org.in\/tenders-archives\/","og_locale":"en_US","og_type":"article","og_title":"Tenders Archives - English (NCFE)","og_description":"Modern Layout for Data Published Date Recruitment Notification Last date of submission Documents","og_url":"https:\/\/ncfe.org.in\/tenders-archives\/","og_site_name":"English (NCFE)","article_modified_time":"2024-07-11T06:53:38+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ncfe.org.in\/tenders-archives\/","url":"https:\/\/ncfe.org.in\/tenders-archives\/","name":"Tenders Archives - English (NCFE)","isPartOf":{"@id":"https:\/\/ncfe.org.in\/#website"},"datePublished":"2024-02-27T11:04:02+00:00","dateModified":"2024-07-11T06:53:38+00:00","breadcrumb":{"@id":"https:\/\/ncfe.org.in\/tenders-archives\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ncfe.org.in\/tenders-archives\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ncfe.org.in\/tenders-archives\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ncfe.org.in\/"},{"@type":"ListItem","position":2,"name":"Tenders Archives"}]},{"@type":"WebSite","@id":"https:\/\/ncfe.org.in\/#website","url":"https:\/\/ncfe.org.in\/","name":"English (NCFE)","description":"English (NCFE)","publisher":{"@id":"https:\/\/ncfe.org.in\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ncfe.org.in\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ncfe.org.in\/#organization","name":"English (NCFE)","url":"https:\/\/ncfe.org.in\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ncfe.org.in\/#\/schema\/logo\/image\/","url":"https:\/\/ncfe.org.in\/wp-content\/uploads\/2024\/03\/NCFE_logo-1-1.svg","contentUrl":"https:\/\/ncfe.org.in\/wp-content\/uploads\/2024\/03\/NCFE_logo-1-1.svg","width":436,"height":113,"caption":"English (NCFE)"},"image":{"@id":"https:\/\/ncfe.org.in\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/pages\/12126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/comments?post=12126"}],"version-history":[{"count":18,"href":"https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/pages\/12126\/revisions"}],"predecessor-version":[{"id":21470,"href":"https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/pages\/12126\/revisions\/21470"}],"wp:attachment":[{"href":"https:\/\/ncfe.org.in\/wp-json\/wp\/v2\/media?parent=12126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}