[ {{ filterName }} ]
@@ -583,4 +645,3 @@ export const CoreFilterCmpt = {
`
};
-
diff --git a/public/js/plugin/FhcApi.js b/public/js/plugin/FhcApi.js
index bacd27d43..4bbf4d4dc 100644
--- a/public/js/plugin/FhcApi.js
+++ b/public/js/plugin/FhcApi.js
@@ -1,5 +1,5 @@
import FhcAlert from './FhcAlert.js';
-import FhcApiFactory from '../apps/api/fhcapifactory.js';
+import FhcApiFactory from '../api/fhcapifactory.js';
export default {
@@ -58,7 +58,7 @@ export default {
if (config.data instanceof FormData)
return config;
-
+
if (!Object.values(config.data).every(item => {
if (item instanceof FileList)
return false;
@@ -96,18 +96,18 @@ export default {
|| response.config?.errorHandling === false
|| response.config?.errorHandling == 'fail')
return _clean_return_value(response);
-
+
// NOTE(chris): loop through errors
if (response.data.errors)
response.data.errors = response.data.errors.filter(
- err => (response.config[err.type + 'ErrorHandler'] || app.config.globalProperties.$fhcApi._defaultErrorHandlers[err.type])(err, response.config.form)
+ err => (response.config[err.type + 'ErrorHandler'] || app.config.globalProperties.$fhcApi._defaultErrorHandlers[err.type])(err, response.config)
);
return _clean_return_value(response);
}, error => {
if (error.code == 'ERR_CANCELED')
- return new Promise(() => {});
-
+ return Promise.reject({...{handled: true}, ...error});
+
if (error.config?.errorHandling == 'off'
|| error.config?.errorHandling === false
|| error.config?.errorHandling == 'success')
@@ -116,23 +116,23 @@ export default {
if (error.response) {
if (error.response.status == 404) {
app.config.globalProperties.$fhcAlert.alertDefault('error', error.message, error.request.responseURL, true);
- return new Promise(() => {});
+ return Promise.reject({...{handled: true}, ...error});
}
-
+
// NOTE(chris): loop through errors
error.response.data.errors = error.response.data.errors.filter(
- err => (error.config[err.type + 'ErrorHandler'] || app.config.globalProperties.$fhcApi._defaultErrorHandlers[err.type])(err, error.config.form)
+ err => (error.config[err.type + 'ErrorHandler'] || app.config.globalProperties.$fhcApi._defaultErrorHandlers[err.type])(err, error.config)
);
if (!error.response.data.errors.length)
- return new Promise(() => {});
+ return Promise.reject({...{handled: true}, ...error});
} else if (error.request) {
app.config.globalProperties.$fhcAlert.alertDefault('error', error.message, error.request.responseURL);
- return new Promise(() => {});
+ return Promise.reject({...{handled: true}, ...error});
} else {
app.config.globalProperties.$fhcAlert.alertError(error.message);
- return new Promise(() => {});
+ return Promise.reject({...{handled: true}, ...error});
}
-
+
return Promise.reject(error);
});
@@ -152,30 +152,47 @@ export default {
return fhcApiAxios.post(uri, data, config);
},
_defaultErrorHandlers: {
- validation(error, form) {
+ validation(error, config) {
const $fhcAlert = app.config.globalProperties.$fhcAlert;
- if (form) {
- form.clearValidation();
- form.setFeedback(false, error.messages);
+ if (config?.form) {
+ config.form.clearValidation();
+ config.form.setFeedback(false, error.messages);
return false;
}
if (Array.isArray(error.messages)) {
error.messages.forEach($fhcAlert.alertError);
return false;
} else if (typeof error.messages == 'object') {
- Object.entries(error.messages).forEach(
- ([key, value]) => $fhcAlert.alertDefault('error', key, value, true)
- );
+ if (config?.errorHeader)
+ Object.values(error.messages).forEach(
+ value => $fhcAlert.alertDefault(
+ 'error',
+ Array.isArray(config.errorHeader) ? app.config.globalProperties.$p.t.apply(null, config.errorHeader) : config.errorHeader,
+ value,
+ true
+ )
+ );
+ else
+ Object.entries(error.messages).forEach(
+ ([key, value]) => $fhcAlert.alertDefault('error', key, value, true)
+ );
return false;
}
return true;
},
- general(error, form) {
+ general(error, config) {
const $fhcAlert = app.config.globalProperties.$fhcAlert;
- if (form)
- form.setFeedback(false, error.message);
+ if (config?.form)
+ config.form.setFeedback(false, error.message);
+ else if (config?.errorHeader)
+ $fhcAlert.alertDefault(
+ 'error',
+ Array.isArray(config.errorHeader) ? app.config.globalProperties.$p.t.apply(null, config.errorHeader) : config.errorHeader,
+ error.message,
+ true
+ );
else
$fhcAlert.alertError(error.message);
},
@@ -250,6 +267,23 @@ export default {
message += 'Line Number: ' + error.line + '\n';
$fhcAlert.alertSystemError(message);
+ },
+ auth(error, config) {
+ const $fhcAlert = app.config.globalProperties.$fhcAlert;
+
+ var message = '';
+ message += 'Controller name: ' + error.controller + '\n';
+ message += 'Method name: ' + error.method + '\n';
+ message += 'Required permissions: ' + error.required_permissions;
+ if (config?.errorHeader)
+ $fhcAlert.alertDefault(
+ 'error',
+ Array.isArray(config.errorHeader) ? app.config.globalProperties.$p.t.apply(null, config.errorHeader) : config.errorHeader,
+ error.message,
+ true
+ );
+ else
+ $fhcAlert.alertDefault('error', error.message, message);
}
}
};
@@ -276,7 +310,9 @@ export default {
}
}
- app.config.globalProperties.$fhcApi.factory = new FhcApiFactoryWrapper(FhcApiFactory);
+ const mergedFhcApiFactory = options?.factory ? {...FhcApiFactory, ...options.factory} : FhcApiFactory;
+
+ app.config.globalProperties.$fhcApi.factory = new FhcApiFactoryWrapper(mergedFhcApiFactory);
}
};
\ No newline at end of file
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index d61c34f7a..687ecde29 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -437,37 +437,37 @@ echo '
Gegenpruefung!
';
$error=false;
$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon' AND schemaname != 'reports' AND schemaname != 'extension';";
if (!$result=@$db->db_query($sql_query))
- echo '
'.$db->db_last_error().' ';
- else
- while ($row=$db->db_fetch_object($result))
+ echo '
'.$db->db_last_error().' ';
+else
+ while ($row=$db->db_fetch_object($result))
+ {
+ $fulltablename=$row->schemaname.'.'.$row->tablename;
+ if (!isset($tabellen[$fulltablename]))
{
- $fulltablename=$row->schemaname.'.'.$row->tablename;
- if (!isset($tabellen[$fulltablename]))
- {
- echo 'Tabelle '.$fulltablename.' existiert in der DB, aber nicht in diesem Skript!
';
- $error=true;
- }
- else
- if (!$result_fields=@$db->db_query("SELECT * FROM $fulltablename LIMIT 1;"))
- echo '
'.$db->db_last_error().' ';
- else
- for ($i=0; $i<$db->db_num_fields($result_fields); $i++)
- {
- $found=false;
- $fieldnameDB=$db->db_field_name($result_fields,$i);
- foreach ($tabellen[$fulltablename] AS $fieldnameARRAY)
- if ($fieldnameDB==$fieldnameARRAY)
- {
- $found=true;
- break;
- }
- if (!$found)
- {
- echo 'Attribut '.$fulltablename.'.
'.$fieldnameDB.' existiert in der DB, aber nicht in diesem Skript!
';
- $error=true;
- }
- }
+ echo 'Tabelle '.$fulltablename.' existiert in der DB, aber nicht in diesem Skript!
';
+ $error=true;
}
+ else
+ if (!$result_fields=@$db->db_query("SELECT * FROM $fulltablename LIMIT 1;"))
+ echo '
'.$db->db_last_error().' ';
+ else
+ for ($i=0; $i<$db->db_num_fields($result_fields); $i++)
+ {
+ $found=false;
+ $fieldnameDB=$db->db_field_name($result_fields,$i);
+ foreach ($tabellen[$fulltablename] AS $fieldnameARRAY)
+ if ($fieldnameDB==$fieldnameARRAY)
+ {
+ $found=true;
+ break;
+ }
+ if (!$found)
+ {
+ echo 'Attribut '.$fulltablename.'.
'.$fieldnameDB.' existiert in der DB, aber nicht in diesem Skript!
';
+ $error=true;
+ }
+ }
+ }
if($error==false)
echo '
Gegenpruefung fehlerfrei';
-?>
+?>
\ No newline at end of file