mirror of
https://github.com/typemill/typemill.git
synced 2025-07-17 12:31:13 +02:00
Version 1.4.8: Fix metafields userroles and fieldset style
This commit is contained in:
@@ -138,7 +138,15 @@ class MetaApiController extends ContentController
|
||||
{
|
||||
$userroles[$userrole] = $userrole;
|
||||
}
|
||||
$metadefinitions[$tabname]['fields'][$fieldname]['options'] = $userroles;
|
||||
|
||||
if(isset($fielddefinitions['fieldset']))
|
||||
{
|
||||
$metadefinitions[$tabname]['fields'][$fielddefinitions['fieldset']]['fields'][$fieldname]['options'] = $userroles;
|
||||
}
|
||||
else
|
||||
{
|
||||
$metadefinitions[$tabname]['fields'][$fieldname]['options'] = $userroles;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -241,7 +249,6 @@ class MetaApiController extends ContentController
|
||||
$fieldDefinition['options'] = $userroles;
|
||||
}
|
||||
|
||||
|
||||
# validate user input for this field
|
||||
$result = $validate->objectField($fieldName, $fieldValue, $objectName, $fieldDefinition);
|
||||
|
||||
@@ -382,16 +389,21 @@ class MetaApiController extends ContentController
|
||||
}
|
||||
|
||||
# we have to flatten field definitions for tabs if there are fieldsets in it
|
||||
public function flattenTabFields($tabfields, $flattab)
|
||||
public function flattenTabFields($tabfields, $flattab, $fieldset = null)
|
||||
{
|
||||
foreach($tabfields as $name => $field)
|
||||
{
|
||||
if($field['type'] == 'fieldset')
|
||||
{
|
||||
$flattab = $this->flattenTabFields($field['fields'], $flattab);
|
||||
$flattab = $this->flattenTabFields($field['fields'], $flattab, $name);
|
||||
}
|
||||
else
|
||||
{
|
||||
# add the name of the fieldset so we know to which fieldset it belongs for references
|
||||
if($fieldset)
|
||||
{
|
||||
$field['fieldset'] = $fieldset;
|
||||
}
|
||||
$flattab[$name] = $field;
|
||||
}
|
||||
}
|
||||
|
@@ -987,6 +987,14 @@ section.tab{
|
||||
/* z-index: -1; */
|
||||
padding: 40px;
|
||||
}
|
||||
/* fix medium fields next together due to fieldset-logic */
|
||||
.tab > form > div{
|
||||
display: inline;
|
||||
}
|
||||
.fs-formbuilder > div{
|
||||
padding: 18px 20px;
|
||||
}
|
||||
|
||||
/********************
|
||||
* Forms *
|
||||
********************/
|
||||
|
@@ -11,42 +11,13 @@ Vue.filter('translate', function (value) {
|
||||
}
|
||||
})
|
||||
|
||||
Vue.component('tab-metaoriginal', {
|
||||
props: ['saved', 'errors', 'formdata', 'schema', 'userroles'],
|
||||
template: '<section><form>original' +
|
||||
'<component v-for="(field, index) in schema.fields"' +
|
||||
':key="index"' +
|
||||
':is="selectComponent(field)"' +
|
||||
':errors="errors"' +
|
||||
':name="index"' +
|
||||
':userroles="userroles"' +
|
||||
'v-model="formdata[index]"' +
|
||||
'v-bind="field">' +
|
||||
'</component>' +
|
||||
'<div v-if="saved" class="metaLarge"><div class="metaSuccess">{{ \'Saved successfully\'|translate }}</div></div>' +
|
||||
'<div v-if="errors" class="metaLarge"><div class="metaErrors">{{ \'Please correct the errors above\'|translate }}</div></div>' +
|
||||
'<div class="large"><input type="submit" @click.prevent="saveInput" :value="\'save\'|translate"></input></div>' +
|
||||
'</form></section>',
|
||||
methods: {
|
||||
selectComponent: function(field)
|
||||
{
|
||||
return 'component-'+field.type;
|
||||
},
|
||||
saveInput: function()
|
||||
{
|
||||
this.$emit('saveform');
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
Vue.component('tab-meta', {
|
||||
props: ['saved', 'errors', 'formdata', 'schema', 'userroles'],
|
||||
template: '<section><form>' +
|
||||
'<div v-for="(field, index) in schema.fields" :class="getFieldClass(field)">' +
|
||||
'<fieldset class="fs-formbuilder" v-if="field.type == \'fieldset\'"><legend>{{field.legend}}</legend>' +
|
||||
'<div v-for="(field, index) in schema.fields">' +
|
||||
'<fieldset v-if="field.type == \'fieldset\'" class="fs-formbuilder"><legend>{{field.legend}}</legend>' +
|
||||
'<component v-for="(subfield, index) in field.fields "' +
|
||||
' :key="index"' +
|
||||
' :class="getFieldClass(subfield)"' +
|
||||
' :is="selectComponent(subfield)"' +
|
||||
' :errors="errors"' +
|
||||
' :name="index"' +
|
||||
@@ -78,23 +49,6 @@ Vue.component('tab-meta', {
|
||||
{
|
||||
this.$emit('saveform');
|
||||
},
|
||||
getFieldClass: function(field)
|
||||
{
|
||||
if(field.type == 'fieldset')
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if(field.class === undefined )
|
||||
{
|
||||
return 'large';
|
||||
}
|
||||
else
|
||||
{
|
||||
var fieldclass = field.class;
|
||||
delete field.class;
|
||||
return fieldclass;
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
|
Reference in New Issue
Block a user