node-red-contrib-appwrite
Version:
Node-RED connector for appwrite
901 lines (801 loc) • 39.9 kB
HTML
<!--
Copyright 2022 AutanaLabs.
See LICENSE file
-->
<script type="text/x-red" data-template-name="com.autana.readTable">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row" style="margin-bottom:0;">
<label for="node-input-query"><i class="fa fa-filter"></i> <span data-i18n="autanaCloud.label.queries"></span></label>
<input type="text" id="node-input-query" data-i18n="[placeholder]autanaCloud.placeholder.queries">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.readTable', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
name: { value: "" },
query: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'read table',
label: function () {
return this.name ? this.name : this.tableName ? "read " + this.tableName : "read table";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.insertRow">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row" style="margin-bottom:0;">
<label for="node-input-docId"><i class="fa fa-filter"></i> <span data-i18n="autanaCloud.label.docId"></span></label>
<input type="text" id="node-input-docId" data-i18n="[placeholder]autanaCloud.placeholder.docId">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.insertRow', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
name: { value: "" },
docId: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'insert row',
label: function () {
return this.name ? this.name : this.tableName ? "insert " + this.tableName : "insert row";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.updateRow">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row" style="margin-bottom:0;">
<label for="node-input-docId"><i class="fa fa-filter"></i> <span data-i18n="autanaCloud.label.docId"></span></label>
<input type="text" id="node-input-docId" data-i18n="[placeholder]autanaCloud.placeholder.docId">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.updateRow', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
name: { value: "" },
docId: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'update row',
label: function () {
return this.name ? this.name : this.tableName ? "update " + this.tableName : "update row";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.deleteRow">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row" style="margin-bottom:0;">
<label for="node-input-docId"><i class="fa fa-filter"></i> <span data-i18n="autanaCloud.label.docId"></span></label>
<input type="text" id="node-input-docId" data-i18n="[placeholder]autanaCloud.placeholder.docId">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.deleteRow', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
name: { value: "" },
docId: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'delete row',
label: function () {
return this.name ? this.name : this.tableName ? "delete " + this.tableName : "delete row";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.readSchema">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.readSchema', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'read schema',
label: function () {
return this.name ? this.name : this.tableName ? "schema of " + this.tableName : "read schema";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.listTables">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-filter"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.listTables', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'list tables',
label: function () {
return this.name ? this.name : this.tableName ? "tables like " + this.tableName : "list tables";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.createTable">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-skipExists"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.skipExists"></span></label>
<input type="checkbox" id="node-input-skipExists">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.createTable', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
skipExists: { value: false },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'create table',
label: function () {
return this.name ? this.name : this.tableName ? "create table " + this.tableName : "create table";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.StringColumn">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-key"><i class="fa fa-key"></i> <span data-i18n="autanaCloud.label.columnKey"></span></label>
<input type="text" id="node-input-key" data-i18n="[placeholder]autanaCloud.placeholder.columnKey">
</div>
<div class="form-row">
<label for="node-input-size"><i class="fa fa-text-width"></i> <span data-i18n="autanaCloud.label.columnStringSize"></span></label>
<input type="text" id="node-input-size" data-i18n="[placeholder]autanaCloud.placeholder.columnStringSize">
</div>
<div class="form-row">
<label for="node-input-required"><i class="fa fa-asterisk"></i> <span data-i18n="autanaCloud.label.columnRequired"></span></label>
<input type="checkbox" id="node-input-required">
</div>
<div class="form-row">
<label for="node-input-defaultValue"><i class="fa fa-font"></i> <span data-i18n="autanaCloud.label.columnDefaultValue"></span></label>
<input type="text" id="node-input-defaultValue" data-i18n="[placeholder]autanaCloud.placeholder.columnDefaultValue">
</div>
<div class="form-row">
<label for="node-input-isArray"><i class="fa fa-list-ol"></i> <span data-i18n="autanaCloud.label.columnIsArray"></span></label>
<input type="checkbox" id="node-input-isArray">
</div>
<div class="form-row">
<label for="node-input-skipExists"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.skipExists"></span></label>
<input type="checkbox" id="node-input-skipExists">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.StringColumn', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
key: { value: "" },
size: { value: 255 },
required: { value: false },
defaultValue: { value: "" },
isArray: { value: false },
skipExists: { value: false },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'string column',
label: function () {
return this.name ? this.name : this.key ? "string column " + this.key : "string column";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.IntegerColumn">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-key"><i class="fa fa-key"></i> <span data-i18n="autanaCloud.label.columnKey"></span></label>
<input type="text" id="node-input-key" data-i18n="[placeholder]autanaCloud.placeholder.columnKey">
</div>
<div class="form-row">
<label for="node-input-min"><i class="fa fa-text-width"></i> <span data-i18n="autanaCloud.label.columnIntegerMin"></span></label>
<input type="text" id="node-input-min" data-i18n="[placeholder]autanaCloud.placeholder.columnIntegerMin">
</div>
<div class="form-row">
<label for="node-input-max"><i class="fa fa-text-width"></i> <span data-i18n="autanaCloud.label.columnIntegerMax"></span></label>
<input type="text" id="node-input-max" data-i18n="[placeholder]autanaCloud.placeholder.columnIntegerMax">
</div>
<div class="form-row">
<label for="node-input-required"><i class="fa fa-asterisk"></i> <span data-i18n="autanaCloud.label.columnRequired"></span></label>
<input type="checkbox" id="node-input-required">
</div>
<div class="form-row">
<label for="node-input-defaultValue"><i class="fa fa-font"></i> <span data-i18n="autanaCloud.label.columnDefaultValue"></span></label>
<input type="text" id="node-input-defaultValue" data-i18n="[placeholder]autanaCloud.placeholder.columnDefaultValue">
</div>
<div class="form-row">
<label for="node-input-isArray"><i class="fa fa-list-ol"></i> <span data-i18n="autanaCloud.label.columnIsArray"></span></label>
<input type="checkbox" id="node-input-isArray">
</div>
<div class="form-row">
<label for="node-input-skipExists"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.skipExists"></span></label>
<input type="checkbox" id="node-input-skipExists">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.IntegerColumn', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
key: { value: "" },
min: { value: null },
max: { value: null },
required: { value: false },
defaultValue: { value: "" },
isArray: { value: false },
skipExists: { value: false },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'integer column',
label: function () {
return this.name ? this.name : this.key ? "integer column " + this.key : "integer column";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.FloatColumn">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-key"><i class="fa fa-key"></i> <span data-i18n="autanaCloud.label.columnKey"></span></label>
<input type="text" id="node-input-key" data-i18n="[placeholder]autanaCloud.placeholder.columnKey">
</div>
<div class="form-row">
<label for="node-input-min"><i class="fa fa-text-width"></i> <span data-i18n="autanaCloud.label.columnIntegerMin"></span></label>
<input type="text" id="node-input-min" data-i18n="[placeholder]autanaCloud.placeholder.columnIntegerMin">
</div>
<div class="form-row">
<label for="node-input-max"><i class="fa fa-text-width"></i> <span data-i18n="autanaCloud.label.columnIntegerMax"></span></label>
<input type="text" id="node-input-max" data-i18n="[placeholder]autanaCloud.placeholder.columnIntegerMax">
</div>
<div class="form-row">
<label for="node-input-required"><i class="fa fa-asterisk"></i> <span data-i18n="autanaCloud.label.columnRequired"></span></label>
<input type="checkbox" id="node-input-required">
</div>
<div class="form-row">
<label for="node-input-defaultValue"><i class="fa fa-font"></i> <span data-i18n="autanaCloud.label.columnDefaultValue"></span></label>
<input type="text" id="node-input-defaultValue" data-i18n="[placeholder]autanaCloud.placeholder.columnDefaultValue">
</div>
<div class="form-row">
<label for="node-input-isArray"><i class="fa fa-list-ol"></i> <span data-i18n="autanaCloud.label.columnIsArray"></span></label>
<input type="checkbox" id="node-input-isArray">
</div>
<div class="form-row">
<label for="node-input-skipExists"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.skipExists"></span></label>
<input type="checkbox" id="node-input-skipExists">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.FloatColumn', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
key: { value: "" },
min: { value: null },
max: { value: null },
required: { value: false },
defaultValue: { value: "" },
isArray: { value: false },
skipExists: { value: false },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'float column',
label: function () {
return this.name ? this.name : this.key ? "float column " + this.key : "float column";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.BooleanColumn">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-key"><i class="fa fa-key"></i> <span data-i18n="autanaCloud.label.columnKey"></span></label>
<input type="text" id="node-input-key" data-i18n="[placeholder]autanaCloud.placeholder.columnKey">
</div>
<div class="form-row">
<label for="node-input-required"><i class="fa fa-asterisk"></i> <span data-i18n="autanaCloud.label.columnRequired"></span></label>
<input type="checkbox" id="node-input-required">
</div>
<div class="form-row">
<label for="node-input-defaultValue"><i class="fa fa-font"></i> <span data-i18n="autanaCloud.label.columnDefaultValue"></span></label>
<input type="text" id="node-input-defaultValue" data-i18n="[placeholder]autanaCloud.placeholder.columnDefaultValue">
</div>
<div class="form-row">
<label for="node-input-isArray"><i class="fa fa-list-ol"></i> <span data-i18n="autanaCloud.label.columnIsArray"></span></label>
<input type="checkbox" id="node-input-isArray">
</div>
<div class="form-row">
<label for="node-input-skipExists"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.skipExists"></span></label>
<input type="checkbox" id="node-input-skipExists">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.BooleanColumn', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
key: { value: "" },
required: { value: false },
defaultValue: { value: "" },
isArray: { value: false },
skipExists: { value: false },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'boolean column',
label: function () {
return this.name ? this.name : this.key ? "boolean column " + this.key : "boolean column";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.deleteColumn">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-key"><i class="fa fa-key"></i> <span data-i18n="autanaCloud.label.columnKey"></span></label>
<input type="text" id="node-input-key" data-i18n="[placeholder]autanaCloud.placeholder.columnKey">
</div>
<div class="form-row">
<label for="node-input-skipNotFound"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.skipNotFound"></span></label>
<input type="checkbox" id="node-input-skipNotFound">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.deleteColumn', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
key: { value: "" },
skipNotFound: { value: false }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'delete column',
label: function () {
return this.name ? this.name : this.key ? "delete column " + this.key : "delete column";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.createIndex">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-indexName"><i class="fa fa-key"></i> <span data-i18n="autanaCloud.label.indexName"></span></label>
<input type="text" id="node-input-indexName" data-i18n="[placeholder]autanaCloud.placeholder.indexName">
</div>
<div class="form-row">
<label for="node-input-indexType"><i class="fa fa-text-width"></i> <span data-i18n="autanaCloud.label.indexType"></span></label>
<select id="node-input-indexType">
<option value="key">Key</option>
<option value="unique">Unique</option>
<option value="fulltext">Fulltext</option>
</select>
</div>
<div class="form-row">
<label for="node-input-columns"><i class="fa fa-text-width"></i> <span data-i18n="autanaCloud.label.indexColumns"></span></label>
<input type="text" id="node-input-columns" data-i18n="[placeholder]autanaCloud.placeholder.indexColumns">
</div>
<div class="form-row">
<label for="node-input-orders"><i class="fa fa-font"></i> <span data-i18n="autanaCloud.label.indexOrders"></span></label>
<input type="text" id="node-input-orders" data-i18n="[placeholder]autanaCloud.placeholder.indexOrders">
</div>
<div class="form-row">
<label for="node-input-skipExists"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.skipExists"></span></label>
<input type="checkbox" id="node-input-skipExists">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.createIndex', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
indexName: { value: "" },
indexType: { value: "" },
columns: { value: "" },
orders: { value: "" },
skipExists: { value: false },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'create index',
label: function () {
return this.name ? this.name : this.indexName ? "create index " + this.indexName : "create index";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="com.autana.deleteIndex">
<div class="form-row">
<label for="node-input-appwriteConfig"><i class="fa fa-user"></i> <span data-i18n="autanaCloud.label.config"></span></label>
<input type="text" id="node-input-appwriteConfig">
</div>
<div class="form-row">
<label for="node-input-databaseName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.databaseName"></span></label>
<input type="text" id="node-input-databaseName" data-i18n="[placeholder]autanaCloud.placeholder.databaseName">
</div>
<div class="form-row">
<label for="node-input-tableName"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.tableName"></span></label>
<input type="text" id="node-input-tableName" data-i18n="[placeholder]autanaCloud.placeholder.tableName">
</div>
<div class="form-row">
<label for="node-input-indexName"><i class="fa fa-key"></i> <span data-i18n="autanaCloud.label.indexName"></span></label>
<input type="text" id="node-input-indexName" data-i18n="[placeholder]autanaCloud.placeholder.indexName">
</div>
<div class="form-row">
<label for="node-input-skipNotFound"><i class="fa fa-folder"></i> <span data-i18n="autanaCloud.label.skipNotFound"></span></label>
<input type="checkbox" id="node-input-skipNotFound">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="autanaCloud.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]autanaCloud.placeholder.name">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('com.autana.deleteIndex', {
category: 'Appwrite Database',
color: "#F0B4C5",
defaults: {
appwriteConfig: { type: "appwrite-config", required: true },
databaseName: { value: "" },
tableName: { value: "" },
indexName: { value: "" },
skipNotFound: { value: false },
name: { value: "" }
},
inputs: 1,
outputs: 1,
icon: "appwrite.png",
align: "left",
paletteLabel: 'delete index',
label: function () {
return this.name ? this.name : this.indexName ? "delete index " + this.indexName : "delete index";
},
oneditprepare: function () {
}
});
</script>
<script type="text/x-red" data-template-name="appwrite-config">
<div class="form-row">
<label for="node-config-input-endpoint"><i class="fa fa-bookmark"></i> <span data-i18n="autanaCloud.label.endpoint"></span></label>
<input class="input-append-left" type="text" id="node-config-input-endpoint" style="width: 40%;" >
</div>
<div class="form-row">
<label for="node-config-input-project"><i class="fa fa-bookmark"></i> <span data-i18n="autanaCloud.label.project"></span></label>
<input class="input-append-left" type="text" id="node-config-input-project" style="width: 40%;" >
</div>
<div class="form-row">
<label for="node-config-input-apikey"><i class="fa fa-bookmark"></i> <span data-i18n="autanaCloud.label.apikey"></span></label>
<input class="input-append-left" type="text" id="node-config-input-apikey" style="width: 40%;" >
</div>
<div class="form-tips">
<span data-i18n="[html]autanaCloud.tip.config1"></span>
</div>
</script>
<script type="text/javascript">
(function () {
RED.nodes.registerType('appwrite-config', {
category: 'config',
defaults: {
endpoint: { type: "text", required: true },
project: { type: "text", required: true },
apikey: { type: "text", required: true },
},
paletteLabel: 'appwrite-config',
label: function () {
var host = this.endpoint ? this.endpoint : "unknow"
if (this.endpoint) {
var p = host.indexOf("://")
host = host.substr(p + 3).replace("/v1", "");
}
return this.project ? this.project + "@" + host : "appwrite";
},
exportable: false,
});
})();
</script>