3 MAJ avec reboot obligatoire.
Les serveurs infogérés sont traités cette nuit.
3 MAJ avec reboot obligatoire.
Les serveurs infogérés sont traités cette nuit.
Une MAJ importante de sécurité avec reboot obligatoire est à effectuer sur vos Windows.
Tous les serveurs infogérés seront traités cette nuit par nos services.
Trois MAJ importantes avec reboot obligatoires sont à effectuées sur vos Windows.
Tous les serveurs infogérés seront traités cette nuit par nos services.
Vous avez pu remarquer que dans notre console d’infogérance certaines fonctions au niveau du serveur de mails sont manquantes.
Suite à la dernière MAJ de Icewarp nous avons pu découvrir que certaines commandes à l’API ont été modifiées ou non fonctionnelles. Après quelques nuits blanches, nous avons pu corriger dans l’urgence le listing et la création des emails.
Une nouvelle section pour la gestion des emails est en cours de finalisation, utilisant les dernières technologies (aspx + jquery + json + html5) elle devient nettement plus fluide avec une ré écriture complète de nos services qui discutent avec l’API de Icewarp et les nouvelles options apportées par les dernières MAJ. Je pense qu’on pourra publier nos travaux semaine prochaine, il nous reste plus qu’à ajouter la couche de sécurité / RD serveur.
Concernant les mots de passe, suite aux normes RGPD européennes ils ne seront désormais plus accessibles aux administrateurs des sites. Aussi pensez désormais à renseigner l’email alternatif qui vous permettra de re générer un nouveau mot de passe en cas de perte de ce dernier. Cet email peut être également renseigné dans les webmails.
Hébergement vôtre.
Trois MAJ importantes avec reboot obligatoires sont à effectuées sur vos Windows.
Tous les serveurs infogérés seront traités cette nuit par nos services.
Bien pratique les enum afin de lier une valeur entière à un texte, ex : 0 = chat, mais comment lister les valeurs ?
1 2 3 4 5 6 7 8 9 10 11 |
protected enum maListe : int { Default = 0, Chat = 1, Chien = 2 } foreach (var a in Enum.GetValues(typeof(maListe))) { sb.AppendFormat("<li>{0} - {1}</li>", (int)a, a.ToString()); } |
Et voilà on retrouve la valeur numérique et textuelle …
Entre 1 et 2 MAJ obligatoires avec reboot à la clef.
Tous les serveurs de niveau d’infogérance II et plus seront traités cette nuit.
Entre 1 à 2 KB avec reboot obligatoire.
Les serveurs infogérés sont traités cette nuit.
Je vous propose dans ce tuto de faire une recherche dans un array Json, à ce jour j’utilise deux méthodes, la première étant ma préférée.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var locs = [{ "id": 1, "text": "Chien" }, { "id": 2, "text": "Chat" }]; $(document).ready(function () { var idSearch = 1; var item = jQuery.grep(locs, function (n, i) { return (n.id == idSearch); }, false); if (item.length > 0) { var textClicked = item[0].text; console.log(textClicked); } )); |
On va chercher la ligne qui correspond à locs[n].id == 1, si on trouve on extrait le array qui correspond à la requête. Bien entendu si on trouve plusieurs enregistrements (item.length > 1) il faudra faire un for each afin d’afficher tous les enregistrements trouvés.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var locs = [{ "id": 1, "text": "Chien" }, { "id": 2, "text": "Chat" }]; $(document).ready(function () { var idClicked = 1; $.each(locs, function (i, v) { if (v.id == idClicked) { var textClicked = locs[i].text; console.log(textClicked); return false; // stop the loop } }); }); |
Cette méthode permet de trouver le premier enregistrement correspond à la recherche. Pour obtenir les mêmes avantages que la première méthode il faut créer un item, stocker le résultat dans ce dernier et inhiber la sortie du loop. Plus long à traiter car on scrute tous les enregistrements dans ce cas …
Remplir un select2 via un Json, rien de plus simple en quelques lignes :
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 |
<html> <head> <meta charset="utf-8" /> <title>JQuery select2 - remplissage auto</title> <!-- Jquery --> <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> <!-- Select 2 --> <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /> <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script> </head> <body> <p>Animal préféré :</p> <select id="idAnimal" class="select2"><option value="0">Animal ?</option></select> </body> </html> <script> // init Json var locs = []; // remplissage JSon, se réalise généralement via Ajax, dans ce cas je le fais en manuel item = {}; item["id"] = 1; item["text"] = "Chien"; locs.push(item); item = {}; item["id"] = 2; item["text"] = "Chat"; locs.push(item); // ça nous donne : // locs = [{"id":1, "text":"chien"},{"id":2, "text":"chat"}]; $(document).ready(function () { // remplissage du select désiré $('#idAnimal').select2({ data: $.map(locs, function (a) { return { "id": a.id, "text": a.text } }) }); // style global de tous les select $("select").select2({ width: '100%', allowClear: false, }) }); </script> |
Bien entendu il faut en entête appeler jquery et la bibliothèque de Select2 :
https://select2.org/getting-started/installation
https://code.jquery.com/
Select2 est prédéfini avec les valeurs id et text, si vous créez votre Json avec ces deux identifiants on peut simplifier le remplissage du select par :
1 2 3 |
$('#idAnimal').select2({ data: locs }); |
Vous souhaitez changer la valeur du select en sélectionnant une valeur, Jquery répond à ce besoin :
1 2 |
// change select id $("#idAnimal").val(1).change(); |
Vous souhaitez récupérez la valeur du select en automatique sur changement du select (j’ai utilisé .each si vous avez un Json complexe et souhaitez retrouver des informations complémentaires) :
1 2 3 4 5 6 7 8 9 10 11 12 |
$("#idAnimal").on("change", function () { var idClicked = this.value; // retrieve Id selected $.each(locs, function (i, v) { if (v.id == idClicked) { var textClicked = locs[i].text; console.log(textClicked); // display text return false; // stops the loop } }); }); |
Résultat via CodePen :
https://codepen.io/laurent-zminka/pen/WNojyxN