Page 1 sur 1

Web et vue catégorisée

MessagePublié: 04 Juil 2008 à 15:55
par Michael DELIQUE
thierry.ceretto
a écrit:
En Web, lorsque l´on a une vue catégorisée, il est possible de fermer toutes les catégories et de les ouvrir une par une, le problème, lorqu´il y a beaucoup de documents, si l´on ouvre une catégorie très bas dans la page (utilisation de l´ascenseur [scroll] vertical pour l´atteindre), cette page se positionne sur le haut et l´on est obligé d´utiliser l´ascenseur pour atteindre la catégorie que l´on vient d´ouvrir, etc, etc.

Le code suivant à pour but de placer la page au niveau de la catégorie que l´on vient d´ouvrir.

Testé avec IE 6 (je n´ai pas testé avec d´autres navigateurs, essayez et faîtes un retour...) sur une vue affichée via un masque $$ViewTemplateDefault, ayant 3 colonnes catégorisées et contenant près de 1000 documents.
Code : Tout sélectionner
function returnToStartingLink() {
/* Web : pour les vues catégorisées,
fonction qui permet d´ouvrir une page au niveau de la catégorie précédement cliquée
Placer cette fonction dans l´en-tête JS et appeler la fonction dans
l´événement onLoad du masque
exemple : $$ViewTemplateDefault */

/* Web : for the categorized views,
function for positioning a page on the category which was clicked
Put this function in JS header and call it in onLoad event,
e.g. $$ViewTemplateDefault */

// Test le navigateur et si la page contient des liens
// Check the navigator et if the page contains links
if (navigator.appName == ´Microsoft Internet Explorer´ && document.links )
{
// Boucle sur les liens
// Loop through links
for (i=0; i < document.links.length; i++)
{
// Crée un chaine avec l´URL
// Create string with the URL
var chaine = new String(document.links[i].href)
// Expressions régilières JS : pour rechercher "Collapse" ou "Expand"
// JS regular expression : to search "Collapse" or "Expand"
re = /Collapse|Expand/g
// Si l´expression régulière est trouvée : retourne True
// If the regular expression is found: return True
if ( re.test(chaine) )
{
// Crée un chaine, en bas de casse (minuscules), avec la l´URL de la page (partie après le "?")
// Create string, in lower case, with the page URL (part after "?")
var locTmp = new String(window.location.search).toLowerCase();
// Nombre : position du premier caractére de "&templatetype"
// Number type : position of first character of "&templatetype"
var fin = locTmp.indexOf(´&templatetype´fun;
// Extrait la chaîne de "0" à "fin"
// Extract string from "0" to "fin"
var locTmp_1 = locTmp.substr(0,fin);
// Nombre : position du dernier "="
// Number type : position of last "="
var debut = locTmp_1.lastIndexOf(´=´fun+1;
/* Extrait la chaîne de "debut" à "fin"
resultat = numéro du document NOTES dans la vue (@DocNumber retourne ce nombre) */
/* Extract the string from "debut" to "fin"
result = the NOTES document number in the view (@DocNumber returns this number) */
var numDoc = locTmp_1.substr(debut,fin);
// Affecte le numéro comme nom du lien (paramètre NAME de la balise A HREF)
// Set number comme nom du lien (NAME parameter of A HREF tag)
document.links[i].name = numDoc
};
};
// Remplace l´URL de la page par la même augmenté de "#"+numéro du document
// Replace the URL of the page by the same increased of "#"+document number
window.location.replace(window.location.href+´#´+numDoc)
}
}