@xuda.io/xuda-widget-plugin-xuda-drive
Version:
Xuda Drive widget plugin
350 lines (344 loc) • 6.85 kB
JavaScript
var common_fields = {
file_upload_drop_area_label: {
label: 'Drop Area Label',
type: 'string',
},
file_upload_allow_multiple_files: {
label: 'Allow Multiple Files',
type: 'boolean',
render: 'segment',
tooltip: '',
defaultValue: () => false,
options: [
{
label: 'Yes',
value: true,
},
{
label: 'No',
value: false,
},
],
},
file_upload_mime_type_preset: {
label: 'Mime Type',
type: 'string',
render: 'select',
tooltip: '',
options: [
{
label: 'Select',
value: '',
},
{
label: 'Video',
value: 'video',
},
{
label: 'Audio',
value: 'audio',
},
{
label: 'Image',
value: 'image',
},
],
},
file_upload_custom_mime_types: {
label: 'Custom Mime Types',
type: 'string',
tooltip: 'Separate with commas',
},
public_file: {
label: 'Public File',
type: 'boolean',
render: 'segment',
tooltip: '',
defaultValue: () => false,
options: [
{
label: 'Yes',
value: true,
},
{
label: 'No',
value: false,
},
],
},
drive_folder: {
label: 'Drive Folder',
type: 'string',
},
assign_file_tags: {
label: 'File Tags',
type: 'array',
tooltip: '',
render: 'chips',
},
auto_tag_generator: {
label: 'Auto Tag Generator',
type: 'boolean',
render: 'segment',
tooltip: 'Create tags extract from file name',
defaultValue: () => false,
options: [
{
label: 'Yes',
value: true,
},
{
label: 'No',
value: false,
},
],
},
auto_tag_identifier: {
label: 'Auto Tag Identifier',
type: 'string',
tooltip: "A character to use to separate the tags from the filename default '-'",
},
auto_tag_translation: {
label: 'Auto Tag Translation',
type: 'object',
tooltip: 'Translation is enabled by defining key-value pairs in an object.',
render: 'editor',
'render_params.language': 'json',
},
custom_tags_parser: {
label: 'Custom Tags Parser',
type: 'object',
tooltip: 'Create a custom function to extract the filename and return an array of tags.',
render: 'editor',
'render_params.language': 'javascript',
},
event_name_for_successful_callback: {
label: 'Successful Callback',
type: 'string',
render: 'eventId',
},
event_name_for_successful_remove_callback: {
label: 'Successful Remove Callback',
type: 'string',
render: 'eventId',
},
clear_on_file_upload: {
label: 'Clear on File Upload',
type: 'boolean',
render: 'segment',
tooltip: '',
defaultValue: () => false,
options: [
{
label: 'Yes',
value: true,
},
{
label: 'No',
value: false,
},
],
},
file_upload_folder: {
label: 'Upload Folder',
type: 'string',
},
prompt_file_exist: {
label: 'Prompt file exist',
type: 'boolean',
render: 'segment',
tooltip: '',
defaultValue: () => true,
options: [
{
label: 'Yes',
value: true,
},
{
label: 'No',
value: false,
},
],
},
direction: {
label: 'Direction',
type: 'string',
render: 'segment',
tooltip: '',
defaultValue: () => 'ltr',
options: [
{
label: 'RTL',
value: 'rtl',
},
{
label: 'LTR',
value: 'ltr',
},
],
},
navigation: {
label: 'Navigation',
type: 'boolean',
render: 'segment',
tooltip: '',
defaultValue: () => true,
options: [
{
label: 'Show',
value: true,
},
{
label: 'Hide',
value: false,
},
],
},
swiper_options: {
label: 'Swiper options',
type: 'object',
tooltip: '',
render: 'editor',
'render_params.language': 'json',
},
instant_file_upload: {
label: 'Instant Upload',
type: 'string',
render: 'segment',
tooltip: '',
options: [
{
label: 'Yes',
value: '',
},
{
label: 'No',
value: 'N',
},
],
},
};
export const capabilities = {
browser: true,
headless: false,
};
export const methods = {
upload: {
name: 'Upload',
tooltip: '',
fields: common_fields,
response: { uploaded_files: '' },
},
viewer: {
name: 'Viewer',
tooltip: '',
fields: {
default_view_type: {
label: 'Default View Type',
type: 'string',
render: 'select',
tooltip: '',
defaultValue: () => 'gallery',
options: [
{
label: 'Gallery',
value: 'gallery',
},
{
label: 'List',
value: 'list',
},
{
label: 'Slider',
value: 'slider',
},
],
},
drive_folder: {
label: 'Drive Folder',
type: 'string',
},
filter_tags: {
label: 'Filter Tags',
type: 'array',
tooltip: '',
render: 'chips',
},
sort_by: {
label: 'Sort By',
type: 'string',
render: 'select',
tooltip: '',
defaultValue: () => 'date',
options: [
{
label: 'Date',
value: 'date',
},
{
label: 'File Name',
value: 'name',
},
],
},
sort_dir: {
label: 'Sort Direction',
type: 'string',
render: 'segment',
tooltip: '',
defaultValue: () => 'desc',
options: [
{
label: 'Descending',
value: 'desc',
},
{
label: 'Ascending',
value: 'asc',
},
],
},
show_toolbar: {
label: 'Show Toolbar',
type: 'bool',
render: 'segment',
tooltip: '',
defaultValue: () => true,
options: [
{
label: 'Yes',
value: true,
},
{
label: 'No',
value: false,
},
],
},
toolbar_label: {
label: 'Toolbar Label',
type: 'string',
tooltip: '',
},
show_upload_button: {
label: 'Show Upload Button',
type: 'bool',
render: 'segment',
tooltip: '',
defaultValue: () => true,
options: [
{
label: 'Yes',
value: true,
},
{
label: 'No',
value: false,
},
],
},
...common_fields,
},
response: { uploaded_files: '' },
},
};