Compare commits

..

No commits in common. "64ca197a09ff86279b3a48ea93ef739231da675a" and "1fb3b2d2c8c617de4659a1555cec02cedda810d0" have entirely different histories.

11 changed files with 35 additions and 983 deletions

View file

@ -15,12 +15,8 @@
"crypto-js": "^4.2.0", "crypto-js": "^4.2.0",
"dayjs": "^1.11.18", "dayjs": "^1.11.18",
"gsap": "^3.13.0", "gsap": "^3.13.0",
"jimp": "^1.6.0",
"jspdf": "^3.0.3",
"nanostores": "^1.0.1", "nanostores": "^1.0.1",
"ofetch": "^1.4.1", "ofetch": "^1.4.1",
"openssl-nodejs": "^1.0.5",
"pica": "^9.0.1",
"sharp": "^0.34.4", "sharp": "^0.34.4",
"solid-icons": "^1.1.0", "solid-icons": "^1.1.0",
"solid-js": "^1.9.9", "solid-js": "^1.9.9",
@ -29,10 +25,9 @@
"devDependencies": { "devDependencies": {
"@nanostores/solid": "^1.1.1", "@nanostores/solid": "^1.1.1",
"@types/crypto-js": "^4.2.2", "@types/crypto-js": "^4.2.2",
"@types/node": "^24.6.2",
"sass-embedded": "^1.93.2", "sass-embedded": "^1.93.2",
"typescript": "~5.8.3", "typescript": "~5.8.3",
"vite": "^7.1.9", "vite": "^7.1.7",
"vite-plugin-solid": "^2.11.9" "vite-plugin-solid": "^2.11.8"
} }
} }

867
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6 KiB

View file

@ -87,6 +87,7 @@
overflow-y: auto overflow-y: auto
max-height: 360px max-height: 360px
padding: 8px padding: 8px
&:focus &:focus
outline: none outline: none

View file

@ -5,10 +5,8 @@ import { Tabs } from '@kobalte/core/tabs'
import { ofetch } from 'ofetch' import { ofetch } from 'ofetch'
import { onMount, createSignal } from 'solid-js' import { onMount, createSignal } from 'solid-js'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { checkConnection, createPdf } from '../../utils/functions' import { checkConnection } from '../../utils/functions'
import { FaSolidThumbsUp } from 'solid-icons/fa' import { FaSolidThumbsUp } from 'solid-icons/fa'
// @ts-ignore
// import * as openssl from 'openssl-nodejs'
const API = import.meta.env.VITE_BACKEND const API = import.meta.env.VITE_BACKEND
const PESO = import.meta.env.VITE_PESO const PESO = import.meta.env.VITE_PESO
@ -162,10 +160,6 @@ export default () => {
await load() await load()
} }
const openPDF = () => {
createPdf()
}
onMount(async () => { onMount(async () => {
await load() await load()
}) })
@ -244,7 +238,7 @@ export default () => {
</Tabs.Content> </Tabs.Content>
<Tabs.Content class="tabs__content" value="electrical"> <Tabs.Content class="tabs__content" value="electrical">
<Row> <Row>
<h2 onClick={openPDF}>List of Ready to Approve and Sign Electrical Order of Payments</h2> <h2>List of Ready to Approve and Sign Electrical Order of Payments</h2>
</Row> </Row>
<Row> <Row>
@ -312,7 +306,7 @@ export default () => {
<Row padding="2rem 0 0 0"> <Row padding="2rem 0 0 0">
<Button wide label="Approve" edges="curved" design="bo-primary" onClick={() => approveHandler(item)}></Button> <Button wide label="Approve" edges="curved" design="bo-primary" onClick={() => approveHandler(item)}></Button>
<span class="modal__cancel">Click anywhere to cancel</span> <span class="modal__cancel">To cancel click anywhere</span>
</Row> </Row>
</Padding> </Padding>
</ModalButton> </ModalButton>
@ -371,28 +365,6 @@ export default () => {
</Padding> </Padding>
</Modal> </Modal>
</div> </div>
<div onClick={() => setConnected(true)}>
<Modal trigger={connected() === false} background="#562020ff" color="#ffebebe6" opacity={0.8}>
<Padding top={1} bottom={1} left={4} right={4}>
<Column>
<Row>
<Box curved thickness={3} color="#ffebebe6" padding="1rem">
<h2>Connection Error</h2>
</Box>
</Row>
<Row>
<h3>{errorMessage()}</h3>
</Row>
<Row>
<span class="close-text">Click anywhere to close</span>
</Row>
</Column>
</Padding>
</Modal>
</div>
</> </>
) )
} }

View file

@ -1,77 +0,0 @@
import jsPDF from 'jspdf'
export default () => {
const doc = new jsPDF({
orientation: 'p',
unit: 'mm',
format: 'letter',
})
const lungsod = new Image()
lungsod.src = 'src/assets/images/lungsod2.png'
const ocbo = new Image()
ocbo.src = 'src/assets/images/ocbologo.png'
// const lungsodItem = document.getElementById('lungsod')
// const lungsodSrc = lungsodItem?.getAttribute('src')
// const lungsodLink = document.createElement('a')
// lungsodLink.href = lungsodSrc ?? ''
// const ocboItem = document.getElementById('ocbo')
// const ocboSrc = ocboItem?.getAttribute('src')
// const ocboLink = document.createElement('a')
// ocboLink.href = ocboSrc ?? ''
const getTextWidth = (text: string, fontSize: number) => {
doc.setFontSize(fontSize)
return doc.getStringUnitWidth(text) * fontSize * 0.35
}
const pageWidth = doc.internal.pageSize.getWidth()
const republicText = 'Republic of the Philippines'
const republicTextWidth = getTextWidth(republicText, 10)
const officeText = 'OFFICE OF THE CITY BUILDING OFFICIAL'
const officeTextWidth = getTextWidth(officeText, 11)
const cityText = 'City of Davao'
const cityTextWidth = getTextWidth(cityText, 10)
const republicTextX = (pageWidth - republicTextWidth) / 2
const officeTextX = (pageWidth - officeTextWidth) / 2
const cityTextX = (pageWidth - cityTextWidth) / 2
doc.setFont('helvetica', 'normal')
doc.setFontSize(10)
doc.text(republicText, republicTextX, 14)
doc.setFont('helvetica', 'bold')
doc.setFontSize(11)
doc.text(officeText, officeTextX, 19)
doc.setFont('helvetica', 'normal')
doc.setFontSize(10)
doc.text(cityText, cityTextX, 24)
doc.addImage(lungsod, 'PNG', 12, 8, 20, 20, 'lungsod', 'NONE', 0)
doc.addImage(ocbo, 'PNG', pageWidth - 36, 8, 20, 20, 'ocbo', 'NONE', 0)
// doc.setLineWidth(0.9)
// doc.line(10, 34, pageWidth - 10, 34)
const opText = 'ORDER OF PAYMENT'
const opTextWidth = getTextWidth(opText, 10)
const opTextX = (pageWidth - opTextWidth) / 2
doc.setFont('helvetica', 'bold')
doc.setFontSize(10)
doc.text(opText, opTextX, 34)
const divisionText = 'ELECTRICAL PERMIT'
const divisionTextWidth = getTextWidth(divisionText, 9)
const divisionTextX = (pageWidth - divisionTextWidth) / 2
doc.setFont('helvetica', 'normal')
doc.setFontSize(9)
doc.text(divisionText, divisionTextX, 39)
doc.save('Sample')
}

View file

@ -1,15 +1,17 @@
import { Jimp } from 'jimp' // import sharp from 'sharp'
export default async () => { // import * as path from 'path'
const inputSrc = 'src/assets/images/logo.png'
const favicon = 'public/favicon.png'
try { // const generateFavicon = async () => {
const image = await Jimp.read(inputSrc) // const inputSrc = 'src/assets/images/logo.png'
image.resize({ w: 90 }) // const faviconPath = path.join(__dirname, '../public/favicon.png')
await image.write(favicon)
console.log('Favicon generated successfully') // try {
} catch (error) { // await sharp(inputSrc).png({ quality: 90 }).resize(50).toFile(faviconPath)
console.error('Error generating favicon:', error) // console.log('Favicon generated successfully')
} // } catch (error) {
} // console.error('Error generating favicon:', error)
// }
// }
// export default generateFavicon

View file

@ -1,3 +1 @@
export { default as checkConnection } from './checkConnection' export { default as checkConnection } from './checkConnection'
export { default as createPdf } from './createPdf'
// export { default as generateFavicon } from './generateFavicon'