@@ -873,10 +873,27 @@
873 873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"'update'd or 'close'd and re-'open'ed.");
874 874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
875 875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CheckinMiniInfo_cleanup(&cimi);
876 876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
877 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the fileedit-glob setting has a value, this returns its Glob
880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** object (in memory owned by this function), else it returns NULL.
881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static Glob * fileedit_glob(void){
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static Glob * pGlobs = 0;
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int once = 0;
885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(0==pGlobs && once==0){
886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char * zGlobs = db_get("fileedit-glob",0);
887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ once = 1;
888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(0!=zGlobs && 0!=*zGlobs){
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pGlobs = glob_create(zGlobs);
890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_free(zGlobs);
892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return pGlobs;
894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
878 895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
879 896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
880 897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns true if the given filename qualifies for online editing by
881 898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the current user, else returns false.
882 899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -883,25 +900,17 @@
883 900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Editing requires that the user have the Write permission and that
884 901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the filename match the glob defined by the fileedit-glob setting.
885 902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** A missing or empty value for that glob disables all editing.
886 903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
887 904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int fileedit_is_editable(const char *zFilename){
888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static Glob * pGlobs = 0;
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int once = 0;
890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==g.perm.Write || zFilename==0 || *zFilename==0
891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (once!=0 && pGlobs==0)){
905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Glob * pGlobs = fileedit_glob();
906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(pGlobs!=0 && zFilename!=0 && *zFilename!=0 && 0!=g.perm.Write){
907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return glob_match(pGlobs, zFilename);
908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
892 909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if(0==pGlobs){
894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char * zGlobs = db_get("fileedit-glob",0);
895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- once = 1;
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(0==zGlobs) return 0;
897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pGlobs = glob_create(zGlobs);
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_free(zGlobs);
899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return glob_match(pGlobs, zFilename);
901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
903 912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
904 913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
enum fileedit_render_preview_flags {
905 914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FE_PREVIEW_LINE_NUMBERS = 1
906 915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
907 916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
enum fileedit_render_modes {
@@ -1303,22 +1312,31 @@
1303 1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** It always fails if it cannot completely resolve the 'file' and 'r'
1304 1313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** parameters, including verifying that the refer to a real
1305 1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** file/version combination and editable by the current user. All
1306 1315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** others are optional (at this level, anyway, but upstream code might
1307 1316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** require them).
1317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
1318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the 3rd argument is not NULL and an error is related to a
1319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** missing arg then *bIsMissingArg is set to true. This is
1320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** intended to allow /fileedit to squelch certain initialization
1321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** errors.
1308 1322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1309 1323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Intended to be used only by /filepage and /filepage_commit.
1310 1324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int fileedit_setup_cimi_from_p(CheckinMiniInfo * p, Blob * pErr){
1325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int fileedit_setup_cimi_from_p(CheckinMiniInfo * p, Blob * pErr,
1326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int * bIsMissingArg){
1312 1327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char * zFileUuid = 0; /* UUID of file content */
1313 1328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char * zFlag; /* generic flag */
1314 1329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = 0, vid = 0, frid = 0; /* result code, checkin/file rids */
1315 1330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1316 1331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define fail(EXPR) blob_appendf EXPR; goto end_fail
1317 1332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFlag = PD("filename",P("fn"));
1318 1333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(zFlag==0 || !*zFlag){
1319 1334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = 400;
1335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(bIsMissingArg){
1336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *bIsMissingArg = 1;
1337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1320 1338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fail((pErr,"Missing required 'filename' parameter."));
1321 1339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1322 1340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zFilename = mprintf("%s",zFlag);
1323 1341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1324 1342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(0==fileedit_is_editable(p->zFilename)){
@@ -1330,10 +1348,13 @@
1330 1348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1331 1349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1332 1350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFlag = PD("checkin",P("ci"));
1333 1351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!zFlag){
1334 1352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = 400;
1353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(bIsMissingArg){
1354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *bIsMissingArg = 1;
1355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1335 1356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fail((pErr,"Missing required 'checkin' parameter."));
1336 1357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1337 1358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
vid = symbolic_name_to_rid(zFlag, "ci");
1338 1359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(0==vid){
1339 1360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = 404;
@@ -1547,11 +1568,11 @@
1547 1568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!fileedit_ajax_boostrap()){
1548 1569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
1549 1570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1550 1571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_begin_transaction();
1551 1572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CheckinMiniInfo_init(&cimi);
1552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = fileedit_setup_cimi_from_p(&cimi, &err);
1573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = fileedit_setup_cimi_from_p(&cimi, &err, 0);
1553 1574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(0!=rc){
1554 1575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fileedit_ajax_error(rc,"%b",&err);
1555 1576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto end_cleanup;
1556 1577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1557 1578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(blob_size(&cimi.comment)==0){
@@ -1643,16 +1664,23 @@
1643 1664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_header("File Editor");
1644 1665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* As of this point, don't use return or fossil_fatal(). Write any
1645 1666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** error in (&err) and goto end_footer instead so that we can be
1646 1667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sure to do any cleanup and end the transaction cleanly.
1647 1668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(fileedit_setup_cimi_from_p(&cimi, &err)==0){
1649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilename = cimi.zFilename;
1650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zRev = cimi.zParentUuid;
1651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(zRev);
1652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(zFilename);
1653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFileMime = mimetype_from_name(cimi.zFilename);
1669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
1670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int isMissingArg = 0;
1671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(fileedit_setup_cimi_from_p(&cimi, &err, &isMissingArg)==0){
1672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zFilename = cimi.zFilename;
1673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zRev = cimi.zParentUuid;
1674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert(zRev);
1675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert(zFilename);
1676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zFileMime = mimetype_from_name(cimi.zFilename);
1677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(isMissingArg!=0){
1678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Squelch these startup warnings - they're non-fatal now but
1679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** used to be. */
1680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&err);
1681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1654 1682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1655 1683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1656 1684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/********************************************************************
1657 1685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** All errors which "could" have happened up to this point are of a
1658 1686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** degree which keep us from rendering the rest of the page, and
@@ -1672,10 +1700,18 @@
1672 1700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_emit_script_tag(0,0);
1673 1701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("document.body.classList.add('fileedit');\n");
1674 1702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_emit_script_tag(1,0);
1675 1703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1676 1704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(fileedit_glob()==0){
1706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<div class='error'>To enable online editing, the "
1707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "<code>fileedit-glob</code> repository setting must be set to a "
1708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "comma- or newine-delimited list of glob values matching files "
1709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "which may be edited online."
1710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "</div>");
1711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1677 1713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Status bar */
1678 1714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("<div id='fossil-status-bar' "
1679 1715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"title='Status message area. Double-click to clear them.'>"
1680 1716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"Status messages will go here.</div>\n"
1681 1717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* will be moved into the tab container via JS */);
@@ -1751,11 +1787,12 @@
1751 1787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("<div id='fileedit-tab-preview' "
1752 1788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"data-tab-parent='fileedit-tabs' "
1753 1789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"data-tab-label='Preview'"
1754 1790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
">");
1755 1791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CX("<div class='fileedit-options flex-container flex-row'>");
1792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<div class='fileedit-options flex-container flex-column'>");
1793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<div class='flex-container flex-row'>");
1757 1794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("<button id='btn-preview-refresh' "
1758 1795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"data-f-preview-from='fileedit-content-editor' "
1759 1796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* ^^^ text source elem ID*/
1760 1797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"data-f-preview-via='_postPreview' "
1761 1798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* ^^^ fossil.page[methodName](content, callback) */
@@ -1816,10 +1853,16 @@
1816 1853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"preview_ln",
1817 1854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"Add line numbers to plain-text previews?",
1818 1855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"1", P("preview_ln")!=0,
1819 1856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"If on, plain-text files (only) will get "
1820 1857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"line numbers added to the preview.");
1858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("</div>"/*.flex-container.flex-row (buttons/options)*/);
1859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<div class='fileedit-hint'>"
1860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Note that hyperlinks in previewed HTML are relative to "
1861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "<em>this</em> page, and therefore not correct. Clicking "
1862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "them will leave this page, losing any edits."
1863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "</div>");
1821 1864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("</div>"/*.fileedit-options*/);
1822 1865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("<div id='fileedit-tab-preview-wrapper'></div>");
1823 1866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("</div>"/*#fileedit-tab-preview*/);
1824 1867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1825 1868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -1842,14 +1885,12 @@
1842 1885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1843 1886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1844 1887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/****** Commit ******/
1845 1888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("<div id='fileedit-tab-commit' "
1846 1889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"data-tab-parent='fileedit-tabs' "
1847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "data-tab-select='1' "
1848 1890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"data-tab-label='Commit'"
1849 1891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
">");
1850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1851 1892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
1852 1893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/******* Commit flags/options *******/
1853 1894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("<div class='fileedit-options flex-container flex-row'>");
1854 1895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_labeled_checkbox("cb-dry-run",
1855 1896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"dry_run", "Dry-run?", "1", 1,
@@ -1948,16 +1989,44 @@
1948 1989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"<button id='fileedit-btn-commit'>Commit</button>"
1949 1990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"</div>\n");
1950 1991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("<div id='fileedit-manifest'></div>\n"
1951 1992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Manifest gets rendered here after a commit. */);
1952 1993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
1954 1994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("</div>"/*#fileedit-tab-commit*/);
1955 1995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /****** Help/Tips ******/
1997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<div id='fileedit-tab-help' "
1998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "data-tab-parent='fileedit-tabs' "
1999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "data-tab-label='Help'"
2000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ">");
2001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
2002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<h1>Help & Tips</h1>");
2003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<ul>");
2004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<li><strong>Only files matching the <code>fileedit-glob</code> "
2005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "</strong> repository setting can be edited online. That setting "
2006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "must be a comma- or newline-delimited list of glob patterns "
2007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "for files which may be edited online.</li>");
2008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<li><strong>Clicking any links</strong> on this page will "
2009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "leave the page, <strong>losing any edits</strong>.</li>");
2010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<li>Saving edits creates a new commit with a single modified "
2011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "file.</li>");
2012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<li>\"Delta manifests\" (see the checkbox on the Commit tab) "
2013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "make for smaller commit records, especially in repositories "
2014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "with many files.</li>");
2015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("<li>The file selector allows, for usability's sake, only files "
2016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "in leaf checkins to be selected, but files may be edited via "
2017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "non-leaf checkins by passing them as the <code>filename</code> "
2018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "and <code>checkin</code> URL arguments to this page.</li>");
2019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("</ul>");
2020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CX("</div>"/*#fileedit-tab-help*/);
2022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
2023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1956 2024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
1957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Dynamically populate the editor or display a warning
1958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** about having no file loaded... */
2025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Dynamically populate the editor, display a any error
2026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in the err blob, and/or switch to tab #0, where the file
2027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** selector lives... */
1959 2028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&endScript,
1960 2029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"window.addEventListener('load',");
1961 2030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(zRev && zFilename){
1962 2031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert(0==blob_size(&err));
1963 2032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&endScript,
@@ -1965,17 +2034,15 @@
1965 2034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFilename, cimi.zParentUuid);
1966 2035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1967 2036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&endScript,"function(){");
1968 2037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(blob_size(&err)>0){
1969 2038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&endScript,
1970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "fossil.error(\"%j\");\n"
1971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "fossil.page.tabs.switchToTab(0);\n",
2039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "fossil.error(\"%j\");\n",
1972 2040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_str(&err));
1973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
1974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&endScript,
1975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "fossil.error('No file/version selected.')");
1976 2041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&endScript,
2043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "fossil.page.tabs.switchToTab(0);\n");
1977 2044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&endScript,"}");
1978 2045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1979 2046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&endScript,", false);\n");
1980 2047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1981 2048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1982 2049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!