From: Wilfried Goesgens Date: Sat, 7 Dec 2013 23:36:08 +0000 (+0100) Subject: Markdown: start adding markdown wiki mode. X-Git-Tag: v9.01~171 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=7d548835437de5f5ea26884af56982cb1c8af673 Markdown: start adding markdown wiki mode. --- diff --git a/citadel/modules/wiki/serv_wiki.c b/citadel/modules/wiki/serv_wiki.c index d656b2457..79845fa8a 100644 --- a/citadel/modules/wiki/serv_wiki.c +++ b/citadel/modules/wiki/serv_wiki.c @@ -94,7 +94,8 @@ int wiki_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) { if (!CCC->logged_in) return(0); /* Only do this if logged in. */ /* Is this a room with a Wiki in it, don't run this hook. */ - if (CCC->room.QRdefaultview != VIEW_WIKI) { + if ((CCC->room.QRdefaultview != VIEW_WIKI) && + (CCC->room.QRdefaultview != VIEW_WIKIMD)) { return(0); } diff --git a/libcitadel/lib/libcitadel.h b/libcitadel/lib/libcitadel.h index b36f8314d..bd7c8da9c 100644 --- a/libcitadel/lib/libcitadel.h +++ b/libcitadel/lib/libcitadel.h @@ -100,6 +100,7 @@ typedef enum _room_views { VIEW_DRAFTS = 9, /* Drafts view */ VIEW_BLOG = 10, /* Blog view */ VIEW_QUEUE = 11, /* SMTP/... QUEUE rooms */ + VIEW_WIKIMD = 12, /* Markdown Wiki view */ VIEW_MAX, VIEW_JSON_LIST, } ROOM_VIEWS; diff --git a/webcit/dav_propfind.c b/webcit/dav_propfind.c index 1e2e5e74a..64e7a1297 100644 --- a/webcit/dav_propfind.c +++ b/webcit/dav_propfind.c @@ -383,7 +383,8 @@ void dav_collection_list(void) (view == VIEW_ADDRESSBOOK) || (view == VIEW_NOTES) || (view == VIEW_JOURNAL) || - (view == VIEW_WIKI) + (view == VIEW_WIKI) || + (view == VIEW_WIKIMD) ) { is_groupware_collection = 1; } @@ -425,6 +426,7 @@ void dav_collection_list(void) wc_printf(""); break; case VIEW_WIKI: + case VIEW_WIKIMD: wc_printf(""); break; } diff --git a/webcit/messages.c b/webcit/messages.c index e6dd7767d..9e538d234 100644 --- a/webcit/messages.c +++ b/webcit/messages.c @@ -1705,7 +1705,10 @@ void display_enter(void) begin_burst(); output_headers(1, 0, 0, 0, 1, 0); - DoTemplate(HKEY("edit_message"), NULL, &NoCtx); + if (WCC->CurRoom.defview == VIEW_WIKIMD) + DoTemplate(HKEY("edit_markdown_epic"), NULL, &NoCtx); + else + DoTemplate(HKEY("edit_message"), NULL, &NoCtx); end_burst(); return; diff --git a/webcit/roomops.c b/webcit/roomops.c index 66efe3faa..8720aecbc 100644 --- a/webcit/roomops.c +++ b/webcit/roomops.c @@ -1446,6 +1446,7 @@ InitModule_ROOMOPS REGISTERTokenParamDefine(VIEW_JOURNAL); REGISTERTokenParamDefine(VIEW_BLOG); REGISTERTokenParamDefine(VIEW_QUEUE); + REGISTERTokenParamDefine(VIEW_WIKIMD); /* GNET types: */ /* server internal, we need to know but ignore them. */ diff --git a/webcit/roomviews.c b/webcit/roomviews.c index 81829502c..40fa9e02a 100644 --- a/webcit/roomviews.c +++ b/webcit/roomviews.c @@ -11,7 +11,7 @@ char *viewdefs[VIEW_MAX]; * This table defines which views may be selected as the * default view for a room at the time of its creation. */ -ROOM_VIEWS allowed_default_views[VIEW_MAX] = { +int allowed_default_views[VIEW_MAX] = { 1, /* VIEW_BBS Bulletin board */ 1, /* VIEW_MAILBOX Mailbox summary */ 1, /* VIEW_ADDRESSBOOK Address book */ @@ -22,7 +22,9 @@ ROOM_VIEWS allowed_default_views[VIEW_MAX] = { 0, /* VIEW_CALBRIEF Brief Calendar */ 0, /* VIEW_JOURNAL Journal */ 0, /* VIEW_DRAFTS Drafts */ - 1 /* VIEW_BLOG Blog */ + 1, /* VIEW_BLOG Blog */ + 0, /* VIEW_QUEUE Mail Queue */ + 1 /* VIEW_WIKIMD MarkDown Wiki */ }; /* @@ -30,17 +32,18 @@ ROOM_VIEWS allowed_default_views[VIEW_MAX] = { * which alternate views may be selected by the user. */ ROOM_VIEWS exchangeable_views[VIEW_MAX][VIEW_MAX] = { - { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, /* bulletin board */ - { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, /* mailbox summary */ - { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, /* address book */ - { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, /* calendar */ - { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, /* tasks */ - { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, /* notes */ - { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }, /* wiki */ - { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 }, /* brief calendar */ - { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, /* journal */ - { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, /* drafts */ - { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 } /* blog */ + { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* bulletin board */ + { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* mailbox summary */ + { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* address book */ + { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, /* calendar */ + { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, /* tasks */ + { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, /* notes */ + { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, /* wiki */ + { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 }, /* brief calendar */ + { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }, /* journal */ + { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 }, /* drafts */ + { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* blog */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } /* Markdown wiki */ }; /* @@ -58,6 +61,7 @@ void initialize_viewdefs(void) { viewdefs[VIEW_JOURNAL] = _("Journal"); viewdefs[VIEW_DRAFTS] = _("Drafts"); viewdefs[VIEW_BLOG] = _("Blog"); + viewdefs[VIEW_WIKIMD] = _("Markdown Wiki"); } @@ -84,6 +88,9 @@ void tmplput_ROOM_COLLECTIONTYPE(StrBuf *Target, WCTemplputParams *TP) case VIEW_WIKI: StrBufAppendBufPlain(Target, HKEY("wiki"), 0); break; + case VIEW_WIKIMD: + StrBufAppendBufPlain(Target, HKEY("x-markdown"), 0); + break; } } diff --git a/webcit/sitemap.c b/webcit/sitemap.c index 0835c366a..477e77429 100644 --- a/webcit/sitemap.c +++ b/webcit/sitemap.c @@ -175,17 +175,18 @@ void sitemap(void) { /* Output the messages in this room only if it's a room type we can make sense of */ switch(roomlist->defview) { - case VIEW_BBS: - sitemap_do_bbs(); - break; - case VIEW_WIKI: - sitemap_do_wiki(); - break; - case VIEW_BLOG: - sitemap_do_blog(); - break; - default: - break; + case VIEW_BBS: + sitemap_do_bbs(); + break; + case VIEW_WIKI: + case VIEW_WIKIMD: + sitemap_do_wiki(); + break; + case VIEW_BLOG: + sitemap_do_blog(); + break; + default: + break; } struct sitemap_room_list *ptr = roomlist; diff --git a/webcit/static/.gitignore b/webcit/static/.gitignore old mode 100644 new mode 100755 diff --git a/webcit/static/t/edit_message.html b/webcit/static/t/edit_message.html index 4afa0b165..116d1c376 100644 --- a/webcit/static/t/edit_message.html +++ b/webcit/static/t/edit_message.html @@ -104,7 +104,7 @@