fr33domlover
18394a1213
Split ticket open/close out of TicketEditR into new routes
2016-06-01 19:50:41 +00:00
fr33domlover
e398c86854
Ticket assignee field
2016-06-01 16:20:19 +00:00
fr33domlover
4e0e8cb736
Add project roles, basically a copy of the repo role code
2016-06-01 08:52:14 +00:00
fr33domlover
10c27464dd
Make all role-related code repo-specific
2016-06-01 07:35:22 +00:00
fr33domlover
13bf3e1953
Write missing repo collaborator handlers
2016-05-31 01:52:04 +00:00
fr33domlover
40add444ba
Repo collaborator removal
2016-05-30 14:32:20 +00:00
fr33domlover
d655e7302e
Use the RBAC system to determine repo push access
2016-05-30 13:10:02 +00:00
fr33domlover
2d4fb85fca
Dummy routes for repo team members
2016-05-29 14:13:25 +00:00
fr33domlover
c0e8ed0d2e
Initial minimal limited per-repo RBAC system
2016-05-29 13:17:55 +00:00
fr33domlover
ada42dea62
Enable adding group members
2016-05-26 16:25:23 +00:00
fr33domlover
e2ef279515
Add missing routes to isAuthorized
2016-05-25 22:38:21 +00:00
fr33domlover
29cf2f853b
Remove auth error messages
2016-05-25 21:58:22 +00:00
fr33domlover
ec49a4c424
Libravatar support \o/
2016-05-25 21:10:41 +00:00
fr33domlover
16d33da4de
Add group member related dummy routes
2016-05-25 17:48:17 +00:00
fr33domlover
3687687457
Add group members page and breadcrumbs for group routes
2016-05-25 16:03:58 +00:00
fr33domlover
4c3aa8b269
Add group roles and make a group's creator its admin
2016-05-25 15:52:15 +00:00
fr33domlover
b7d443d031
Show creation date in group page
2016-05-25 07:50:10 +00:00
fr33domlover
b50f892d32
Display group members in group page
2016-05-25 07:24:34 +00:00
fr33domlover
75f8fd7b7b
Require login for group creation
2016-05-25 06:58:09 +00:00
fr33domlover
01915e6df9
Reduce verbosity of isAuthorized
2016-05-25 06:53:22 +00:00
fr33domlover
bc66463776
Add group routes
2016-05-24 21:48:21 +00:00
fr33domlover
19b576e795
New sharer field: Creation time
2016-05-24 08:34:40 +00:00
fr33domlover
c6c41b485c
Finish route change, it builds now
...
I used this chance to make some name changes, add some utils, tweak some
imports, remove more `setTitle`s and so on. I also made person, repo,
key and project creation forms verify CI-uniqueness.
2016-05-23 20:46:54 +00:00
fr33domlover
49807ed27f
Start big route change, doesn't build yet
...
I decided to add some safety to routes:
- Use dedicated newtypes
- Use CI for the CI-unique DB fields
Since such a change requires so many changes in many source files, this
is also a chance to do other such breaking changes. I'm recording the
change gradually. It won't build until I finish, so for now don't waste
time trying to build the app.
2016-05-23 12:24:14 +00:00
fr33domlover
3a65568d8f
PersistField instance for CI, i.e. case-insensitive DB fields
2016-05-22 21:43:59 +00:00
fr33domlover
a0d42f9159
New sharer ident checked for CI-uniqueness
2016-05-22 21:24:55 +00:00
fr33domlover
1a3f976a81
Ticket filtering
2016-05-22 14:31:56 +00:00
fr33domlover
66cf702203
Add "new topic" link to discussion widget
2016-05-21 21:27:12 +00:00
fr33domlover
9368e68ab5
Enable new top-level comments, discussion system works now
2016-05-21 20:01:31 +00:00
fr33domlover
aa3d332b14
Pass AppDB action instead of DiscussionId
...
Passing `AppDB DiscussionId` from ticket handlers to the actual
discussion handlers allows the DB queries to run in a single
transaction.
2016-05-19 22:40:54 +00:00
fr33domlover
a56a7575fe
Implement reply-to-existing-comment
2016-05-19 22:07:25 +00:00
fr33domlover
c942c7d398
Ticket discussion and message routes
2016-05-19 16:58:23 +00:00
fr33domlover
cdfaec81f2
Replace dummy discussion widget with a real one
2016-05-19 15:49:39 +00:00
fr33domlover
93aeae36a8
Implement building discussion message tree from DB
2016-05-19 12:06:27 +00:00
fr33domlover
6d29553844
Use discussion widget in ticket template
2016-05-18 10:26:19 +00:00
fr33domlover
ad9629d3f3
Dummy discussion widget
2016-05-18 10:10:07 +00:00
fr33domlover
c435dfa89b
Each ticket has a unique discussion ID
2016-05-18 09:44:32 +00:00
fr33domlover
604e3ca80a
Fix: Was displaying all tickets instead of just projects'
2016-05-18 09:38:48 +00:00
fr33domlover
1b7cee4b78
Dedicated NewTicket type for ticket creation
2016-05-18 09:15:11 +00:00
fr33domlover
2eb89cf460
DarcsRev widget in default layout footer
2016-05-18 08:35:13 +00:00
fr33domlover
e67f05c0ad
Revision widget using Development.DarcsRev
2016-05-18 08:10:32 +00:00
fr33domlover
1b1e4b978d
Much richer set of Darcs rev TH splices
2016-05-18 07:00:19 +00:00
fr33domlover
e76c1f7206
Compressed inventory parser and DarcsRev TH utils
2016-05-17 20:34:22 +00:00
fr33domlover
9ba6761459
Darcs inventory parser: Add hash types and parse previous inventory
2016-05-16 14:02:43 +00:00
fr33domlover
f8ae122da7
When creating a repo, allow to pick a project for it
2016-05-14 13:05:29 +00:00
fr33domlover
ee9b40d466
Project page lists project's repos
2016-05-14 11:36:45 +00:00
fr33domlover
4d410cf1f7
Pick shorter names for project page templates
2016-05-13 22:11:46 +00:00
fr33domlover
418d3fd9d2
Remove per-handler titles from project handlers
2016-05-13 22:07:56 +00:00
fr33domlover
3c95014087
Remove form field error duplication in project creation
2016-05-13 22:06:23 +00:00
fr33domlover
298bbc57e4
SSH key deletion button
2016-05-13 21:41:46 +00:00
fr33domlover
4d16203e5d
Repo deletion button
2016-05-13 19:23:56 +00:00
fr33domlover
80576d9caa
Darcs pull over HTTP
2016-05-13 10:58:42 +00:00
fr33domlover
0d7349cb5d
Split git and darcs specific handlers into separate submodules
2016-05-13 10:11:17 +00:00
fr33domlover
3fdbe19cba
Inverted patch char in darcs inventory is unused, obsolete
2016-05-13 09:59:11 +00:00
fr33domlover
b2f5b20184
Minimal pagination for git and darcs change log
2016-05-13 08:49:19 +00:00
fr33domlover
17c4ff3d23
Basic pagination for Vervis
2016-05-11 14:42:41 +00:00
fr33domlover
117034a8fa
Initial incomplete pagination model
2016-05-10 11:05:56 +00:00
fr33domlover
5c288c7fdb
Darcs change log view
2016-05-08 14:28:03 +00:00
fr33domlover
07b627eb9c
Refactor Git log view into separate modules and Widgets
2016-05-06 10:29:02 +00:00
fr33domlover
d1d49170e0
Text-ByteString UTF8 conversion utility modules
2016-05-06 10:27:16 +00:00
fr33domlover
65c5829a3f
Set <title> centrally in Foundation using breadcrumbs
2016-05-06 10:26:11 +00:00
fr33domlover
7e8e557625
Rename breadcrumbBar to breadcrumbsW according to new convention
2016-05-06 10:24:58 +00:00
fr33domlover
ae03aee099
Replace JS minifier with a custom all-discarding one
2016-05-06 10:23:31 +00:00
fr33domlover
6e2a8b259d
More EventTime utils and support for GitTime
2016-05-06 10:21:44 +00:00
fr33domlover
96d73f3551
Basic TimeEvent support for 'hourglass', will need this for 'hit'
2016-05-05 23:05:56 +00:00
fr33domlover
ebbcc6afdc
Explore friendly rendering of event time
2016-05-05 22:20:11 +00:00
fr33domlover
ed2df29b66
Refactor git log view, make room for darcs
2016-05-05 16:30:30 +00:00
fr33domlover
a4c8a80945
Enable darcs-push-over-SSH using the darcs executable
2016-05-05 07:58:45 +00:00
fr33domlover
3ed04941e8
Refactor git source view code and implement the same for Darcs
2016-05-05 07:29:19 +00:00
fr33domlover
c8c323f695
Split git repo source handler into sane small functions
2016-05-04 17:17:47 +00:00
fr33domlover
69229fb80e
Enable Darcs repo creation using the executable
...
Darcs does export most of its module tree, but there's a problem: Darcs
relies on the current directory. It changes the current directory of the
process to the repo, and then proceeds using paths relative to the repo
dir. This is bad for my case here. If some other thread uses a relative
path (e.g. currently any repo path is relative by default) in parallel,
it will fail.
For now, the quick path around this problem is to use the `darcs`
program.
2016-05-04 11:44:06 +00:00
fr33domlover
8448355f98
In Darcs pull over SSH, support specifying just repo name
2016-05-04 11:10:23 +00:00
fr33domlover
d57c95c94a
Enable Darcs repo cloning over SSH using darcs executable
2016-05-04 09:43:33 +00:00
fr33domlover
1c4b674550
Dedicated module for "time ago"
2016-05-03 01:20:23 +00:00
fr33domlover
4dd4e1b932
Let user choose VCS and fail to create repo if Darcs is chosen
2016-05-03 00:33:49 +00:00
fr33domlover
d69c5e8abc
Repos specify their VCS (i.e. Git or Darcs) in the DB
2016-05-02 23:51:53 +00:00
fr33domlover
0b06b72b85
Implement an 'initRepo' that actually works
2016-05-02 23:11:32 +00:00
fr33domlover
d8d2d160a0
Render ticket description as Markdown
...
At the beginning the rendering was invalid because it parsed the entire
content as a single line. For some reason, when I read the ticket
description from the DB, all newlines are returned as CRLF. I don't know
why yet or whether it can or should be changed, but as a quick fix, I
made the handler function filter out the CRs from the text. Then the
rendering is correct.
This matches the documentation of Pandoc, which mentions the readers
assume newlines are encoded as LF.
2016-05-02 21:20:25 +00:00
fr33domlover
13d814034c
Breadcrumbs widget in default layout
2016-05-02 14:16:51 +00:00
fr33domlover
e8befc41ee
Multiplex ticket PUT and DELETE over POST
...
HTML forms support only GET and POST methods. One way to bypass that is
to send the form using JS. But I don't want that. Another is to send a
POST with a hidden form field which specifies the read method. This is
what 'postTicketR' does.
2016-05-02 11:34:11 +00:00
fr33domlover
9f917a7306
Fix typo in message text
2016-05-02 11:33:30 +00:00
fr33domlover
434e1cbc7d
YesodBreadcrumbs instance
2016-05-02 10:03:29 +00:00
fr33domlover
9d3b7b686f
Ticket update form
2016-05-02 09:15:10 +00:00
fr33domlover
88569a08ad
Dummy handlers for ticket editing and deletion
2016-05-02 06:13:57 +00:00
fr33domlover
349d089019
First ticket number should be 1, not 0
2016-05-01 11:05:56 +00:00
fr33domlover
4f6ccf8f4a
New ticket creation via POST
2016-05-01 10:15:38 +00:00
fr33domlover
7a4b211617
Ticket view page
2016-05-01 09:58:55 +00:00
fr33domlover
eaadbc050c
Ticket list page
2016-04-30 23:02:44 +00:00
fr33domlover
09b767a037
New ticket post form
2016-04-30 22:32:22 +00:00
fr33domlover
db06aeff0e
New ticket form
2016-04-30 21:26:54 +00:00
fr33domlover
5f909bd3b3
Add Ticket to persistent model
2016-04-30 20:40:33 +00:00
fr33domlover
dbf0c5a2cb
Remove IRC channel and ML data from DB
2016-04-30 20:15:48 +00:00
fr33domlover
36b5ae983e
Don't use git Util module from git-graph, it's been removed
2016-04-30 20:14:56 +00:00
fr33domlover
f7a9fb6ac8
Support git-push over SSH using the git binary
2016-04-30 16:23:34 +00:00
fr33domlover
4065143d8f
Remove upload-pack over HTTP, 'hit' opens too many file descriptors
2016-04-29 18:08:05 +00:00
fr33domlover
144918cd9f
Send raw pack as git-upload-pack-result
2016-04-29 04:32:32 +00:00
fr33domlover
66bc49df15
Git upload-pack request handler, parses it but returns nothing
2016-04-26 05:58:05 +00:00
fr33domlover
4381213446
Binary request body decoder
2016-04-24 18:48:07 +00:00
fr33domlover
e72284e182
Incremental binary stream decoder, generalized from hit-network
2016-04-24 18:25:30 +00:00
fr33domlover
de730cf573
Adapt to module rename in hit-network
2016-04-23 21:09:24 +00:00
fr33domlover
bf355de715
Dummy git upload-pack request POST handler
2016-04-23 18:33:41 +00:00
fr33domlover
19471d4ca2
Smart HTTP ref discovery
2016-04-22 19:46:46 +00:00
fr33domlover
8856bd2344
Git over HTTP: Add initial always-denying ref discovery handler
2016-04-21 00:32:22 +00:00
fr33domlover
4c3371beda
Add settings option to disable registration
2016-04-19 16:03:27 +00:00
fr33domlover
5ae09c2ad7
Remove copyright field from settings, copyright is wrong!
2016-04-19 15:47:26 +00:00
fr33domlover
242e04a3ce
Use --| instead of --^ in AppSettings doc comments
2016-04-19 15:42:54 +00:00
fr33domlover
6e29f246bd
Enable git-fetch using the git executable
2016-04-19 14:56:02 +00:00
fr33domlover
09775e02ae
Parse the git-uploac-pack SSH command properly
2016-04-19 09:42:02 +00:00
fr33domlover
3439870ad5
Adapt to my latest changes to 'ssh' repo
2016-04-19 08:17:52 +00:00
fr33domlover
1b16e2e566
Use some type alises from Database.Persist.Sql
2016-04-19 06:58:48 +00:00
fr33domlover
aa024a3ee4
Build with LTS-5.13
2016-04-19 06:38:52 +00:00
fr33domlover
a0945bfd87
Use Pandoc for document rendering, for now just Markdown
2016-04-17 17:55:23 +00:00
fr33domlover
25bb1e5b83
Split readme detection to separate function
2016-04-14 00:15:27 +00:00
fr33domlover
35354a18a7
Detect README based on file basename
2016-04-14 00:01:56 +00:00
fr33domlover
85319ddfdc
Render README below repo tree view when present
2016-04-13 16:17:34 +00:00
fr33domlover
b42d9db432
Split source file rendering into separate module
2016-04-13 06:55:39 +00:00
fr33domlover
2323ec3fc0
Repo page is root repo source page, remove duplication
2016-04-12 23:38:21 +00:00
fr33domlover
d37108fa6f
Add breadcrumb to repo tree content view
2016-04-12 23:10:46 +00:00
fr33domlover
979156b8ae
Make the homepage repo table a bit more friendly
2016-04-12 23:09:52 +00:00
fr33domlover
ea71f30d96
Repos right under users, not under projects
2016-04-12 17:37:31 +00:00
fr33domlover
69b2dafc32
Define some initial highlight colors
2016-04-12 14:44:43 +00:00
fr33domlover
05f537d288
Syntax highlighting suppport, but no colors in CSS yet
2016-04-12 11:21:14 +00:00
fr33domlover
3325a9d960
Display any file and dir in the repo, not just top level
2016-04-12 10:06:21 +00:00
fr33domlover
100ba7511c
RepoSourceR, display file tree for given branch or tag
2016-04-12 00:19:04 +00:00
fr33domlover
b312d41ef0
Move project templates to new templates/project dir
2016-04-11 22:46:09 +00:00
fr33domlover
7eb3c0ac9e
Remove old Git related code /again/... I have ghost files here
2016-04-11 22:37:47 +00:00
fr33domlover
eadce14e42
Move key templates to new templates/key dir
2016-04-11 22:31:03 +00:00
fr33domlover
9e9e7fc803
Display repo files in repo page instead of history log
2016-04-11 22:13:32 +00:00
fr33domlover
fa4e4294b1
Add repo commits route
2016-04-11 21:35:26 +00:00
fr33domlover
60175d5634
Move repo related templates to new templates/repo dir
2016-04-11 21:24:10 +00:00
fr33domlover
b68428d9b6
Remove some old code and adapt to hit-graph
2016-04-09 15:45:00 +00:00
fr33domlover
50198a1906
Move git protocol code away to separate package
2016-04-08 21:10:33 +00:00
fr33domlover
372368f0a0
Git: Implement pack protocol negotiation upload-haves and ack
2016-04-01 10:37:49 +00:00
fr33domlover
7b9f6e9714
Work on git pack protocol, not done yet
...
This is a lot of code, better save now than sorry later when something
gets deleted by mistake.
Either way, the code will move later - once tested and organized
properly - into its own package.
2016-04-01 05:00:02 +00:00
fr33domlover
f7025f9c15
Instead of print
ing SSH messages, logDebug
them
2016-03-09 22:38:28 +00:00
fr33domlover
fc4690324c
Implement logging for SSH using monad-logger and fast-logger
2016-03-09 22:27:25 +00:00
fr33domlover
20fb5181cd
Decode SSH key content field value from base64
2016-03-08 03:38:32 +00:00
fr33domlover
4a6853e7e7
Add SSH key upload form
2016-03-08 02:52:46 +00:00
fr33domlover
78213db2fc
Add UI for display of SSH keys
2016-03-07 00:42:06 +00:00
fr33domlover
af86469848
Use 'toHtml' instead of generic markup combinator 'text'
2016-03-07 00:39:07 +00:00
fr33domlover
8cf0f2502c
Implement DB-based SSH authentication
2016-03-06 11:58:48 +00:00
fr33domlover
062fb5539a
Add app settings for SSH server
2016-03-05 03:56:25 +00:00
fr33domlover
9afd341aca
Replace some Esqueleto with much simpler Persistent queries
2016-03-03 08:35:29 +00:00
fr33domlover
b20c672a01
Implement git history log in repo page
2016-03-03 08:15:54 +00:00
fr33domlover
100d2948cb
Add Vervis.Path module with repo path utils
2016-03-01 22:43:31 +00:00
fr33domlover
e5ad0279b1
Remove some unused imports
2016-03-01 22:16:41 +00:00
fr33domlover
4b0c444bcb
Implement topsort for commits and apply to graph
2016-03-01 22:16:01 +00:00
fr33domlover
7a76703d25
Implement loading a commit graph
2016-02-29 21:42:37 +00:00
fr33domlover
4882ddb092
Make it possible to skip subtrees in the commit loading loop
2016-02-29 14:25:14 +00:00
fr33domlover
0c8d5c973c
Implement low-level commit graph loading
2016-02-29 14:04:56 +00:00
fr33domlover
40b4f4e475
Stop using classy-prelude-yesod
2016-02-29 14:04:23 +00:00
fr33domlover
ec9fc486ee
Implement flexible Kahn topsort for use on git commit graphs
2016-02-29 01:59:33 +00:00
fr33domlover
1fe41edabe
Fix homepage repo table: Failed for empty repos
2016-02-28 08:30:25 +00:00
fr33domlover
ec4c7de582
Add repo pages and repo creation form
2016-02-27 05:41:36 +00:00
fr33domlover
9b686c6db0
Write initial overview content and add project creation form
2016-02-25 03:10:30 +00:00
fr33domlover
004fdb118e
Put all modules under a new Vervis module
2016-02-23 08:45:03 +00:00
fr33domlover
9154ad8f8b
Move some utils to new modules
2016-02-23 08:28:25 +00:00
fr33domlover
b95bf9e42b
Create personal overview page, still blank
2016-02-23 03:19:55 +00:00
fr33domlover
1c044520b5
Implement registration and make it build
2016-02-23 02:27:01 +00:00
fr33domlover
c0a86c3f5b
Add user registration form view, still no-op
2016-02-19 04:10:42 +00:00
fr33domlover
ee7a353904
Define color palette and write initial Cassius
2016-02-18 22:33:27 +00:00
fr33domlover
ab98930caa
Add style palette module for later use
2016-02-18 13:36:25 +00:00
fr33domlover
a5f6bf280b
Remove bootstrap3 CSS and fonts
2016-02-18 13:35:38 +00:00
fr33domlover
5287a47372
Add project pages
2016-02-17 21:53:53 +00:00
fr33domlover
a6525d7549
Add people and person pages
2016-02-17 16:43:23 +00:00
fr33domlover
7ede602d1d
Remove CSRF protection for now, until I fix it
2016-02-17 11:49:41 +00:00
fr33domlover
8e3675865d
Add comment bits for SSL and delete some garbage from template
2016-02-17 11:31:01 +00:00
fr33domlover
7857a8a964
Make initial homepage with table and simple login
2016-02-16 11:41:13 +00:00
fr33domlover
3da488b3a2
Remove example code I don't need
2016-02-14 10:17:31 +00:00
fr33domlover
f4dcf17f3f
Move some files around, tweak the generated code a bit
2016-02-14 09:10:21 +00:00
fr33domlover
952f6baafd
Bring Yesod scaffolding
2016-02-13 03:35:30 +00:00
fr33domlover
0bfef83458
Remove obsolete code and start using stack
2016-02-12 11:01:53 +00:00
fr33domlover
1abfc11ffa
Make minimal Yesod app that returns main view as an HTML table
2016-02-12 01:53:19 +00:00
fr33domlover
73acda0ecf
Don't separate people and groups in the dir tree
2016-02-12 00:23:24 +00:00
fr33domlover
1b7e6e5a73
Use the git code to add last change time to main view query
2016-02-12 00:01:41 +00:00
fr33domlover
229bdead0e
Insert dummy data to see results
2016-02-11 22:19:31 +00:00
fr33domlover
552b17e219
Write initial main view query with Esqueleto
2016-02-11 20:58:40 +00:00
fr33domlover
5734e720ad
Update data model to reflect recent decisions
2016-02-11 09:36:24 +00:00
fr33domlover
2b15a16115
Add comments to git functions
2016-02-11 09:36:09 +00:00
fr33domlover
d2e78b4c51
Define data model using persistent's TH
2016-02-09 21:07:01 +00:00
fr33domlover
b7aa7ec45d
Make it build with persistent
2016-02-06 13:36:35 +00:00
fr33domlover
e6fbca1c2a
Split code into submodules
2016-02-06 13:08:35 +00:00
fr33domlover
547db845be
Fix typo which caused infinite loop
2016-02-05 23:41:55 +00:00
fr33domlover
aa351c00d2
First operation: createUser
2016-02-02 13:06:49 +00:00
fr33domlover
6440550f48
Support loading and saving to JSON, step 5
2016-02-02 12:31:36 +00:00
fr33domlover
c8e5de868c
Ugly, hacky, dirty, full-of-warnings basic JSON persistence
2016-02-02 12:14:21 +00:00
fr33domlover
b44dc7b456
Fix projects field type
2016-02-01 14:28:12 +00:00
fr33domlover
81f8dba101
Add state and env to the monad, completing step 4
2016-02-01 14:17:28 +00:00
fr33domlover
56dddddde6
Define Vervis monad as a newtype over RWST
2016-01-31 05:58:50 +00:00
fr33domlover
a953923a3e
Add a basic data model and determine change times from it
2016-01-29 09:39:35 +00:00
fr33domlover
f51aa09159
Return formatted last change time for a repo
2016-01-29 00:59:27 +00:00
fr33domlover
ccdd98ca7e
Return a list of subdirs of a given dir
2016-01-28 15:37:04 +00:00
fr33domlover
abbef763e7
Initial record with empty package that builds
2016-01-28 14:15:54 +00:00