Commit Graph

191 Commits

Author SHA1 Message Date
79c304493c Add doc link to redirect page (#39)
- Tweak redirect list style
- Add rules to v2.0 backup restorations
2023-07-31 21:28:02 -04:00
f43c431278 Verify regex rules work correctly (#39)
- Remove debug for plain-text rules
- Update htmx libs to 1.9.4
2023-07-31 20:56:27 -04:00
693a1df34f Redirect plain-text rules (#39)
regex still untested
2023-07-30 22:26:30 -04:00
dc6b066e79 Rule add/edit/move/delete works (#39)
- Begin moving auth to route definition where practical
- Fix typo on post list page
2023-07-30 21:00:31 -04:00
3ef4499a90 Add redirect index page (#39)
- Bump version to 2.1
2023-07-28 22:07:13 -04:00
42d3280f67 Add redirect rule to data stores (#39) 2023-07-28 20:28:03 -04:00
ab9f2f577b Use PG lib data source singleton 2023-07-28 19:41:53 -04:00
9dd6ab70e9 Add Sqlite Docker file
- Fix import typo in RethinkDB upload restore
- Switch default Docker file to alpine image
2023-07-18 21:53:04 -04:00
5f5927c425 First cut of Docker files (#38)
- Fix canonical domain config detection (#37)
- Fix version insert for new SQLite dbs
- Bump version to 2.1
2023-07-08 21:26:11 -04:00
5b27ea5cd2 Add canonical domain support (#37)
- Update deps
2023-07-08 20:36:49 -04:00
7b325dc19e
v2 (#36)
* Use PostgreSQL JSON-based data implementation
* Fix back link on RSS settings page (#34)
* Show theme upload messages (#28)
* Fix admin page list paging (#35)
* Add db migrations for all stores
* Support both .NET 6 and 7
2023-02-26 13:01:21 -05:00
5f3daa1de9
v2 RC2 (#33)
* Add PostgreSQL back end (#30)
* Upgrade password storage (#32)
* Change podcast/episode storage for SQLite (#29)
* Move date/time handling to NodaTime (#31)
2022-08-21 18:56:18 -04:00
1ec664ad24 Fix casing on CLI usage examples 2022-08-01 07:46:53 -04:00
33698bd182 Reassign child cats when deleting parent cat (#27)
- Create common page/post edit field template (#25)
- Fix relative URL adjustment throughout
- Fix upload name sanitization regex
- Create modules within Admin handler module
- Enable/disable podcast episode fields on page load
- Fix upload destination casing in templates
- Tweak default theme to show no posts found on index template
- Update Bootstrap to 5.1.3 in default theme
2022-07-28 20:36:02 -04:00
6b49793fbb Change alerts to toasts (#25)
- Upgrade to Bootstrap 5.1.3
- Move RSS settings and tag mappings to web log settings (#25)
- Fix parameters in 2 SQLite queries
2022-07-27 21:38:46 -04:00
a8386d6c97 Add loading indicator for admin theme (#25) 2022-07-26 22:34:19 -04:00
b1ca48c2c5 Add docs link to admin header (#25)
- Change executable name in release packages
2022-07-26 20:37:18 -04:00
3189681021 Tweak admin UI templates (#25)
- Move user management under web log settings
- Move user self-update to my-info
- Return meaningful error if a template does not exist
- Tweak margins/paddings throughout
- Do not show headings on list pages if lists are empty
- Fix pagination styles for page/post list pages
2022-07-26 16:28:14 -04:00
ff9c08842b First cut at cache management (#23) 2022-07-24 23:55:00 -04:00
e103738d39 Prevent deletion if theme is in use (#20) 2022-07-24 19:26:36 -04:00
d854178255 Upload / delete themes (#20)
- Moved themes to section of installation admin page (will also implement #23 there)
2022-07-24 19:18:20 -04:00
0a32181e65 WIP on theme upload (#20) 2022-07-24 16:32:37 -04:00
81fe03b8f3 WIP on theme admin page (#20) 2022-07-22 21:19:19 -04:00
4514c4864d Load themes at startup (#20)
- Adjust release packaging (#20)
- Fix default theme for beta-5 changes (#24)
- Remove RethinkDB case fix (cleanup from #21)
- Bump versions for next release
2022-07-22 10:33:11 -04:00
99ccdebcc7 Delete user / admin clean-up (#19)
- Add CLI help (#22)
- Add constants for common view items
- Construct hashes with piped functions
2022-07-21 21:42:38 -04:00
59f385122b Add user add/edit (#19)
- Add makeHash function to simplify code around DotLiquid hashes
- Add context extension to determine if a user has an access level
- Add someTask function to simply Task.FromResult (Some x)
2022-07-20 23:13:16 -04:00
41ae1d8dad First cut of user admin page (#19) 2022-07-19 22:51:51 -04:00
1e987fdf72 Eliminate compiler warnings
- Change RethinkDB to use connection-string style settings
2022-07-19 20:59:53 -04:00
7eaad4a076 Clean up database names (#21)
- Moved user edit to "my info" (#19)
2022-07-18 20:05:10 -04:00
5fb3a73dcf Add user created and last seen on (#19)
- Updated view models / interfaces per F# naming guidelines
2022-07-17 23:10:30 -04:00
e0a03bfca9 Add upgrade-user CLI option (#19) 2022-07-17 15:50:33 -04:00
d30312c23f Add access restrictions to UI (#19)
- Vary default user access for new web logs (#19)
- Add htmx detection to not auth/404 handlers
- Bump version
2022-07-16 22:17:57 -04:00
eae1509d81 Add access restrictions to server routes (#19) 2022-07-16 17:32:18 -04:00
425223a3a8 Add access levels (#19)
- Remove authorization level
2022-07-16 15:51:58 -04:00
07aff16c3a Version bump 2022-07-16 13:38:44 -04:00
d290e6e8a6 Complete page / post revision maint (#13)
- Fix log on redirection
- Move page handlers to its own file
- Add version to admin area footer
- Move generator to HttpContext extension property
2022-07-16 12:33:34 -04:00
039d09aed5 WIP on page revisions (#13)
- Simplify redirectToGet usage
- Move a few functions to HttpContext extension properties
- Modify bare response to allow content not from a template
- Fix uploaded date/time handling
2022-07-15 22:51:51 -04:00
d667d09372 WIP on revision mgt template (#13) 2022-07-14 23:25:29 -04:00
2906c20efa Upgrade htmx to v1.8.0 (#18) 2022-07-14 18:55:52 -04:00
355ade8c87 Add slug and upload dest to settings (#2) 2022-07-07 12:42:37 -04:00
1d096d696b Add types to admin functions
- Change how functions are registered
2022-07-06 10:30:30 -04:00
ce3816a8ae Use web log slug for backup file name (#16) 2022-07-04 19:06:32 -04:00
879710a0a3 Add funding (#7)/GUID (#4)/medium (#3) to podcast
- Add info log for non-default DB connections
2022-07-04 18:40:32 -04:00
c957279162 Add and delete uploaded files (#2) 2022-07-04 13:19:16 -04:00
9307ace24a WIP on saving uploads (#2) 2022-07-01 20:59:21 -04:00
feada6f11f Add copy links to upload list (#2) 2022-06-30 18:56:24 -04:00
0567dff54a WIP on upload admin (#2) 2022-06-28 22:18:56 -04:00
c29bbc04ac WIP on uploads (#2)
- Add data types and fields
- Implement in both RethinkDB and SQLite
- Add uploads to backup/restore
- Add empty upload folder to project
- Add indexes to SQLite tables (#15)
2022-06-28 17:34:18 -04:00
46bd785a1f Make program executable (#14)
- Bump versions for next release
2022-06-28 08:39:43 -04:00
3203f1b2ee Bump versions 2022-06-28 06:33:38 -04:00
7203fa5a38 Invalidate cache when theme uploaded (#12)
- Add episode to display page (leftover from #9)
- Show episode label based on structure (also #9)
2022-06-27 22:16:53 -04:00
16603bbcaf Render feed from episode (#9)
- Render chapter if present (#5)
- Render transcript if present (#8)
- Require transcript type if URL entered (#8)
2022-06-27 20:34:30 -04:00
80c65bcad6 Add episode fields to UI (#9)
- Add chapter fields (#5)
- Add transcript fields (#8)
2022-06-27 17:47:00 -04:00
9fbb1bb14d Add episode fields to post view model
Parts of #9 / #5 / #8
2022-06-27 07:36:29 -04:00
707b67c630 Reorganize SQLite data files
- Add episode data structure (#9)
- Add fields for chapters (#6) and transcripts (#8)
- Add fields for medium (#3), funding (#7), and GUID (#4)
- Fix RethinkDB restore problems (#10)
- Save custom feeds in SQLite (#11)
2022-06-24 21:56:07 -04:00
dfb0ff3b9c Fix RethinkDB restore (#10)
- Also fixed replacement base URL issue
2022-06-24 08:47:22 -04:00
a776d967ac Add build scripts
- Embed PDBs in assemblies
- Suppress warnings for complex tasks
2022-06-23 14:56:18 -04:00
0f66ca969d
Version 2, ready for beta 2022-06-22 20:35:12 -04:00
Daniel J. Summers
33dccf5822 Combined all F# code into one project
Less to migrate, less to maintain, and I'll never swap these out as
components; might as well get the ease of managing them all in one
project.
2016-12-04 22:05:50 -06:00
Daniel J. Summers
f5b65d320e -Kestrel +Suave
I could not get Kestrel to listen for requests on Linux, and Suave now
works with OWIN (and listens/responds on Linux as expected)
2016-12-03 22:37:13 -06:00
Daniel J. Summers
9d1a6395c9 Fixed problem between myWebLog and MyWebLog directories 2016-12-04 03:14:44 +00:00
Daniel J. Summers
47266817f6 A little housekeeping
- Simplified user message generation (Info is default level)
- Removed paket and FAKE files, as we're using the default .NET Core
build system
2016-11-12 08:52:53 -06:00
Daniel J. Summers
739fe3ff9c So close...
- Added comment display and counts
- Fixed problem with set-up-from-scratch bombing on index creation
- RSS feed is returning errors; need to determine why Nginx is
intercepting theme content requests
2016-11-11 22:44:23 -06:00
Daniel J. Summers
458b8308ae Page / Post edit pages work
Category in work
2016-11-11 16:28:15 -06:00
Daniel J. Summers
0d54fc2ec3 Admin tweaks plus
- Version now reports the correct version
- Post edit properly renders existing selected categories as checked,
and uses the description in the title attribute if it is present
- Created light/dark transparent logos

Ready to test the functionality of the admin area next...
2016-11-11 14:44:09 -06:00
Daniel J. Summers
ed9b8adc1c Log on works now
...but wait, there's more!
- Admin area dashboard works, list pages work
- Minor admin area style tweaks
2016-11-10 22:17:46 -06:00
Daniel J. Summers
1873f9d6fc Posts with many categories now render
- Fixed a problem with the RethinkDB query that was assembling
categories for a single post (yay, @1lann on Slack!)
- Finished conversion of data access functions to use async CEs
2016-11-08 09:47:33 -06:00
Daniel J. Summers
e5700727e9 Misc changes over the past month or so
- RSS feeds partially done
- All three initial target themes, as well as the default theme, display
properly
2016-11-07 22:17:00 -06:00
Daniel J. Summers
f4d520e34b DB work
Wrapped all Filter and Merge lambdas in a ReqlFunction1 constructor
(which made them work); fixed some ReQL logic errors; removed
RunListAsync extension and changed calls to RunResultAsync<* list>
2016-09-18 22:20:10 -05:00
Daniel J. Summers
3f9665a2e6 IT LIVES! (on dotnet core)
Commented out RSS feed stuff dependent on SyndicationFeed; revamped
bootstrapper to make everything work in the proper order; qualified
resource name in Resources project
2016-09-18 15:01:16 -05:00
Daniel J. Summers
1c3e84f5ec .NET Core / Nancy 2 migration in progress
Only 55 build errors to go! :/  What remains is things that do not exist
in .NET Core yet, or API changes (specifically with Nancy and NodaTime).
2016-08-22 22:39:49 -05:00
Daniel J. Summers
710004dfc4 Huge repo reorganization
In no particular order...
- Created projects using F# generator, using Paket and FAKE
- Split "entities" into their own project, and created interface for
data functions required on those entities
- Renamed "data" project and used it as an implementation of data access
- Created "logic" layer that takes the data interface, and does the
non-persistence-related manipulation of items
- Moved "web" project to "app", and modified Nancy modules to utilize
Logic project and data interface instead of Data project and RethinkDB
connection
- Created test placeholder project; will be filling that out shortly
(TAD?)
2016-08-06 13:55:49 -05:00
Daniel J. Summers
8194649018 Fixed casing
Missed a few camel-to-Pascal case changes in document strings
2016-08-04 08:04:50 -05:00
Daniel J. Summers
e7fcd1676f Pascal entity fields still WIP 2016-07-28 22:52:44 -05:00
Daniel J. Summers
b9464f9600 App-level Config / code style
config.json now controls encryption and salt for both passwords and
forms authentication; data-config.json options are now under the "data"
key in config.json.

Unaligned ->'s throughout code per F# design guidelines, pulled out some
longer lambdas into their own let bindings within the method/function
scope, added qualified access attributes to smaller constant-type
modules
2016-07-27 22:36:28 -05:00
Daniel J. Summers
ac8fa084d1 PascalCase record members
Contrary to some examples, the official design guidelines for F# state
that these should be PascalCase rather than camelCase.  Also, while the
projects are still "myWebLog", the namespaces and DLLs are now
"MyWebLog". (never intended it to be the other way, really...)
2016-07-26 23:17:13 -05:00
Daniel J. Summers
2574501ccd RSS take 2 / page edit
RSS now generates for /feed, and ?format[atom|rss|rss2]; page list shows
updated date/time, page edit page loads
2016-07-26 08:03:46 -05:00
Daniel J. Summers
7538b9ef26 RSS
Added first cut of RSS feed; added links to head of default theme's
layout template
2016-07-25 22:39:38 -05:00
Daniel J. Summers
d3712dc562 Category / tag lists, logo
Category and tag list pages now work; added footer logo to default theme
with version and page load time tooltip
2016-07-25 19:54:45 -05:00
Daniel J. Summers
7c99da8cb5 User logon and list fixes
User logon now works; tweaked queries and display items on post, page,
and category list pages
2016-07-23 13:44:49 -05:00
Daniel J. Summers
197a19d339 page list
The page list is now populated
2016-07-21 08:05:07 -05:00
Daniel J. Summers
1a83727bc7 Adios, pretty Rethink functions...
The wrapper functions around RethinkDB calls were causing more problems
than they were helping to eliminate; the data code doesn't look very
F#-y, but it works much better now.
2016-07-19 22:44:39 -05:00
Daniel J. Summers
f6c3abfcac Indexes and subtitle
Refactored index creation to a much more functional approach; fixed
issue where subtitle was displaying Some(subtitle)
2016-07-18 23:03:44 -05:00
Daniel J. Summers
f66c3e3c58 RethinkDB / static file fixes
Fixed atom/cursor distinction on some RethinkDB queries; added code to
attach static content for themes at [theme-name]
2016-07-17 21:57:13 -05:00
Daniel J. Summers
61d37c0530 start up work
IndexWait was using the wrong run helper; wrote code to serve theme
content under [theme-name]/; set view files to copy on build
2016-07-13 07:56:07 -05:00
Daniel J. Summers
84e6e856f5 tag/category post pages, moved themes
The "themes" directory will be used as the customization point
2016-07-12 22:26:00 -05:00
Daniel J. Summers
08ee8990d3 category / part of page
Category editing pages done; page list and delete are done
2016-07-11 22:04:18 -05:00
Daniel J. Summers
2e8d002e30 single post page / admin dashboard
need to go back and revisit dynamic interop and the admin dashboard to
see if that can be one query instead of 3
2016-07-09 23:21:23 -05:00
Daniel J. Summers
6b24d416fc post edit page
The majority of the changes in this commit have to do with the post edit
page; also caught up resource strings that hadn't been actually put in
Resources.resx yet
2016-07-09 21:11:50 -05:00
Daniel J. Summers
3656bb384c Another interim commit
Home page and some post stuff written
2016-07-08 23:18:44 -05:00
Daniel J. Summers
b86ba7b6f6 Interim commit
Nowhere close to executable (though everything builds)
2016-07-07 22:57:14 -05:00