Compare commits
No commits in common. "64ca197a09ff86279b3a48ea93ef739231da675a" and "1fb3b2d2c8c617de4659a1555cec02cedda810d0" have entirely different histories.
64ca197a09
...
1fb3b2d2c8
11 changed files with 35 additions and 983 deletions
|
|
@ -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
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 |
|
|
@ -88,6 +88,7 @@
|
||||||
max-height: 360px
|
max-height: 360px
|
||||||
padding: 8px
|
padding: 8px
|
||||||
|
|
||||||
|
|
||||||
&:focus
|
&:focus
|
||||||
outline: none
|
outline: none
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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')
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue