@@ -15,78 +15,90 @@
15 15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
16 16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*******************************************************************************
17 17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
18 18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This file contains code to do formatting of event messages:
19 19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Technical Notes
20 21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Milestones
21 22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Blog posts
22 23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** New articles
23 24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Process checkpoints
24 25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Announcements
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Do not confuse "event" artifacts with the "event" table in the
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** repository database. An "event" artifact is a technical-note: a
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** wiki- or blog-like essay that appears on the timeline. The "event"
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** table records all entries on the timeline, including tech-notes.
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (2015-02-14): Changing the name to "tech-note" most everywhere.
25 33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
26 34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include "config.h"
27 35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include <assert.h>
28 36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include <ctype.h>
29 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include "event.h"
30 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
31 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Output a hyperlink to an event given its tagid.
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Output a hyperlink to an technote given its tagid.
33 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
34 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void hyperlink_to_event_tagid(int tagid){
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zEventId;
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId = db_text(0, "SELECT substr(tagname, 7) FROM tag WHERE tagid=%d",
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zId;
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId = db_text(0, "SELECT substr(tagname, 7) FROM tag WHERE tagid=%d",
37 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tagid);
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ [%z(href("%R/event/%s",zEventId))%S(zEventId)</a>]
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free(zEventId);
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ [%z(href("%R/technote/%s",zId))%S(zId)</a>]
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ free(zId);
40 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
41 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
42 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** WEBPAGE: technote
43 52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WEBPAGE: event
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** URL: /event
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Display a "technical note" or "tech-note" (formerly called an "event").
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
45 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** PARAMETERS:
46 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** name=EVENTID // Identify the event to display EVENTID must be complete
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** aid=ARTIFACTID // Which specific version of the event. Optional.
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** v=BOOLEAN // Show details if TRUE. Default is FALSE. Optional.
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** name=ID // Identify the tech-note to display. ID must be complete
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** aid=ARTIFACTID // Which specific version of the tech-note. Optional.
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** v=BOOLEAN // Show details if TRUE. Default is FALSE. Optional.
50 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
51 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Display an existing event identified by EVENTID
52 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
53 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void event_page(void){
54 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rid = 0; /* rid of the event artifact */
55 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zUuid; /* UUID corresponding to rid */
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zEventId; /* Event identifier */
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zId; /* Event identifier */
57 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zVerbose; /* Value of verbose option */
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zETime; /* Time of the event */
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zETime; /* Time of the tech-note */
59 70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zATime; /* Time the artifact was created */
60 71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int specRid; /* rid specified by aid= parameter */
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int prevRid, nextRid; /* Previous or next edits of this event */
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Manifest *pEvent; /* Parsed event artifact */
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob fullbody; /* Complete content of the event body */
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob title; /* Title extracted from the event body */
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int prevRid, nextRid; /* Previous or next edits of this tech-note */
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Manifest *pTNote; /* Parsed technote artifact */
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob fullbody; /* Complete content of the technote body */
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob title; /* Title extracted from the technote body */
65 76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob tail; /* Event body that comes after the title */
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Stmt q1; /* Query to search for the event */
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Stmt q1; /* Query to search for the technote */
67 78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int verboseFlag; /* True to show details */
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zMimetype = 0; /* Mimetype of the document */
68 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
69 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* wiki-read privilege is needed in order to read events.
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* wiki-read privilege is needed in order to read tech-notes.
71 83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
72 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
73 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !g.perm.RdWiki ){
74 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_needed(g.anon.RdWiki);
75 87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
76 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
77 89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId = P("name");
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zEventId==0 ){ fossil_redirect_home(); return; }
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId = P("name");
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zId==0 ){ fossil_redirect_home(); return; }
80 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUuid = (char*)P("aid");
81 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
specRid = zUuid ? uuid_to_rid(zUuid, 0) : 0;
82 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rid = nextRid = prevRid = 0;
83 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q1,
84 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT rid FROM tagxref"
85 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" WHERE tagid=(SELECT tagid FROM tag WHERE tagname GLOB 'event-%q*')"
86 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ORDER BY mtime DESC",
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId
88 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
89 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( db_step(&q1)==SQLITE_ROW ){
90 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nextRid = rid;
91 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rid = db_column_int(&q1, 0);
92 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( specRid==0 || specRid==rid ){
@@ -96,12 +108,12 @@
96 108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
97 109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
99 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q1);
100 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rid==0 || (specRid!=0 && specRid!=rid) ){
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_header("No Such Event");
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ Cannot locate specified event
113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_header("No Such Tech-Note");
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ Cannot locate a technical note called <b>%h(zId)</b>.
103 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_footer();
104 116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
105 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
106 118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
107 119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zVerbose = P("v");
@@ -113,122 +125,150 @@
113 125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114 126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
verboseFlag = (zVerbose!=0) && !is_false(zVerbose);
115 127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
116 128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Extract the event content.
117 129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pEvent = manifest_get(rid, CFTYPE_EVENT, 0);
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pEvent==0 ){
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_fatal("Object #%d is not an event", rid);
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTNote = manifest_get(rid, CFTYPE_EVENT, 0);
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTNote==0 ){
132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("Object #%d is not a tech-note", rid);
121 133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&fullbody, pEvent->zWiki, -1);
123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( wiki_find_title(&fullbody, &title, &tail) ){
124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_header("%s", blob_str(&title));
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zMimetype = wiki_filter_mimetypes(PD("mimetype",pTNote->zMimetype));
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&fullbody, pTNote->zWiki, -1);
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&title, 0, 0);
137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&tail, 0, 0);
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(zMimetype, "text/x-fossil-wiki")==0 ){
139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !wiki_find_title(&fullbody, &title, &tail) ){
140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&title, "Tech-note %S", zId);
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tail = fullbody;
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( fossil_strcmp(zMimetype, "text/x-markdown")==0 ){
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ markdown_to_html(&fullbody, &title, &tail);
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( blob_size(&title)==0 ){
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&title, "Tech-note %S", zId);
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
125 148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_header("Event %S", zEventId);
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&title, "Tech-note %S", zId);
127 150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tail = fullbody;
128 151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_header("%s", blob_str(&title));
129 153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.perm.WrWiki && g.perm.Write && nextRid==0 ){
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Edit", "Edit", "%s/eventedit?name=%s",
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.zTop, zEventId);
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Edit", 0, "%R/technoteedit?name=%!S", zId);
132 155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zETime = db_text(0, "SELECT datetime(%.17g)", pEvent->rEventDate);
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Context", 0, "%R/timeline?c=%.20s", zEventId);
156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zETime = db_text(0, "SELECT datetime(%.17g)", pTNote->rEventDate);
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Context", 0, "%R/timeline?c=%.20s", zId);
135 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.perm.Hyperlink ){
136 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( verboseFlag ){
137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Plain", 0, "%R/event?name=%.20s&aid=%s",
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId, zUuid);
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Plain", 0,
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "%R/technote?name=%!S&aid=%s&mimetype=text/plain",
162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId, zUuid);
139 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nextRid ){
140 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zNext;
141 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zNext = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", nextRid);
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Next", 0,"%R/event?name=%.20s&aid=%s&v",
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId, zNext);
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Next", 0,"%R/technote?name=%!S&aid=%s&v",
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId, zNext);
144 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zNext);
145 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( prevRid ){
147 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zPrev;
148 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPrev = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", prevRid);
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Prev", 0, "%R/event?name=%s&aid=%s&v",
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId, zPrev);
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Prev", 0, "%R/technote?name=%!S&aid=%s&v",
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId, zPrev);
151 175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zPrev);
152 176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
153 177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_submenu_element("Detail", 0, "%R/event?name=%.20s&aid=%s&v",
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId, zUuid);
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_element("Detail", 0, "%R/technote?name=%!S&aid=%s&v",
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId, zUuid);
156 180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
157 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
158 182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
159 183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( verboseFlag && g.perm.Hyperlink ){
160 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
161 185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zClr = 0;
162 186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob comment;
163 187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zATime = db_text(0, "SELECT datetime(%.17g)", pEvent->rDate);
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <p>Event [%z(href("%R/artifact/%!S",zUuid))%S(zUuid)</a>] at
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zATime = db_text(0, "SELECT datetime(%.17g)", pTNote->rDate);
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <p>Tech-note [%z(href("%R/artifact/%!S",zUuid))%S(zUuid)</a>] at
166 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ [%z(href("%R/timeline?c=%T",zETime))%s(zETime)</a>]
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ entered by user <b>%h(pEvent->zUser)</b> on
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ entered by user <b>%h(pTNote->zUser)</b> on
168 192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ [%z(href("%R/timeline?c=%T",zATime))%s(zATime)</a>]:</p>
169 193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <blockquote>
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<pEvent->nTag; i++){
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( fossil_strcmp(pEvent->aTag[i].zName,"+bgcolor")==0 ){
172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zClr = pEvent->aTag[i].zValue;
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<pTNote->nTag; i++){
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(pTNote->aTag[i].zName,"+bgcolor")==0 ){
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zClr = pTNote->aTag[i].zValue;
173 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
174 198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
175 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zClr && zClr[0]==0 ) zClr = 0;
176 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zClr ){
177 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <div style="background-color: %h(zClr);">
178 202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
179 203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <div>
180 204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&comment, pEvent->zComment, -1);
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&comment, pTNote->zComment, -1);
182 206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wiki_convert(&comment, 0, WIKI_INLINE);
183 207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&comment);
184 208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </div>
185 209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </blockquote><hr />
186 210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
187 211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wiki_convert(&tail, 0, 0);
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(zMimetype, "text/x-fossil-wiki")==0 ){
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wiki_convert(&fullbody, 0, 0);
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( fossil_strcmp(zMimetype, "text/x-markdown")==0 ){
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_append_content(blob_buffer(&tail), blob_size(&tail));
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <pre>
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ %h(blob_str(&fullbody))
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </pre>
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
189 221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_footer();
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- manifest_destroy(pEvent);
222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ manifest_destroy(pTNote);
191 223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
192 224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
193 225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** WEBPAGE: technoteedit
194 227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WEBPAGE: eventedit
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** URL: /eventedit?name=EVENTID
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Revise or create a technical note (formerly called an 'event').
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Parameters:
196 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Edit an event. If name is omitted, create a new event.
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** name=ID Hex hash ID of the tech-note. If omitted, a new
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** tech-note is created.
198 235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
199 236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void eventedit_page(void){
200 237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zTag;
201 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rid = 0;
202 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob event;
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zEventId;
240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zId;
204 241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n;
205 242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *z;
206 243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zBody = (char*)P("w");
207 244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zETime = (char*)P("t");
208 245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zComment = P("c");
209 246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zTags = P("g");
210 247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zClr;
248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zMimetype = P("mimetype");
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int isNew = 0;
211 250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
212 251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zBody ){
213 252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zBody = mprintf("%s", zBody);
214 253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
215 254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId = P("name");
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zEventId==0 ){
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zEventId = db_text(0, "SELECT lower(hex(randomblob(20)))");
255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId = P("name");
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zId==0 ){
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zId = db_text(0, "SELECT lower(hex(randomblob(20)))");
258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ isNew = 1;
219 259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nEventId = strlen(zEventId);
221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( nEventId!=40 || !validate16(zEventId, 40) ){
260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nId = strlen(zId);
261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(zId, nId) ){
222 262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_redirect_home();
223 263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
224 264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
225 265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zTag = mprintf("event-%s", zEventId);
266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zTag = mprintf("event-%s", zId);
227 267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rid = db_int(0,
228 268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT rid FROM tagxref"
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE tagid=(SELECT tagid FROM tag WHERE tagname GLOB '%q*')"
230 270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ORDER BY mtime DESC", zTag
231 271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
232 272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zTag);
233 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
234 274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Need both check-in and wiki-write or wiki-create privileges in order
@@ -239,30 +279,34 @@
239 279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
240 280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
241 281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
242 282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Figure out the color */
243 283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rid ){
244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zClr = db_text("", "SELECT bgcolor FROM event WHERE objid=%d", rid);
284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zClr = db_text("", "SELECT bgcolor FROM event WHERE objid=%d", rid);
245 285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
246 286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zClr = "";
287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ isNew = 1;
247 288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
248 289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zClr = PD("clr",zClr);
249 290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fossil_strcmp(zClr,"##")==0 ) zClr = PD("cclr","");
250 291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
251 292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
252 293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If editing an existing event, extract the key fields to use as
253 294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a starting point for the edit.
254 295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rid && (zBody==0 || zETime==0 || zComment==0 || zTags==0) ){
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Manifest *pEvent;
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pEvent = manifest_get(rid, CFTYPE_EVENT, 0);
258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pEvent && pEvent->type==CFTYPE_EVENT ){
259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zBody==0 ) zBody = pEvent->zWiki;
296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rid
297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (zBody==0 || zETime==0 || zComment==0 || zTags==0 || zMimetype==0)
298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Manifest *pTNote;
300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pTNote = manifest_get(rid, CFTYPE_EVENT, 0);
301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTNote && pTNote->type==CFTYPE_EVENT ){
302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zBody==0 ) zBody = pTNote->zWiki;
260 303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zETime==0 ){
261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zETime = db_text(0, "SELECT datetime(%.17g)", pEvent->rEventDate);
304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zETime = db_text(0, "SELECT datetime(%.17g)", pTNote->rEventDate);
262 305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zComment==0 ) zComment = pEvent->zComment;
306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zComment==0 ) zComment = pTNote->zComment;
307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zMimetype==0 ) zMimetype = pTNote->zMimetype;
264 308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
265 309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zTags==0 ){
266 310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTags = db_text(0,
267 311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"SELECT group_concat(substr(tagname,5),', ')"
268 312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" FROM tagxref, tag"
@@ -276,11 +320,11 @@
276 320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zETime = db_text(0, "SELECT coalesce(datetime(%Q),datetime('now'))", zETime);
277 321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( P("submit")!=0 && (zBody!=0 && zComment!=0) ){
278 322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zDate;
279 323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob cksum;
280 324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nrid, n;
281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_zero(&event);
325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&event, 0, 0);
282 326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_begin_transaction();
283 327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_verify_csrf_secret();
284 328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( fossil_isspace(zComment[0]) ) zComment++;
285 329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
n = strlen(zComment);
286 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( n>0 && fossil_isspace(zComment[n-1]) ){ n--; }
@@ -289,17 +333,20 @@
289 333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
290 334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDate = date_in_standard_format("now");
291 335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&event, "D %s\n", zDate);
292 336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zDate);
293 337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zETime[10] = 'T';
294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&event, "E %s %s\n", zETime, zEventId);
338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&event, "E %s %s\n", zETime, zId);
295 339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zETime[10] = ' ';
296 340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rid ){
297 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
298 342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&event, "P %s\n", zUuid);
299 343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zUuid);
300 344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zMimetype && zMimetype[0] ){
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&event, "N %s\n", zMimetype);
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
301 348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zClr && zClr[0] ){
302 349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&event, "T +bgcolor * %F\n", zClr);
303 350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
304 351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zTags && zTags[0] ){
305 352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob tags, one;
@@ -350,22 +397,26 @@
350 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nrid);
351 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_crosslink(nrid, &event, MC_NONE);
352 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( blob_is_reset(&event) );
353 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content_deltify(rid, nrid, 0);
354 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(0);
355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cgi_redirectf("event?name=%T", zEventId);
402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_redirectf("technote?name=%T", zId);
356 403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
357 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( P("cancel")!=0 ){
358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cgi_redirectf("event?name=%T", zEventId);
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_redirectf("technote?name=%T", zId);
359 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
360 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
361 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zBody==0 ){
362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zBody = mprintf("<i>Event Text</i>");
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zBody = mprintf("Insert new content here...");
363 410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- style_header("Edit Event %S", zEventId);
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( isNew ){
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_header("New Tech-note %S", zId);
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_header("Edit Tech-note %S", zId);
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
365 416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( P("preview")!=0 ){
366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob title, tail, com;
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob com;
367 418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <p><b>Timeline comment preview:</b></p>
368 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <blockquote>
369 420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <table border="0">
370 421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zClr && zClr[0] ){
371 422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><td style="background-color: %h(zClr);">
@@ -377,55 +428,55 @@
377 428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wiki_convert(&com, 0, WIKI_INLINE|WIKI_NOBADLINKS);
378 429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td></tr></table>
379 430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </blockquote>
380 431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <p><b>Page content preview:</b><p>
381 432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <blockquote>
382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_zero(&event);
433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&event, 0, 0);
383 434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(&event, zBody, -1);
384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( wiki_find_title(&event, &title, &tail) ){
385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <h2 align="center">%h(blob_str(&title))</h2>
386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wiki_convert(&tail, 0, 0);
387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wiki_convert(&event, 0, 0);
389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wiki_render_by_mimetype(&event, zMimetype);
390 436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </blockquote><hr />
391 437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&event);
392 438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
393 439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(n=2, z=zBody; z[0]; z++){
394 440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z[0]=='\n' ) n++;
395 441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
396 442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( n<20 ) n = 20;
397 443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( n>40 ) n = 40;
398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <form method="post" action="%s(g.zTop)/eventedit"><div>
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <form method="post" action="%R/technoteedit"><div>
399 445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_insert_csrf_secret();
400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <input type="hidden" name="name" value="%h(zEventId)" />
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <input type="hidden" name="name" value="%h(zId)" />
401 447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <table border="0" cellspacing="10">
402 448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><th align="right" valign="top">Event Time (UTC):</th>
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><th align="right" valign="top">Timestamp (UTC):</th>
404 450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td valign="top">
405 451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="text" name="t" size="25" value="%h(zETime)" />
406 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td></tr>
407 453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><th align="right" valign="top">Timeline Comment:</th>
454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><th align="right" valign="top">Timeline Comment:</th>
409 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td valign="top">
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <textarea name="c" class="eventedit" cols="80"
456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <textarea name="c" class="technoteedit" cols="80"
411 457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ rows="3" wrap="virtual">%h(zComment)</textarea>
412 458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td></tr>
413 459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><th align="right" valign="top">Background Color:</th>
460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><th align="right" valign="top">Timeline Background Color:</th>
415 461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td valign="top">
416 462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
render_color_chooser(0, zClr, 0, "clr", "cclr");
417 463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td></tr>
418 464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
419 465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><th align="right" valign="top">Tags:</th>
420 466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td valign="top">
421 467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="text" name="g" size="40" value="%h(zTags)" />
422 468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td></tr>
469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr><th align="right" valign="top">Markup Style:</th>
471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td valign="top">
472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mimetype_option_menu(zMimetype);
473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </td></tr>
423 474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
424 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><th align="right" valign="top">Page Content:</th>
425 476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td valign="top">
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <textarea name="w" class="eventedit" cols="80"
477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <textarea name="w" class="technoteedit" cols="80"
427 478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ rows="%d(n)" wrap="virtual">%h(zBody)</textarea>
428 479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td></tr>
429 480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
430 481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr><td colspan="2">
431 482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="submit" name="preview" value="Preview Your Changes" />
432 483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!