1
0
Fork 0
mirror of https://code.sup39.dev/repos/Wqawg synced 2024-12-29 14:24:51 +09:00
Commit graph

318 commits

Author SHA1 Message Date
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
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