Skip to content

Commit f8cf676

Browse files
Updated: status in content type
1 parent 5213324 commit f8cf676

File tree

8 files changed

+32
-42
lines changed

8 files changed

+32
-42
lines changed

Http/Controllers/Backend/ContentTypesController.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ public function getAssets(Request $request)
4848
$data['empty_item'][$column] = null;
4949
}
5050

51+
$data['empty_item']['content_statuses'] = [
52+
'draft',
53+
'published',
54+
'protected',
55+
];
56+
5157
$data['field_types'] = FieldType::select('id', 'name', 'slug', 'meta')
5258
->get();
5359

Models/ContentType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public function getContentStatusesAttribute($value)
100100
{
101101
return json_decode($value);
102102
}
103-
return null;
103+
return [];
104104
}
105105
//-------------------------------------------------
106106
public function setMetaAttribute($value)

Models/ContentTypeBase.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public function getContentStatusesAttribute($value)
9999
{
100100
return json_decode($value);
101101
}
102-
return null;
102+
return [];
103103
}
104104
//-------------------------------------------------
105105
public function setMetaAttribute($value)

Vue/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"quill": "^1.3.7",
1919
"vue": "^3.2.37",
2020
"vue-router": "^4.1.2",
21+
"vue3-treeselect": "^0.1.10",
2122
"vuedraggable": "^4.1.0"
2223
},
2324
"devDependencies": {

Vue/pages/contents/components/ContentFields.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const props = defineProps({
6565
<div class="w-full flex flex-column gap-1">
6666
<label class="font-medium line-height-1 text-xs">{{ field.name }}</label>
6767
<div v-if="!field.content || typeof field.content === 'string'
68-
|| typeof field.content === 'number' || typeof field.content === 'object'
68+
|| typeof field.content === 'number'
6969
|| store.assets.non_repeatable_fields.includes(field.type.slug)"
7070
class="flex justify-content-between align-items-start gap-3 w-full">
7171
<div class="flex-grow-1">

Vue/pages/contents/components/Table.vue

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,7 @@ const useVaah = vaah();
7777
header="Status">
7878

7979
<template #body="prop">
80-
<InputSwitch v-model.bool="prop.data.status"
81-
data-testid="contents-table-status"
82-
v-bind:false-value="0" v-bind:true-value="1"
83-
class="p-inputswitch-sm"
84-
@input="store.toggleIsActive(prop.data)">
85-
</InputSwitch>
80+
{{useVaah.toLabel(prop.data.status)}}
8681
</template>
8782

8883
</Column>

Vue/pages/contenttypes/Form.vue

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ const route = useRoute();
1212
const useVaah = vaah();
1313
1414
onMounted(async () => {
15+
store.enable_status_editing_indexes = [];
1516
if(route.params && route.params.id)
1617
{
1718
await store.getItem(route.params.id);
1819
}
1920
2021
await store.watchItem();
21-
store.getNewStatus();
2222
2323
await store.getFormMenu();
2424
});
@@ -188,7 +188,7 @@ const toggleFormMenu = (event) => {
188188
v-model="store.item.is_commentable"/>
189189
</VhField>
190190
<draggable
191-
v-model="store.new_status"
191+
v-model="store.item.content_statuses"
192192
class="dragArea list-group"
193193
:group="{ name: 'content-types', pull: 'clone', put: false }"
194194
@start="drag=true"
@@ -198,20 +198,18 @@ const toggleFormMenu = (event) => {
198198
<div class="p-inputgroup mb-2">
199199
<Button icon="pi pi-bars" class="p-button-sm p-button-secondary"/>
200200
<InputText class="w-full p-inputtext-sm"
201-
v-if="index == store.edit_status_index && !store.disable_status_editing"
202201
name="contenttypes-statuses_name"
203202
data-testid="contenttypes-statuses_name"
204-
v-model="store.new_status[index]"/>
205-
<InputText class="w-full p-inputtext-sm"
206-
v-else
207-
name="contenttypes-statuses_name"
208-
data-testid="contenttypes-statuses_name"
209-
:disabled="true"
210-
v-model="store.new_status[index]"/>
203+
:disabled="!store.enable_status_editing_indexes.includes(index)"
204+
v-model="store.item.content_statuses[index]"/>
211205
<Button icon="pi pi-pencil"
212206
data-testid="contenttypes-statuses_name_edit"
213207
@click="store.toggleEditStatus(index)"
214208
class="p-button-sm p-button-secondary"/>
209+
<Button icon="pi pi-times"
210+
data-testid="contenttypes-statuses_name_edit"
211+
@click="store.removeStatus(index)"
212+
class="p-button-sm p-button-secondary"/>
215213
</div>
216214
</template>
217215
</draggable>
@@ -222,7 +220,7 @@ const toggleFormMenu = (event) => {
222220
name="contenttypes-new_status"
223221
data-testid="contenttypes-new_status"
224222
v-model="store.new_status_item"
225-
@blur="store.addStatus"/>
223+
v-on:keyup.enter="store.addStatus"/>
226224
</VhField>
227225

228226
</div>

Vue/stores/store-contenttypes.js

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export const useContentTypeStore = defineStore({
3939
list: null,
4040
item: null,
4141
fillable:null,
42+
enable_status_editing_indexes:[],
4243
empty_query:empty_states.query,
4344
empty_action:empty_states.action,
4445
query: vaah().clone(empty_states.query),
@@ -64,11 +65,6 @@ export const useContentTypeStore = defineStore({
6465
list_bulk_menu: [],
6566
item_menu_list: [],
6667
item_menu_state: null,
67-
new_status: [
68-
'draft',
69-
'published',
70-
'protected',
71-
],
7268
new_status_item: null,
7369
edit_status_index: null,
7470
disable_status_editing: true,
@@ -437,7 +433,6 @@ export const useContentTypeStore = defineStore({
437433
case 'create-and-new':
438434
case 'create-and-close':
439435
case 'create-and-clone':
440-
this.item.content_statuses = JSON.stringify(this.new_status);
441436
options.method = 'POST';
442437
options.params = item;
443438
break;
@@ -449,7 +444,6 @@ export const useContentTypeStore = defineStore({
449444
case 'save':
450445
case 'save-and-close':
451446
case 'save-and-clone':
452-
this.item.content_statuses = JSON.stringify(this.new_status);
453447
options.method = 'PUT';
454448
options.params = item;
455449
ajax_url += '/'+item.id
@@ -905,28 +899,24 @@ export const useContentTypeStore = defineStore({
905899

906900
},
907901
//---------------------------------------------------------------------
908-
getNewStatus(){
909-
if(this.item.id){
910-
this.new_status = JSON.parse(this.item.content_statuses);
911-
}
912-
},
913-
//---------------------------------------------------------------------
914902
addStatus(){
915-
this.item.content_statuses = null;
916-
this.new_status.push(this.new_status_item);
903+
this.item.content_statuses.push(this.new_status_item);
917904
this.new_status_item = null;
918905
},
919906
//---------------------------------------------------------------------
907+
removeStatus(index){
908+
this.item.content_statuses.splice(index, 1);
909+
},
910+
//---------------------------------------------------------------------
920911
toggleEditStatus(status_index)
921912
{
922-
this.edit_status_index = status_index;
923-
if(this.disable_status_editing)
924-
{
925-
this.disable_status_editing = false;
926-
} else
927-
{
928-
this.disable_status_editing = true;
913+
if(this.enable_status_editing_indexes.includes(status_index)){
914+
const index = this.enable_status_editing_indexes.indexOf(status_index);
915+
this.enable_status_editing_indexes.splice(index, 1);
916+
}else{
917+
this.enable_status_editing_indexes.push(status_index);
929918
}
919+
930920
},
931921
//---------------------------------------------------------------------
932922
async toContentStructure(item) {

0 commit comments

Comments
 (0)