Web et vue catégorisée

Toutes les astuces sur le langage HTML dans Lotus Notes

Web et vue catégorisée

Messagepar Michael DELIQUE » 04 Juil 2008 à 15:55

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)
}
}
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Retour vers HTML