initial: bootstrap from BukidBountyApp base
This commit is contained in:
63
.claude/plans/3b3af2f37a16a11851d950fa33df090e-complete.md
Normal file
63
.claude/plans/3b3af2f37a16a11851d950fa33df090e-complete.md
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
task: Add "Open POS" button in PosAccessKeys.vue that opens the POS main page in a new tab
|
||||
cycles: 5
|
||||
context: true
|
||||
private: false
|
||||
started: 2026-05-16T08:38:57Z
|
||||
finished: 2026-05-16T08:39:10Z
|
||||
---
|
||||
|
||||
## files
|
||||
- resources/js/Pages/PosAccessKeys.vue [lines 275-289] — contains the action button group (Copy Key, Copy URL, QR Code, Share) per access key row
|
||||
|
||||
## steps
|
||||
1. In `PosAccessKeys.vue` at the button group (line ~283, after the QR code button and before the Share button), add a new `<button>` that calls `openPosInNewTab(key.access_key)`.
|
||||
2. Add the `openPosInNewTab(accessKey)` method to the `<script setup>` block (after `shareKey`, around line 161). It should call `window.open(getPosUrl(accessKey), '_blank')`.
|
||||
|
||||
## context
|
||||
|
||||
Existing button group in template (lines 275–289):
|
||||
```html
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<code class="bg-light px-2 py-1 rounded small">{{ key.access_key }}</code>
|
||||
<button @click="copyToClipboard(key.access_key)" class="btn btn-sm btn-link p-0 text-muted" title="Copy Key">
|
||||
<i class="far fa-copy"></i>
|
||||
</button>
|
||||
<button @click="copyToClipboard(getPosUrl(key.access_key))" class="btn btn-sm btn-link p-0 text-muted" title="Copy POS URL">
|
||||
<i class="fas fa-link"></i>
|
||||
</button>
|
||||
<button @click="showQrCode(key.access_key)" class="btn btn-sm btn-link p-0 text-muted" title="View QR Code">
|
||||
<i class="fas fa-qrcode"></i>
|
||||
</button>
|
||||
<button v-if="canShare" @click="shareKey(key.access_key, key.name)" class="btn btn-sm btn-link p-0 text-muted" title="Share via Protocol">
|
||||
<i class="fas fa-share-alt"></i>
|
||||
</button>
|
||||
</div>
|
||||
```
|
||||
|
||||
`getPosUrl` (line 138–141):
|
||||
```js
|
||||
const getPosUrl = (accessKey) => {
|
||||
const baseUrl = window.location.origin;
|
||||
return `${baseUrl}/pos?key=${accessKey}`;
|
||||
};
|
||||
```
|
||||
|
||||
New method to add after `shareKey` (line ~161):
|
||||
```js
|
||||
const openPosInNewTab = (accessKey) => {
|
||||
window.open(getPosUrl(accessKey), '_blank');
|
||||
};
|
||||
```
|
||||
|
||||
New button to insert after the QR code button, before the Share button:
|
||||
```html
|
||||
<button @click="openPosInNewTab(key.access_key)" class="btn btn-sm btn-link p-0 text-muted" title="Open POS Terminal">
|
||||
<i class="fas fa-external-link-alt"></i>
|
||||
</button>
|
||||
```
|
||||
|
||||
## notes
|
||||
- dictionary: ai-docs/dictionary.md
|
||||
- linters: none detected
|
||||
- constraints: No backend changes needed — URL is already constructed by existing `getPosUrl` helper. Button must match the existing style (btn-sm btn-link p-0 text-muted). No new permissions required — this is a client-side navigation action.
|
||||
Reference in New Issue
Block a user