"use strict"; /** * Save contact handler for Form component * @param {Object} values - Serialized form values * @returns {Promise} Response {success: bool, errors?: {}, redirect?: string} */ async function save_contact(values) { // Check if editing existing contact const contact_id = $('#contact-id').val(); if (contact_id) { values.id = contact_id; } try { const response = await Frontend_Contacts_Controller.save(values); if (response.success) { // Redirect to contact view or list on success return { success: true, redirect: response.redirect || Rsx.Route('Frontend_Contacts_Controller', 'index') }; } else { // Return validation errors return { success: false, errors: response.errors || { _general: response.message || 'An error occurred' } }; } } catch (error) { console.error('Save error:', error); return { success: false, errors: { _general: 'An error occurred while saving. Please try again.' } }; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzYXZlX2NvbnRhY3QiLCJ2YWx1ZXMiLCJjb250YWN0X2lkIiwiJCIsInZhbCIsImlkIiwicmVzcG9uc2UiLCJGcm9udGVuZF9Db250YWN0c19Db250cm9sbGVyIiwic2F2ZSIsInN1Y2Nlc3MiLCJyZWRpcmVjdCIsIlJzeCIsIlJvdXRlIiwiZXJyb3JzIiwiX2dlbmVyYWwiLCJtZXNzYWdlIiwiZXJyb3IiLCJjb25zb2xlIl0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9jb250YWN0cy9lZGl0L3NhdmVfY29udGFjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNhdmUgY29udGFjdCBoYW5kbGVyIGZvciBGb3JtIGNvbXBvbmVudFxuICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIFNlcmlhbGl6ZWQgZm9ybSB2YWx1ZXNcbiAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc3BvbnNlIHtzdWNjZXNzOiBib29sLCBlcnJvcnM/OiB7fSwgcmVkaXJlY3Q/OiBzdHJpbmd9XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNhdmVfY29udGFjdCh2YWx1ZXMpIHtcbiAgICAvLyBDaGVjayBpZiBlZGl0aW5nIGV4aXN0aW5nIGNvbnRhY3RcbiAgICBjb25zdCBjb250YWN0X2lkID0gJCgnI2NvbnRhY3QtaWQnKS52YWwoKTtcbiAgICBpZiAoY29udGFjdF9pZCkge1xuICAgICAgICB2YWx1ZXMuaWQgPSBjb250YWN0X2lkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgRnJvbnRlbmRfQ29udGFjdHNfQ29udHJvbGxlci5zYXZlKHZhbHVlcyk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIC8vIFJlZGlyZWN0IHRvIGNvbnRhY3QgdmlldyBvciBsaXN0IG9uIHN1Y2Nlc3NcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICByZWRpcmVjdDogcmVzcG9uc2UucmVkaXJlY3QgfHwgUnN4LlJvdXRlKCdGcm9udGVuZF9Db250YWN0c19Db250cm9sbGVyJywgJ2luZGV4JylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBSZXR1cm4gdmFsaWRhdGlvbiBlcnJvcnNcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgICAgZXJyb3JzOiByZXNwb25zZS5lcnJvcnMgfHwge19nZW5lcmFsOiByZXNwb25zZS5tZXNzYWdlIHx8ICdBbiBlcnJvciBvY2N1cnJlZCd9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignU2F2ZSBlcnJvcjonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yczoge19nZW5lcmFsOiAnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2F2aW5nLiBQbGVhc2UgdHJ5IGFnYWluLid9XG4gICAgICAgIH07XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlQSxZQUFZQSxDQUFDQyxNQUFNLEVBQUU7RUFDaEM7RUFDQSxNQUFNQyxVQUFVLEdBQUdDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7RUFDekMsSUFBSUYsVUFBVSxFQUFFO0lBQ1pELE1BQU0sQ0FBQ0ksRUFBRSxHQUFHSCxVQUFVO0VBQzFCO0VBRUEsSUFBSTtJQUNBLE1BQU1JLFFBQVEsR0FBRyxNQUFNQyw0QkFBNEIsQ0FBQ0MsSUFBSSxDQUFDUCxNQUFNLENBQUM7SUFFaEUsSUFBSUssUUFBUSxDQUFDRyxPQUFPLEVBQUU7TUFDbEI7TUFDQSxPQUFPO1FBQ0hBLE9BQU8sRUFBRSxJQUFJO1FBQ2JDLFFBQVEsRUFBRUosUUFBUSxDQUFDSSxRQUFRLElBQUlDLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLDhCQUE4QixFQUFFLE9BQU87TUFDcEYsQ0FBQztJQUNMLENBQUMsTUFBTTtNQUNIO01BQ0EsT0FBTztRQUNISCxPQUFPLEVBQUUsS0FBSztRQUNkSSxNQUFNLEVBQUVQLFFBQVEsQ0FBQ08sTUFBTSxJQUFJO1VBQUNDLFFBQVEsRUFBRVIsUUFBUSxDQUFDUyxPQUFPLElBQUk7UUFBbUI7TUFDakYsQ0FBQztJQUNMO0VBQ0osQ0FBQyxDQUFDLE9BQU9DLEtBQUssRUFBRTtJQUNaQyxPQUFPLENBQUNELEtBQUssQ0FBQyxhQUFhLEVBQUVBLEtBQUssQ0FBQztJQUNuQyxPQUFPO01BQ0hQLE9BQU8sRUFBRSxLQUFLO01BQ2RJLE1BQU0sRUFBRTtRQUFDQyxRQUFRLEVBQUU7TUFBbUQ7SUFDMUUsQ0FBQztFQUNMO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=