Commit aca67690f1cc3a86bbdf8df1e3d16f40e20b7045

Authored by William Daniau
1 parent 0d8dc7302c
Exists in master

Ajout de configuration par tags dans Wize_S5

Showing 1 changed file with 71 additions and 0 deletions Inline Diff

templates/html/common/wizefunc.js
1 1
/* Go to top of page */ 2 2 /* Go to top of page */
function topFunction() { 3 3 function topFunction() {
document.body.scrollTop = 0; 4 4 document.body.scrollTop = 0;
document.documentElement.scrollTop = 0; 5 5 document.documentElement.scrollTop = 0;
} 6 6 }
7 7
/* open/close navigation optionally slide page */ 8 8 /* open/close navigation optionally slide page */
function openNav(slide) { 9 9 function openNav(slide) {
if (document.getElementById("mySidenav").getAttribute("class").split(' ')[1] == "menuClosed") { 10 10 if (document.getElementById("mySidenav").getAttribute("class").split(' ')[1] == "menuClosed") {
document.getElementById("mySidenav").style.width = "300px"; 11 11 document.getElementById("mySidenav").style.width = "300px";
if (slide==1) { 12 12 if (slide==1) {
document.getElementById("main").style.marginLeft = "300px"; 13 13 document.getElementById("main").style.marginLeft = "300px";
} 14 14 }
document.getElementById("mySidenav").setAttribute("class","menu menuOpen"); 15 15 document.getElementById("mySidenav").setAttribute("class","menu menuOpen");
/* Scroll to top when opening menu */ 16 16 /* Scroll to top when opening menu */
topFunction(); 17 17 topFunction();
} else { 18 18 } else {
document.getElementById("mySidenav").style.width = "0"; 19 19 document.getElementById("mySidenav").style.width = "0";
if (slide==1) { 20 20 if (slide==1) {
document.getElementById("main").style.marginLeft = "0"; 21 21 document.getElementById("main").style.marginLeft = "0";
} 22 22 }
document.getElementById("mySidenav").setAttribute("class","menu menuClosed"); 23 23 document.getElementById("mySidenav").setAttribute("class","menu menuClosed");
} 24 24 }
} 25 25 }
26 26
/* when scrolling down 20 pixel display upButton */ 27 27 /* when scrolling down 20 pixel display upButton */
function scrollFunction() { 28 28 function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { 29 29 if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
upButton.style.display = "block"; 30 30 upButton.style.display = "block";
} else { 31 31 } else {
upButton.style.display = "none"; 32 32 upButton.style.display = "none";
} 33 33 }
} 34 34 }
35 35
/* Test if the logo is present (to avoid displaying broken link icon on chrome) */ 36 36 /* Test if the logo is present (to avoid displaying broken link icon on chrome) */
function testLogo() { 37 37 function testLogo() {
logo=document.getElementById("logoImgId"); 38 38 logo=document.getElementById("logoImgId");
logodiv=document.getElementById("logoDivId"); 39 39 logodiv=document.getElementById("logoDivId");
if (logo.naturalHeight == 0) { 40 40 if (logo.naturalHeight == 0) {
logodiv.setAttribute("style","display:none;"); 41 41 logodiv.setAttribute("style","display:none;");
} 42 42 }
} 43 43 }
44 44
/* Convert the two first tags into info */ 45 45 /* Convert the two first tags into info */
46 /* use tags for image/table/object attributes */
function tagToInfo() { 46 47 function tagToInfo() {
var tags = document.getElementsByClassName('zim-tag'); 47 48 var tags = document.getElementsByClassName('zim-tag');
var n = tags.length < 3 ? tags.length : 2; 48 49 var n = tags.length < 3 ? tags.length : 2;
for (var i=1; i <= n; i++) { 49 50 for (var i=1; i <= n; i++) {
var s = tags[i-1].innerHTML; 50 51 var s = tags[i-1].innerHTML;
s = s.replace('@',''); 51 52 s = s.replace('@','');
s = s.replace(/_/g,' '); 52 53 s = s.replace(/_/g,' ');
document.getElementById("footinfo"+i).innerHTML = s; 53 54 document.getElementById("footinfo"+i).innerHTML = s;
} 54 55 }
56 if (tags.length > 2) {
57 /* Image tags */
58 for (var i=1; i <= tags.length - 2; i++) {
59 var ctag = tags[i+1];
60 var s = ctag.innerHTML;
61 s = s.replace('@','');
62 /* find next img/table/zim-object */
63 ctag = findNextObject(ctag);
64
65 /* either we found something either null */
66 if (ctag!=null) {
67 var style = ctag.getAttribute("style");
68 var res;
69 style = style == null ? '' : style;
70 if (s == "left") {
71 style = style + "float:left; margin-left:0; margin-right:1em;";
72 }
73 if (s == "right") {
74 style = style + "float:right; margin-left:1em; margin-right:0;";
75 }
76 if (res = s.match(/^height(.+)$/)) {
77 style = style + "height:"+res[1]+";";
78 }
79 if (res = s.match(/^width(.+)$/)) {
80 style = style + "width:"+res[1]+"; height:auto;";
81 }
82 if (res = s.match(/^fontsize(.+)$/)) {
83 style = style + "font-size:"+res[1]+"%;";
84 }
85 ctag.setAttribute("style",style);
86 }
87
88 }
89
90 }
91 }
92
93 function findNextObject(tag) {
94 /* try to found in current */
95 var objectsTagClassArray=['IMG','','TABLE','','DIV','zim-object'];
96 ob = findTagInSiblings(tag,objectsTagClassArray);
97 if (ob == null) {
98 ob = findTagInSiblings(tag.parentElement,objectsTagClassArray);
99 }
100 return ob;
101 }
102
103 function findTagInSiblings(tag,tagsToFind) {
104 var notFound = true;
105 var ctag = tag;
106 while (notFound) {
107 ctag = ctag.nextElementSibling
108 if (ctag == null) {
109 notFound = false;
110 break;
111 }
112 for (var i=0 ; i < tagsToFind.length/2 ; i++) {
113 if (ctag.tagName == tagsToFind[i*2]) {
114 /* we(ve got the tag */
115 if (tagsToFind[i*2+1]=='') {
116 notFound = false;
117 break;
118 } else if (ctag.className == tagsToFind[i*2+1]) {
119 notFound = false;
120 break;
121 }