Skip to content

Commit a300469

Browse files
Added numeric field to builder
2 parents b21263e + f038e1e commit a300469

File tree

9 files changed

+66
-10
lines changed

9 files changed

+66
-10
lines changed

.github/workflows/changelog.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: "Update Changelog"
2+
3+
on:
4+
workflow_dispatch:
5+
release:
6+
types: [ published, edited, deleted ]
7+
8+
jobs:
9+
generate:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v3
15+
with:
16+
ref: ${{ github.event.release.target_commitish }}
17+
token: ${{ secrets.JUSTBETTER_ACTIONS_ACCOUNT_PAT }}
18+
19+
- name: Generate changelog
20+
uses: justbetter/generate-changelogs-action@main
21+
env:
22+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
with:
24+
repository: ${{ github.repository }}
25+
sha: ${{ github.head_ref || github.ref_name }}
26+
27+
- name: Commit CHANGELOG
28+
uses: stefanzweifel/git-auto-commit-action@v4
29+
with:
30+
branch: ${{ github.event.release.target_commitish }}
31+
commit_message: Update CHANGELOG
32+
file_pattern: CHANGELOG.md

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ composer require justbetter/statamic-structured-data
3232
Create templates in your Statamic control panel that define your structured data schemas. Each template can contain multiple schema definitions with:
3333

3434
- Special properties (@context, @type, @id)
35-
- Custom fields with various data types (strings, arrays, objects)
35+
- Custom fields with various data types (strings, numeric, arrays, objects)
3636
- Dynamic values using Antlers templating syntax
3737

3838
### 2. Assigning Templates to Entries

resources/dist/build/assets/statamic-structured-data-0787df7f.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

resources/dist/build/assets/statamic-structured-data-6608a688.js

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/dist/build/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"css": [
1313
"assets/statamic-structured-data-05ad0e35.css"
1414
],
15-
"file": "assets/statamic-structured-data-0787df7f.js",
15+
"file": "assets/statamic-structured-data-6608a688.js",
1616
"isEntry": true,
1717
"src": "resources/js/statamic-structured-data.js"
1818
}

resources/js/components/StructuredDataObject.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@
5151
<input type="text" v-model="field.value" class="input-text w-full" />
5252
</div>
5353

54+
<div v-else-if="field.type === 'numeric'">
55+
<input type="number" v-model="field.value" class="input-text w-full" />
56+
</div>
57+
5458
<div v-else-if="field.type === 'array'" class="space-y-2">
5559
<div v-for="(value, valueIndex) in field.values" :key="valueIndex" class="flex gap-2">
5660
<input type="text" v-model="field.values[valueIndex]" class="input-text flex-1" />
@@ -119,6 +123,7 @@ export default {
119123
selectOptions() {
120124
return [
121125
{ value: 'string', label: 'String' },
126+
{ value: 'numeric', label: 'Numeric' },
122127
{ value: 'array', label: 'Array' },
123128
{ value: 'object', label: 'Object' }
124129
];

resources/js/components/fieldtypes/StructuredDataBuilder.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@
8888
:placeholder="'Enter value'"
8989
/>
9090

91+
<input
92+
v-if="field.type === 'numeric'"
93+
type="number"
94+
v-model="field.value"
95+
class="input-text w-full"
96+
:placeholder="'Enter value'"
97+
/>
98+
9199
<div v-else-if="field.type === 'array'" class="mt-2">
92100
<div class="flex flex-col gap-2 space-y-2">
93101
<div v-for="(value, valueIndex) in field.values" :key="valueIndex" class="flex items-center gap-2">
@@ -242,6 +250,7 @@ export default {
242250
selectOptions() {
243251
return [
244252
{ value: 'string', label: 'String' },
253+
{ value: 'numeric', label: 'Numeric' },
245254
{ value: 'array', label: 'Array' },
246255
{ value: 'object', label: 'Object' },
247256
{ value: 'object_array', label: 'Object Array' },

resources/js/components/fieldtypes/StructuredDataObjectBuilder.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@
3939
class="input-text w-full"
4040
:placeholder="'Enter value'"
4141
/>
42+
<input
43+
v-if="field.type === 'numeric'"
44+
type="number"
45+
v-model="field.value"
46+
class="input-text w-full"
47+
:placeholder="'Enter value'"
48+
/>
4249
<div v-else-if="field.type === 'array'" class="mt-2">
4350
<div class="flex flex-col gap-2 space-y-2">
4451
<div v-for="(value, valueIndex) in field.values" :key="valueIndex" class="flex items-center gap-2">
@@ -151,6 +158,7 @@ export default {
151158
selectOptions() {
152159
return [
153160
{ value: 'string', label: 'String' },
161+
{ value: 'numeric', label: 'Numeric' },
154162
{ value: 'array', label: 'Array' },
155163
{ value: 'object', label: 'Object' }
156164
];

src/Services/StructuredDataService.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ public function transformSchema(array $schema): array
9191
$result[$key] = $field['values'];
9292
} elseif ($field['type'] === 'object' && isset($field['value'])) {
9393
$result[$key] = $this->transformSchema($field['value']);
94+
} elseif ($field['type'] === 'numeric' && isset($field['value'])) {
95+
$result[$key] = (float) $field['value'];
9496
} else {
9597
$result[$key] = $field['value'] ?? null;
9698
}

0 commit comments

Comments
 (0)