added record json copy option

This commit is contained in:
Gani Georgiev
2024-11-20 16:56:07 +02:00
parent 34d7ac0808
commit 779f6c1a74
33 changed files with 248 additions and 230 deletions
@@ -78,12 +78,12 @@
// fetch a paginated records list
const resultList = await pb.collection('${collection?.name}').getList(1, 50, {
filter: 'created >= "2022-01-01 00:00:00" && someField1 != someField2',
filter: 'someField1 != someField2',
});
// you can also fetch all records at once via getFullList
const records = await pb.collection('${collection?.name}').getFullList({
sort: '-created',
sort: '-someField',
});
// or fetch only the first record that matches the specified filter
@@ -102,12 +102,12 @@
final resultList = await pb.collection('${collection?.name}').getList(
page: 1,
perPage: 50,
filter: 'created >= "2022-01-01 00:00:00" && someField1 != someField2',
filter: 'someField1 != someField2',
);
// you can also fetch all records at once via getFullList
final records = await pb.collection('${collection?.name}').getFullList(
sort: '-created',
sort: '-someField',
);
// or fetch only the first record that matches the specified filter
@@ -173,6 +173,7 @@
<p>
<strong>Supported record sort fields:</strong> <br />
<code>@random</code>,
<code>@rowid</code>,
{#each fieldNames as name, i}
<code>{name}</code>{i < fieldNames.length - 1 ? ", " : ""}
{/each}
@@ -26,7 +26,7 @@
import ImpersonatePopup from "@/components/records/ImpersonatePopup.svelte";
import { confirm } from "@/stores/confirmation";
import { setErrors } from "@/stores/errors";
import { addErrorToast, addSuccessToast } from "@/stores/toasts";
import { addErrorToast, addInfoToast, addSuccessToast } from "@/stores/toasts";
const dispatch = createEventDispatcher();
const formId = "record_" + CommonHelper.randomString(5);
@@ -484,6 +484,11 @@
save(false);
}
}
function copyJSON() {
CommonHelper.copyToClipboard(JSON.stringify(original, null, 2));
addInfoToast("The record JSON was copied to your clipboard!", 3000);
}
</script>
<OverlayPanel
@@ -566,6 +571,15 @@
<span class="txt">Impersonate</span>
</button>
{/if}
<button
type="button"
class="dropdown-item closable"
role="menuitem"
on:click={() => copyJSON()}
>
<i class="ri-braces-line" aria-hidden="true" />
<span class="txt">Copy raw JSON</span>
</button>
<button
type="button"
class="dropdown-item closable"
@@ -575,6 +589,7 @@
<i class="ri-file-copy-line" aria-hidden="true" />
<span class="txt">Duplicate</span>
</button>
<hr />
<button
type="button"
class="dropdown-item txt-danger closable"