Browse code

init witj jeedom template

louis.jonget authored on17/01/2023 08:47:47
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,209 @@
1
+<?php
2
+if (!isConnect('admin')) {
3
+	throw new Exception('{{401 - Accès non autorisé}}');
4
+}
5
+// Déclaration des variables obligatoires
6
+$plugin = plugin::byId('template');
7
+sendVarToJS('eqType', $plugin->getId());
8
+$eqLogics = eqLogic::byType($plugin->getId());
9
+?>
10
+
11
+<div class="row row-overflow">
12
+	<!-- Page d'accueil du plugin -->
13
+	<div class="col-xs-12 eqLogicThumbnailDisplay">
14
+		<legend><i class="fas fa-cog"></i>  {{Gestion}}</legend>
15
+		<!-- Boutons de gestion du plugin -->
16
+		<div class="eqLogicThumbnailContainer">
17
+			<div class="cursor eqLogicAction logoPrimary" data-action="add">
18
+				<i class="fas fa-plus-circle"></i>
19
+				<br>
20
+				<span>{{Ajouter}}</span>
21
+			</div>
22
+			<div class="cursor eqLogicAction logoSecondary" data-action="gotoPluginConf">
23
+				<i class="fas fa-wrench"></i>
24
+				<br>
25
+				<span>{{Configuration}}</span>
26
+			</div>
27
+		</div>
28
+		<legend><i class="fas fa-table"></i> {{Mes templates}}</legend>
29
+		<?php
30
+		if (count($eqLogics) == 0) {
31
+			echo '<br><div class="text-center" style="font-size:1.2em;font-weight:bold;">{{Aucun équipement Template trouvé, cliquer sur "Ajouter" pour commencer}}</div>';
32
+		} else {
33
+			// Champ de recherche
34
+			echo '<div class="input-group" style="margin:5px;">';
35
+			echo '<input class="form-control roundedLeft" placeholder="{{Rechercher}}" id="in_searchEqlogic">';
36
+			echo '<div class="input-group-btn">';
37
+			echo '<a id="bt_resetSearch" class="btn" style="width:30px"><i class="fas fa-times"></i></a>';
38
+			echo '<a class="btn roundedRight hidden" id="bt_pluginDisplayAsTable" data-coreSupport="1" data-state="0"><i class="fas fa-grip-lines"></i></a>';
39
+			echo '</div>';
40
+			echo '</div>';
41
+			// Liste des équipements du plugin
42
+			echo '<div class="eqLogicThumbnailContainer">';
43
+			foreach ($eqLogics as $eqLogic) {
44
+				$opacity = ($eqLogic->getIsEnable()) ? '' : 'disableCard';
45
+				echo '<div class="eqLogicDisplayCard cursor '.$opacity.'" data-eqLogic_id="' . $eqLogic->getId() . '">';
46
+				echo '<img src="' . $plugin->getPathImgIcon() . '">';
47
+				echo '<br>';
48
+				echo '<span class="name">' . $eqLogic->getHumanName(true, true) . '</span>';
49
+				echo '<span class="hiddenAsCard displayTableRight hidden">';
50
+				echo ($eqLogic->getIsVisible() == 1) ? '<i class="fas fa-eye" title="{{Equipement visible}}"></i>' : '<i class="fas fa-eye-slash" title="{{Equipement non visible}}"></i>';
51
+				echo '</span>';
52
+				echo '</div>';
53
+			}
54
+			echo '</div>';
55
+		}
56
+		?>
57
+	</div> <!-- /.eqLogicThumbnailDisplay -->
58
+
59
+	<!-- Page de présentation de l'équipement -->
60
+	<div class="col-xs-12 eqLogic" style="display: none;">
61
+		<!-- barre de gestion de l'équipement -->
62
+		<div class="input-group pull-right" style="display:inline-flex;">
63
+			<span class="input-group-btn">
64
+				<!-- Les balises <a></a> sont volontairement fermées à la ligne suivante pour éviter les espaces entre les boutons. Ne pas modifier -->
65
+				<a class="btn btn-sm btn-default eqLogicAction roundedLeft" data-action="configure"><i class="fas fa-cogs"></i><span class="hidden-xs"> {{Configuration avancée}}</span>
66
+				</a><a class="btn btn-sm btn-default eqLogicAction" data-action="copy"><i class="fas fa-copy"></i><span class="hidden-xs">  {{Dupliquer}}</span>
67
+				</a><a class="btn btn-sm btn-success eqLogicAction" data-action="save"><i class="fas fa-check-circle"></i> {{Sauvegarder}}
68
+				</a><a class="btn btn-sm btn-danger eqLogicAction roundedRight" data-action="remove"><i class="fas fa-minus-circle"></i> {{Supprimer}}
69
+				</a>
70
+			</span>
71
+		</div>
72
+		<!-- Onglets -->
73
+		<ul class="nav nav-tabs" role="tablist">
74
+			<li role="presentation"><a href="#" class="eqLogicAction" aria-controls="home" role="tab" data-toggle="tab" data-action="returnToThumbnailDisplay"><i class="fas fa-arrow-circle-left"></i></a></li>
75
+			<li role="presentation" class="active"><a href="#eqlogictab" aria-controls="home" role="tab" data-toggle="tab"><i class="fas fa-tachometer-alt"></i> {{Equipement}}</a></li>
76
+			<li role="presentation"><a href="#commandtab" aria-controls="home" role="tab" data-toggle="tab"><i class="fas fa-list"></i> {{Commandes}}</a></li>
77
+		</ul>
78
+		<div class="tab-content">
79
+			<!-- Onglet de configuration de l'équipement -->
80
+			<div role="tabpanel" class="tab-pane active" id="eqlogictab">
81
+				<!-- Partie gauche de l'onglet "Equipements" -->
82
+				<!-- Paramètres généraux et spécifiques de l'équipement -->
83
+				<form class="form-horizontal">
84
+					<fieldset>
85
+						<div class="col-lg-6">
86
+							<legend><i class="fas fa-wrench"></i> {{Paramètres généraux}}</legend>
87
+							<div class="form-group">
88
+								<label class="col-sm-4 control-label">{{Nom de l'équipement}}</label>
89
+								<div class="col-sm-6">
90
+									<input type="text" class="eqLogicAttr form-control" data-l1key="id" style="display:none;">
91
+									<input type="text" class="eqLogicAttr form-control" data-l1key="name" placeholder="{{Nom de l'équipement}}">
92
+								</div>
93
+							</div>
94
+							<div class="form-group">
95
+								<label class="col-sm-4 control-label" >{{Objet parent}}</label>
96
+								<div class="col-sm-6">
97
+									<select id="sel_object" class="eqLogicAttr form-control" data-l1key="object_id">
98
+										<option value="">{{Aucun}}</option>
99
+										<?php
100
+										$options = '';
101
+										foreach ((jeeObject::buildTree(null, false)) as $object) {
102
+											$options .= '<option value="' . $object->getId() . '">' . str_repeat('&nbsp;&nbsp;', $object->getConfiguration('parentNumber')) . $object->getName() . '</option>';
103
+										}
104
+										echo $options;
105
+										?>
106
+									</select>
107
+								</div>
108
+							</div>
109
+							<div class="form-group">
110
+								<label class="col-sm-4 control-label">{{Catégorie}}</label>
111
+								<div class="col-sm-6">
112
+									<?php
113
+									foreach (jeedom::getConfiguration('eqLogic:category') as $key => $value) {
114
+										echo '<label class="checkbox-inline">';
115
+										echo '<input type="checkbox" class="eqLogicAttr" data-l1key="category" data-l2key="' . $key . '" >' . $value['name'];
116
+										echo '</label>';
117
+									}
118
+									?>
119
+								</div>
120
+							</div>
121
+							<div class="form-group">
122
+								<label class="col-sm-4 control-label">{{Options}}</label>
123
+								<div class="col-sm-6">
124
+									<label class="checkbox-inline"><input type="checkbox" class="eqLogicAttr" data-l1key="isEnable" checked>{{Activer}}</label>
125
+									<label class="checkbox-inline"><input type="checkbox" class="eqLogicAttr" data-l1key="isVisible" checked>{{Visible}}</label>
126
+								</div>
127
+							</div>
128
+
129
+							<legend><i class="fas fa-cogs"></i> {{Paramètres spécifiques}}</legend>
130
+							<div class="form-group">
131
+								<label class="col-sm-4 control-label">{{Nom du paramètre n°1}}
132
+									<sup><i class="fas fa-question-circle tooltips" title="{{Renseignez le paramètre n°1 de l'équipement}}"></i></sup>
133
+								</label>
134
+								<div class="col-sm-6">
135
+									<input type="text" class="eqLogicAttr form-control" data-l1key="configuration" data-l2key="param1" placeholder="{{Paramètre n°1}}">
136
+								</div>
137
+							</div>
138
+							<div class="form-group">
139
+								<label class="col-sm-4 control-label"> {{Mot de passe}}
140
+									<sup><i class="fas fa-question-circle tooltips" title="{{Renseignez le mot de passe}}"></i></sup>
141
+								</label>
142
+								<div class="col-sm-6">
143
+									<input type="text" class="eqLogicAttr form-control inputPassword" data-l1key="configuration" data-l2key="password">
144
+								</div>
145
+							</div>
146
+							<!-- Exemple de champ de saisie du cron d'auto-actualisation avec assistant -->
147
+							<!-- La fonction cron de la classe du plugin doit contenir le code prévu pour que ce champ soit fonctionnel -->
148
+							<div class="form-group">
149
+								<label class="col-sm-4 control-label">{{Auto-actualisation}}
150
+									<sup><i class="fas fa-question-circle tooltips" title="{{Fréquence de rafraîchissement des commandes infos de l'équipement}}"></i></sup>
151
+								</label>
152
+								<div class="col-sm-6">
153
+									<div class="input-group">
154
+										<input type="text" class="eqLogicAttr form-control roundedLeft" data-l1key="configuration" data-l2key="autorefresh" placeholder="{{Cliquer sur ? pour afficher l'assistant cron}}">
155
+										<span class="input-group-btn">
156
+											<a class="btn btn-default cursor jeeHelper roundedRight" data-helper="cron" title="Assistant cron">
157
+												<i class="fas fa-question-circle"></i>
158
+											</a>
159
+										</span>
160
+									</div>
161
+								</div>
162
+							</div>
163
+						</div>
164
+
165
+						<!-- Partie droite de l'onglet "Équipement" -->
166
+						<!-- Affiche un champ de commentaire par défaut mais vous pouvez y mettre ce que vous voulez -->
167
+						<div class="col-lg-6">
168
+							<legend><i class="fas fa-info"></i> {{Informations}}</legend>
169
+							<div class="form-group">
170
+								<label class="col-sm-4 control-label">{{Description}}</label>
171
+								<div class="col-sm-6">
172
+									<textarea class="form-control eqLogicAttr autogrow" data-l1key="comment"></textarea>
173
+								</div>
174
+							</div>
175
+						</div>
176
+					</fieldset>
177
+				</form>
178
+			</div><!-- /.tabpanel #eqlogictab-->
179
+
180
+			<!-- Onglet des commandes de l'équipement -->
181
+			<div role="tabpanel" class="tab-pane" id="commandtab">
182
+				<a class="btn btn-default btn-sm pull-right cmdAction" data-action="add" style="margin-top:5px;"><i class="fas fa-plus-circle"></i> {{Ajouter une commande}}</a>
183
+				<br><br>
184
+				<div class="table-responsive">
185
+					<table id="table_cmd" class="table table-bordered table-condensed">
186
+						<thead>
187
+							<tr>
188
+								<th class="hidden-xs" style="min-width:50px;width:70px;">ID</th>
189
+								<th style="min-width:200px;width:350px;">{{Nom}}</th>
190
+								<th>{{Type}}</th>
191
+								<th style="min-width:260px;">{{Options}}</th>
192
+								<th>{{Etat}}</th>
193
+								<th style="min-width:80px;width:200px;">{{Actions}}</th>
194
+							</tr>
195
+						</thead>
196
+						<tbody>
197
+						</tbody>
198
+					</table>
199
+				</div>
200
+			</div><!-- /.tabpanel #commandtab-->
201
+
202
+		</div><!-- /.tab-content -->
203
+	</div><!-- /.eqLogic -->
204
+</div><!-- /.row row-overflow -->
205
+
206
+<!-- Inclusion du fichier javascript du plugin (dossier, nom_du_fichier, extension_du_fichier, id_du_plugin) -->
207
+<?php include_file('desktop', 'template', 'js', 'template');?>
208
+<!-- Inclusion du fichier javascript du core - NE PAS MODIFIER NI SUPPRIMER -->
209
+<?php include_file('core', 'plugin.template', 'js');?>