n8n-nodes-nextcloud-tables
Version:
Production-Ready n8n Node für Nextcloud Tables - Vollständige API-Abdeckung mit erweiterten Filtern, Multi-Column-Sorting, CSV-Import und professioneller Datenvalidierung
609 lines • 21.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.viewFields = exports.viewOperations = void 0;
exports.viewOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['view'],
},
},
options: [
{
name: 'Alle Views Abrufen',
value: 'getAll',
description: 'Alle Views einer Tabelle abrufen',
action: 'Alle Views abrufen',
},
{
name: 'View Abrufen',
value: 'get',
description: 'Eine spezifische View abrufen',
action: 'View abrufen',
},
{
name: 'View Erstellen',
value: 'create',
description: 'Eine neue View erstellen',
action: 'View erstellen',
},
{
name: 'View Erstellen (KI-Friendly)',
value: 'createAIFriendly',
description: 'Eine neue View erstellen - optimiert für KI Agents',
action: 'View erstellen (KI-Friendly)',
},
{
name: 'View Aktualisieren',
value: 'update',
description: 'Eine View aktualisieren',
action: 'View aktualisieren',
},
{
name: 'View Aktualisieren (KI-Friendly)',
value: 'updateAIFriendly',
description: 'Eine View aktualisieren - optimiert für KI Agents',
action: 'View aktualisieren (KI-Friendly)',
},
{
name: 'View Löschen',
value: 'delete',
description: 'Eine View löschen',
action: 'View löschen',
},
],
default: 'getAll',
},
];
exports.viewFields = [
// ==============================================
// KI-FRIENDLY OPERATIONS - Alle Parameter verfügbar
// ==============================================
// View-Konfiguration für AI-Friendly create
{
displayName: 'View-Konfiguration (AI-Friendly)',
name: 'viewConfig',
type: 'fixedCollection',
required: true,
displayOptions: {
show: {
resource: ['view'],
operation: ['createAIFriendly'],
},
},
default: {},
options: [
{
displayName: 'Basis-Konfiguration',
name: 'basic',
values: [
{
displayName: 'Titel',
name: 'title',
type: 'string',
required: true,
default: '',
description: 'Der Titel der neuen View',
placeholder: 'Meine View',
},
{
displayName: 'Tabellen-ID',
name: 'tableId',
type: 'string',
required: true,
default: '',
description: 'Die ID der Tabelle für die View',
placeholder: '123',
},
{
displayName: 'Emoji',
name: 'emoji',
type: 'string',
default: '',
description: 'Ein optionales Emoji für die View',
placeholder: '🔍',
},
{
displayName: 'Beschreibung',
name: 'description',
type: 'string',
default: '',
description: 'Eine optionale Beschreibung für die View',
placeholder: 'Beschreibung der View...',
},
],
},
],
description: 'Basis-Konfiguration für die neue View',
},
// Update-Konfiguration für AI-Friendly update
{
displayName: 'Update-Konfiguration (AI-Friendly)',
name: 'updateConfig',
type: 'fixedCollection',
required: true,
displayOptions: {
show: {
resource: ['view'],
operation: ['updateAIFriendly'],
},
},
default: {},
options: [
{
displayName: 'Update-Daten',
name: 'data',
values: [
{
displayName: 'View-ID',
name: 'viewId',
type: 'string',
required: true,
default: '',
description: 'Die ID der zu aktualisierenden View',
placeholder: '456',
},
{
displayName: 'Neuer Titel',
name: 'title',
type: 'string',
default: '',
description: 'Der neue Titel der View (leer lassen = nicht ändern)',
placeholder: 'Neuer View-Name',
},
{
displayName: 'Neues Emoji',
name: 'emoji',
type: 'string',
default: '',
description: 'Das neue Emoji für die View (leer lassen = nicht ändern)',
placeholder: '🔍',
},
{
displayName: 'Neue Beschreibung',
name: 'description',
type: 'string',
default: '',
description: 'Die neue Beschreibung der View (leer lassen = nicht ändern)',
placeholder: 'Neue Beschreibung...',
},
],
},
],
description: 'Update-Konfiguration für die View',
},
// Filter-Konfiguration für AI-Friendly Operationen
{
displayName: 'Filter-Konfiguration (AI-Friendly)',
name: 'filterConfig',
type: 'fixedCollection',
displayOptions: {
show: {
resource: ['view'],
operation: ['createAIFriendly', 'updateAIFriendly'],
},
},
default: {},
options: [
{
displayName: 'Filter-Regeln',
name: 'rules',
values: [
{
displayName: 'Filter',
name: 'filters',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
placeholder: 'Filter hinzufügen',
default: {},
options: [
{
displayName: 'Filter-Regel',
name: 'filter',
values: [
{
displayName: 'Spalten-ID',
name: 'columnId',
type: 'string',
required: true,
default: '',
description: 'Die ID der zu filternden Spalte',
placeholder: '1',
},
{
displayName: 'Operator',
name: 'operator',
type: 'string',
default: 'EQ',
description: 'Der Filter-Operator. Gültige Werte: "EQ" (gleich), "NEQ" (ungleich), "GT" (größer), "GTE" (größer gleich), "LT" (kleiner), "LTE" (kleiner gleich), "LIKE" (enthält)',
placeholder: 'EQ',
},
{
displayName: 'Wert',
name: 'value',
type: 'string',
default: '',
description: 'Der Filter-Wert',
placeholder: 'Filter-Wert...',
},
],
},
],
description: 'Die Filter-Regeln für die View',
},
],
},
],
description: 'Filter-Konfiguration für die View',
},
// Sortierung-Konfiguration für AI-Friendly Operationen
{
displayName: 'Sortierungs-Konfiguration (AI-Friendly)',
name: 'sortConfig',
type: 'fixedCollection',
displayOptions: {
show: {
resource: ['view'],
operation: ['createAIFriendly', 'updateAIFriendly'],
},
},
default: {},
options: [
{
displayName: 'Sortier-Regeln',
name: 'rules',
values: [
{
displayName: 'Sortierung',
name: 'sorting',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
placeholder: 'Sortierung hinzufügen',
default: {},
options: [
{
displayName: 'Sortier-Regel',
name: 'sort',
values: [
{
displayName: 'Spalten-ID',
name: 'columnId',
type: 'string',
required: true,
default: '',
description: 'Die ID der zu sortierenden Spalte',
placeholder: '1',
},
{
displayName: 'Richtung',
name: 'direction',
type: 'string',
default: 'ASC',
description: 'Die Sortierrichtung. Gültige Werte: "ASC" (aufsteigend A-Z, 1-9), "DESC" (absteigend Z-A, 9-1)',
placeholder: 'ASC',
},
],
},
],
description: 'Die Sortier-Regeln für die View',
},
],
},
],
description: 'Sortierungs-Konfiguration für die View',
},
// ==============================================
// ORIGINAL OPERATIONS - Für normale UI Nutzer
// ==============================================
// Tabellen-ID für getAll, create
{
displayName: 'Tabelle',
name: 'tableId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
description: 'Wählen Sie eine Tabelle aus der Liste oder geben Sie deren ID an',
modes: [
{
displayName: 'Liste',
name: 'list',
type: 'list',
typeOptions: {
searchListMethod: 'getTables',
searchable: true,
searchFilterRequired: false,
},
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'Tabellen-ID',
validation: [
{
type: 'regex',
properties: {
regex: '^[0-9]+$',
errorMessage: 'Bitte eine gültige Tabellen-ID (Zahl) eingeben',
},
},
],
},
],
displayOptions: {
show: {
resource: ['view'],
operation: ['getAll', 'create'],
},
},
},
// View-ID als resourceLocator für get, update, delete
{
displayName: 'View',
name: 'viewId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
description: 'Wählen Sie eine View aus der Liste oder geben Sie deren ID an',
modes: [
{
displayName: 'Liste',
name: 'list',
type: 'list',
typeOptions: {
searchListMethod: 'getViews',
searchable: true,
searchFilterRequired: false,
},
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'View-ID',
validation: [
{
type: 'regex',
properties: {
regex: '^[0-9]+$',
errorMessage: 'Bitte eine gültige View-ID (Zahl) eingeben',
},
},
],
},
],
displayOptions: {
show: {
resource: ['view'],
operation: ['get', 'update', 'delete'],
},
},
},
// Titel für create
{
displayName: 'Titel',
name: 'title',
type: 'string',
required: true,
typeOptions: {
canBeExpression: true,
},
displayOptions: {
show: {
resource: ['view'],
operation: ['create'],
},
},
default: '',
description: 'Der Titel der neuen View',
placeholder: 'View-Name eingeben...',
},
// Emoji für create
{
displayName: 'Emoji',
name: 'emoji',
type: 'string',
typeOptions: {
canBeExpression: true,
},
displayOptions: {
show: {
resource: ['view'],
operation: ['create'],
},
},
default: '',
description: 'Ein optionales Emoji für die View',
placeholder: '🔍',
},
// Beschreibung für create
{
displayName: 'Beschreibung',
name: 'description',
type: 'string',
typeOptions: {
canBeExpression: true,
rows: 3,
},
displayOptions: {
show: {
resource: ['view'],
operation: ['create'],
},
},
default: '',
description: 'Eine optionale Beschreibung für die View',
placeholder: 'Beschreibung der View...',
},
// Zusätzliche Felder für update
{
displayName: 'Titel',
name: 'title',
type: 'string',
typeOptions: {
canBeExpression: true,
},
displayOptions: {
show: {
resource: ['view'],
operation: ['update'],
},
},
default: '',
description: 'Der neue Titel der View (optional)',
placeholder: 'Neuer View-Name...',
},
{
displayName: 'Emoji',
name: 'emoji',
type: 'string',
typeOptions: {
canBeExpression: true,
},
displayOptions: {
show: {
resource: ['view'],
operation: ['update'],
},
},
default: '',
description: 'Das neue Emoji für die View (optional)',
placeholder: '🔍',
},
{
displayName: 'Beschreibung',
name: 'description',
type: 'string',
typeOptions: {
canBeExpression: true,
rows: 3,
},
displayOptions: {
show: {
resource: ['view'],
operation: ['update'],
},
},
default: '',
description: 'Die neue Beschreibung der View (optional)',
placeholder: 'Neue Beschreibung...',
},
// Filter für create/update
{
displayName: 'Filter',
name: 'filter',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
placeholder: 'Filter hinzufügen',
displayOptions: {
show: {
resource: ['view'],
operation: ['create', 'update'],
},
},
default: {},
options: [
{
displayName: 'Filter-Regel',
name: 'rule',
values: [
{
displayName: 'Spalte',
name: 'columnId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getColumns',
},
default: '',
description: 'Die Spalte für den Filter',
},
{
displayName: 'Operator',
name: 'operator',
type: 'string',
default: 'EQ',
description: 'Der Vergleichsoperator',
placeholder: 'EQ',
},
{
displayName: 'Wert',
name: 'value',
type: 'string',
default: '',
description: 'Der Wert für den Vergleich',
typeOptions: {
canBeExpression: true,
},
},
],
},
],
description: 'Filter-Regeln für die View',
},
// Sortierung für create/update
{
displayName: 'Sortierung',
name: 'sort',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
placeholder: 'Sortierung hinzufügen',
displayOptions: {
show: {
resource: ['view'],
operation: ['create', 'update'],
},
},
default: {},
options: [
{
displayName: 'Sortier-Regel',
name: 'rule',
values: [
{
displayName: 'Spalte',
name: 'columnId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getColumns',
},
default: '',
description: 'Die Spalte für die Sortierung',
},
{
displayName: 'Richtung',
name: 'mode',
type: 'options',
options: [
{
name: 'Aufsteigend',
value: 'ASC',
description: 'Von klein zu groß (A-Z, 1-9)',
},
{
name: 'Absteigend',
value: 'DESC',
description: 'Von groß zu klein (Z-A, 9-1)',
},
],
default: 'ASC',
description: 'Die Sortierrichtung',
},
],
},
],
description: 'Sortier-Regeln für die View',
},
];
//# sourceMappingURL=view.js.map