/** * Auto-generated JavaScript stub for File_Attachment_Model * DO NOT EDIT - This file is automatically regenerated */ class File_Attachment_Model extends Rsx_Js_Model { static get name() { return 'File_Attachment_Model'; } static FILE_TYPE_IMAGE = 1; static FILE_TYPE_ANIMATED_IMAGE = 2; static FILE_TYPE_VIDEO = 3; static FILE_TYPE_ARCHIVE = 4; static FILE_TYPE_TEXT = 5; static FILE_TYPE_DOCUMENT = 6; static FILE_TYPE_OTHER = 7; static file_type_id_enum_val() { const data = {}; const order = []; data[1] = {"constant":"FILE_TYPE_IMAGE","label":"Image"}; order.push(1); data[2] = {"constant":"FILE_TYPE_ANIMATED_IMAGE","label":"Animated Image"}; order.push(2); data[3] = {"constant":"FILE_TYPE_VIDEO","label":"Video"}; order.push(3); data[4] = {"constant":"FILE_TYPE_ARCHIVE","label":"Archive"}; order.push(4); data[5] = {"constant":"FILE_TYPE_TEXT","label":"Text"}; order.push(5); data[6] = {"constant":"FILE_TYPE_DOCUMENT","label":"Document"}; order.push(6); data[7] = {"constant":"FILE_TYPE_OTHER","label":"Other"}; order.push(7); // Return Proxy that maintains sort order for enumeration return new Proxy(data, { ownKeys() { return order.map(String); }, getOwnPropertyDescriptor(target, prop) { if (prop in target) { return { enumerable: true, configurable: true, value: target[prop] }; } } }); } static file_type_id_label_list() { const values = {}; values[1] = 'Image'; values[2] = 'Animated Image'; values[3] = 'Video'; values[4] = 'Archive'; values[5] = 'Text'; values[6] = 'Document'; values[7] = 'Other'; return values; } static file_type_id_enum_select() { const fullData = this.file_type_id_enum_val(); const data = {}; const order = []; // Extract labels from full data, respecting selectable flag for (const key in fullData) { const item = fullData[key]; if (item.selectable !== false && item.label) { data[key] = item.label; order.push(parseInt(key)); } } // Return Proxy that maintains sort order for enumeration return new Proxy(data, { ownKeys() { return order.map(String); }, getOwnPropertyDescriptor(target, prop) { if (prop in target) { return { enumerable: true, configurable: true, value: target[prop] }; } } }); } /** * Fetch file_storage relationship * @returns {Promise} Related model instance(s) or false */ async file_storage() { if (!this.id) { shouldnt_happen('Cannot fetch relationship without id property'); } const response = await $.ajax({ url: `/_fetch_rel/File_Attachment_Model/${this.id}/file_storage`, method: 'POST', dataType: 'json' }); if (!response) return false; // Convert response to model instance(s) // Framework handles instantiation based on relationship type return response; } /** * Fetch site relationship * @returns {Promise} Related model instance(s) or false */ async site() { if (!this.id) { shouldnt_happen('Cannot fetch relationship without id property'); } const response = await $.ajax({ url: `/_fetch_rel/File_Attachment_Model/${this.id}/site`, method: 'POST', dataType: 'json' }); if (!response) return false; // Convert response to model instance(s) // Framework handles instantiation based on relationship type return response; } /** * Fetch fileable relationship * @returns {Promise} Related model instance(s) or false */ async fileable() { if (!this.id) { shouldnt_happen('Cannot fetch relationship without id property'); } const response = await $.ajax({ url: `/_fetch_rel/File_Attachment_Model/${this.id}/fileable`, method: 'POST', dataType: 'json' }); if (!response) return false; // Convert response to model instance(s) // Framework handles instantiation based on relationship type return response; } /** * Fetch search_indexes relationship * @returns {Promise} Related model instance(s) or false */ async search_indexes() { if (!this.id) { shouldnt_happen('Cannot fetch relationship without id property'); } const response = await $.ajax({ url: `/_fetch_rel/File_Attachment_Model/${this.id}/search_indexes`, method: 'POST', dataType: 'json' }); if (!response) return false; // Convert response to model instance(s) // Framework handles instantiation based on relationship type return response; } }