Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2516 commits
Select commit Hold shift + click to select a range
92cf400
feat: auto-route pos typing and scans to item search
defendicon Mar 25, 2026
61a47e6
fix: preserve first typed character when auto-focusing item search
defendicon Mar 25, 2026
6ca7e62
fix: route alt-f to invoice toolbar search field
defendicon Mar 25, 2026
e056d35
Merge pull request #2946 from defendicon/fix-shortcuts-working-issues
defendicon Mar 25, 2026
2917c1d
fix: normalize return payment rows before amount sign handling
defendicon Mar 25, 2026
0155610
fix: persist update prompt dismissal on external close
defendicon Mar 25, 2026
cc4392c
fix: recompute payment base amounts from server conversion rate
defendicon Mar 25, 2026
8aeca4f
Merge pull request #2947 from defendicon/stage-develop
defendicon Mar 25, 2026
21de9c6
Release: v15.25.0 — 2026-03-25
semantic-release-bot Mar 25, 2026
59ff03c
fix: prevent infinite chunk reload loop after stale asset failures
defendicon Mar 26, 2026
11bc75b
fix: finalize new bundle activation before purging old caches
defendicon Mar 26, 2026
ea79f2e
fix: keep loader self-contained for desk script execution
defendicon Mar 26, 2026
018476c
Merge pull request #2948 from defendicon/fix-bundle-activation-before…
defendicon Mar 26, 2026
971adbc
fix: preserve customer credit deductions across payment changes
defendicon Mar 26, 2026
b82dd4c
fix: avoid reallocating post-submit change entries to settled invoices
defendicon Mar 26, 2026
ea7fdc0
fix: record full tender with customer credit and separate change
defendicon Mar 27, 2026
87c5707
fix: exclude pay entries from customer credit and preserve full tender
defendicon Mar 27, 2026
f12c1f5
fix: exclude pay-type change entries from customer credit lists
defendicon Mar 27, 2026
243bc02
fix: link change payouts to source receive entries
defendicon Mar 27, 2026
28da2cd
fix: track change payouts in remarks and net them from credit
defendicon Mar 27, 2026
3a2447b
fix: reconcile change payouts against source receive entries
defendicon Mar 27, 2026
0d0ecc5
perf: move post-submit payment processing to background queue
defendicon Mar 27, 2026
392b15a
feat: show realtime payment-processing status and defer print until f…
defendicon Mar 27, 2026
9ff3f7e
fix: merge invoice submit and payment-processing snackbar updates
defendicon Mar 27, 2026
c53af07
fix: keep processing snackbar sticky and route events to submitting user
defendicon Mar 28, 2026
deeedb7
fix: recreate stale named drafts instead of mutating submitted docs
defendicon Mar 28, 2026
d009a7e
fix: clear stale party details when draft customer changes
defendicon Mar 28, 2026
a65abe5
fix: refresh draft customer title when customer changes
defendicon Mar 28, 2026
b298dbb
fix: sync draft title immediately and ignore stale customer responses
defendicon Mar 28, 2026
29861df
feat: show visible checking state during manual status recheck
defendicon Mar 28, 2026
d5f5c82
fix: clear stale customer party details when recreating POS drafts
defendicon Mar 28, 2026
264e3af
Merge pull request #2951 from defendicon/fix-preserve-customer-credit…
defendicon Mar 28, 2026
cef796b
fix: harden POS payment submission and activation flows
defendicon Mar 28, 2026
547893e
Merge pull request #2952 from defendicon/stage-develop
defendicon Mar 28, 2026
20734a0
Release: v15.26.0 — 2026-03-28
semantic-release-bot Mar 28, 2026
43dd33b
fix: warn and skip cancelled return drafts during shift closing
defendicon Mar 28, 2026
9c6128a
fix: respect manual qz disconnect and profile printer default
defendicon Mar 31, 2026
cf61183
fix: default payment print format from profile and respect customer-g…
defendicon Mar 31, 2026
39acc09
fix: avoid resubmitting cancelled return drafts in closing overview
defendicon Mar 31, 2026
6c95423
fix: prevent null profile crash on draft print
defendicon Mar 31, 2026
fc99d76
fix: wire draft print save callback correctly
defendicon Mar 31, 2026
1ce3f8d
fix: use shared print loader for draft invoices
defendicon Mar 31, 2026
2cb64ab
fix: show both invoice print format doctypes in payments
defendicon Mar 31, 2026
148efc4
fix: add payment print format toggle to pos profile
defendicon Mar 31, 2026
9389b61
fix: add qz printer name copy action
defendicon Mar 31, 2026
d5bf52c
fix: save qz printer default from setup dialog
defendicon Mar 31, 2026
736928a
fix: apply batch price immediately on auto batch selection
defendicon Mar 31, 2026
5c07ae8
feat: add shared posting date control next to customer in pos pay
defendicon Mar 31, 2026
10d0765
feat: add party-based payment flows and posting date support
defendicon Mar 31, 2026
d7e47bb
fix: style add POS-themed colors to payment mode buttons
defendicon Mar 31, 2026
67517aa
fix: make selected payment mode buttons visually clear
defendicon Mar 31, 2026
e039ee6
Merge pull request #2960 from defendicon/fix-minor-issues-and-bugs
defendicon Apr 2, 2026
d1a0c4a
feat: add transaction ID reference fields and supplier price list sup…
Manaa0-0 Apr 2, 2026
3b8b444
Add difference display in PayTotalsSidebar
Manaa0-0 Apr 2, 2026
fc159ce
Merge pull request #2962 from Manaa0-0/feat/transaction-id-and-suppli…
defendicon Apr 3, 2026
0825f94
feat: enable typed and calendar-based reference date input
defendicon Apr 3, 2026
f80ce5a
chore: cleanup doc files
defendicon Apr 3, 2026
e76f673
feat: add parked orders rail and faster payment quick actions
defendicon Apr 4, 2026
f9771ae
add parked orders rail and faster payment quick actions
defendicon Apr 4, 2026
7aa597a
feat: require cashier pin for shared terminal switching
defendicon Apr 4, 2026
3a2c157
feat: modernize stored value redemption flow
defendicon Apr 4, 2026
f5752a3
refactor: polish cashier pin flow and navbar identity actions
defendicon Apr 4, 2026
d166b71
feat: add self-service cashier pin management and supervisor-only das…
defendicon Apr 4, 2026
194669f
refactor: convert navbar menu to cashier-first quick actions and sett…
defendicon Apr 4, 2026
8ceb6a1
refactor: switch quick actions to a single-column menu layout
defendicon Apr 4, 2026
c717209
refactor: move drafts to responsive secondary surfaces
defendicon Apr 4, 2026
0237601
fix: close drafts rail css block
defendicon Apr 4, 2026
91797e3
fix: make quick actions render full-width in single column
defendicon Apr 4, 2026
7906b01
fix: route drafts actions to the new drawer flow
defendicon Apr 4, 2026
d62a829
refactor: remove inline drafts preview from active sale summary
defendicon Apr 4, 2026
10f1ece
feat: open invoice management directly on drafts from manage all
defendicon Apr 4, 2026
d3f6d9e
refactor: rename stored value labels back to customer credit
defendicon Apr 4, 2026
236dab3
refactor: simplify payment quick action to a single method button
defendicon Apr 4, 2026
5bac08c
feat: add stored value summary to customer and payment flows
defendicon Apr 4, 2026
d70594a
fix: allocate overpayment change entries against the source invoice
defendicon Apr 4, 2026
ac89960
feat: add invoice-level repair action for change allocations
defendicon Apr 4, 2026
590ab4a
fix: pass frappe dict rows to change allocation repair reconciliation
defendicon Apr 4, 2026
6ce48d1
feat: show company-wide invoice management data for POS supervisors
defendicon Apr 4, 2026
0eca040
fix: preserve supervisor metadata for the current cashier session
defendicon Apr 4, 2026
9cad245
feat: add history repair-candidate filter and dark mode card polish
defendicon Apr 4, 2026
064bce4
feat: improve invoice management repair workflows and supervisor cont…
defendicon Apr 5, 2026
4a93b6f
fix: keep unrepaired change-allocation invoices visible in history
defendicon Apr 5, 2026
c1bd3c2
fix: autofill full amount when switching payment methods
defendicon Apr 5, 2026
15db95e
fix: reconcile paid change entries after submit for overpayments
defendicon Apr 5, 2026
c24a6f0
fix: refresh invoice management on profile change and rename customer…
defendicon Apr 5, 2026
aa516de
feat: complete phase 2 gift cards and offline customer balance support
defendicon Apr 5, 2026
baf063d
fixL add gift doctype to pos awesome workspace
defendicon Apr 5, 2026
5807931
feat: add gift card management module and payment redemption entry
defendicon Apr 5, 2026
f24ff14
fix: correct gift card view store imports for production build
defendicon Apr 5, 2026
2071c1f
fix: allow gift card redemption with prefilled default payments and p…
defendicon Apr 5, 2026
66a6fbe
fix: sync gift card settlement into invoice submission payments
defendicon Apr 5, 2026
5f55d13
fix: move gift cards to liability accounting
defendicon Apr 5, 2026
d7704fd
feat: move gift to sale invoice and show applied gift cards in the pa…
defendicon Apr 5, 2026
82f3757
fix: create missing gift card redemption fields for sales and pos inv…
defendicon Apr 6, 2026
c6b40dc
fix: make gift card profile settings opt-in by default
defendicon Apr 6, 2026
5f9ff80
fix: auto-create gift card mode of payment account mapping
defendicon Apr 6, 2026
777bfc2
fix: make gift card redemption idempotent for background submit
defendicon Apr 6, 2026
5a1ffed
fix: restore gift card balances on invoice cancel
defendicon Apr 6, 2026
8882759
feat: drafts rail placement and payment speed polish
defendicon Apr 7, 2026
ff15242
fix: return drafts rail formatter from pos shell setup
defendicon Apr 7, 2026
28df203
fix: remove shell draft rail
defendicon Apr 7, 2026
e7bd3c6
fix: remove payment settlement status and quick tender shortcuts
defendicon Apr 7, 2026
93efae7
feat: make gift card redemption inline in payments
defendicon Apr 7, 2026
0c76300
chore: cleanup unnecessary files and docs
defendicon Apr 7, 2026
58e270e
fix: stabilize POS app startup after rebuilds
defendicon Apr 8, 2026
50a9750
feat: add /app/pos desk alias for POS Awesome
defendicon Apr 8, 2026
e1fb749
docs: add offline bootstrap snapshot design spec
defendicon Apr 8, 2026
a07b2d2
docs: add offline bootstrap implementation plan
defendicon Apr 8, 2026
b3f90d4
test: add bootstrap snapshot validation coverage
defendicon Apr 8, 2026
77424b0
feat: add bootstrap snapshot validation modes
defendicon Apr 8, 2026
c305236
feat: persist offline bootstrap snapshot state
defendicon Apr 8, 2026
71e0288
feat: refresh bootstrap snapshot from profile and opening flows
defendicon Apr 8, 2026
9525aa6
feat: gate offline startup with bootstrap validation
defendicon Apr 9, 2026
67575a1
docs: add prerequisite coverage design spec
defendicon Apr 9, 2026
43f7ed4
docs: add prerequisite coverage implementation plan
defendicon Apr 9, 2026
ec02632
feat: expand bootstrap prerequisite collection
defendicon Apr 9, 2026
21d6d2b
feat: add bootstrap cache refresh helper
defendicon Apr 9, 2026
7b793f9
feat: expand offline bootstrap prerequisite coverage
defendicon Apr 9, 2026
5dc6cf6
fix: fingerprint offline runtime entry for cache-safe upgrades
defendicon Apr 9, 2026
c5d1e42
fix: prevent bootstrap warning banner text clipping
defendicon Apr 9, 2026
fd2934d
feat: surface bootstrap warnings in status UI
defendicon Apr 9, 2026
8b60065
copy: add clear-cache guidance to bootstrap warnings
defendicon Apr 9, 2026
9a3543d
feat: cache offline prerequisite datasets for delivery and currency f…
defendicon Apr 9, 2026
6b2fbcb
docs: add unified offline sync and action surfaces spec
defendicon Apr 9, 2026
d515956
docs: add unified offline sync implementation plan
defendicon Apr 9, 2026
42a728f
feat: add offline sync resource registry foundation
defendicon Apr 9, 2026
e4c046f
feat: persist offline resource sync state
defendicon Apr 9, 2026
cdaf74d
feat: add offline sync coordinator skeleton
defendicon Apr 9, 2026
2afef96
feat: separate offline status actions from cashier menu
defendicon Apr 9, 2026
9ece7db
feat: add boot-critical offline sync endpoints
defendicon Apr 9, 2026
e12cc53
feat: sync boot-critical offline resources
defendicon Apr 9, 2026
831e434
feat: trigger boot-critical sync on boot and resume
defendicon Apr 9, 2026
1bcfdec
feat: add operational offline delta sync endpoints
defendicon Apr 9, 2026
91dec38
feat: add operational offline sync adapters
defendicon Apr 9, 2026
026e14e
feat: wire operational resources into offline sync runtime
defendicon Apr 9, 2026
2dae035
refactor: move cache repair actions into offline status panel
defendicon Apr 9, 2026
65d0eb1
chore: remove offline rollout planning docs
defendicon Apr 9, 2026
238212a
docs: add navbar settings panel design spec
defendicon Apr 9, 2026
d86e7e5
docs: add navbar settings panel implementation plan
defendicon Apr 9, 2026
84b165c
feat: add drawer settings panel for POS actions
defendicon Apr 9, 2026
756fe4f
docs: add hybrid settings workspace design spec
defendicon Apr 9, 2026
48efe52
docs: add hybrid settings workspace implementation plan
defendicon Apr 9, 2026
d6f1f91
feat: add hybrid settings workspace for POS actions
defendicon Apr 9, 2026
b614b59
docs: add embedded PIN settings design spec
defendicon Apr 9, 2026
348c438
docs: add embedded PIN settings implementation plan
defendicon Apr 9, 2026
e7eaad8
feat: add embedded detail mode to settings workspace
defendicon Apr 9, 2026
78766a2
feat: embed cashier PIN management in settings workspace
defendicon Apr 9, 2026
0ec060a
fix: add flt fallback in setBatchQty to prevent 'flt is not a functio…
Manaa0-0 Apr 9, 2026
4d3779c
fix: preserve draft item batches when reloading invoices
defendicon Apr 11, 2026
fbf914c
fix: refresh item selector stock on cart and sale updates
defendicon Apr 11, 2026
e88c8c4
fix: hide out-of-stock batch codes in batch selectors
defendicon Apr 11, 2026
936cfff
fix: preserve backdated posting dates when submitting invoices
defendicon Apr 11, 2026
c231e7c
fix: correct return invoice payment amounts and add refund visual ind…
defendicon Apr 15, 2026
62d480d
fix: allow partial refunds and show all payment methods on return inv…
defendicon Apr 15, 2026
530c326
fix: remove any annotations
defendicon Apr 15, 2026
fa8833c
fix: useinvoiceoffers changed setdiscountamount() to setadditionaldis…
defendicon Apr 15, 2026
5795e7e
fix: discount percentage column missing path
defendicon Apr 16, 2026
8d23df9
Merge pull request #2973 from defendicon/fix-reference-number-and-dat…
defendicon Apr 16, 2026
999e3f7
Merge pull request #2974 from defendicon/stage-develop
defendicon Apr 16, 2026
3e208ca
Release: v15.27.0 — 2026-04-16
semantic-release-bot Apr 16, 2026
4aba674
Merge pull request #2968 from Manaa0-0/fix/batch-serial-flt-fallback
defendicon Apr 16, 2026
9b4c4d9
fix: empty states offers, delivery charges, currency options etc warn…
defendicon Apr 16, 2026
b7b579d
docs: strengthen documentation coverage across offline and POS workfl…
defendicon Apr 16, 2026
5e76aaa
feat: add role-based item rate info with BOM cost support
defendicon Apr 17, 2026
e5b0539
feat: open item rate info menu on hover and click
defendicon Apr 17, 2026
d6d76f4
fix: prevent continuous POS reload loop from service worker controlle…
defendicon Apr 17, 2026
b1066a3
fix: keep cart item table headers aligned when toggling columns
defendicon Apr 18, 2026
c2b13b3
refactor: replace in-memory queue flow with durable indexeddb-backed …
defendicon Apr 18, 2026
6b2a236
feat: add idempotency guards for offline invoice and payment sync
defendicon Apr 18, 2026
5f88de3
refactor: isolate resource failures and improve offline sync coordina…
defendicon Apr 18, 2026
0c4cd56
fix: backend idempotency layer migration-safe
defendicon Apr 18, 2026
afc898e
refactor: clarify storage source of truth across memory localstorage …
defendicon Apr 18, 2026
19ce171
refactor: add capability-based bootstrap readiness and feature gating
defendicon Apr 18, 2026
90ec981
feat: add adaptive timer-based background offline synchronization
defendicon Apr 18, 2026
b293515
test: add targated offline regression coverage
defendicon Apr 18, 2026
64efe5d
fix: refresh bootstrap sell readiness after sync and hydrate payment …
defendicon Apr 18, 2026
063f9cc
fix: run warm sync resources during operator refresh and rebuild
defendicon Apr 18, 2026
8d55ac0
fix: defer bootstrap warnings until startup loading settles
defendicon Apr 18, 2026
80b27a6
refactor: unify loading architecture across bootstrap, route, and sec…
defendicon Apr 18, 2026
4961bfa
refactor: add loading scope helpers and document loading architecture
defendicon Apr 18, 2026
3cd97ba
feat: improve route loading messages and add router recovery test cov…
defendicon Apr 18, 2026
c285f3f
fix: bootstrap recovery patch
defendicon Apr 18, 2026
5044a6f
fix: removed the import-time auto-init from writequeue
defendicon Apr 18, 2026
d9a97f5
fix: Uncaught SyntaxError Cannot use import statement outside a module
defendicon Apr 18, 2026
c9a7344
fix: race condition in writequeue
defendicon Apr 18, 2026
521a21f
Merge pull request #2978 from defendicon/enhance-offline-capability
defendicon Apr 18, 2026
d5be87a
fix: multiple major bugs
defendicon Apr 19, 2026
788a062
Merge pull request #2980 from defendicon/enhance-offline-capability
defendicon Apr 19, 2026
cde4975
fix: harden offline queue, payment replay, loading scopes, and PO loo…
defendicon Apr 19, 2026
ab7edd4
Merge pull request #2981 from defendicon/enhance-offline-capability
defendicon Apr 19, 2026
3174061
Merge pull request #2979 from defendicon/stage-develop
defendicon Apr 19, 2026
0996c97
Release: v15.28.0 — 2026-04-19
semantic-release-bot Apr 19, 2026
194cce5
fix: redundant store-wide refetch and kept the visible-item refresh p…
defendicon Apr 19, 2026
73c923f
fix: Add startup build cache reconciliation for offline POS state
defendicon Apr 20, 2026
bfda7a0
fix: Remove duplicate build reconciliation from DefaultLayout
defendicon Apr 20, 2026
e0ae882
Merge pull request #2984 from defendicon/fix-stale-build-version-issue
defendicon Apr 20, 2026
f8a85cc
fix: Skip gift card liability validation when no redemption is applied
defendicon Apr 20, 2026
3674c45
Merge pull request #2986 from defendicon/fix-stale-build-version-issue
defendicon Apr 20, 2026
fe34153
fix: Add schema_signature to MEMORY_DEFAULTS and minor bugs
defendicon Apr 20, 2026
ac350e7
Merge pull request #2987 from defendicon/fix-stale-build-version-issue
defendicon Apr 20, 2026
10bcd6b
Merge pull request #2985 from defendicon/stage-develop
defendicon Apr 20, 2026
33d55c9
Release: v15.28.1 — 2026-04-20
semantic-release-bot Apr 20, 2026
9367149
refactor: separate item and customer loading coordination
defendicon Apr 23, 2026
a3b6f04
fix: serialize item sync rows with frappe as_json
defendicon Apr 23, 2026
e69ddda
refactor: Improve POS item bootstrap loading and background sync sear…
defendicon Apr 23, 2026
f258d11
Fix: POS background item sync progress to start from zero
defendicon Apr 23, 2026
eda6611
chore: cleanup and strengthen local typing
defendicon Apr 24, 2026
c77e8dd
refactor: Deduplicate offline sync helpers and add POS DTO reference …
defendicon Apr 24, 2026
fccd5d8
refactor: deduplicate offline sync harness setup
defendicon Apr 25, 2026
648de84
perf: avoid repeated completed POS item
defendicon Apr 25, 2026
9da7334
refactor: customer profile loading helper
defendicon Apr 25, 2026
12579c6
refactor: reduce duplicate customer load trigger in POS shell
defendicon Apr 25, 2026
44d57cf
refactor: dedupe default layout customer startup load
defendicon Apr 25, 2026
fff2a05
refactor: extract item selector initialization composable
defendicon Apr 25, 2026
8aaef17
refactor: extract item selector event bus wiring
defendicon Apr 25, 2026
340a799
refactor: extract item selector type-to-search lifecycle
defendicon Apr 25, 2026
35018ea
refactor: extract item selector layout lifecycle
defendicon Apr 25, 2026
a18f34b
refactor: extract item selector search input orchestration
defendicon Apr 25, 2026
f86a79a
refactor: extract item selector scanner bridge and add workspace-awar…
defendicon Apr 25, 2026
25fe1a1
refactor: remove confirmed unused frontend code
defendicon Apr 25, 2026
54885db
refactor: extract item selector price list and quantity helpers
defendicon Apr 25, 2026
46ad7ef
refactor: extract item selector panel sizing
defendicon Apr 25, 2026
a53b634
refactor: extract item selector and store helpers
defendicon Apr 25, 2026
f7cfc14
refactor: extract item scan and detail helpers
defendicon Apr 25, 2026
791adb3
refactor: extract item input and availability helpers
defendicon Apr 25, 2026
6b1ebe9
fix: commercial flow source serialization crash
defendicon Apr 27, 2026
3f3a5a3
refactor: remove unused offline compatibility modules
defendicon Apr 27, 2026
959c321
refactor: reduce internal utility export surface
defendicon Apr 27, 2026
0db0cf9
fix: show customer when loading quotations in POS
defendicon Apr 27, 2026
0619a90
fix: clarify item and additional discounts in payments
defendicon Apr 27, 2026
dab3d89
fix: explain discount breakdown in payment totals
defendicon Apr 27, 2026
63f51f6
fix: respect standard barcode uom for scanned item pricing
defendicon Apr 27, 2026
c862c86
fix: stock confidence now checks after items background sync complete
defendicon Apr 27, 2026
7a014c3
fix: data-refresh after background item sync complete
defendicon Apr 27, 2026
c4f9722
fix: Show synced item count during background item sync
defendicon Apr 27, 2026
044f3f9
fix: return invoice payment sign normalization on submit
defendicon Apr 27, 2026
416d997
fix: return payment sign normalization and discount precision
defendicon Apr 27, 2026
8164198
fix: prorated return discount field display
defendicon Apr 27, 2026
af8116e
fix: prorated return discount sync before payment
defendicon Apr 27, 2026
b10797a
fix: Preserve percentage discount source of truth
defendicon Apr 27, 2026
e051ddf
fix: close shift state reset and opening lookup
defendicon Apr 27, 2026
49270ee
fix: Prevent zero totals when selecting batches without price
defendicon Apr 27, 2026
9b98556
Merge pull request #2997 from defendicon/refactor-customer-and-item-l…
defendicon Apr 27, 2026
33da256
Merge branch 'refactor-customer-and-item-loading-modules' of https://…
defendicon Apr 28, 2026
0f1be66
fix: Address POS review feedback for drafts, customers, discounts, an…
defendicon Apr 28, 2026
7a38954
Merge pull request #2999 from defendicon/refactor-customer-and-item-l…
defendicon Apr 28, 2026
3cccb1b
fix: review regressions in POS document and sync flows
defendicon Apr 28, 2026
73c5dde
Merge pull request #3000 from defendicon/refactor-customer-and-item-l…
defendicon Apr 28, 2026
bbb6a3a
Merge pull request #2998 from defendicon/stage-develop
defendicon Apr 28, 2026
c7d5ff7
Release: v15.28.2 — 2026-04-28
semantic-release-bot Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 21 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Root editor config file
root = true

# Common settings
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8

# python, js indentation settings
[{*.py,*.js,*.vue,*.css,*.scss,*.html}]
indent_style = tab
indent_size = 4
max_line_length = 110

# JSON files - mostly doctype schema files
[{*.json}]
insert_final_newline = false
indent_style = space
indent_size = 1
11 changes: 11 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module.exports = {
root: true,
env: { browser: true, es2020: true, node: true },
extends: [
'eslint:recommended',
'plugin:vue/vue3-essential',
'plugin:vuetify/base'
],
plugins: ['vue', 'vuetify'],
parserOptions: { ecmaVersion: 2020, sourceType: 'module' },
};
44 changes: 44 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: "🐞 Bug report"
description: Report a reproducible problem
labels: [bug, needs-triage]
body:
- type: input
id: env
attributes:
label: Environment
description: OS, Node, Browser versions
placeholder: "Ubuntu 22.04, Node 20.x, Chrome 139"
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Numbered steps + minimal sample
placeholder: "1) ... 2) ... 3) ..."
render: bash
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual behavior / logs
description: Include screenshots and **full** error text
render: text
validations:
required: true
- type: checkboxes
id: checks
attributes:
label: Pre-submit checks
options:
- label: I searched existing issues
required: true
- label: I can reproduce on the latest release
required: true
47 changes: 0 additions & 47 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Questions / Support
url: https://github.com/defendicon/POS-Awesome-V15/discussions
about: Ask and discuss here
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: "🌟 Feature request"
description: Propose an enhancement
labels: [feature, needs-triage]
body:
- type: textarea
id: problem
attributes:
label: Problem to solve
description: What pain point does this address?
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed solution
description: Describe UI/UX, API, config, or examples
validations:
required: true
- type: input
id: scope
attributes:
label: Out of scope (if any)
placeholder: "Not changing X, Y"
- type: checkboxes
id: impact
attributes:
label: Impact
options:
- label: Backward compatible
- label: Breaking change (requires major version)
30 changes: 0 additions & 30 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

107 changes: 107 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: CI

on:
push:
branches: ['**']
pull_request:
branches: ['**']

jobs:
build:
runs-on: ubuntu-22.04

services:
mariadb:
image: mariadb:10.6
ports:
- 3306:3306
env:
MYSQL_USER: user
MYSQL_PASSWORD: frappe
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: frappe
options: >-
--health-cmd="mysqladmin ping --silent"
--health-interval=10s
--health-timeout=5s
--health-retries=5
-v ${{ github.workspace }}/frappe.cnf:/etc/mysql/conf.d/frappe.cnf

steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Stop Default MySQL
run: sudo service mysql stop

- name: Install System Dependencies
run: |
sudo apt-get update
sudo apt-get install -y python3-dev python3-pip python3-setuptools python3-venv \
libmysqlclient-dev redis-server curl software-properties-common git

curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs yarn

- name: Cache pip dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Frontend Type Check and Offline Tests
run: |
cd frontend
yarn install --frozen-lockfile
yarn type-check
yarn vitest run tests/cashMovement.spec.ts tests/offlineCashMovements.spec.ts tests/loaderPathNormalization.spec.ts tests/offlineKeyMapParity.spec.ts

- name: Install Frappe Bench CLI
run: |
pip3 install --upgrade pip
pip3 install frappe-bench
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Initialize Frappe Bench (v15)
run: |
bench init --frappe-branch version-15 --python python3 frappe-bench

- name: Setup Site and Install App (Dynamic)
run: |
cd frappe-bench

# Detect the branch name that triggered the workflow
# Use GITHUB_HEAD_REF for pull request events, otherwise fall back to GITHUB_REF
BRANCH_NAME="${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}"

# Find the app path dynamically (search for hooks.py)
APP_PATH=$(find ../ -maxdepth 2 -type f -name "hooks.py" | head -n 1 | xargs dirname)

# Extract the app folder name
APP_NAME=$(basename "$APP_PATH")

echo "Detected App Path: $APP_PATH"
echo "Detected App Name: $APP_NAME"
echo "Using Branch: $BRANCH_NAME"

# Create site
bench new-site example.com \
--mariadb-root-password frappe \
--admin-password frappe \
--no-mariadb-socket

# Install ERPNext
bench get-app --branch version-15 https://github.com/frappe/erpnext
bench --site example.com install-app erpnext

# Install local app using current branch
bench get-app --branch "$BRANCH_NAME" "https://github.com/${GITHUB_REPOSITORY}.git"
bench --site example.com install-app "$APP_NAME"

# Build frontend assets
bench build

# Show installed apps
bench --site example.com list-apps
69 changes: 69 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Docs

permissions:
contents: read

on:
push:
branches: ["**"]
pull_request:
branches: ["**"]

jobs:
docs-check:
name: TypeDoc check
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "yarn"
cache-dependency-path: frontend/yarn.lock

- name: Install frontend dependencies
working-directory: frontend
run: yarn install --frozen-lockfile

- name: Validate TypeDoc entry points
working-directory: frontend
# docs:check runs TypeDoc without writing output so CI stays clean.
# Exit code is non-zero if any entry point has TypeDoc errors.
run: yarn docs:check

docs-generate:
name: Generate & upload API reference
runs-on: ubuntu-22.04
# Only run on pushes to develop or main so we don't create an artifact on every PR branch.
if: github.event_name == 'push' && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main')
needs: docs-check

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "yarn"
cache-dependency-path: frontend/yarn.lock

- name: Install frontend dependencies
working-directory: frontend
run: yarn install --frozen-lockfile

- name: Generate API docs
working-directory: frontend
run: yarn docs:generate

- name: Upload API reference artifact
uses: actions/upload-artifact@v4
with:
name: api-docs
path: frontend/docs/api/
retention-days: 30
Loading