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 Side-by-side Diff

templates/html/common/wizefunc.js
... ... @@ -43,6 +43,7 @@
43 43 }
44 44  
45 45 /* Convert the two first tags into info */
  46 + /* use tags for image/table/object attributes */
46 47 function tagToInfo() {
47 48 var tags = document.getElementsByClassName('zim-tag');
48 49 var n = tags.length < 3 ? tags.length : 2;
... ... @@ -52,5 +53,75 @@
52 53 s = s.replace(/_/g,' ');
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 + }
  122 + }
  123 + }
  124 + }
  125 + return ctag;
55 126 }