forked from lucianocosta/node-red-contrib-rocketchat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rocketchat-close.html
107 lines (104 loc) · 3.88 KB
/
rocketchat-close.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<script type="text/x-red" data-template-name="rocketchat-close">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="rocketchat-close.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]rocketchat-close.label.name">
</div>
<div class="form-row">
<label for="node-input-server"><i class="fa fa-rocket"></i> <span data-i18n="rocketchat-close.label.server"></span></label>
<input type="text" id="node-input-server" data-i18n="[placeholder]rocketchat-close.label.server">
</div>
<div class="form-row server-dependent">
<label for="node-input-destination"><i class="fa fa-inbox"></i> <span data-i18n="rocketchat-close.label.destination"></span></label>
<select id="node-input-destination" style="width: 70%">
<option value="live" data-i18n="rocketchat-close.destinations.live"></option>
<option value="live-all" data-i18n="rocketchat-close.destinations.live-all"></option>
</select>
</div>
<div id="row-live-token" class="form-row server-dependent">
<label for="node-input-liveChatTokenConfig">
<i class="fa fa-commenting-o"></i>
<span data-i18n="rocketchat-close.label.liveChatTokenConfig"></span>
</label>
<input type="text" id="node-input-liveChatTokenConfig" style="width: 70%;" data-i18n="[placeholder]rocketchat-close.label.liveChatTokenConfig">
</div>
<div id="row-live-all-time" class="form-row server-dependent">
<label for="node-input-liveTimeConfig">
<i class="fa fa-commenting-o"></i>
<span data-i18n="rocketchat-close.label.liveTimeConfig"></span>
</label>
<input type="text" id="node-input-liveTimeConfig" style="width: 70%;" data-i18n="[placeholder]rocketchat-close.label.liveTimeConfig">
</div>
</script>
<script type="text/javascript">
RED.nodes.registerType('rocketchat-close', {
category: 'Rocket․Chat',
color: '#F98F9D',
paletteLabel: 'Cleaner',
defaults: {
name: { value: '' },
server: { value: '', type: 'rocketchat-server' },
destination: { value: 'live' },
liveChatTokenConfig: {
value: '',
validate: RED.validators.typedInput('liveChatTokenConfigType'),
required: false,
},
liveChatTokenConfigType: { value: 'str' },
liveTimeConfig: {
value: '',
validate: RED.validators.typedInput('liveTimeConfigType'),
required: false,
},
liveTimeConfigType: { value: 'str' },
},
inputs: 1,
outputs: 1,
icon: 'rocketchat.png',
align: 'right',
label: function () {
return this.name || 'Rocket․Chat Cleaner';
},
oneditprepare: function () {
const node = this;
$('#node-input-server').change(function () {
const server = $(this).val();
if (server === '_ADD_') {
$('.server-dependent').hide();
} else {
$('.server-dependent').show();
}
});
$('#node-input-destination').change(function () {
const origin = $(this).val();
$('#row-live-token').hide();
$('#row-live-all-time').hide();
switch (origin) {
case 'live':
$('#row-live-token').show();
break;
case 'live-all':
$('#row-live-all-time').show();
break;
default:
break;
}
});
$('#node-input-liveChatTokenConfig').typedInput({
default: node.liveChatTokenConfigType || 'str',
types: ['msg', 'flow', 'global', 'env', 'str'],
});
$('#node-input-liveChatTokenConfig').typedInput('value', node.liveChatTokenConfig);
$('#node-input-liveChatTokenConfig').typedInput('type', node.liveChatTokenConfigType);
$('#node-input-liveTimeConfig').typedInput({
default: node.liveTimeConfigType || 'str',
types: ['msg', 'flow', 'global', 'env', 'str'],
});
$('#node-input-liveTimeConfig').typedInput('value', node.liveTimeConfig);
$('#node-input-liveTimeConfig').typedInput('type', node.liveTimeConfigType);
},
oneditsave: function () {
const node = this;
node.liveChatTokenConfigType = $('#node-input-liveChatTokenConfig').typedInput('type');
},
});
</script>