mirror of
https://github.com/TangentFoxy/memex.git
synced 2024-11-22 04:54:23 +00:00
Refactor row array.
This commit is contained in:
parent
302fa39509
commit
c05ca309bb
@ -89,8 +89,8 @@ function View()
|
|||||||
}
|
}
|
||||||
|
|
||||||
let onclickImage = ``;
|
let onclickImage = ``;
|
||||||
let entryIsImageType = (SETTINGS.SHOWIMAG && this.isType(value.TYPE, 'image'));
|
let articleIsImageType = (SETTINGS.SHOWIMAG && this.isType(value.TYPE, 'image'));
|
||||||
if (entryIsImageType)
|
if (articleIsImageType)
|
||||||
{
|
{
|
||||||
itemClass += " article-image";
|
itemClass += " article-image";
|
||||||
onclickImage = `onclick="main.view.handleImageClick(event, this, '${value.FILE}');"
|
onclickImage = `onclick="main.view.handleImageClick(event, this, '${value.FILE}');"
|
||||||
@ -98,7 +98,7 @@ function View()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ARTICLE
|
// ARTICLE
|
||||||
let entry = `<article class="${itemClass}" id="${SETTINGS.ARTICLEIDBASE + value.DIID}">`;
|
let article = `<article class="${itemClass}" id="${SETTINGS.ARTICLEIDBASE + value.DIID}">`;
|
||||||
if (this.isDefined(value.LINK))
|
if (this.isDefined(value.LINK))
|
||||||
{
|
{
|
||||||
var idUrl = "url";
|
var idUrl = "url";
|
||||||
@ -111,7 +111,7 @@ function View()
|
|||||||
if (SETTINGS.SHOWLINK && !this.isObject(value.LINK))
|
if (SETTINGS.SHOWLINK && !this.isObject(value.LINK))
|
||||||
{
|
{
|
||||||
// If this item has only one link then make the whole title the link
|
// If this item has only one link then make the whole title the link
|
||||||
entry += `<a class="article-link" href="${String(value.LINK)}" id="${idUrl}">`;
|
article += `<a class="article-link" href="${String(value.LINK)}" id="${idUrl}">`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,16 +119,16 @@ function View()
|
|||||||
if (SETTINGS.SHOWUPPER)
|
if (SETTINGS.SHOWUPPER)
|
||||||
{
|
{
|
||||||
let upperClass = 'article-containerupper';
|
let upperClass = 'article-containerupper';
|
||||||
if (entryIsImageType)
|
if (articleIsImageType)
|
||||||
{
|
{
|
||||||
upperClass = 'article-containerupper-image';
|
upperClass = 'article-containerupper-image';
|
||||||
}
|
}
|
||||||
entry += `<div class="${upperClass}" ${onclickImage}>`;
|
article += `<div class="${upperClass}" ${onclickImage}>`;
|
||||||
|
|
||||||
// TITLE
|
// TITLE
|
||||||
if (SETTINGS.SHOWTITLE)
|
if (SETTINGS.SHOWTITLE)
|
||||||
{
|
{
|
||||||
entry += `<header class="article-title">${key.to_properCase()}</header>`;
|
article += `<header class="article-title">${key.to_properCase()}</header>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// LINK END
|
// LINK END
|
||||||
@ -138,13 +138,13 @@ function View()
|
|||||||
{
|
{
|
||||||
for (let l = 0; l < value.LINK.length; l++)
|
for (let l = 0; l < value.LINK.length; l++)
|
||||||
{
|
{
|
||||||
entry += `<a class="article-link" href="${String(value.LINK[l])}" id="${idUrl}">`;
|
article += `<a class="article-link" href="${String(value.LINK[l])}" id="${idUrl}">`;
|
||||||
entry += `<div class="article-linkcontainer"><div class="article-linkicon">${this.buildIcon('link')}</div><div class="article-linktitle">${this.extractRootDomain(value.LINK[l])}</div></div></a>`;
|
article += `<div class="article-linkcontainer"><div class="article-linkicon">${this.buildIcon('link')}</div><div class="article-linktitle">${this.extractRootDomain(value.LINK[l])}</div></div></a>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
entry += `<div class="article-linkcontainer"><div class="article-linkicon">${this.buildIcon('link')}</div><div class="article-linktitle">${this.extractRootDomain(value.LINK)}</div></div></a>`;
|
article += `<div class="article-linkcontainer"><div class="article-linkicon">${this.buildIcon('link')}</div><div class="article-linktitle">${this.extractRootDomain(value.LINK)}</div></div></a>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,34 +152,34 @@ function View()
|
|||||||
if (SETTINGS.SHOWTYPE && this.isDefined(value.TYPE))
|
if (SETTINGS.SHOWTYPE && this.isDefined(value.TYPE))
|
||||||
{
|
{
|
||||||
|
|
||||||
entry += `<div class="article-typecontainer">`;
|
article += `<div class="article-typecontainer">`;
|
||||||
for (let tc = 0; tc < value.TYPE.length; tc++)
|
for (let tc = 0; tc < value.TYPE.length; tc++)
|
||||||
{
|
{
|
||||||
entry += `<a class="article-type" href='#type-${value.TYPE[tc]}'>`;
|
article += `<a class="article-type" href='#type-${value.TYPE[tc]}'>`;
|
||||||
entry += this.buildIcon(value.TYPE[tc], value.TYPE[tc], 'article-typeicon');
|
article += this.buildIcon(value.TYPE[tc], value.TYPE[tc], 'article-typeicon');
|
||||||
entry += `</a>`;
|
article += `</a>`;
|
||||||
}
|
}
|
||||||
entry += `</div>`;
|
article += `</div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// UPPER CONTENT END
|
// UPPER CONTENT END
|
||||||
entry += `</div>`;
|
article += `</div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// LOWER CONTENT START
|
// LOWER CONTENT START
|
||||||
if (SETTINGS.SHOWLOWER)
|
if (SETTINGS.SHOWLOWER)
|
||||||
{
|
{
|
||||||
let lowerClass = 'article-containerlower';
|
let lowerClass = 'article-containerlower';
|
||||||
if (entryIsImageType)
|
if (articleIsImageType)
|
||||||
{
|
{
|
||||||
lowerClass = 'article-containerlower-image';
|
lowerClass = 'article-containerlower-image';
|
||||||
}
|
}
|
||||||
entry += `<div class="${lowerClass}" ${onclickImage}>`;
|
article += `<div class="${lowerClass}" ${onclickImage}>`;
|
||||||
|
|
||||||
// TIME
|
// TIME
|
||||||
if (SETTINGS.SHOWDATE && this.isDefined(value.DATE))
|
if (SETTINGS.SHOWDATE && this.isDefined(value.DATE))
|
||||||
{
|
{
|
||||||
entry += this.doRow('date', value.DATE);
|
article += this.doRow('date', value.DATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// AUTHOR
|
// AUTHOR
|
||||||
@ -187,73 +187,55 @@ function View()
|
|||||||
{
|
{
|
||||||
for (var i = 0; i < value.AUTH.length; i++)
|
for (var i = 0; i < value.AUTH.length; i++)
|
||||||
{
|
{
|
||||||
entry += this.doRow('author', value.AUTH[i].to_properCase());
|
article += this.doRow('author', value.AUTH[i].to_properCase());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TAGS
|
// TAGS
|
||||||
if (SETTINGS.SHOWTAGS && this.isDefined(value.TAGS))
|
if (SETTINGS.SHOWTAGS && this.isDefined(value.TAGS))
|
||||||
{
|
{
|
||||||
let content = '';
|
article += this.doRowArray('tags', value.TAGS, 'tag', false);
|
||||||
for (var i = 0; i < value.TAGS.length; i++)
|
|
||||||
{
|
|
||||||
content += `<a class="article-taglink" href="#tag-${value.TAGS[i]}">${value.TAGS[i]}</a>`;
|
|
||||||
if (i + 1 !== value.TAGS.length)
|
|
||||||
{
|
|
||||||
content += `, `;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
entry += this.doRow('tags', content);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// PROJECT
|
// PROJECT
|
||||||
if (SETTINGS.SHOWPROJ && this.isDefined(value.PROJ))
|
if (SETTINGS.SHOWPROJ && this.isDefined(value.PROJ))
|
||||||
{
|
{
|
||||||
let content = '';
|
article += this.doRowArray('project', value.PROJ, 'proj', true);
|
||||||
for (var i = 0; i < value.PROJ.length; i++)
|
|
||||||
{
|
|
||||||
content += `<a class="article-taglink" href="#proj-${value.PROJ[i]}">${value.PROJ[i].to_properCase()}</a>`;
|
|
||||||
if (i + 1 != value.PROJ.length)
|
|
||||||
{
|
|
||||||
content += `, `;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
entry += this.doRow('project', content);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TERM
|
// TERM
|
||||||
if (SETTINGS.SHOWTERM && this.isDefined(value.TERM))
|
if (SETTINGS.SHOWTERM && this.isDefined(value.TERM))
|
||||||
{
|
{
|
||||||
entry += this.doMultilineFormatting('term', value.TERM);
|
article += this.doRowMulti('term', value.TERM);
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE
|
// NOTE
|
||||||
if (SETTINGS.SHOWNOTE && this.isDefined(value.NOTE))
|
if (SETTINGS.SHOWNOTE && this.isDefined(value.NOTE))
|
||||||
{
|
{
|
||||||
entry += this.doMultilineFormatting('note', value.NOTE);
|
article += this.doRowMulti('note', value.NOTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// QUOTE
|
// QUOTE
|
||||||
if (SETTINGS.SHOWQOTE && this.isDefined(value.QOTE))
|
if (SETTINGS.SHOWQOTE && this.isDefined(value.QOTE))
|
||||||
{
|
{
|
||||||
entry += this.doMultilineFormatting('quote', value.QOTE);
|
article += this.doRowMulti('quote', value.QOTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// PROGRESS
|
// PROGRESS
|
||||||
if (SETTINGS.SHOWPROG && this.isDefined(value.PROG))
|
if (SETTINGS.SHOWPROG && this.isDefined(value.PROG))
|
||||||
{
|
{
|
||||||
entry += this.doRow('progress', value.PROG);
|
article += this.doRow('progress', value.PROG);
|
||||||
}
|
}
|
||||||
|
|
||||||
// IMAGE - for non-image-type-entry
|
// IMAGE - for non-image-type-article
|
||||||
if (SETTINGS.SHOWIMAG
|
if (SETTINGS.SHOWIMAG
|
||||||
&& !this.isType(value.TYPE, 'image')
|
&& !this.isType(value.TYPE, 'image')
|
||||||
&& this.isDefined(value.FILE)
|
&& this.isDefined(value.FILE)
|
||||||
&& this.isImage(value.FILE))
|
&& this.isImage(value.FILE))
|
||||||
{
|
{
|
||||||
entry += `<div class="image">`;
|
article += `<div class="image">`;
|
||||||
entry += `<img class="article-img" src="content/media/${value.FILE}" onclick="lightbox.load('content/media/${value.FILE}')">`;
|
article += `<img class="article-img" src="content/media/${value.FILE}" onclick="lightbox.load('content/media/${value.FILE}')">`;
|
||||||
entry += `</div>`;
|
article += `</div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FILE
|
// FILE
|
||||||
@ -263,36 +245,36 @@ function View()
|
|||||||
{
|
{
|
||||||
for (var i = 0; i < value.FILE.length; i++)
|
for (var i = 0; i < value.FILE.length; i++)
|
||||||
{
|
{
|
||||||
entry += this.doRow('file', `<a class="article-file-link" href="content/media/${value.FILE[i]}">${value.FILE[i]}</a>`, 'article-file');
|
article += this.doRow('file', `<a class="article-file-link" href="content/media/${value.FILE[i]}">${value.FILE[i]}</a>`, 'article-file');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// single
|
// single
|
||||||
entry += this.doRow('file', `<a class="article-file-link" href="content/media/${value.FILE}">${value.FILE}</a>`, 'article-file');
|
article += this.doRow('file', `<a class="article-file-link" href="content/media/${value.FILE}">${value.FILE}</a>`, 'article-file');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// LOWER CONTENT END
|
// LOWER CONTENT END
|
||||||
entry += `</div>`;
|
article += `</div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// IMAGE - for image-type-entry
|
// IMAGE - for image-type-article
|
||||||
if (entryIsImageType
|
if (articleIsImageType
|
||||||
&& this.isDefined(value.FILE)
|
&& this.isDefined(value.FILE)
|
||||||
&& this.isImage(value.FILE))
|
&& this.isImage(value.FILE))
|
||||||
{
|
{
|
||||||
entry += `<div class="image">`;
|
article += `<div class="image">`;
|
||||||
if (SETTINGS.SHOWOVERLAY)
|
if (SETTINGS.SHOWOVERLAY)
|
||||||
{
|
{
|
||||||
entry += `<div class="image-overlay"></div>`;
|
article += `<div class="image-overlay"></div>`;
|
||||||
}
|
}
|
||||||
entry += `<img class="article-image-img" src="content/media/${value.FILE}">`;
|
article += `<img class="article-image-img" src="content/media/${value.FILE}">`;
|
||||||
entry += `</div>`;
|
article += `</div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
entry += `</article>`;
|
article += `</article>`;
|
||||||
return entry;
|
return article;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.doRow = function(type, content, extraClass)
|
this.doRow = function(type, content, extraClass)
|
||||||
@ -303,6 +285,69 @@ function View()
|
|||||||
</div>`;
|
</div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.doRowArray = function(type, data, query, propercase)
|
||||||
|
{
|
||||||
|
let content = '';
|
||||||
|
for (var i = 0; i < data.length; i++)
|
||||||
|
{
|
||||||
|
content += `<a class="article-taglink" href="#${query}-${data[i]}">${propercase == true ? data[i].to_properCase() : data[i]}</a>`;
|
||||||
|
if (i + 1 !== data.length)
|
||||||
|
{
|
||||||
|
content += `, `;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this.doRow(type, content);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.doRowMulti = function(type, data)
|
||||||
|
{
|
||||||
|
let result = '';
|
||||||
|
if (Array.isArray(data))
|
||||||
|
{
|
||||||
|
for (var i in data)
|
||||||
|
{
|
||||||
|
if (data[i].substring(0, 2) == "> ")
|
||||||
|
{
|
||||||
|
// New item
|
||||||
|
if (data[i].includes(": "))
|
||||||
|
{
|
||||||
|
let titleSplit = data[i].substring(2).split(': '); // .substring(2) removes the "> "
|
||||||
|
for (var e = 0; e < titleSplit.length; e++)
|
||||||
|
{
|
||||||
|
titleSplit[e] = titleSplit[e].trim();
|
||||||
|
}
|
||||||
|
result += this.doRow(type, `<b>${titleSplit[0]}</b>: ${titleSplit[1]}`);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result += this.doRow(type, data[i].substring(2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (data[i].substring(0, 2) === "& ")
|
||||||
|
{
|
||||||
|
// New line in current item
|
||||||
|
result += this.doRow(null, data[i].substring(2));
|
||||||
|
}
|
||||||
|
else if (data[i].substring(0, 2) == "- ")
|
||||||
|
{
|
||||||
|
// Bullet point
|
||||||
|
result += this.doRow('dash', data[i].substring(2));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Handle unformatted
|
||||||
|
result += this.doRow(type, data[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Handle not array
|
||||||
|
result += this.doRow(type, data);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
this.stats = function(value)
|
this.stats = function(value)
|
||||||
{
|
{
|
||||||
let navContent = ``;
|
let navContent = ``;
|
||||||
@ -395,55 +440,6 @@ function View()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.doMultilineFormatting = function(type, data)
|
|
||||||
{
|
|
||||||
let result = '';
|
|
||||||
if (Array.isArray(data))
|
|
||||||
{
|
|
||||||
for (var i in data)
|
|
||||||
{
|
|
||||||
if (data[i].substring(0, 2) == "> ")
|
|
||||||
{
|
|
||||||
// New item
|
|
||||||
if (data[i].includes(": "))
|
|
||||||
{
|
|
||||||
let titleSplit = data[i].substring(2).split(': '); // .substring(2) removes the "> "
|
|
||||||
for (var e = 0; e < titleSplit.length; e++)
|
|
||||||
{
|
|
||||||
titleSplit[e] = titleSplit[e].trim();
|
|
||||||
}
|
|
||||||
result += this.doRow(type, `<b>${titleSplit[0]}</b>: ${titleSplit[1]}`);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result += this.doRow(type, data[i].substring(2));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (data[i].substring(0, 2) === "& ")
|
|
||||||
{
|
|
||||||
// New line in current item
|
|
||||||
result += this.doRow(null, data[i].substring(2));
|
|
||||||
}
|
|
||||||
else if (data[i].substring(0, 2) == "- ")
|
|
||||||
{
|
|
||||||
// Bullet point
|
|
||||||
result += this.doRow('dash', data[i].substring(2));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Handle unformatted
|
|
||||||
result += this.doRow(type, data[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Handle not array
|
|
||||||
result += this.doRow(type, data);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.buildIcon = function(type, label, altClass)
|
this.buildIcon = function(type, label, altClass)
|
||||||
{
|
{
|
||||||
if (label == undefined) { label = type; }
|
if (label == undefined) { label = type; }
|
||||||
|
Loading…
Reference in New Issue
Block a user