fr33domlover
19c18b031e
Include custom ticket enum fields in new ticket form
2016-08-09 12:34:03 +00:00
fr33domlover
6457bf5607
Display custom enum fields in ticket page
2016-08-09 11:36:14 +00:00
fr33domlover
1d0d4f697d
Include custom ticket text fields in new ticket form
2016-08-08 23:36:39 +00:00
fr33domlover
35933061c9
Display custom ticket field values in ticket page
2016-08-08 20:51:58 +00:00
fr33domlover
ec7dd4ee7e
Experimental typeclass for ident+name model entities
2016-08-08 19:17:25 +00:00
fr33domlover
6e5ab77466
Projects must specify a ticket workflow
2016-08-08 19:05:22 +00:00
fr33domlover
a2ca78c790
Custom ticket fields specify whether required
2016-08-08 17:29:12 +00:00
fr33domlover
17643c6d49
Field enums aren't useful if you can't define values
2016-08-08 17:05:09 +00:00
fr33domlover
7ee28b97d2
Per-workflow custom ticket field enum types
2016-08-08 14:48:38 +00:00
fr33domlover
01385c480b
Per-workflow custom ticket fields
2016-08-08 14:01:06 +00:00
fr33domlover
687aa68a04
Per-sharer ticket workflows
...
A workflow is a new entity in Vervis. It defines the workflow of a
projects' ticket system. That includes the possible ticket states,
custom ticket fields, various filters and so on. All ticket system
customization is currently planned to be managed using workflows.
Currently workflows are private and per sharer, but the plan is to
support public workflows that can be shared and cloned.
2016-08-08 11:05:19 +00:00
fr33domlover
ea38f17688
Specify repodir in darcs init
, otherwise it fails
...
If `darcs init` isn't given a `--repodir`, even if you do specify the
new repository's path, it complains that it can't run inside a
repository, because it's running from a darcs clone of Vervis itself. If
the repo dir is specified using `--repodir` instead, Darcs doesn't
complain.
That's at least the situation with 2.8.5, didn't check other versions.
2016-08-04 08:00:29 +00:00
fr33domlover
dc54a89503
Ticket tree view page
2016-08-04 07:36:24 +00:00
fr33domlover
b5014a0f5f
Ticket tree widget
2016-08-04 01:05:09 +00:00
fr33domlover
fe7aeb5162
Ticket summary widget
2016-08-04 00:40:29 +00:00
fr33domlover
7ebf189e93
More compact buildTree impl using foldr
2016-08-03 23:58:41 +00:00
fr33domlover
3807a02daf
Generelize DAG tree view node from Int to any Eq+Ord+Hashable
2016-08-03 23:25:35 +00:00
fr33domlover
e7abd8eb9d
DAG tree view model builder, based on (V, E) and user choices
2016-08-03 23:09:42 +00:00
fr33domlover
7d6ef47e05
DB actions for selecting nodes and edges of single graph
2016-08-03 21:26:39 +00:00
fr33domlover
6220c78f74
Extra persistent graph classes & instances for ticket graph
2016-08-03 19:32:33 +00:00
fr33domlover
52f91cb98a
PersistEntityGraph specifies type of single graph selector
2016-08-02 15:44:45 +00:00
fr33domlover
51c99a1dfe
SQL: Don't list starting nodes in graph reachable set
2016-08-02 11:58:49 +00:00
fr33domlover
521871c476
Refactor undirected edge SQL to remove repeated filter
2016-08-02 09:29:56 +00:00
fr33domlover
9cfaabc035
SQL: Define the undirected edge table once, use everywhere
2016-07-30 11:29:23 +00:00
fr33domlover
c111f66d7d
SQL: Move some DBNames to common util module
2016-07-30 09:32:53 +00:00
fr33domlover
0904abd7e6
SQL: Use single recursive CTE reference in undirected traversal
...
At least in PostgreSQL, at most one reference is allowed. My undirected
recursion code used a UNION of two recursive steps, one for each
direction. That is invalid, so instead I define a CTE that's a union of
the edges and their reverse, and do a single recursion step on that CTE
instead of on the edge table itself.
2016-07-30 07:28:46 +00:00
fr33domlover
de384d0427
Persistent graph: Cyclic: Remove start
temp table, not needed anymore
2016-07-29 23:27:26 +00:00
fr33domlover
9ca7ab3a57
SQL: Remove some =ANY(?) from trr code, left there by mistake
2016-07-29 23:03:01 +00:00
fr33domlover
dad1ed2e1f
SQL: IN (1, 2, 3) instead of invalid ANY('[1, 2, 3]')
...
I thought SQL arrays were common and PersistList corresponded to SQL
array values. But that isn't the case. PersistList seems to be
serialized as a JSON list, and `filterClause` uses IN, not ANY. So I'm
doing the same thing here and using IN.
Note that I'm building the list myself using Text concatenation, not
using `filterClause`, because the latter takes a filter on an existing
`PersistEntity` while my filters often apply to temporary tables.
2016-07-29 22:57:52 +00:00
fr33domlover
1c2e5f86af
SQL: Use ANY() with arrays, not IN
2016-07-28 16:50:08 +00:00
fr33domlover
5c153b0294
Ticket dependency add/remove and some fixes to recursive SQL
2016-07-28 16:40:10 +00:00
fr33domlover
ddd4393825
New YAML setting: Optional user limit
2016-07-27 21:46:48 +00:00
fr33domlover
188905f9aa
Git clone over HTTP(S) using git binary
2016-07-27 15:17:03 +00:00
fr33domlover
c26fb389cf
Reimplement git ref discovery using git binary :-/
...
My implementation in Haskell does work, but ref discovery also includes
capabilities. Since I'm going to use the git binary for the next steps,
I need the git binary to specify here which capabilities it supports.
2016-07-27 13:23:44 +00:00
fr33domlover
d1e1f3c0f7
Reverse dependencies page for tickets
2016-07-27 08:35:50 +00:00
fr33domlover
350f8a9521
Function trrFix for adapting intransitive DAG after edge insertion
2016-07-27 07:29:32 +00:00
fr33domlover
461283ba6e
Simpler path selection in SQL transitive reduction
...
The transitive reduction query works by removing all the edges which
aren't the only paths between their nodes, i.e. longer paths exist. The
first step is to pick all the paths which include 2 or more edges.
The initial code did that appending in-edges to all paths, which results
with unnecessary duplicates and an INNER JOIN. Now, instead, just pick
all the paths with length of more than 3 nodes. This is hopefully not
just simpler, but also faster.
2016-07-20 11:24:01 +00:00
fr33domlover
a41f111bee
Split recursive SQL query huge module into smaller modules
2016-07-20 10:08:42 +00:00
fr33domlover
8c1d4dd6f1
Transitive reduction of DAGs in SQL
2016-07-15 00:32:33 +00:00
fr33domlover
c340508385
Reachability sets of graph nodes using SQL
2016-07-14 13:48:24 +00:00
fr33domlover
87205772bb
Transitive reduction of DAGs for FGL
2016-07-14 00:39:00 +00:00
fr33domlover
24040133a1
Graph path detection using recursive SQL queries
2016-07-13 19:05:02 +00:00
fr33domlover
7a33ef16f8
PersistEntityGraph is for any graph, PersistEntityHierarchy for DAGs
2016-07-05 16:13:48 +00:00
fr33domlover
7d8596c52b
Path existence checking between graph nodes
2016-07-05 12:37:31 +00:00
fr33domlover
6f785d8e9a
Graph cycle existence checking for FGL graphs
2016-07-05 08:49:25 +00:00
fr33domlover
879ad873e3
DB graph cycle existence checking using recursive SQL query
2016-07-05 08:46:58 +00:00
fr33domlover
fcb68ceea7
List ticket deps and reverse deps in ticket page
2016-07-04 09:58:25 +00:00
fr33domlover
6626e40340
Specify default role for repo and project visitors
2016-07-03 07:52:11 +00:00
fr33domlover
7542b33c7d
Draw the arrows in role diagram
2016-07-02 11:57:20 +00:00
fr33domlover
c292bd51a4
Role diagram for repo roles too
2016-07-02 09:57:52 +00:00
fr33domlover
13afd17a40
Replace project role HTML flat list with an SVG diagram
2016-07-02 09:45:29 +00:00
fr33domlover
1191a3c5cd
Role graph widget
2016-07-02 09:02:13 +00:00
fr33domlover
7be410f329
Upgrade LTS from 5.13 to 6.5
2016-07-02 08:51:29 +00:00
fr33domlover
063caab86d
Insert links to DAG diagram
2016-06-28 22:19:48 +00:00
fr33domlover
5b4607e64d
Initial code for intransitive DAG drawing
2016-06-28 19:46:54 +00:00
fr33domlover
a4eeb61a44
Define colors for use with 'diagrams'
2016-06-26 08:03:18 +00:00
fr33domlover
386d499a61
Define colors in dedicated Vervis.Palette module
2016-06-22 20:58:42 +00:00
fr33domlover
c7de6119ab
Build role graph
2016-06-21 07:35:19 +00:00
fr33domlover
7886d9a515
Layering of intransitive DAGs
2016-06-20 22:50:16 +00:00
fr33domlover
5340cf23f1
Project role inheritance and graph queries with some raw SQL
2016-06-17 20:17:39 +00:00
fr33domlover
48d7c9e929
PersistQueryRecursive becomes PersistQueryForest
2016-06-13 13:46:03 +00:00
fr33domlover
76a627385c
Recursive SQL queries, still need to test before use
2016-06-12 22:37:52 +00:00
fr33domlover
55945e30f9
Ticket claim request submission
2016-06-08 01:28:18 +00:00
fr33domlover
5557e65f66
Ticket dependencies in DB and per-ticket list of children
2016-06-07 20:16:15 +00:00
fr33domlover
11d4a955d8
Per-ticket list of claim requests with full info
2016-06-07 16:31:55 +00:00
fr33domlover
047b9c00c9
Per-project list of ticket claim requests
2016-06-07 15:29:26 +00:00
fr33domlover
574b47a72a
Pagination widget: Use just links, no <ul> and <li>
2016-06-07 13:07:34 +00:00
fr33domlover
d500b85c57
Pagination widget: Display prev and next pages' links
2016-06-07 12:57:05 +00:00
fr33domlover
be458d3689
Pagination: Define page number request param name in one place
2016-06-07 11:10:24 +00:00
fr33domlover
5e04f951f2
Ticket claim requests in DB and personal list view of them
2016-06-07 10:01:57 +00:00
fr33domlover
ae83a5f3ad
Ticket un/assign (like un/claim but for other people)
2016-06-07 07:33:19 +00:00
fr33domlover
eb6fa307b3
Allow group admins to create projects and repos under group
2016-06-07 05:23:00 +00:00
fr33domlover
dd27f9d5b9
Replace unnecessary requireAuth with requireAuthId
2016-06-07 05:17:54 +00:00
fr33domlover
d6967f52d9
Use getBy404 in isAuthorized when it's the right thing
2016-06-06 20:10:28 +00:00
fr33domlover
23c06c535a
Put roles under sharers, now groups' roles can be managed too
2016-06-06 19:41:22 +00:00
fr33domlover
f2e4bb4291
Roles now under by sharers, i.e. now groups too
2016-06-06 17:29:54 +00:00
fr33domlover
05e0d837fa
In group page, link to group members page
2016-06-06 14:13:33 +00:00
fr33domlover
f53768de7e
Paginate list of sharers on the server
2016-06-06 14:05:06 +00:00
fr33domlover
893d91acd8
Sharers page lists them, sharer page redirects to person or group
2016-06-06 13:34:23 +00:00
fr33domlover
505585d8b8
Fix: Used requireAuthId in public page
2016-06-06 10:00:05 +00:00
fr33domlover
a3af63d368
Ticket claim and unclaim routes with access checks
2016-06-06 09:03:49 +00:00
fr33domlover
2881dd2e5f
When closing a ticket, clear assignee field
2016-06-06 07:44:00 +00:00
fr33domlover
33d5a947e6
Replace some %F with showDate
2016-06-06 07:26:58 +00:00
fr33domlover
ef42bf29cd
When creating a project, must choose a role for self
2016-06-06 06:48:59 +00:00
fr33domlover
c86c0f547a
Move repo collab selector fields to the field module
2016-06-06 06:03:42 +00:00
fr33domlover
5305caf0b0
Repo settings page, allow repos to move between projects
2016-06-05 21:11:05 +00:00
fr33domlover
72def092b2
If a repo belongs to a project, pick repo team from project team
2016-06-05 13:59:48 +00:00
fr33domlover
91266dd421
Project settings route, with wiki repo selector
2016-06-05 10:43:28 +00:00
fr33domlover
f8e1442e72
Initial minimal optional per-project wiki
2016-06-04 06:57:54 +00:00
fr33domlover
ef810f2854
Add simple Display class for showing-as-strict-Text
2016-06-03 09:12:33 +00:00
fr33domlover
6971310196
Write missing group member routes
2016-06-01 22:01:01 +00:00
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