| 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(' ', $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');?>
|