Colodus : Différence entre versions

De Bibliopedia
Aller à : navigation, rechercher
(Mise en place et utilisation courante)
(Avec ajout de champs 915 aussi)
 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 96 : Ligne 96 :
 
# supprimer les sauts de ligne
 
# supprimer les sauts de ligne
 
# créer un nouveau favori : dans le champ Nom, lui donner le nom voulu (exemple : "Livres Informatique") ; dans le champ URL, y mettre le code produit aux étapes précédentes
 
# créer un nouveau favori : dans le champ Nom, lui donner le nom voulu (exemple : "Livres Informatique") ; dans le champ URL, y mettre le code produit aux étapes précédentes
 +
 +
Exemple : pour des livres de la BU Droit, mis en magasin et cotés en Dewey (Droit = 340)
 +
 +
<syntaxhighlight lang="javascript" enclose="div">
 +
javascript:(function(){
 +
        divparent=window.document.getElementById('E9xx');
 +
        divclass=divparent.getElementsByClassName('E930_Div');
 +
        divid=divclass[0].getAttribute('id');
 +
        ajt('record0','E930_c',null,divid,null,null,null,null,null);
 +
ajt('record0','E930_d',null,divid,null,null,null,null,null);
 +
        jQuery("input[id*='E930_c']").val("DROIT");
 +
jQuery("input[id*='E930_d']").val("MAG");
 +
        jQuery("input[id*='E930_a']").val("34"); 
 +
        })
 +
        ()
 +
</syntaxhighlight>
 +
 +
==== Avec ajout de champs 915 aussi ====
 +
 +
<syntaxhighlight lang="javascript" enclose="div">
 +
javascript:(function(){
 +
divparent=window.document.getElementById('E9xx');
 +
div930=divparent.getElementsByClassName('E930_Div');
 +
divid930=div930[0].getAttribute('id');
 +
ajt('record0','E930_c',null,divid930,null,null,null,null,null);
 +
ajt('record0','E930_d',null,divid930,null,null,null,null,null);
 +
ajLt('record0','E915',null,null,null,null,null,null,null);
 +
div915=divparent.getElementsByClassName('E915_Div');
 +
divid915=div915[0].getAttribute('id');
 +
ajt('record0','E915_b',null,divid915,null,null,null,null,null);
 +
jQuery("input[id*='E930_c']").val("SCIEN");
 +
jQuery("input[id*='E930_d']").val("MAN");
 +
jQuery("input[id*='E930_a']").val("001");
 +
})()
 +
</syntaxhighlight>
  
 
== Exemple de communication sur Colodus ==
 
== Exemple de communication sur Colodus ==

Version actuelle datée du 18 avril 2014 à 14:02

Colodus est une application Web de l'ABES destinée à la gestion d'exemplaires dans le Sudoc et conçue initialement pour répondre aux besoins des bibliothèques du réseau Sudoc-PS.

Informations techniques[modifier]

Blog technique de l'ABES Punktokomo

Tutoriels et supports de formation[modifier]

Personnalisation de l'interface[modifier]

Il est possible de personnaliser un formulaire pour quatre types de documents.
Autre possibilité, pour les données locales : Colodus : bookmarlet de facilitation (zones bibliographiques locales)

Le tableau ci-dessous n'est pas bon - à adapter pour les données d'exemplaire : d'après @Lully1804, il y a plusieurs champs <input> sur la page Colodus, il faut les distinguer en utilisant par exemple l'attribut id de ces balises. Pb : l'id change à chaque affichage. Donc il faut récupérer le début de l'attribut id seulement (exemple : balise <input id="991_2819272">)

Champs Sous-champs 1 Texte Sous-champs 2 Texte Bookmarklet (ajout manuel d'un favori dans le navigateur : zone URL) Bookmarklet (proposer sur une page web un bouton à glisser comme favori)
991 $a RETRO-2014-LOC $b Rétro2014 861942102 javascript:void((function(){document.getElementsByTagName('textarea')[0].value='L991 ##$aRETRO-2014-LOC$$bRétro2014 861942102'})()) <a href="javascript:void((function(){document.getElementsByTagName('textarea')[0].value='L991 ##$aRETRO-2014-LOC$$bRétro2014 861942102'})())">991 RETRO-2014-LOC</a>
991 $a RETRO-2014-CRE DER $b Rétro2014 861942102
991 $a RETRO-2014-CRE SAI $b Rétro2014 861942102

Utilisation de bookmarklets pour les données d'exemplaire[modifier]

Les données d'exemplaires sont affichées dans des champs <input>, identifiable par leur attribut ID

Par exemple, quand on choisit d'ajouter un champ "Localisation de niveau 2 : Localisation complémentaire (c)", ça correspond à un 930$c : Du coup la balise de saisie sera <input id="E930_c-19"></input>

Problème : le "19" change d'une fois sur l'autre.
Il faut donc que la bookmarklet arrive à identifier les <input> à renseigner en utilisant que le début de l'id.

Pour cela, le plus simple est d'utiliser du JQuery, sur le modèle suivant.

Si on crée une bookmarklet avec le code ci-dessous, quand on clique dessus le code va

  1. récupérer l'identifiant de l'exemplaire à créer (pour pouvoir profiter de la fonction ajt() prévue par Colodus)
  2. créer la zone 930$c (il utilise la fonction ajt())
  3. lui attribuer la valeur SL
  4. chercher la zone 930$a (déjà existante) et lui attribuer le code 001.133
javascript:(function(){
	divparent=window.document.getElementById('E9xx');
	divclass=divparent.getElementsByClassName('E930_Div');
	divid=divclass[0].getAttribute('id');
	ajt('record0','E930_c',null,divid,null,null,null,null,null);
	jQuery("input[id*='E930_c']").val("SL");
	jQuery("input[id*='E930_a']").val("001.133");	
	})
	()

La fonction ajt() est dans le code de Colodus. Le problème est que l'identifiant '930-3' change à chaque nouvelle création d'exemplaire. Il faut donc récupérer cet identifiant dans la page pour le reproduire ici.

Remarque : ce sera plus propre si vous mettez du code sans les saut de lignes et les espaces, mais ça marche aussi

Mise en place et utilisation courante[modifier]

  • Se créer un répertoire dans ses favoris, pour y gérer ses bookmarklets Colodus
  • Pour chaque fonds alimenté, créer une bookmarklet contenant les valeurs par défaut, en lui donnant le nom du fonds concerné. A chaque fois, utiliser d'abord la fonction ajt() pour créer la ligne, avant de l'alimenter (évidemment)

Modifier/adapter un bookmarklet

  1. Reproduire le code ci-dessous
  2. ne pas toucher aux lignes avant "ajt()"
  3. pour chaque sous-champ à créer dans son modèle, dupliquer la ligne "ajt()" en adaptant le nom du sous-champ (premier paramètre de la fonction ajt()
  4. pour chaque sous-champ à alimenter, dupliquer la ligne commençant par jQuery, et y personnaliser : le nom du sous-champ ; la valeur à renseigner
  5. supprimer les sauts de ligne
  6. créer un nouveau favori : dans le champ Nom, lui donner le nom voulu (exemple : "Livres Informatique") ; dans le champ URL, y mettre le code produit aux étapes précédentes

Exemple : pour des livres de la BU Droit, mis en magasin et cotés en Dewey (Droit = 340)

javascript:(function(){
        divparent=window.document.getElementById('E9xx');
        divclass=divparent.getElementsByClassName('E930_Div');
        divid=divclass[0].getAttribute('id');
        ajt('record0','E930_c',null,divid,null,null,null,null,null);
	ajt('record0','E930_d',null,divid,null,null,null,null,null);
        jQuery("input[id*='E930_c']").val("DROIT");
	jQuery("input[id*='E930_d']").val("MAG");
        jQuery("input[id*='E930_a']").val("34");  
        })
        ()

Avec ajout de champs 915 aussi[modifier]

javascript:(function(){
	divparent=window.document.getElementById('E9xx');
	div930=divparent.getElementsByClassName('E930_Div');
	divid930=div930[0].getAttribute('id');
	ajt('record0','E930_c',null,divid930,null,null,null,null,null);
	ajt('record0','E930_d',null,divid930,null,null,null,null,null);
	ajLt('record0','E915',null,null,null,null,null,null,null);
	div915=divparent.getElementsByClassName('E915_Div');
	divid915=div915[0].getAttribute('id');
	ajt('record0','E915_b',null,divid915,null,null,null,null,null);
	jQuery("input[id*='E930_c']").val("SCIEN");
	jQuery("input[id*='E930_d']").val("MAN");
	jQuery("input[id*='E930_a']").val("001");
	})()

Exemple de communication sur Colodus[modifier]

Problèmes soulevés[modifier]