Fix pagebuilder cannot create more than 2 pages

Fix pagebuilder prototype breaks usenet
Add default limit of 4 pages (configurable)
This commit is contained in:
zefie
2023-08-27 02:37:11 -04:00
parent 772e3b9ba7
commit 336fce2676
13 changed files with 4517 additions and 3075 deletions

View File

@@ -168,6 +168,22 @@ if (!String.prototype.reverse) {
} }
} }
// for some reason making this a prototype override breaks newsie
/*
if (!Array.prototype.movekey) {
Array.prototype.movekey = function (from, to) {
this.splice(to, 0, this.splice(from, 1)[0]);
return this;
};
}
*/
function moveArrayKey(array, from, to) {
array.splice(to, 0, array.splice(from, 1)[0]);
return array;
};
// add .getCaseInsensitiveKey() to all JavaScript Objects in this application { // add .getCaseInsensitiveKey() to all JavaScript Objects in this application {
// works for service vault scripts too. // works for service vault scripts too.
@@ -250,6 +266,7 @@ var runScriptInVM = function (script_data, user_contextObj = {}, privileged = fa
"sendToClient": sendToClient, "sendToClient": sendToClient,
"service_vaults": service_vaults, "service_vaults": service_vaults,
"service_deps": service_deps, "service_deps": service_deps,
"moveArrayKey": moveArrayKey,
"cwd": __dirname, // current working directory "cwd": __dirname, // current working directory
// Our prototype overrides // Our prototype overrides

View File

@@ -42,52 +42,62 @@ Content-Type: text/html`
data = `<HTML> data = `<HTML>
<HEAD> <HEAD>
<DISPLAY fontsize=medium> <DISPLAY fontsize=medium>
<TITLE>Page Settings</TITLE> <TITLE>Page Settings</TITLE>
</HEAD> </HEAD>
<sidebar width=122 height=420 align=left> <sidebar width=122 height=420 align=left>
<table cellspacing=0 cellpadding=0 height=385> <table cellspacing=0 cellpadding=0 height=385>
<TR> <TR>
<td width=3> <td width=3>
<td abswidth=2 bgColor=#8A99B0 rowspan=99> <td abswidth=2 bgColor=#8A99B0 rowspan=99>
<td absHEIGHT=4>&nbsp; <td absHEIGHT=4>&nbsp;
<td abswidth=2 bgColor=#8A99B0 rowspan=99> <td abswidth=2 bgColor=#8A99B0 rowspan=99>
<td width=4 rowspan=99> <td width=4 rowspan=99>
<td backGround="wtv-author:/ROMCache/grad_tile.gif" width=16 rowspan=99> <td backGround="wtv-author:/ROMCache/grad_tile.gif" width=16 rowspan=99>
</TR> </TR>
<tr> <tr>
<td> <td>
<td align=right height=69 width=93 href="wtv-home:/home"> <td align=right height=69 width=93 href="wtv-home:/home">
<img src="${minisrv_config.config.service_logo}" width=87 height=67> <img src="${minisrv_config.config.service_logo}" width=87 height=67>
<tr><td absheight=5>&nbsp; <tr>
<TR> <td absheight=5>&nbsp;
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <TR>
<tr> <td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<td> <tr>
<td abswidth=93 absheight=26 > <td>
<table href="wtv-author:/documents" <td abswidth=93 absheight=26>
cellspacing=0 cellpadding=0> <table href="wtv-author:/documents" cellspacing=0 cellpadding=0>
<tr> <tr>
<td abswidth=5> <td abswidth=5>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Index</font></table> <td abswidth=90 valign=middle align=left>
</table> <table cellspacing=0 cellpadding=0>
<TR> <tr>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <td maxlines=1>
<tr> <font sizerange=medium color="C2CCD7">Index</font>
<td> </table>
<td abswidth=93 absheight=26 > </table>
<table href="wtv-guide:/help?topic=Publish&subtopic=Index&appName=Page%20Builder" <TR>
cellspacing=0 cellpadding=0> <td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr> <tr>
<td abswidth=5> <td>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Help</font></table> <td abswidth=93 absheight=26>
</table> <table href="wtv-guide:/help?topic=Glossary&subtopic=P&page=pagebuilder" cellspacing=0 cellpadding=0>
<TR> <tr>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <td abswidth=5>
<tr> <td abswidth=90 valign=middle align=left>
<td> <table cellspacing=0 cellpadding=0>
<td valign=bottom align=right > <img src="wtv-author:/ROMCache/pagebuilder.gif" height=124 width=78>&nbsp; <tr>
</table> <td maxlines=1>
<font sizerange=medium color="C2CCD7">Help</font>
</table>
</table>
<TR>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr>
<td>
<td valign=bottom align=right>
<img src="wtv-author:/ROMCache/pagebuilder.gif" height=124 width=78>&nbsp;
</table>
</sidebar> </sidebar>
<body <body
bgcolor=#1e4261 bgcolor=#1e4261

View File

@@ -14,124 +14,150 @@ Content-Type: text/html`
data = `<HTML> data = `<HTML>
<HEAD> <HEAD>
<DISPLAY fontsize=medium> <DISPLAY fontsize=medium>
<TITLE>Page Builder index</TITLE> <TITLE>Page Builder index</TITLE>
</HEAD> </HEAD>
<sidebar width=122 height=420 align=left> <sidebar width=122 height=420 align=left>
<table cellspacing=0 cellpadding=0 height=385> <table cellspacing=0 cellpadding=0 height=385>
<TR> <TR>
<td width=3> <td width=3>
<td abswidth=2 bgColor=#8A99B0 rowspan=99> <td abswidth=2 bgColor=#8A99B0 rowspan=99>
<td absHEIGHT=4>&nbsp; <td absHEIGHT=4>&nbsp;
<td abswidth=2 bgColor=#8A99B0 rowspan=99> <td abswidth=2 bgColor=#8A99B0 rowspan=99>
<td width=4 rowspan=99> <td width=4 rowspan=99>
<td backGround="wtv-author:/ROMCache/grad_tile.gif" width=16 rowspan=99> <td backGround="wtv-author:/ROMCache/grad_tile.gif" width=16 rowspan=99>
</TR> </TR>
<tr> <tr>
<td> <td>
<td align=right height=69 width=93 href="wtv-home:/home"> <td align=right height=69 width=93 href="wtv-home:/home">
<img src="${minisrv_config.config.service_logo}" width=87 height=67> <img src="${minisrv_config.config.service_logo}" width=87 height=67>
<tr><td absheight=5>&nbsp; <tr>
<TR> <td absheight=5>&nbsp;
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <TR>
<tr> <td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<td> <tr>
<td abswidth=93 absheight=26 > <td>
<table href="wtv-author:/templates" <td abswidth=93 absheight=26>
cellspacing=0 cellpadding=0> <table href="wtv-author:/templates" cellspacing=0 cellpadding=0>
<tr> <tr>
<td abswidth=5> <td abswidth=5>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Create</font></table> <td abswidth=90 valign=middle align=left>
</table> <table cellspacing=0 cellpadding=0>
<TR> <tr>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <td maxlines=1>
<tr> <font sizerange=medium color="C2CCD7">Create</font>
<td> </table>
<td abswidth=93 absheight=26 > </table>
<table href="wtv-author:/scrapbook" <TR>
cellspacing=0 cellpadding=0> <td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr> <tr>
<td abswidth=5> <td>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Scrapbook</font></table> <td abswidth=93 absheight=26>
</table> <table href="client:showalert?message=This%20feature%20is%20not%20available." cellspacing=0 cellpadding=0>
<TR> <tr>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <td abswidth=5>
<tr> <td abswidth=90 valign=middle align=left>
<td> <table cellspacing=0 cellpadding=0>
<td abswidth=93 absheight=26 > <tr>
<table href="wtv-author:/document-cleanup" <td maxlines=1>
cellspacing=0 cellpadding=0> <font sizerange=medium color="C2CCD7">Scrapbook</font>
<tr> </table>
<td abswidth=5> </table>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Clean up</font></table> <TR>
</table> <td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<TR> <tr>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <td>
<tr> <td abswidth=93 absheight=26>
<td> <table href="client:showalert?message=Select%20the%20document%20you%20would%20like%20to%20remove%20then%20choose%20discard%20page." cellspacing=0 cellpadding=0>
<td abswidth=93 absheight=26 > <tr>
<table href="wtv-author:/samples_en-US/index.html" <td abswidth=5>
cellspacing=0 cellpadding=0> <td abswidth=90 valign=middle align=left>
<tr> <table cellspacing=0 cellpadding=0>
<td abswidth=5> <tr>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Examples</font></table> <td maxlines=1>
</table> <font sizerange=medium color="C2CCD7">Clean up</font>
<TR> </table>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; </table>
<tr> <TR>
<td> <td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<td abswidth=93 absheight=26 > <tr>
<table href=javascript:checkPageStatus() <td>
cellspacing=0 cellpadding=0> <td abswidth=93 absheight=26>
<tr> <table href="wtv-author:/samples_en-US/index.html" cellspacing=0 cellpadding=0>
<td abswidth=5> <tr>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Archive</font></table> <td abswidth=5>
</table> <td abswidth=90 valign=middle align=left>
<TR> <table cellspacing=0 cellpadding=0>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <tr>
<tr> <td maxlines=1>
<td> <font sizerange=medium color="C2CCD7">Examples</font>
<td abswidth=93 absheight=26 > </table>
<table href="wtv-guide:/help?topic=Publish&subtopic=Index&appName=Page%20Builder" </table>
cellspacing=0 cellpadding=0> <TR>
<tr> <td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<td abswidth=5> <tr>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Help</font></table> <td>
</table> <td abswidth=93 absheight=26>
<TR> <table href=client:showalert?message=This%20feature%20is%20not%20available. cellspacing=0 cellpadding=0>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <tr>
<tr> <td abswidth=5>
<td> <td abswidth=90 valign=middle align=left>
<td valign=bottom align=right > <img src="wtv-author:/ROMCache/pagebuilder.gif" height=124 width=78>&nbsp; <table cellspacing=0 cellpadding=0>
</table> <tr>
<td maxlines=1>
<font sizerange=medium color="C2CCD7">Archive</font>
</table>
</table>
<TR>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr>
<td>
<td abswidth=93 absheight=26>
<table href="wtv-guide:/help?topic=Glossary&subtopic=P&page=pagebuilder" cellspacing=0 cellpadding=0>
<tr>
<td abswidth=5>
<td abswidth=90 valign=middle align=left>
<table cellspacing=0 cellpadding=0>
<tr>
<td maxlines=1>
<font sizerange=medium color="C2CCD7">Help</font>
</table>
</table>
<TR>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr>
<td>
<td valign=bottom align=right>
<img src="wtv-author:/ROMCache/pagebuilder.gif" height=124 width=78>&nbsp;
</table>
</sidebar> </sidebar>
<body <body bgcolor=#1e4261 background=wtv-author:/ROMCache/blue_tile_128.gif text=AEBFD1 link=B8BDC7 vlink=B8BDC7 hspace=0 vspace=0 onLoad=StorageWarning()>
bgcolor=#1e4261 <SCRIPT>
background=wtv-author:/ROMCache/blue_tile_128.gif text=AEBFD1 link=B8BDC7 function StorageWarning() {}
vlink=B8BDC7 </SCRIPT>
hspace=0 <form name=onlyOnce>
vspace=0 <input type=hidden name=didIt value=0>
onLoad=StorageWarning() </form>
> <table cellspacing=0 cellpadding=0 width=100%>
<SCRIPT> <tr>
function StorageWarning() { } <td abswidth=22 rowspan=100>
</SCRIPT> <td>
<form name=onlyOnce><input type=hidden name=didIt value=0></form> <td abswidth=22 rowspan=100>
<table cellspacing=0 cellpadding=0 width=100%> <tr>
<tr> <td absheight=12>
<td abswidth=22 rowspan=100><td><td abswidth=22 rowspan=100> <tr>
<tr> <td height=25 valign=top>
<td absheight=12> <font size=+1 color=D1D1D1>
<tr> <blackface> Page Builder index </blackface>
<td height=25 valign=top> </font>
<font size=+1 color=D1D1D1><blackface> Page Builder index </blackface></font> <tr>
<tr> <td height=24>
<td height=24> <font color=AEBFD1> Choose a document to change or view it </font>
<font color=AEBFD1> Choose a document to change or view it </font> <tr>
<tr> <td height=14>
<td height=14> <tr>
<tr><td> <td>
<table cellspacing=0 cellpadding=0> <table cellspacing=0 cellpadding=0>
` `
for (let i = 0; i < numofpages; i++) { for (let i = 0; i < numofpages; i++) {
data += `<tr> <td rowspan=2 valign=top>` data += `<tr> <td rowspan=2 valign=top>`
@@ -163,14 +189,20 @@ data += `
<tr> <td><img src="/ROMCache/left_mark.gif" width=5 height=9> <tr> <td><img src="/ROMCache/left_mark.gif" width=5 height=9>
<td colspan=4><img src="/ROMCache/horiz_line_bottom.gif" width=347 height=9> <td colspan=4><img src="/ROMCache/horiz_line_bottom.gif" width=347 height=9>
<td><img src="/ROMCache/right_mark.gif" width=5 height=9>` <td><img src="/ROMCache/right_mark.gif" width=5 height=9>`
}
if (minisrv_config.services["wtv-author"].max_pages) {
data += `
</table>
<p>A maximum of <b>${minisrv_config.services["wtv-author"].max_pages}</b> pages can be created, regardless of publish status.
</table>`
} }
data += ` data += `
</table>
</table>
<SCRIPT language=JavaScript> <SCRIPT language=JavaScript>
function checkPageStatus() { function checkPageStatus() {
location = "wtv-author:/scrapbook-serve-confirm-archive?pub=true&unpub=false"; location = "wtv-author:/scrapbook-serve-confirm-archive?pub=true&unpub=false";
} }
</SCRIPT> </SCRIPT>
</BODY> </BODY>
</HTML>`; </HTML>`;

View File

@@ -34,7 +34,7 @@ if (request_headers.query.publishing == "true") {
<tr> <tr>
<td> <td>
<td abswidth=93 absheight=26 > <td abswidth=93 absheight=26 >
<table href="wtv-guide:/help?topic=Publish&subtopic=Index" <table href="wtv-guide:/help?topic=Glossary&subtopic=P&page=pagebuilder"
cellspacing=0 cellpadding=0> cellspacing=0 cellpadding=0>
<tr> <tr>
<td abswidth=5> <td abswidth=5>

View File

@@ -1,9 +1,21 @@
var minisrv_service_file = true; var minisrv_service_file = true;
var create = true;
var pagenums = session_data.pagestore.listPages().length;
if (minisrv_config.services["wtv-author"].max_pages) {
if (pagenums + 1 > minisrv_config.services["wtv-author"].max_pages) {
create = false;
}
}
if (create) {
var pagename = session_data.pagestore.createPage(request_headers.query.styleName.replace(' ', '_'));
var pagename = session_data.pagestore.createPage(request_headers.query.styleName.replace(' ', '_')); headers = `300 OK
headers = `300 OK
Connection: Keep-Alive Connection: Keep-Alive
Content-Type: text/html Content-Type: text/html
wtv-expire-all: wtv-author:/documents wtv-expire-all: wtv-author:/documents
Location: wtv-author:/show-blocks?docName=${pagename}` Location: wtv-author:/show-blocks?docName=${pagename}`
} else {
var err = wtvshared.doErrorPage(500, "You are not allowed to create more than <b>"+minisrv_config.services["wtv-author"].max_pages+"</b> pages.");
headers = err[0];
data = err[1];
}

View File

@@ -7,8 +7,62 @@ AppName = window.navigator.appName;
if (AppName.indexOf("WebTV") >= 0 ) if (AppName.indexOf("WebTV") >= 0 )
gIsWebTV = true; gIsWebTV = true;
</SCRIPT> </SCRIPT>
<TITLE>Sammy M. Surfer</TITLE> <TITLE>Examples</TITLE>
</HEAD> </HEAD>
<sidebar width=122 height=420 align=left>
<table cellspacing=0 cellpadding=0 height=385>
<TR>
<td width=3>
<td abswidth=2 bgColor=#8A99B0 rowspan=99>
<td absHEIGHT=4>&nbsp;
<td abswidth=2 bgColor=#8A99B0 rowspan=99>
<td width=4 rowspan=99>
<td backGround="wtv-author:/ROMCache/grad_tile.gif" width=16 rowspan=99>
</TR>
<tr>
<td>
<td align=right height=69 width=93 href="wtv-home:/home">
<img src="wtv-star:/ROMCache/HackTVLogoJewel.gif" width=87 height=67>
<tr>
<td absheight=5>&nbsp;
<TR>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr>
<td>
<td abswidth=93 absheight=26>
<table href="wtv-author:/documents" cellspacing=0 cellpadding=0>
<tr>
<td abswidth=5>
<td abswidth=90 valign=middle align=left>
<table cellspacing=0 cellpadding=0>
<tr>
<td maxlines=1>
<font sizerange=medium color="C2CCD7">Index</font>
</table>
</table>
<TR>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr>
<td>
<td abswidth=93 absheight=26>
<table href="wtv-guide:/help?topic=Glossary&subtopic=P&page=pagebuilder" cellspacing=0 cellpadding=0>
<tr>
<td abswidth=5>
<td abswidth=90 valign=middle align=left>
<table cellspacing=0 cellpadding=0>
<tr>
<td maxlines=1>
<font sizerange=medium color="C2CCD7">Help</font>
</table>
</table>
<TR>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr>
<td>
<td valign=bottom align=right>
<img src="wtv-author:/ROMCache/pagebuilder.gif" height=124 width=78>&nbsp;
</table>
</sidebar>
<body <body
background="/clipart/styleMedia/ExternalBackground.gif" background="/clipart/styleMedia/ExternalBackground.gif"
bgcolor=#1e4261 bgcolor=#1e4261
@@ -24,7 +78,7 @@ vspace=0
<td height=12> <td height=12>
<tr> <tr>
<td height=25 valign=top colspan=4> <td height=25 valign=top colspan=4>
<font size=+1 color=D1D1D1>Pages of Sammy M. Surfer</font> <font size=+1 color=D1D1D1>Example Pages:</font>
<tr> <tr>
<td height=14> <td height=14>
<tr><td height=10> <tr><td height=10>

View File

@@ -83,7 +83,7 @@ cellspacing=0 cellpadding=0>
<tr> <tr>
<td> <td>
<td abswidth=93 absheight=26 > <td abswidth=93 absheight=26 >
<table href="wtv-guide:/help?topic=Publish&subtopic=Index&appName=Page%20Builder" <table href="wtv-guide:/help?topic=Glossary&subtopic=P&page=pagebuilder"
cellspacing=0 cellpadding=0> cellspacing=0 cellpadding=0>
<tr> <tr>
<td abswidth=5> <td abswidth=5>

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,13 @@
var minisrv_service_file = true; var minisrv_service_file = true;
var create = true;
var pagenums = session_data.pagestore.listPages().length;
if (minisrv_config.services["wtv-author"].max_pages) {
if (pagenums + 1 > minisrv_config.services["wtv-author"].max_pages) {
create = false;
}
}
if (create) {
headers = `200 OK headers = `200 OK
Connection: Keep-Alive Connection: Keep-Alive
Content-Type: text/html` Content-Type: text/html`
@@ -10,241 +18,264 @@ data = `<HTML>
<TITLE>Select a page style</TITLE> <TITLE>Select a page style</TITLE>
</HEAD> </HEAD>
<sidebar width=122 height=420 align=left> <sidebar width=122 height=420 align=left>
<table cellspacing=0 cellpadding=0 height=385> <table cellspacing=0 cellpadding=0 height=385>
<TR> <TR>
<td width=3> <td width=3>
<td abswidth=2 bgColor=#8A99B0 rowspan=99> <td abswidth=2 bgColor=#8A99B0 rowspan=99>
<td absHEIGHT=4>&nbsp; <td absHEIGHT=4>&nbsp;
<td abswidth=2 bgColor=#8A99B0 rowspan=99> <td abswidth=2 bgColor=#8A99B0 rowspan=99>
<td width=4 rowspan=99> <td width=4 rowspan=99>
<td backGround="wtv-author:/ROMCache/grad_tile.gif" width=16 rowspan=99> <td backGround="wtv-author:/ROMCache/grad_tile.gif" width=16 rowspan=99>
</TR> </TR>
<tr> <tr>
<td> <td>
<td align=right height=69 width=93 href="wtv-home:/home"> <td align=right height=69 width=93 href="wtv-home:/home">
<img src="${minisrv_config.config.service_logo}" width=87 height=67> <img src="${minisrv_config.config.service_logo}" width=87 height=67>
<tr><td absheight=5>&nbsp; <tr>
<TR> <td absheight=5>&nbsp;
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <TR>
<tr> <td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<td> <tr>
<td abswidth=93 absheight=26 > <td>
<table href="wtv-guide:/help?topic=Publish&subtopic=Index&appName=Page%20Builder" <td abswidth=93 absheight=26>
cellspacing=0 cellpadding=0> <table href="wtv-author:/documents" cellspacing=0 cellpadding=0>
<tr> <tr>
<td abswidth=5> <td abswidth=5>
<td abswidth=90 valign=middle align=left><table cellspacing=0 cellpadding=0><tr><td maxlines=1><font sizerange=medium color="C2CCD7">Help</font></table> <td abswidth=90 valign=middle align=left>
</table> <table cellspacing=0 cellpadding=0>
<TR> <tr>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp; <td maxlines=1>
<tr> <font sizerange=medium color="C2CCD7">Index</font>
<td> </table>
<td valign=bottom align=right > <img src="wtv-author:/ROMCache/pagebuilder.gif" height=124 width=78>&nbsp; </table>
</table> <TR>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr>
<td>
<td abswidth=93 absheight=26>
<table href="wtv-guide:/help?topic=Glossary&subtopic=P&page=pagebuilder" cellspacing=0 cellpadding=0>
<tr>
<td abswidth=5>
<td abswidth=90 valign=middle align=left>
<table cellspacing=0 cellpadding=0>
<tr>
<td maxlines=1>
<font sizerange=medium color="C2CCD7">Help</font>
</table>
</table>
<TR>
<td colspan=5 absheight=2 valign=middle align=center bgcolor=#8A99B0>&nbsp;
<tr>
<td>
<td valign=bottom align=right>
<img src="wtv-author:/ROMCache/pagebuilder.gif" height=124 width=78>&nbsp;
</table>
</sidebar> </sidebar>
<body <body bgcolor=#1e4261 background=wtv-author:/ROMCache/blue_tile_128.gif text=AEBFD1 link=B8BDC7 vlink=B8BDC7 hspace=0 vspace=0>
bgcolor=#1e4261 <table cellspacing=0 cellpadding=0 width=100%>
background=wtv-author:/ROMCache/blue_tile_128.gif text=AEBFD1 link=B8BDC7 <tr>
vlink=B8BDC7 <td abswidth=10 rowspan=100>
hspace=0 <tr>
vspace=0 <td height=44 width=206 valign=middle colspan=2>
> <font size=+1 color=D1D1D1>
<table cellspacing=0 cellpadding=0 width=100%> <blackface> Choose a page style </blackface>
<tr> </font>
<td abswidth=10 rowspan=100> <td align=right valign=middle>
<tr> <table valign=middle>
<td height=44 width=206 valign=middle colspan=2> <tr>
<font size=+1 color=D1D1D1><blackface> Choose a page style </blackface></font> <td>
<td align=right valign=middle> <table cellspacing=0 cellpadding=0>
<table valign=middle> <tr>
<tr> <td>
<td> <img src="wtv-author:/ROMCache/minus_button_dim.gif">
<table cellspacing=0 cellpadding=0 </table>
><tr><td><img src="wtv-author:/ROMCache/minus_button_dim.gif"> </td>
</table> <td align=center>
</td> <font color=D1D1D1>
<td align=center><font color=D1D1D1><B>1 of 6</B></font></td> <B>1 of 1</B>
<td> </font>
<table cellspacing=0 cellpadding=0 </td>
href="wtv-author:/styles?tmplClass=11&docName=&styleName=&pageNum=1#plus" id=plus><tr><td><img src="wtv-author:/ROMCache/plus_button.gif"> <td>
</table> <table cellspacing=0 cellpadding=0 ref="wtv-author:/styles?tmplClass=11&docName=&styleName=&pageNum=1#plus" id=plus>
</td> <tr>
</tr> <td>
</table> <img src="wtv-author:/ROMCache/plus_button_dim.gif">
<tr> </table>
<td absheight=5> </td>
<tr> </tr>
<td colspan=5><font color=AEBFD1> You can change the style at any time without losing your text or images. </table>
</font> <tr>
<tr> <td absheight=5>
<td absheight=10> <tr>
<tr> <td colspan=5>
<td absheight=5> <font color=AEBFD1> You can change the style at any time without losing your text or images. </font>
<tr> <tr>
<td> <td absheight=10>
<TABLE border=0 cellpadding=0 cellspacing=0 width=137> <tr>
<TR height=120> <td absheight=5>
<TD width=128 height=120 bgcolor=#8A99B0 <tr>
href="new?tmplClass= <td>
&layoutTMPL=Blue_Sands.tmpl&contentTMPL=&styleName=Blue Sands
&blocksPerPage=0" <TABLE border=0 cellpadding=0 cellspacing=0 width=137>
name="Blue Sands <TR height=120>
" <TD width=128 height=120 bgcolor=#8A99B0 href="new?tmplClass=&layoutTMPL=Blue_Sands.tmpl&contentTMPL=&styleName=Blue Sands&blocksPerPage=0" name="Blue Sands">
> <spacer type=block width=4></spacer>
<spacer type=block width=4></spacer> <font color=0F283F> Blue Sands <BR>
<font color=0F283F> </font>
Blue Sands <center>
<BR> <img src=/images/styles/blue_sands.gif width="120" height="90" vspace=3>
</font> </center>
<center> </TD>
<img src=/images/styles/blue_sands.gif width="120" height="90" vspace=3> <TD height=120>
</center> <IMG height=120 width=12 src=/ROMCache/right_shadow.gif>
</TD> </TD>
<TD height=120><IMG height=120 width=12 src=/ROMCache/right_shadow.gif></TD> </TR>
</TR> <TR>
<TR> <TD width=128>
<TD width=128><IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif></TD> <IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif>
<TD><IMG height=12 width=12 src=/ROMCache/corner_shadow.gif></TD> </TD>
</TR> <TD>
</TABLE> <IMG height=12 width=12 src=/ROMCache/corner_shadow.gif>
</td> </TD>
<td> </TR>
<TABLE border=0 cellpadding=0 cellspacing=0 width=137> </TABLE>
<TR height=120> </td>
<TD width=128 height=120 bgcolor=#8A99B0 <td>
href="new?tmplClass=
&layoutTMPL=Ocean.tmpl&contentTMPL=&styleName=Ocean <TABLE border=0 cellpadding=0 cellspacing=0 width=137>
&blocksPerPage=0" <TR height=120>
name="Ocean <TD width=128 height=120 bgcolor=#8A99B0 href="new?tmplClass=&layoutTMPL=Space.tmpl&contentTMPL=&styleName=Space&blocksPerPage=0" name="Space">
" <spacer type=block width=4></spacer>
> <font color=0F283F> Space <BR>
<spacer type=block width=4></spacer> </font>
<font color=0F283F> <center>
Ocean <img src=/images/styles/space.gif width="120" height="90" vspace=3>
<BR> </center>
</font> </TD>
<center> <TD height=120>
<img src=/images/styles/oceanic.gif width="120" height="90" vspace=3> <IMG height=120 width=12 src=/ROMCache/right_shadow.gif>
</center> </TD>
</TD> </TR>
<TD height=120><IMG height=120 width=12 src=/ROMCache/right_shadow.gif></TD> <TR>
</TR> <TD width=128>
<TR> <IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif>
<TD width=128><IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif></TD> </TD>
<TD><IMG height=12 width=12 src=/ROMCache/corner_shadow.gif></TD> <TD>
</TR> <IMG height=12 width=12 src=/ROMCache/corner_shadow.gif>
</TABLE> </TD>
</td> </TR>
<td> </TABLE>
<TABLE border=0 cellpadding=0 cellspacing=0 width=137> </td>
<TR height=120> <td>
<TD width=128 height=120 bgcolor=#8A99B0
href="new?tmplClass= <TABLE border=0 cellpadding=0 cellspacing=0 width=137>
&layoutTMPL=Space.tmpl&contentTMPL=&styleName=Space <TR height=120>
&blocksPerPage=0" <TD width=128 height=120 bgcolor=#8A99B0 href="new?tmplClass=&layoutTMPL=Cats.tmpl&contentTMPL=&styleName=Cats&blocksPerPage=0" name="Cats">
name="Space <spacer type=block width=4></spacer>
" <font color=0F283F> Cats <BR>
> </font>
<spacer type=block width=4></spacer> <center>
<font color=0F283F> <img src=/images/styles/catz.gif width="120" height="90" vspace=3>
Space </center>
<BR> </TD>
</font> <TD height=120>
<center> <IMG height=120 width=12 src=/ROMCache/right_shadow.gif>
<img src=/images/styles/space.gif width="120" height="90" vspace=3> </TD>
</center> </TR>
</TD> <TR>
<TD height=120><IMG height=120 width=12 src=/ROMCache/right_shadow.gif></TD> <TD width=128>
</TR> <IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif>
<TR> </TD>
<TD width=128><IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif></TD> <TD>
<TD><IMG height=12 width=12 src=/ROMCache/corner_shadow.gif></TD> <IMG height=12 width=12 src=/ROMCache/corner_shadow.gif>
</TR> </TD>
</TABLE> </TR>
</td> </TABLE>
<tr> </td>
<td> <tr>
<TABLE border=0 cellpadding=0 cellspacing=0 width=137> <td>
<TR height=120> <TABLE border=0 cellpadding=0 cellspacing=0 width=137>
<TD width=128 height=120 bgcolor=#8A99B0 <TR height=120>
href="new?tmplClass= <TD width=128 height=120 bgcolor=#8A99B0 href="new?tmplClass=&layoutTMPL=Blue.tmpl&contentTMPL=&styleName=Blue&blocksPerPage=0" name="Blue">
&layoutTMPL=ringbinder.tmpl&contentTMPL=&styleName=Ringbinder <spacer type=block width=4></spacer>
&blocksPerPage=0" <font color=0F283F> Blue <BR>
name="Ringbinder </font>
" <center>
> <img src=/images/styles/blue.gif width="120" height="90" vspace=3>
<spacer type=block width=4></spacer> </center>
<font color=0F283F> </TD>
Ringbinder <TD height=120>
<BR> <IMG height=120 width=12 src=/ROMCache/right_shadow.gif>
</font> </TD>
<center> </TR>
<img src=/images/styles/ringbinder.gif width="120" height="90" vspace=3> <TR>
</center> <TD width=128>
</TD> <IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif>
<TD height=120><IMG height=120 width=12 src=/ROMCache/right_shadow.gif></TD> </TD>
</TR> <TD>
<TR> <IMG height=12 width=12 src=/ROMCache/corner_shadow.gif>
<TD width=128><IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif></TD> </TD>
<TD><IMG height=12 width=12 src=/ROMCache/corner_shadow.gif></TD> </TR>
</TR> </TABLE>
</TABLE> </td>
</td> <td>
<td>
<TABLE border=0 cellpadding=0 cellspacing=0 width=137> <TABLE border=0 cellpadding=0 cellspacing=0 width=137>
<TR height=120> <TR height=120>
<TD width=128 height=120 bgcolor=#8A99B0 <TD width=128 height=120 bgcolor=#8A99B0 href="new?tmplClass=&layoutTMPL=Red.tmpl&contentTMPL=&styleName=Red&blocksPerPage=0" name="Red">
href="new?tmplClass= <spacer type=block width=4></spacer>
&layoutTMPL=Stone.tmpl&contentTMPL=&styleName=Stone <font color=0F283F> Red <BR>
&blocksPerPage=0" </font>
name="Stone <center>
" <img src=/images/styles/red.gif width="120" height="90" vspace=3>
> </center>
<spacer type=block width=4></spacer> </TD>
<font color=0F283F> <TD height=120>
Stone <IMG height=120 width=12 src=/ROMCache/right_shadow.gif>
<BR> </TD>
</font> </TR>
<center> <TR>
<img src=/images/styles/stone.gif width="120" height="90" vspace=3> <TD width=128>
</center> <IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif>
</TD> </TD>
<TD height=120><IMG height=120 width=12 src=/ROMCache/right_shadow.gif></TD> <TD>
</TR> <IMG height=12 width=12 src=/ROMCache/corner_shadow.gif>
<TR> </TD>
<TD width=128><IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif></TD> </TR>
<TD><IMG height=12 width=12 src=/ROMCache/corner_shadow.gif></TD> </TABLE>
</TR> </td>
</TABLE> <td>
</td>
<td> <TABLE border=0 cellpadding=0 cellspacing=0 width=137>
<TABLE border=0 cellpadding=0 cellspacing=0 width=137> <TR height=120>
<TR height=120> <TD width=128 height=120 bgcolor=#8A99B0 href="new?tmplClass=&layoutTMPL=Republican.tmpl&contentTMPL=&styleName=Republican&blocksPerPage=0" name="Republican">
<TD width=128 height=120 bgcolor=#8A99B0 <spacer type=block width=4></spacer>
href="new?tmplClass= <font color=0F283F> Republican <BR>
&layoutTMPL=Cats.tmpl&contentTMPL=&styleName=Cats </font>
&blocksPerPage=0" <center>
name="Cats <img src=/images/styles/republican.gif width="120" height="90" vspace=3>
" </center>
> </TD>
<spacer type=block width=4></spacer> <TD height=120>
<font color=0F283F> <IMG height=120 width=12 src=/ROMCache/right_shadow.gif>
Cats </TD>
<BR> </TR>
</font> <TR>
<center> <TD width=128>
<img src=/images/styles/catz.gif width="120" height="90" vspace=3> <IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif>
</center> </TD>
</TD> <TD>
<TD height=120><IMG height=120 width=12 src=/ROMCache/right_shadow.gif></TD> <IMG height=12 width=12 src=/ROMCache/corner_shadow.gif>
</TR> </TD>
<TR> </TR>
<TD width=128><IMG height=12 width=128 src=/ROMCache/bottom_shadow.gif></TD> </TABLE>
<TD><IMG height=12 width=12 src=/ROMCache/corner_shadow.gif></TD> </td>
</TR> </table>
</TABLE>
</td>
</table>
</BODY> </BODY>
</HTML> </HTML>
`; `;
} else {
var err = wtvshared.doErrorPage(500, "You are not allowed to create more than <b>"+minisrv_config.services["wtv-author"].max_pages+"</b> pages.");
headers = err[0];
data = err[1];
}

View File

@@ -88,22 +88,25 @@ class WTVAuthor {
if (pages.length == 0) { if (pages.length == 0) {
pagenum = 0; pagenum = 0;
} else { } else {
var pagelen = pages.length - 1; var pagelen = pages.length;
this.debug("createPage","pages",pages) if (pagelen < 0) pagelen = 0;
var pagenums = []; this.debug("createPage","pages",pages)
for(let i = 0; i < pagelen; i++) { var pagenums = [];
var toarr = pages[i].substr(0, pages[i].indexOf('.')); for(let i = 0; i < pagelen; i++) {
pagenums.push(parseInt(toarr)); var toarr = pages[i].substr(0, pages[i].indexOf('.'));
} pagenums.push(parseInt(toarr));
pagenums = pagenums.sort() }
var pagenum = pagenums[pagelen]; pagenums = pagenums.sort()
this.debug("createPage", "pagenum",pagenum) this.debug("createPage", "pagenums", pagenums)
var pagenum = parseInt(pagenums[pagelen - 1]);
this.debug("createPage", "pagenum", pagenum)
this.debug("createPage", "pagelen", pagelen)
} }
if (pages.length == 0) { if (pages.length == 0) {
pagenum = 0 pagenum = 0
var pagefile = pagenum + this.pageFileExt; var pagefile = pagenum + this.pageFileExt;
} else { } else {;
var pagefile = pagenum + 1 + this.pageFileExt; var pagefile = (pagenum + 1) + this.pageFileExt;
} }
var pagefileout = this.pagestore_dir + pagefile; var pagefileout = this.pagestore_dir + pagefile;
// JSON data structure // JSON data structure
@@ -971,11 +974,6 @@ vspace=0
} }
editTextBlock(pagenum, title, caption, size, style, position, oldposition) { editTextBlock(pagenum, title, caption, size, style, position, oldposition) {
Array.prototype.move = function(from,to){
this.splice(to,0,this.splice(from,1)[0]);
return this;
};
var pagedata = this.loadPage(pagenum); var pagedata = this.loadPage(pagenum);
if (!pagedata) return false; if (!pagedata) return false;
@@ -993,7 +991,7 @@ vspace=0
pagedata.blocks[oldposition].style = style pagedata.blocks[oldposition].style = style
if (oldposition != position) if (oldposition != position)
pagedata.blocks.move(oldposition,position); moveArrayKey(pagedata.blocks,oldposition,position);
this.editPage(pagedata, pagenum); this.editPage(pagedata, pagenum);
return true; return true;
@@ -1018,10 +1016,6 @@ vspace=0
} }
editPhotoBlock(pagenum, oldposition, position, photo, type, title, caption) { editPhotoBlock(pagenum, oldposition, position, photo, type, title, caption) {
Array.prototype.move = function(from,to){
this.splice(to,0,this.splice(from,1)[0]);
return this;
};
var pagedata = this.loadPage(pagenum); var pagedata = this.loadPage(pagenum);
if (!pagedata) return false; if (!pagedata) return false;
@@ -1044,7 +1038,7 @@ vspace=0
blocks[oldposition].caption = caption blocks[oldposition].caption = caption
if (oldposition != position) { if (oldposition != position) {
blocks.move(oldposition,position); moveArrayKey(blocks, oldposition,position);
} }
this.editPage(pagedata, pagenum); this.editPage(pagedata, pagenum);
@@ -1070,10 +1064,6 @@ vspace=0
} }
editHeaderBlock(pagenum, text, size, dividerBefore, dividerAfter, position, oldposition) { editHeaderBlock(pagenum, text, size, dividerBefore, dividerAfter, position, oldposition) {
Array.prototype.move = function(from,to){
this.splice(to,0,this.splice(from,1)[0]);
return this;
};
var pagedata = this.loadPage(pagenum); var pagedata = this.loadPage(pagenum);
if (!pagedata) return false; if (!pagedata) return false;
@@ -1092,7 +1082,7 @@ vspace=0
pagedata.blocks[oldposition].dividerAfter = dividerAfter pagedata.blocks[oldposition].dividerAfter = dividerAfter
if (oldposition != position) if (oldposition != position)
pagedata.blocks.move(oldposition,position); moveArrayKey(pagedata.blocks, oldposition,position);
this.editPage(pagedata, pagenum); this.editPage(pagedata, pagenum);
return true; return true;
@@ -1115,10 +1105,6 @@ vspace=0
} }
editListBlock(pagenum, title, items, position, oldposition) { editListBlock(pagenum, title, items, position, oldposition) {
Array.prototype.move = function(from,to){
this.splice(to,0,this.splice(from,1)[0]);
return this;
};
var pagedata = this.loadPage(pagenum); var pagedata = this.loadPage(pagenum);
if (!pagedata) return false; if (!pagedata) return false;
@@ -1133,7 +1119,7 @@ vspace=0
pagedata.blocks[oldposition].items = items pagedata.blocks[oldposition].items = items
if (oldposition != position) if (oldposition != position)
pagedata.blocks.move(oldposition,position); moveArrayKey(pagedata.blocks,oldposition,position);
this.editPage(pagedata, pagenum); this.editPage(pagedata, pagenum);
return true; return true;
@@ -1173,10 +1159,6 @@ vspace=0
} }
editLinkBlock(pagenum, title, listItems, linkItems, position, oldposition) { editLinkBlock(pagenum, title, listItems, linkItems, position, oldposition) {
Array.prototype.move = function(from,to){
this.splice(to,0,this.splice(from,1)[0]);
return this;
};
var pagedata = this.loadPage(pagenum); var pagedata = this.loadPage(pagenum);
if (!pagedata) return false; if (!pagedata) return false;
@@ -1202,7 +1184,7 @@ vspace=0
pagedata.blocks[oldposition].items = items pagedata.blocks[oldposition].items = items
if (oldposition != position) if (oldposition != position)
pagedata.blocks.move(oldposition,position); moveArrayKey(pagedata.blocks,oldposition,position);
this.editPage(pagedata, pagenum); this.editPage(pagedata, pagenum);
return true; return true;
@@ -1224,16 +1206,11 @@ vspace=0
} }
editBreakBlock(pagenum, position, oldposition) { editBreakBlock(pagenum, position, oldposition) {
Array.prototype.move = function(from,to){
this.splice(to,0,this.splice(from,1)[0]);
return this;
};
var pagedata = this.loadPage(pagenum); var pagedata = this.loadPage(pagenum);
if (!pagedata) return false; if (!pagedata) return false;
if (oldposition != position) if (oldposition != position)
pagedata.blocks.move(oldposition,position); moveArrayKey(pagedata.blocks,oldposition,position);
this.editPage(pagedata, pagenum); this.editPage(pagedata, pagenum);
this.generateBreakList(pagenum); this.generateBreakList(pagenum);

View File

@@ -281,6 +281,7 @@
"port": 1643, "port": 1643,
"connections": 3, "connections": 3,
"enable_multi_query": true, "enable_multi_query": true,
"max_pages": 4,
"publish_mode": "service", // "service" or "directory" "publish_mode": "service", // "service" or "directory"
"publish_dest": "pb_services", // service name, or directory path "publish_dest": "pb_services", // service name, or directory path
"modules": [ "modules": [

File diff suppressed because it is too large Load Diff

View File

@@ -44,5 +44,8 @@
"socks-proxy-agent": "^8.0.1", "socks-proxy-agent": "^8.0.1",
"strftime": "^0.10.2", "strftime": "^0.10.2",
"uuid": "^8.3.2" "uuid": "^8.3.2"
},
"devDependencies": {
"eslint": "^8.48.0"
} }
} }