A3.4 Release 14

A3.4.1 Note de release

A3.4.1.1 Dynacase Control

Une mise à jour de Dynacase Control vous est proposée lorsque vous vous connectez sur son interface.

Des bugs sont corrigés, mais et une fonction majeure est ajoutée pour exporter les informations relatives aux contextes. Ce mécanisme est décrit dans le Manuel d'installation et d'exploitation, au § 5.4 Enregistrement d'un contexte.

Pour plus de détail, vous pouvez consulter le tracker de développement pour la version 1.5 release 2.

A3.4.1.2 Socle technique

A3.4.1.2.1 PHP

La version 5.6 est désormais supportée.

Les versions PHP 5.4 et 5.5 ne seront plus supportées à compter de la release de maintenance publiée en mai 2016. Elle sont maintenues par les développeurs de PHP uniquement pour corriger des failles de sécurité. Pour plus de détails, vous pouvez vous référer à la roadmap PHP.

Si une anomalie Dynacase est détectée et qu'elle se trouve être liée à un dysfonctionnement de PHP, la montée en version 5.6 deviendra nécessaire.

La version 7 de PHP est annoncée pour la fin de l'année 2015 (actuellement en Release Candidate). Le fonctionnement de Dynacase est en cours de validation sur cette version. Elle sera supportée à compter de la release de maintenance publiée en mai 2016.

A3.4.1.2.2 PostgreSQL

La version 9.4 est désormais supportée.

La versions 9.1 (fin de vie septembre 2016) de PostgreSQL ne sera plus supportée à compter de la release de maintenance publiée en mai 2016.

A3.4.1.3 Points particuliers

A3.4.1.3.1 Document UI

Le module Dynacase Document User Interface (DDUI) est développé par Anakeen pour apporter aux documents Dynacase une interface graphique moderne profitant des avancées du standard web HTML5.

Le module DDUI est une stack Front-End utilisant l’API HTTP de Dynacase. Cette Stack est composée de bibliothèques robustes et éprouvées (Require, Backbone, Underscore, Mustache, KendoUI et Bootstrap).

Stack DDUI

Figure 4. Stack DDUI

Le module DDUI peut être utilisé tel que ou facilement personnalisé. DDUI est assemblé à partir de widgets, eux mêmes paramétrables et permet ainsi de composer le document à façon.

DDUI permet de créer une interface graphique selon les principes du Responsive Design pour que l’IHM s’adapte aux différentes tailles d'écrans (ordinateur, portable, tablette).

Grace à sa conception (modularité) et le respect des 'standards' HTML5 (appcahe, storage), DDUI peut être utilisé pour réaliser des applications offline. Ces applications sont destinés à des usages nomades (train, avion,..), à des utilisations en environnement contraint (mauvaise connexion internet) ou fournissent une résilience aux pannes serveurs (les utilisateurs pouvant continuer à travailler en attendant que les serveurs soient de nouveau Up).

DDUI fonctionne avec des navigateurs récents (IE11, Chrome 40, Firefox 35 et suivants).

Pour résumer, le module éditeur DDUI apporte :

  • une IHM moderne pour les utilisateurs;
  • une base de développement d’IHM sur mesure facilité;
  • une IHM basée sur stack HTML5;
  • une IHM prévue pour etre adaptée au Responsive Design;
  • une IHM prévue pour intégrer un fonctionnement en offline.

Vous trouverez plus d'information sur son architecture et son fonctionnementen consultant la documentation de référence.

A3.4.1.3.1.1 Exemple d'utilisation de DDUI

Ci-dessous, une application classique utilise DDUI (partie de droite) sans customisation particulière et présente une liste de documents (partie de gauche). On peut noter quelques changement dans la présentation du document. L'apparence générale reste suffisamment proche des documents classique pour ne pas perturber les utilisateurs actuels.

DDUI sur écran large

Figure 5. DDUI sur écran large

La capture suivante présente le même application sur un écran de largeur réduite. On peut noter que la liste de documents n'est plus affichée et devient accessible par une icône (repère 1), mais surtout un exemple de prise en compte 'responsive' de la largeur allouée au document : au repère 2, le dernier onglet affiche le nombre d'onglet supplémentaires accessibles.

DDUI sur écran étroit

Figure 6. DDUI sur écran étroit

Le module est distribué sous licence Anakeen.  Il est disponible sur votre dépôt privé selon votre contrat EEC.

A3.4.1.3.2 Nouveaux 'installer'

Comme nous l'avons vu précédemment, le fonctionnement de Dynacase Document UI utilise une stack nouvelle. Ces divers composants sont fournis au travers de modules Dynacase de type 'installer' :

  • Bootstrap 3, version 3.2.0
  • Font Awesome, version 4.4.0
  • Kendo UI, version 2015.3.390
  • Less, version 1.7
  • Mustache.js, version 2.6.0
  • Mustache.php, version 1.7
  • Require JS, version 2.1.13
  • Underscore, version 1.7.0

A3.4.1.3.3 Core

Cette release apporte un nombre important de corrections (voir la liste complète des issues traitées).

Quelques améliorations de mécanismes internes sont identifiées dans la note d'édition du manuel de référence, édition 9.

A3.4.1.3.3.1 Vérification de la validité du HTML (attributs HtmlText)

Lors de la manipulation des valeurs d'attributs de type HTMLTEXT, Dynacase s'assure de la validité du HTML (pour plus de détail cf. les issues [5595] & [5695].

A3.4.1.3.3.2 Connexion persistante à la base PostgreSQL

Nous avons désactivé la possibilité de mettre en place une connexion persistante entre Dynacase et PostgreSQL via un paramètre applicatif Core. À noter que ce mode de connexion a toujours été déconseillé et n'est pas supporté.

Ce mode de fonctionnement peut devenir problématique et nécessite des précautions particulières pour la gestions de transactions, verrous, configuration PostgreSQL, etc. (Pour plus d'information).

A3.4.1.3.4 API HTTP

Une mise à jour propose quelques améliorations de l'API; une nouvelle édition du manuel de référence est publiée.

A3.4.2 Documentation

Documentations mises à jour :

A3.4.3 Mises à jour

A3.4.3.1 Depuis une release 3.2 précédente

Pas d'instruction particulière.

A3.4.3.2 Depuis une version 3.1

Voir le chapitre [Migration]

A3.4.4 Liste complète des demandes par module

A3.4.4.1 CKEditor 4 installer, version 4.5.3

Lien vers le tracker de développement pour CKEditor 4 installer version 4.5.3

  • [5820] : Montée en version CKEditor
  • [5075] : Les fichiers PHP de samples sont exécutables

A3.4.4.2 Core, version 3.2.20

Lien vers le tracker de développement pour Core version 3.2.20

  • [5842] : [Import IHM/Import XML] Le fichier suivant ne s'importe pas
  • [5841] : [ImportXML/Import Manuel] XML en erreur d'import => aucun affichage dans l'interface
  • [5840] : [ExportXML/Export ZIP] Lors de l'utilisation de la fonction d'export de document en XML le fichier téléchargé par chrome s'appelle admin.php
  • [5828] : suppression du mode de connexion persistante
  • [5816] : Erreur "Error: Permission denied to access property "Ext"" quand on utilise Dynacase dans une iframe
  • [5805] : addLogMsg tronqué
  • [5804] : WSH: Action administration
  • [5797] : Corruption valeurs importés par importDocuments et options csv-enclosure=auto
  • [5760] : Typo s/enought/enough/ in ErrorCodeATTR.php
  • [5742] : Symlink de DocumentRoot et erreur "403 Forbidden" de resizeimg
  • [5740] : Correction Commentaire et notice et avertissement
  • [5739] : Nom du téléchargement de fichier
  • [5738] : Image : autorotation
  • [5723] : Message d'erreur DFLT0004/ATTR1260 pas clair sur l'origine réelle du problème
  • [5716] : Ecrasement de valeurs d'attributs par Doc::getMoreValues()
  • [5714] : Code JS erroné généré par popup_util.php
  • [5713] : Le script d'API importDocuments ne remonte pas d'erreur lorsque --file n'est pas valide
  • [5710] : [Login] La page de login ne fait pas un redirect vers l'url entière qui était demandée à l'origine
  • [5695] : Erreur JS Uncaught HierarchyRequestError: Failed to execute 'appendChild' on 'Node': The new child element contains the parent.moveFieldset
  • [5694] : API destroyFamily ne supprime pas la séquence seq_docxxx
  • [5692] : Check "attribute orphean" de supervisor
  • [5688] : Problème supervisor/index.html suite à migration
  • [5656] : PHP Fatal error: Call to a member function read() on a non-object in /var/www/test/WHAT/Class.Application.php on line 742
  • [5653] : [htmltext] Il n'est plus possible de créer des images via l'ihm
  • [5642] : Erreur "vous n'avez pas le droit de modifier cet attribut : attr_xxx" sur colonne de array avec visibilité "I"
  • [5632] : [Rapport/Recherche] La propriété date de création est source de confusion
  • [5595] : [Layout/OOO] HTMLTEXT invalide : en cas de texte html invalide une fatal error est remontée et bloque l'exécution du programme
  • [5584] : {DB0001} query error : ERROR: duplicate key value violates unique constraint "pg_type_typname_nsp_index" DETAIL: Key (typname, typnamespace)=(session_conf, 43891) already exists.
  • [5581] : i18n : génération des catalogue javascript
  • [5566] : Message d'erreur non-approprié [{ATTR1271} key must not have accent characters in enum declaration "|N/A" for "s_enum" attribute]
  • [5538] : SearchDoc ne réinitialise pas correctement les valeurs des attributs des familles filles si ceux-ci sont dans un array
  • [5520] : Substitution LOGDATE de configure.in et problème de build non déterministe
  • [5499] : [sécurité] RCE via FDL:EXPORTFILE
  • [5498] : [sécurité] XSS avec la fonction d'export d'images ("file/.../.../?inline=yes" et "app=FDL&action=EXPORTFILE&...&inline=yes")
  • [5496] : [sécurité] XSS dans FDL:EDITICON
  • [5495] : [sécurité] XSS dans DOCADMIN
  • [5494] : [sécurité] XSS dans FREEDOM:OPENFOLIO
  • [5493] : [sécurité] XSS dans FDL:EDITINSERTDOCUMENT
  • [5492] : Perte de style/police HTML dans l'éditeur des modèles de mail
  • [5487] : Double indexation des attributs calculés de type fichier.
  • [5461] : [URL file] url file et accès non connecté
  • [5431] : [wstart] Ajout d'options
  • [5430] : Problème avec CORE_TMPDIR et FREEDOM_UPLOADDIR après restauration d'une archive de contexte
  • [5421] : Doc::Affect et nettoyage des valeurs
  • [5362] : [Rapport] Contrainte sur les dates vide
  • [5277] : [Rapport/Texte] Phrase d'erreur en cas de colonnes absentes
  • [5092] : Problème de titre sur le bouton quicksave CKEditor

A3.4.4.3  Document UIs, version 1.0.0

Lien vers le tracker de développement pour Document UIs version 1.0.0

  • [5839] : [Widget/docid/array] Le flash après sélection est présent sur l'ensemble de la colonne et pas uniquement le docid qui vient d'être valué
  • [5838] : [Widget/Docid/Multiple] Le widget docid multiple dans un tableau enregistre en double l'information
  • [5837] : [Widget/Int] Dans un tableau le widget n'est pas affiché correctement
  • [5830] : [Kitchensink] Les widgets unitaires ne sont plus affichés correctement
  • [5814] : Ajout kendo Configuration sur aide à la saisie
  • [5810] : Menu position fixed
  • [5808] : Configuration renderAccess pour les transitions
  • [5807] : Affichage de la transition déborde
  • [5806] : Break message tooltip
  • [5803] : Uniformisation des options sur les liens
  • [5800] : [TU] Réparer les TU
  • [5795] : [IHM] Changement d'état sans les droits
  • [5778] : renommer setDisplayedLineNumber en setMaxDisplayedLineNumber
  • [5776] : refactorer la gestion des onglets pour la porter au niveau du document
  • [5774] : renommer setDownloadInline en setContentDispositionInline
  • [5770] : regrouper les options permettant de définir les différents messages sur les attributs dans une unique option
  • [5764] : Ajouter la classe dcpDocument--create lors des créations
  • [5749] : [IHM] Doubler la taille des sous menus
  • [5741] : Option windowheight dans les attributs
  • [5736] : Evénement "change" sur attribut ne permet pas la modification
  • [5735] : Retour d'erreur de l'aide à la saisie
  • [5728] : Widget Date : copy/paste
  • [5724] : Event beforeChangeState si pas de paramètre
  • [5722] : [Save] En cas d'erreur de contrainte le fail n'est pas déclenché
  • [5720] : Menu interface
  • [5718] : Prise en compte option heigth et width dans menu target window
  • [5717] : Faciliter la surcharge d'etag
  • [5715] : [Edition/Fichier/Tooltip] Les tooltips ne s'effacent pas toujours après avoir déposé un fichier et ils persistent sur les autres onglets
  • [5709] : [Lock] Lorsque la requête de lock échoue au passage en édition le document est bloqué
  • [5708] : [File] Lorsque des fichiers sont dans un tableau en édition en upload concurrente le premier à arriver sur le serveur annule toutes les autres upload
  • [5706] : Message d'erreur encodé
  • [5705] : Double ready sur beforeRender
  • [5704] : Message d'erreur de transition
  • [5702] : [Event] Les properties ne sont pas récupérables lorsque le document n'est pas initialisé
  • [5700] : [Event] Les events sont déclenchés en double s'ils sont insérés plus d'une fois
  • [5699] : Les labels ne sont plus responsive en petite résolution
  • [5698] : Encapsulation jQuery
  • [5691] : [Erreur] Erreur lors de l'insertion d'event trop tôt
  • [5690] : les callback de fetch, save, etc. doivent être déferés
  • [5687] : [Attribut/hidden] Lorsqu'un attribut hidden est dans un template le widget ne peut pas se rendre
  • [5686] : [attributeInterface] Ajouter un change label
  • [5685] : [Suppression] message: "Cannot read property 'requestAnimationFrame' of null"
  • [5684] : [BeforceClose] Les valeurs du model en cours ne sont plus ré-injectées au beforeClose
  • [5683] : [fetch/lock] Lorsque l'on fetch un autre document en partant d'une vue d'édition vers une vue d'édition le lock n'est pas supprimé
  • [5682] : ajouter une méthode setLabel dans les common options
  • [5679] : Accès à la structure même si la famille n'est pas visible
  • [5678] : [Document/Properites] Il y une confusion entre les propriétés courantes du model et celles reçues par le serveur
  • [5677] : [attributeInterface] L'attributeInterface laisse leaker des objets backbone (collection d'enfants)
  • [5676] : Menu : ajout getter pour la closure des menus dynamiques
  • [5675] : Retour erreur dans menu dynamique
  • [5674] : Affichage des contraintes dans les tableaux personnalisés
  • [5673] : Menu parasite en création
  • [5671] : [DocumentController/deleteDocument] Impossible de supprimer un document en édition avec l'api
  • [5670] : [toJSON] Le toJSON du modèle échoue si les attributs ne sont pas déjà présent
  • [5669] : [Event/Register] Si l'enregistrement des premier événement est fait pendant le fetch cela lève une exception
  • [5668] : [beforeAttributeRender/attributeReady/Array] Ajouter l'index
  • [5663] : [loader] 850 nuances de milliseconds : delay sur la suppression du masque
  • [5662] : [showEmpty] Ajout de la gestion du booléen true
  • [5661] : le loading du widget document ne masque pas l'intégralité du document
  • [5660] : ajout d'une méthode permettant de "désactiver le document"
  • [5659] : Les contraintes donnent l'impression d'être asynchrones alors qu'elles ne le sont pas
  • [5655] : [Template] Array il manque la classe dcpAttribute__content sur les templates dans les array
  • [5652] : [Widget/Event] Identifier le documentloaded du widget empty (pré chargé sans document) de celui chargé
  • [5651] : [Aide à la saisie/Widget custom] Les aides à la saisie ne fonctionnent pas sur les widgets custom
  • [5650] : [Reinit] Le reinit n'est pas complet
  • [5649] : [Document] Firefox only : quand le document est chargé dans une iframe de même url au sein d'un document rien ne se passe
  • [5648] : [View] Il n'y a pas de mot clef pour la vue de création par défaut
  • [5647] : [Evenement] Si on ajoute des événements sur contrôleur externe en mode sans document alors ça plante
  • [5644] : Pouvoir ajouter customData au fetch
  • [5643] : Controlleur externe show message
  • [5641] : Catalogue de langue client
  • [5640] : Tooltip persitant
  • [5639] : Gestion des erreurs : gérer les erreurs réseau
  • [5638] : [IHM] Page de fallback
  • [5637] : Menu: Accès au label de menu
  • [5635] : Menu: ajout des getter sur les items
  • [5634] : Accès documentController sur check de listener
  • [5630] : le collapse des frames replie les arrays customisés à la place de la frame
  • [5629] : la détection des templates de tableau échoue dans certains cas
  • [5627] : Evénement uploadFile
  • [5626] : Mauvaise prise en compte de l'option inline
  • [5625] : Pas de retour sur triggerEvent dans le contrôleur externe
  • [5624] : Ajout événement downloadFile
  • [5618] : Workaround for upload file for IE9
  • [5615] : l'événement beforeAttributeRender n'est pas déclenché pour les attributs dans un array
  • [5613] : [Initialisation des widgets] Initialisation des widgets ne se fait pas bien sur les colonnes de array
  • [5612] : ajouter le attrid dans les td des arrays
  • [5611] : [i18n] Le path de la ressource contient un / de trop
  • [5610] : [Widget/attibute] Utiliser la getValue pour la génération de l'event change du widget
  • [5609] : [Injection du JS] L'injection du JS doit être faite avant le rendu de la page
  • [5608] : La détection de changement d'attribut n'est pas toujours juste
  • [5607] : uniformisation des noms d'événement sur les attributs
  • [5606] : ajout d'un événement avant le rendu d'un attribut
  • [5605] : Ajoout d'une méthode permettant de récupérer les données d'initialisation du widget pour un objet attribute
  • [5604] : [Widget/Array] Le header de toolcell est en fontsize 0.8
  • [5603] : les énumérés en verticalDisplay ne sont pas correctement sélectionnés
  • [5602] : renommer \Dcp\Ui\EnumRenderOptions::display en \Dcp\Ui\EnumRenderOptions::setDisplay
  • [5601] : Supprimer dépendance kendo sur le modèle de document
  • [5600] : Typage des modèles Backbone
  • [5599] : il est difficile de cacher les tools sur un tableau en U avec un template spécifique
  • [5598] : impossible de mettre en place le mode responsive sur un tableau qui a un template spécifique
  • [5597] : Les classes nécessaires ne sont pas ajoutées à la table lors de l'utilisation de template de tableau
  • [5596] : Ajout d'un etag sur la page de préchargement
  • [5594] : [Controlleur Externe] Le contrôleur ne délivre pas l'événement documentunloaded
  • [5589] : Require dataTable path
  • [5583] : Intégrer le lancement de karma pour les autotests
  • [5578] : l'événement load du widget n'est pas prefixé
  • [5577] : race condition sur firefox: le load de l'iframe est déclenché avant qu'on l'écoute
  • [5576] : l'enregistrement des événements ne doit pas dépendre du chargement de l'iframe
  • [5575] : [Action/View] Supprimer les traitements sur les paramètres
  • [5573] : Renommer documentLinkSelected en actionClick
  • [5572] : le « nouveau document » contient des valeurs de l’ancien (au beforeclose notamment)
  • [5570] : l'événement changedocument du widget docid est mal nommé
  • [5569] : les événements documentLinkSelected ne se déclenchent pas lors du clic sur un docid en consultation
  • [5554] : Ressource Structure
  • [5547] : View et refresh
  • [5546] : Aiguillage du Contrôle de render
  • [5545] : Custom Data : client -> serveur
  • [5544] : Custom Data : serveur -> client
  • [5543] : renommer la méthode addEvent du widget document en addEventListener
  • [5542] : Lock et vue d'édition
  • [5541] : Ajout événement custom
  • [5539] : [Document] La sélection ne fonctionne pas
  • [5528] : Menu de consultation par défaut
  • [5527] : Page de chargement
  • [5526] : Document Controller : Contrainte colonne
  • [5525] : Document Controller : hideAttribute column
  • [5524] : Document Controller : setValue multiple
  • [5519] : [Widget/array/enum] Valeur bloquée
  • [5518] : [Array/Enum/Focus] Un array avec une colonne d'enuméré vide déclenche le focus sur les non déjà rempli
  • [5517] : [IHM/Tooltip] Les tooltip bootstrap sont perturbant en tactile
  • [5516] : [Widget/tab] Ajouter un throbber pendant la construction du contenu de la tab
  • [5515] : [IHM/Tab] Gestion des tabs sur les petites résolutions
  • [5514] : [IHM/Menu] Gestion des menus
  • [5512] : [IHM/Array] Avoir une option pour paramétrer les breakpoints
  • [5509] : [Contrôle de rendu] Possibilité d'avoir à la fois un contrôle de vue et un contrôle de rendu sur le même document.
  • [5508] : [Fenêtre|Propriétés] La fenêtre est trop étroite.
  • [5507] : [UI|Menu] L'encodage des entrées dans le menu est parfois problématique
  • [5506] : [UI|Array|HtmlText] Les htmltext débordent de leur case
  • [5505] : [IHM|Array] Entête des tableaux

A3.4.4.4 Fileconnector, version 1.1.5

Lien vers le tracker de développement pour Fileconnector version 1.1.5

  • [5712] : Directive d'import erronée lors pour l'upgrade

A3.4.4.5 API HTTP Core v1, version 1.0.1

Lien vers le tracker de développement pour HTTP API v1 version 1.0.1

  • [5801] : Ressource States
  • [5787] : [Compat::3.2] Ajouter le cache de l'api HTTP dans le $gdocs
  • [5701] : ajout de l'id de la transition dans les informations de workflow
  • [5672] : Message d'information sur la documentation
  • [5619] : Retour en HTML
  • [5564] : Ajout trace pour le temps d'éxécution et mémoire
  • [5563] : ordre des règles du router
  • [5559] : Définition du status code
×