fixed duplicate content issue, added better export template
This commit is contained in:
parent
57af513db6
commit
71dc7dee35
360
index.html
360
index.html
@ -10765,7 +10765,7 @@
|
|||||||
|
|
||||||
const cloudArticleApp = {
|
const cloudArticleApp = {
|
||||||
|
|
||||||
SUBJECT: null, // Power of Blockchain Driven Cloud
|
SUBJECT: null,
|
||||||
|
|
||||||
numberOfSections: 100,
|
numberOfSections: 100,
|
||||||
|
|
||||||
@ -10881,10 +10881,15 @@
|
|||||||
article_structure += `<div class="gallery-container">
|
article_structure += `<div class="gallery-container">
|
||||||
<div class="gallery">`;
|
<div class="gallery">`;
|
||||||
|
|
||||||
|
const hashes_box = [];
|
||||||
|
|
||||||
for (iterKey in secObj) {
|
for (iterKey in secObj) {
|
||||||
const article_data = secObj[iterKey];
|
const article_data = secObj[iterKey];
|
||||||
const gen_div_id = this.unique_id();
|
const gen_div_id = this.unique_id();
|
||||||
const content_hash = Crypto.SHA256(article_data.content.trim());
|
const content_hash = Crypto.SHA256(article_data.content.trim());
|
||||||
|
if(!hashes_box.includes(content_hash)) {
|
||||||
|
hashes_box.push(content_hash);
|
||||||
|
} else continue;
|
||||||
let vc = article_data.vectorClock || "";
|
let vc = article_data.vectorClock || "";
|
||||||
|
|
||||||
if (Number(article_data.score) > 0) {
|
if (Number(article_data.score) > 0) {
|
||||||
@ -10961,8 +10966,7 @@
|
|||||||
<svg class="icon" viewBox="0 0 64 64">
|
<svg class="icon" viewBox="0 0 64 64">
|
||||||
<title>edit</title>
|
<title>edit</title>
|
||||||
<path d="M46.73,14.81l7,7,7.65-7.6A7.15,7.15,0,0,0,61.39,4L60.11,2.77a7.23,7.23,0,0,0-10.19,0L3.87,48.57a5,5,0,0,0-1.39,2.6L.53,61.27a1.74,1.74,0,0,0,2,2l10.15-1.94A5.06,5.06,0,0,0,15.34,60L49.6,25.9"/>
|
<path d="M46.73,14.81l7,7,7.65-7.6A7.15,7.15,0,0,0,61.39,4L60.11,2.77a7.23,7.23,0,0,0-10.19,0L3.87,48.57a5,5,0,0,0-1.39,2.6L.53,61.27a1.74,1.74,0,0,0,2,2l10.15-1.94A5.06,5.06,0,0,0,15.34,60L49.6,25.9"/>
|
||||||
</svg>Edit</button>
|
</svg>Edit</button>`;
|
||||||
`;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -10976,7 +10980,7 @@
|
|||||||
sectionSettingsList.innerHTML = ``;
|
sectionSettingsList.innerHTML = ``;
|
||||||
for (vals of Object.values(floGlobals.appObjects[this.SUBJECT][Topic].data)) {
|
for (vals of Object.values(floGlobals.appObjects[this.SUBJECT][Topic].data)) {
|
||||||
sectionSettingsHtml += `<label for="section${sec_counter}">Section ${sec_counter}</label>
|
sectionSettingsHtml += `<label for="section${sec_counter}">Section ${sec_counter}</label>
|
||||||
<input type="text" id="section${sec_counter}" name="section_names_ip" value="${vals.section_details.section_name}">`;
|
<input type="text" id="section${sec_counter}" name="section_names_ip" value="${vals.section_details.section_name}">`;
|
||||||
sec_counter++;
|
sec_counter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -11215,7 +11219,6 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
edit_onfocuout: function (parent) {
|
edit_onfocuout: function (parent) {
|
||||||
debugger;
|
|
||||||
//if (floGlobals.subAdmins.includes(myFloID)) return;
|
//if (floGlobals.subAdmins.includes(myFloID)) return;
|
||||||
let target = parent.firstElementChild;
|
let target = parent.firstElementChild;
|
||||||
const updated_content = target.innerText.trim();
|
const updated_content = target.innerText.trim();
|
||||||
@ -11226,7 +11229,7 @@
|
|||||||
if (previous_content_hash === updated_content_hash) return;
|
if (previous_content_hash === updated_content_hash) return;
|
||||||
let detail_block = document.getElementById(_id).getAttribute('data-value');
|
let detail_block = document.getElementById(_id).getAttribute('data-value');
|
||||||
let separate_data = detail_block.trim().split('__');
|
let separate_data = detail_block.trim().split('__');
|
||||||
debugger;
|
|
||||||
if (separate_data.length !== 2) return;
|
if (separate_data.length !== 2) return;
|
||||||
|
|
||||||
cloudArticleApp.addArticleContent(separate_data[0].trim(), separate_data[1].trim(), updated_content, myFloID);
|
cloudArticleApp.addArticleContent(separate_data[0].trim(), separate_data[1].trim(), updated_content, myFloID);
|
||||||
@ -11310,17 +11313,22 @@
|
|||||||
let t = ``;
|
let t = ``;
|
||||||
|
|
||||||
for (textContent of headings) {
|
for (textContent of headings) {
|
||||||
|
t += `<div class="collumns">
|
||||||
|
<div class="collumn">`;
|
||||||
let snippets = Object.values(textContent.contents).sort((c, d) => c.rank < d.rank);
|
let snippets = Object.values(textContent.contents).sort((c, d) => c.rank < d.rank);
|
||||||
t += `<h4>${textContent.title}</h4>`;
|
t += `<div class="head"><span class="headline hl3">${textContent.title}</span></div>`;
|
||||||
for (snips of snippets) {
|
for (snips of snippets) {
|
||||||
if (typeof snips !== "object") continue;
|
if (typeof snips !== "object") continue;
|
||||||
t += '<p>' + document.getElementById(snips.article_id).innerText + '</p>';
|
t += '<p>' + document.getElementById(snips.article_id).innerText + '</p>';
|
||||||
}
|
}
|
||||||
|
t += `</div></div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let template = cloudArticleApp.html_template(t);
|
||||||
|
|
||||||
let file_name = "content_collaboration" + new Date().getTime();
|
let file_name = "content_collaboration" + new Date().getTime();
|
||||||
|
|
||||||
this.downloadInnerHtml(file_name, t, 'text/html');
|
this.downloadInnerHtml(file_name, template, 'text/html');
|
||||||
document.getElementById('context_menu').classList.add('hide')
|
document.getElementById('context_menu').classList.add('hide')
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -11367,7 +11375,341 @@
|
|||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
html_template: function(mid_section='') {
|
||||||
|
let t = ``;
|
||||||
|
t += `<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>RanchiMall Content Collaboration Output</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Droid Serif', serif;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #2f2f2f;
|
||||||
|
background-color: #f9f7f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
font-family: 'Playfair Display', serif;
|
||||||
|
font-weight: 900;
|
||||||
|
font-size: 80px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
display: inline-block;
|
||||||
|
line-height: 72px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.head {
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerobjectswrapper {}
|
||||||
|
|
||||||
|
.subhead {
|
||||||
|
text-transform: uppercase;
|
||||||
|
border-bottom: 2px solid #2f2f2f;
|
||||||
|
border-top: 2px solid #2f2f2f;
|
||||||
|
padding: 12px 0 12px 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
font-size: 0;
|
||||||
|
line-height: 0;
|
||||||
|
word-spacing: -.31em;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 30px 2% 0 15%;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumns {}
|
||||||
|
|
||||||
|
.collumn {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 20px;
|
||||||
|
width: 80%;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 1% 0 1%;
|
||||||
|
vertical-align: top;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
-webkit-transition: all .7s;
|
||||||
|
transition: all .7s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn+.collumn {
|
||||||
|
border-left: 1px solid #2f2f2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline {
|
||||||
|
text-align: center;
|
||||||
|
line-height: normal;
|
||||||
|
font-family: 'Playfair Display', serif;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl1 {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 30px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
padding: 10px 0 30px 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl2 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: italic;
|
||||||
|
font-size: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl2:before {
|
||||||
|
border-top: 1px solid #2f2f2f;
|
||||||
|
content: '';
|
||||||
|
width: 100px;
|
||||||
|
height: 7px;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl2:after {
|
||||||
|
border-bottom: 1px solid #2f2f2f;
|
||||||
|
content: '';
|
||||||
|
width: 100px;
|
||||||
|
height: 13px;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl3 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: italic;
|
||||||
|
font-size: 36px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl4 {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 12px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl4:before {
|
||||||
|
border-top: 1px solid #2f2f2f;
|
||||||
|
content: '';
|
||||||
|
width: 100px;
|
||||||
|
height: 7px;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl4:after {
|
||||||
|
border-bottom: 1px solid #2f2f2f;
|
||||||
|
content: '';
|
||||||
|
width: 100px;
|
||||||
|
height: 10px;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl5 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 42px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-style: italic;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl6 {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 18px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl6:before {
|
||||||
|
border-top: 1px solid #2f2f2f;
|
||||||
|
content: '';
|
||||||
|
width: 100px;
|
||||||
|
height: 7px;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl6:after {
|
||||||
|
border-bottom: 1px solid #2f2f2f;
|
||||||
|
content: '';
|
||||||
|
width: 100px;
|
||||||
|
height: 10px;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl7 {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 12px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
padding: 10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl8 {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 12px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl9 {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 12px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .headline.hl10 {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 12px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .citation {
|
||||||
|
font-family: 'Playfair Display', serif;
|
||||||
|
font-size: 36px;
|
||||||
|
line-height: 44px;
|
||||||
|
/*font-style: italic;*/
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 400;
|
||||||
|
display: block;
|
||||||
|
margin: 40px 0 40px 0;
|
||||||
|
font-feature-settings: "liga", "dlig";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .citation:before {
|
||||||
|
border-top: 1px solid #2f2f2f;
|
||||||
|
content: '';
|
||||||
|
width: 100px;
|
||||||
|
height: 16px;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .citation:after {
|
||||||
|
border-bottom: 1px solid #2f2f2f;
|
||||||
|
content: '';
|
||||||
|
width: 100px;
|
||||||
|
height: 16px;
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .figure {
|
||||||
|
margin: 0 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn .figcaption {
|
||||||
|
font-style: italic;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.media {
|
||||||
|
-webkit-filter: sepia(80%) contrast(1) opacity(0.8);
|
||||||
|
filter: sepia(80%) grayscale(1) contrast(1) opacity(0.8);
|
||||||
|
mix-blend-mode: multiply;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*________________________________________________________________________________________________________________________________*/
|
||||||
|
/*MEDIAQUERIES*/
|
||||||
|
@media only all and (max-width: 1300px) {
|
||||||
|
.weatherforcastbox {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only all and (max-width: 1200px) {
|
||||||
|
.collumn {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only all and (max-width: 900px) {
|
||||||
|
.collumn {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only all and (max-width: 600px) {
|
||||||
|
.collumn {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collumn+.collumn {
|
||||||
|
border-left: none;
|
||||||
|
border-bottom: 1px solid #2f2f2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
max-width: 320px;
|
||||||
|
font-size: 60px;
|
||||||
|
line-height: 54px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
margin: 30px 6% 0 5%;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body translate="no">
|
||||||
|
<link
|
||||||
|
href="https://fonts.googleapis.com/css?family=Playfair+Display:400,700,900,400italic,700italic,900italic|Droid+Serif:400,700,400italic,700italic"
|
||||||
|
rel="stylesheet" type="text/css">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<div class="head">
|
||||||
|
<div class="headerobjectswrapper">
|
||||||
|
|
||||||
|
<header>${Object.keys(floGlobals.appObjects[cloudArticleApp.SUBJECT])[0]}</header>
|
||||||
|
</div>
|
||||||
|
<div class="subhead">Exported by RanchiMall Content Collaboration on FLO Blockchain</div>
|
||||||
|
</div>
|
||||||
|
<div class="content">`;
|
||||||
|
t += `${mid_section}`;
|
||||||
|
t += `</div>
|
||||||
|
</body>
|
||||||
|
</html>`;
|
||||||
|
|
||||||
|
return t;
|
||||||
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user