33d7c9c46a
README, NODES.md, install scripts, palette help text, and example flows — node .js logic unchanged.
66 lines
3.3 KiB
HTML
66 lines
3.3 KiB
HTML
<script type="text/javascript">
|
|
RED.nodes.registerType('nc-office', {
|
|
category: 'nextcloud collabora',
|
|
color: '#7950a2',
|
|
defaults: {
|
|
name: { value: '' },
|
|
config: { type: 'nc-collab-config', required: true },
|
|
operation: { value: 'templates:list' }
|
|
},
|
|
inputs: 1,
|
|
outputs: 1,
|
|
icon: 'font-awesome/fa-file-text-o',
|
|
label: function () {
|
|
return this.name || `nc-office ${this.operation}`;
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<script type="text/html" data-template-name="nc-office">
|
|
<div class="form-row">
|
|
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
<input type="text" id="node-input-name">
|
|
</div>
|
|
<div class="form-row">
|
|
<label for="node-input-config"><i class="fa fa-cog"></i> Config</label>
|
|
<input type="text" id="node-input-config">
|
|
</div>
|
|
<div class="form-row">
|
|
<label for="node-input-operation"><i class="fa fa-wrench"></i> Operation</label>
|
|
<select id="node-input-operation">
|
|
<option value="templates:list">templates:list</option>
|
|
<option value="templates:create">templates:create</option>
|
|
<option value="template:extractFields">template:extractFields</option>
|
|
<option value="template:fillFields">template:fillFields</option>
|
|
<option value="document:direct">document:direct</option>
|
|
<option value="document:public">document:public</option>
|
|
<option value="files:convert">files:convert</option>
|
|
<option value="assets:create">assets:create</option>
|
|
</select>
|
|
</div>
|
|
</script>
|
|
|
|
<script type="text/html" data-help-name="nc-office">
|
|
<p><strong>Nextcloud Office API.</strong> Traffic goes to Nextcloud OCS richdocuments — not directly to <code>/cool</code> (except <code>files:convert</code>, which internally runs WebDAV + CODE + WebDAV).</p>
|
|
<p>Base: <code>.../ocs/v2.php/apps/richdocuments/api/v1/...</code></p>
|
|
|
|
<table style="width:100%; font-size:11px;">
|
|
<tr><th>Operation</th><th>Does</th></tr>
|
|
<tr><td><code>templates:list</code></td><td>List templates (optional <code>templateType</code>)</td></tr>
|
|
<tr><td><code>templates:create</code></td><td>New file from NC template</td></tr>
|
|
<tr><td><code>template:extractFields</code></td><td>Field JSON (like extract, via NC)</td></tr>
|
|
<tr><td><code>template:fillFields</code></td><td>Fill template, save in NC</td></tr>
|
|
<tr><td><code>document:direct</code></td><td><code>editorUrl</code> — open file in Office</td></tr>
|
|
<tr><td><code>document:public</code></td><td>Same with <code>shareToken</code></td></tr>
|
|
<tr><td><code>files:convert</code></td><td>NC file → new NC file (e.g. PDF)</td></tr>
|
|
<tr><td><code>assets:create</code></td><td>One-shot URL to insert into open editor</td></tr>
|
|
</table>
|
|
|
|
<p><code>fileId</code> can be omitted — looked up via WebDAV PROPFIND from <code>ncPath</code>.</p>
|
|
<p>Override via <code>msg.operation</code>. Common fields: <code>ncPath</code>, <code>fileId</code>, <code>destNcPath</code>, <code>fields</code>.</p>
|
|
|
|
<pre>inject { ncPath: "/Documents/contract.docx" }
|
|
→ nc-office (document:direct)
|
|
→ debug (editorUrl)</pre>
|
|
</script>
|