TOC html

From Redazione
Jump to navigation Jump to search
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
 
  
 
<html>
 
<html>
Line 19: Line 17:
 
-->
 
-->
  
<div id="TOC_tree">tree placeholder</div>
+
 
 +
<!--------------------------path-------------------------->
 +
 
 +
<div class="ci_form_section">
 +
<span class="ci_form_section_label">
 +
Target url
 +
</span>
 +
 
 +
<input class="ci_form_input" type="text" placeholder="" name="Form TOC[target url]" value="">
 +
 
 +
<span class="ci_form_section_help">
 +
Enter the target url of this set of pages, e.g.: https://culturaitaliana.org/organizations/Centro_italiano_Barcellona
 +
</span>
 +
 
 +
</div>
 +
 
 +
 
 +
 
 +
<div id="TOC_tree"></div>
  
 
<!--
 
<!--
Line 58: Line 74:
  
  
var wiki_list = []
+
var wiki_list = []
 +
 
 +
 
 +
function walk_through_TOC(children,parent,depth) {
 +
 
 +
if(!children || !Object.keys(children).length) {
 +
return
 +
}
 +
 
  
 +
depth++
  
function walk_through_TOC(children,depth) {
 
  
if(!children || !Object.keys(children).length) {
+
for(var value of children) {
return
 
}
 
  
for(var value of children) {
+
// '&&' does not work !
 +
if(value.path) {
  
if(value.path) {
+
if(value.state.selected) {
 
wiki_list.push('#'.repeat(depth) + '[[' + value.path + '|' + value.text + ']]')
 
wiki_list.push('#'.repeat(depth) + '[[' + value.path + '|' + value.text + ']]')
 
}
 
}
 +
 +
} else {
 +
 +
if(value.state.selected) {
 +
wiki_list.push('#'.repeat(depth) + value.text)
 +
}
 +
 +
}
  
 
 
if(value.children) {
+
if(value.children) {
walk_through_TOC(value.children,depth++);
+
walk_through_TOC(value.children,value,depth);
}
+
}
 
 
}
 
 
}
 
}
  
  
 +
}
  
 
var contents = $ci('#TOC_contents').val();
 
var contents = $ci('#TOC_contents').val();
//.replace(/^<nowiki>/,'').replace(/<\/nowiki>$/,'')
 
  
console.log('1')
+
contents = TOC_functions.base64_to_utf8(contents);
console.log(contents)
+
 
contents = decodeURIComponent(escape(window.atob(contents)));
 
//contents = JSON.parse(window.atob(decodeURIComponent(contents)));
 
console.log('2')
 
console.log(contents)
 
console.log(typeof contents)
 
 
if(contents) {
 
if(contents) {
console.log('3')
+
contents = JSON.parse(contents);
contents = JSON.parse(contents)
+
 
console.log('4')
+
TOC_functions.translate_TOC_rec(contents,'from');
Frontend_Index.translate_index_rec(contents,'from');
 
  
  
Line 106: Line 130:
 
checkbox: function(event, data) {
 
checkbox: function(event, data) {
 
// Hide checkboxes for folders
 
// Hide checkboxes for folders
return data.node.isFolder() ? false : true;
+
return data.node.isFolder()? false: true;
 
},
 
},
   dnd5: Frontend_Index.fancytree_dnd5_conf
+
   dnd5: TOC_functions.fancytree_dnd5_conf
 
});
 
});
 
}
 
}
Line 121: Line 145:
 
var index_obj_saved = tree.toDict(true).children;
 
var index_obj_saved = tree.toDict(true).children;
  
 +
TOC_functions.translate_TOC_rec(index_obj_saved,'to');
  
console.log(index_obj_saved)
+
// create wiki_list
Frontend_Index.translate_index_rec(index_obj_saved,'to');
+
walk_through_TOC(index_obj_saved,null,0);
  
  
console.log(index_obj_saved)
+
index_obj_saved = TOC_functions.utf8_to_base64(JSON.stringify(index_obj_saved));
  
walk_through_TOC(index_obj_saved,1)
 
  
console.log(wiki_list)
+
$ci('#TOC_contents').val(index_obj_saved)
 +
var today = new Date();
 +
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
 +
var time = today.getHours() + ":" + (today.getMinutes() + '').padStart(2, '0') + ":" + (today.getSeconds() + '').padStart(2, '0');
  
//index_obj_saved = btoa(JSON.stringify(encodeURIComponent(index_obj_saved)))
 
  
index_obj_saved = btoa(unescape(encodeURIComponent(index_obj_saved)))
+
$ci('#pf_free_text').val(`<!--
 +
The content of this page has been created automatically on ` + date + ` at ` + time + `.
 +
Don't edit it without the form, since any additional content
 +
will be lost on the next automatic update!
 +
-->` + wiki_list.join("\n") + `
  
console.log(index_obj_saved)
+
[[Category:TOCs]]`)
  
return false
 
  
//$ci('#TOC_contents').val(index_obj_saved)
+
return true;
  
 
$ci('#pf_free_text').val(wiki_list)
 
 
console.log($ci('#pf_free_text').val())
 
console.log(this)
 
 
// ***attention !!!
 
// otherwise pageforms will not retrieve it!
 
$ci('input').removeAttr('disabled');
 
return true;
 
 
});
 
});
  

Latest revision as of 22:35, 13 February 2021

Enter the target url of this set of pages, e.g.: https://culturaitaliana.org/organizations/Centro_italiano_Barcellona