mirror of
https://github.com/ilyakooo0/urbit.git
synced 2025-01-01 11:32:22 +03:00
Merge remote-tracking branch 'origin/collections' into ford-turbo
This commit is contained in:
commit
ba0de921ab
25
.travis.yml
25
.travis.yml
@ -1,39 +1,34 @@
|
||||
language: node_js # ish, mainly used as an entry point
|
||||
language: node_js
|
||||
node_js:
|
||||
- 4
|
||||
- 4
|
||||
before_install:
|
||||
- cd .travis # keep main directory clear
|
||||
|
||||
- wget -i pin-urbit-release.url -O ./urbit.deb
|
||||
- sudo apt install ./urbit.deb
|
||||
|
||||
|
||||
- cd .travis
|
||||
- wget -i pin-urbit-release.url -O ./urbit.deb
|
||||
- sudo apt install ./urbit.deb
|
||||
before_script: bash get-or-build-pill.sh
|
||||
|
||||
# https://github.com/travis-ci/travis-ci/issues/2570
|
||||
before_deploy: "[ -d piers ] || { mkdir piers && tar cvzSf piers/zod-$TRAVIS_COMMIT.tgz zod/; }"
|
||||
deploy:
|
||||
- skip_cleanup: true
|
||||
provider: gcs
|
||||
access_key_id: GOOGW5WD4W7RF3TQ5EBM
|
||||
access_key_id: GOOGTADOPP55X5ZTH3IKAXQW
|
||||
secret_access_key:
|
||||
secure: cbMrx/jloYtTiMc9b+gujrpdzmB05yHC7C2PN1dqHoe25JqwS1c8ne0jhzYOanSkJptPEjwpKeEYLyF87CStCglMJaHwsx1wAm94D8Vh6WL96pgxFbMdVRD+g2dAcSXYnSX5C0QpFrnxY8ujg9yqhItpvd+whsPYjxZahIUd5rPPS1gCP2O6hGpKFCv5++DB1RgqL5y1Hlm9efsLxsnkS7cuzrSX6o8I6Yns5pFlDDRED7Tgpp5DYYfq6ZmiIpxbuYZK+AYJKK7N2zC4RfFXstgL+M9h7joFE1r8RlzrVHLXL7+3qg8POWEEu47008ORByDCmlt5VKoMBJ3q4J4ykDKI2qmx3jw68tGIu2o5uVf6KpxtAM2IJSNZ4mOEYjs7ieR1GOrLKr7lSSYEOIShJhx7J1MMjBOaS17Ho7Uc4iNLGpH4M7DpiKwVLnjfsYiasv/1xq71ed386wLTpI5YyY/SfsNPoIbgv1IjkKIMRLl5l85tEUK10h8dxQi3mXeaP698LnQLdHdxeBKJB08hwJrl7kIOJnqZxWPBp8i7OQeIvKcu+WzMg5UIR4hR7wj7NEga/+1jjjDQeo7EHQB2Tk9dhXtTmozOGpsW49H7+VBThhhNODEYeX3CIcdOtSyjuwBLZ45HsKIhhWA00b+YyE8boBkV1yQeFh/IYCZBn7s=
|
||||
secure: lALZvAW22oBMCXafvDOkqKDkdP0K8bGKlSb6uhh54z+2bJu49+5vrfxgA9YLcExGiz8uFttzNYhEoAQEjb96DPHAHvH2iJrwieKltrWM4hLkGuSHVSCBIIm+Qe4BVRSVJPQ1rtO1ausNr0XuzO6BVnKY7NCrz8la2XNjm5+miQdtrJUnrfy2JsM/c/Bkwjj3Tc4op9Ne+7Xzc9DI6LB97XiJx5PgeOx1WeZi9IKQ3IhPBHBzBpBrJ4lWxb4PFvDUqNzSk1wuMGy/sH73IFhGcz3CZRZYbeICDdwmHcUnkdPxG6+RLH+YLhSxx175R+HdaARRQvRANxvY9KNJ11NKmV3Rs9q7fZgWZbrptuB0CDMhfZ/Aiz9tgHGV0UVhYHb8n614fDIKzpXwIy5DPjCKpxPoZRVzABQcdzPTvxnZtZDbarsfdfq0vh9xXNPLGuFYZQnZ6iEpv17qp/2TbeCBSMKIxwIG3LQTwr0a4wKL1T/YIZm6oiN6NycHhMHaczQIRANKw9e7oqbgnXu/WnqHIxyTY2CCvzVOgipRmKKa7jz7CcSoP883XZ9o7WAOnfJY+T4ofpdkzHn1ElNXPjDPpX7CUkowNFH4DZk2Ljwe0CgxPOF6ygnsNrqqs4XoNQaBnHGXMq20Upg6OK9MBmZibtlX9STCeSAt4WudekpEOPU=
|
||||
bucket: ci-piers.urbit.org
|
||||
local-dir: piers/
|
||||
acl: public-read
|
||||
on:
|
||||
repo: urbit/arvo
|
||||
all_branches: true
|
||||
#
|
||||
- skip_cleanup: true
|
||||
provider: gcs
|
||||
access_key_id: GOOGW5WD4W7RF3TQ5EBM
|
||||
access_key_id: GOOGTADOPP55X5ZTH3IKAXQW
|
||||
secret_access_key:
|
||||
secure: cbMrx/jloYtTiMc9b+gujrpdzmB05yHC7C2PN1dqHoe25JqwS1c8ne0jhzYOanSkJptPEjwpKeEYLyF87CStCglMJaHwsx1wAm94D8Vh6WL96pgxFbMdVRD+g2dAcSXYnSX5C0QpFrnxY8ujg9yqhItpvd+whsPYjxZahIUd5rPPS1gCP2O6hGpKFCv5++DB1RgqL5y1Hlm9efsLxsnkS7cuzrSX6o8I6Yns5pFlDDRED7Tgpp5DYYfq6ZmiIpxbuYZK+AYJKK7N2zC4RfFXstgL+M9h7joFE1r8RlzrVHLXL7+3qg8POWEEu47008ORByDCmlt5VKoMBJ3q4J4ykDKI2qmx3jw68tGIu2o5uVf6KpxtAM2IJSNZ4mOEYjs7ieR1GOrLKr7lSSYEOIShJhx7J1MMjBOaS17Ho7Uc4iNLGpH4M7DpiKwVLnjfsYiasv/1xq71ed386wLTpI5YyY/SfsNPoIbgv1IjkKIMRLl5l85tEUK10h8dxQi3mXeaP698LnQLdHdxeBKJB08hwJrl7kIOJnqZxWPBp8i7OQeIvKcu+WzMg5UIR4hR7wj7NEga/+1jjjDQeo7EHQB2Tk9dhXtTmozOGpsW49H7+VBThhhNODEYeX3CIcdOtSyjuwBLZ45HsKIhhWA00b+YyE8boBkV1yQeFh/IYCZBn7s=
|
||||
secure: lALZvAW22oBMCXafvDOkqKDkdP0K8bGKlSb6uhh54z+2bJu49+5vrfxgA9YLcExGiz8uFttzNYhEoAQEjb96DPHAHvH2iJrwieKltrWM4hLkGuSHVSCBIIm+Qe4BVRSVJPQ1rtO1ausNr0XuzO6BVnKY7NCrz8la2XNjm5+miQdtrJUnrfy2JsM/c/Bkwjj3Tc4op9Ne+7Xzc9DI6LB97XiJx5PgeOx1WeZi9IKQ3IhPBHBzBpBrJ4lWxb4PFvDUqNzSk1wuMGy/sH73IFhGcz3CZRZYbeICDdwmHcUnkdPxG6+RLH+YLhSxx175R+HdaARRQvRANxvY9KNJ11NKmV3Rs9q7fZgWZbrptuB0CDMhfZ/Aiz9tgHGV0UVhYHb8n614fDIKzpXwIy5DPjCKpxPoZRVzABQcdzPTvxnZtZDbarsfdfq0vh9xXNPLGuFYZQnZ6iEpv17qp/2TbeCBSMKIxwIG3LQTwr0a4wKL1T/YIZm6oiN6NycHhMHaczQIRANKw9e7oqbgnXu/WnqHIxyTY2CCvzVOgipRmKKa7jz7CcSoP883XZ9o7WAOnfJY+T4ofpdkzHn1ElNXPjDPpX7CUkowNFH4DZk2Ljwe0CgxPOF6ygnsNrqqs4XoNQaBnHGXMq20Upg6OK9MBmZibtlX9STCeSAt4WudekpEOPU=
|
||||
bucket: bootstrap.urbit.org
|
||||
local-dir: built-pill/
|
||||
acl: public-read
|
||||
on:
|
||||
condition: -d built-pill/
|
||||
condition: "-d built-pill/"
|
||||
repo: urbit/arvo
|
||||
all_branches: true
|
||||
|
@ -83,6 +83,8 @@
|
||||
::
|
||||
++ allowed-by
|
||||
|= [who=@p dic=dict:clay]
|
||||
^- ?
|
||||
?: =(who our.bol) &
|
||||
=/ in-list=?
|
||||
?| (~(has in p.who.rul.dic) who)
|
||||
::
|
||||
@ -152,19 +154,19 @@
|
||||
::
|
||||
::
|
||||
::
|
||||
++ coup
|
||||
|= [wir=wire err=(unit tang)]
|
||||
^- (quip move _this)
|
||||
?~ err
|
||||
[~ this]
|
||||
(mean u.err)
|
||||
++ poke-noun
|
||||
|= a=*
|
||||
^- (quip move _this)
|
||||
:: =/ pax ((hard path) a)
|
||||
=/ yo=item (~(got by data.cols) ~.yoyo)
|
||||
?> ?=(%both -.yo)
|
||||
=/ new-front (~(put by meta.raw.yo) %new-field ~.fuck-off)
|
||||
=/ new-body (crip (weld (trip data.raw.yo) "new line\0a"))
|
||||
=/ new-contents (update-umd-front new-front data.raw.yo)
|
||||
|
||||
=/ act=action:collections
|
||||
:* our.bol %home
|
||||
:~ [%write /web/collections/yoyo/umd %umd new-body]
|
||||
:~ [%post /web/collections ~.test 'test' & '# title\0a\0abody']
|
||||
==
|
||||
==
|
||||
=/ mow=move
|
||||
@ -185,12 +187,38 @@
|
||||
%collections-action act
|
||||
==
|
||||
::
|
||||
:: resolve %collection, %post, or %comment to %write action
|
||||
:: resolve %collection, %post, or %comment to %write + %perms action
|
||||
=. acts.act
|
||||
%+ turn acts.act
|
||||
|= a=sub-action
|
||||
^- sub-action
|
||||
?: ?=(%collection -.a)
|
||||
%+ roll acts.act
|
||||
|= [a=sub-action out=(list sub-action)]
|
||||
^- (list sub-action)
|
||||
=/ sap (en-beam:format [byk.bol (flop (path +<.a))])
|
||||
?- -.a
|
||||
::
|
||||
%write
|
||||
=/ perms .^([dict:clay dict:clay] %cp sap)
|
||||
?: (allowed-by src.bol +.perms)
|
||||
[a out]
|
||||
out
|
||||
::
|
||||
%delete
|
||||
=/ perms .^([dict:clay dict:clay] %cp sap)
|
||||
?: (allowed-by src.bol +.perms)
|
||||
[a out]
|
||||
out
|
||||
::
|
||||
%perms
|
||||
?: =(src.bol our.bol) :: XX admin priveleges for other users?
|
||||
[a out]
|
||||
out
|
||||
::
|
||||
::
|
||||
:: XX some of this is redunant
|
||||
::
|
||||
%collection
|
||||
=/ perms .^([dict:clay dict:clay] %cp (weld sap /[name.a]/collections-config))
|
||||
?. (allowed-by src.bol +.perms)
|
||||
out
|
||||
=/ conf=config
|
||||
:* [byk.bol (flop (weld pax.a /[name.a]/collections-config))]
|
||||
name.a
|
||||
@ -203,9 +231,23 @@
|
||||
~
|
||||
visible.a
|
||||
==
|
||||
[%write (weld pax.a /[name.a]/collections-config) %collections-config conf]
|
||||
=/ new=(list sub-action)
|
||||
:~ [%write (weld pax.a /[name.a]/collections-config) %collections-config conf]
|
||||
:: restrict permissions on config file
|
||||
:^ %perms (weld pax.a /[name.a]/collections-config)
|
||||
[%white ((set whom:clay) [[& src.bol] ~ ~])] :: read XX maybe open this?
|
||||
[%white ((set whom:clay) [[& src.bol] ~ ~])] :: write
|
||||
:: open permissions on collection items
|
||||
:^ %perms (weld pax.a /[name.a])
|
||||
[%black ((set whom:clay) ~)] :: read
|
||||
[%black ((set whom:clay) ~)] :: write
|
||||
==
|
||||
(weld new out)
|
||||
::
|
||||
?: ?=(%post -.a)
|
||||
%post
|
||||
=/ perms .^([dict:clay dict:clay] %cp (weld sap /[name.a]/umd))
|
||||
?. (allowed-by src.bol +.perms)
|
||||
out
|
||||
=. content.a (crip (weld (trip content.a) "\0a"))
|
||||
=/ front=(map knot cord)
|
||||
%- my
|
||||
@ -216,11 +258,25 @@
|
||||
[%last-modified (scot %da now.bol)]
|
||||
[%type type.a]
|
||||
==
|
||||
[%write (weld pax.a /[name.a]/umd) %umd `@t`(update-umd-front front content.a)]
|
||||
=/ new=(list sub-action)
|
||||
:~ [%write (weld pax.a /[name.a]/umd) %umd `@t`(update-umd-front front content.a)]
|
||||
:: restrict write permissions on umd file
|
||||
:^ %perms (weld pax.a /[name.a]/umd)
|
||||
[%black ((set whom:clay) ~)] :: read
|
||||
[%white ((set whom:clay) [[& src.bol] ~ ~])] :: write
|
||||
:: open permissions on comments
|
||||
:^ %perms (weld pax.a /[name.a])
|
||||
[%black ((set whom:clay) ~)] :: read
|
||||
[%black ((set whom:clay) ~)] :: write
|
||||
==
|
||||
(weld new out)
|
||||
::
|
||||
?: ?=(%comment -.a)
|
||||
=. content.a (crip (weld (trip content.a) "\0a"))
|
||||
%comment
|
||||
=/ dat (scot %da now.bol)
|
||||
=/ perms .^([dict:clay dict:clay] %cp (weld sap /[dat]/umd))
|
||||
?. (allowed-by src.bol +.perms)
|
||||
out
|
||||
=. content.a (crip (weld (trip content.a) "\0a"))
|
||||
=/ front=(map knot cord)
|
||||
%- my
|
||||
:~ [%owner (scot %p src.bol)]
|
||||
@ -228,33 +284,18 @@
|
||||
[%last-modified dat]
|
||||
[%type %comments]
|
||||
==
|
||||
[%write (weld pax.a /[dat]/umd) %umd (update-umd-front front content.a)]
|
||||
=/ new=(list sub-action)
|
||||
:~ [%write (weld pax.a /[dat]/umd) %umd (update-umd-front front content.a)]
|
||||
:: restrict write permissions on umd file
|
||||
:^ %perms (weld pax.a /[dat]/umd)
|
||||
[%black ((set whom:clay) ~)] :: read
|
||||
[%white ((set whom:clay) [[& src.bol] ~ ~])] :: write
|
||||
==
|
||||
(weld new out)
|
||||
::
|
||||
a
|
||||
::
|
||||
:: if its from us no need to check permissions
|
||||
?: =(src.bol our.bol)
|
||||
ta-done:(ta-act:ta act)
|
||||
::
|
||||
:: if not from us, check if every action in the list is permitted
|
||||
:: if even one isn't, don't reject the whole list
|
||||
=/ success=?
|
||||
%+ levy acts.act
|
||||
|= a=sub-action
|
||||
=/ pax (path +<.a)
|
||||
?+ -.a !!
|
||||
%write
|
||||
=/ perms .^([dict:clay dict:clay] %cp pax)
|
||||
(allowed-by src.bol +.perms)
|
||||
%delete
|
||||
=/ perms .^([dict:clay dict:clay] %cp pax)
|
||||
(allowed-by src.bol +.perms)
|
||||
%perms |
|
||||
==
|
||||
::
|
||||
?: success
|
||||
ta-done:(ta-act:ta act)
|
||||
[~ this] :: XX TODO: report failure
|
||||
ta-done:(ta-act:ta act)
|
||||
::
|
||||
::::::
|
||||
::::::
|
||||
|
@ -194,11 +194,17 @@
|
||||
++ prep-config
|
||||
|= cof/config-0
|
||||
^- config
|
||||
%= cof
|
||||
src
|
||||
=. src.cof
|
||||
%- ~(gas in *(set source))
|
||||
(murn ~(tap in src.cof) prep-source)
|
||||
:* src.cof
|
||||
cap.cof
|
||||
tag.cof
|
||||
fit.cof
|
||||
con.cof
|
||||
0
|
||||
==
|
||||
|
||||
::
|
||||
++ prep-source
|
||||
|= src/source-0
|
||||
@ -425,6 +431,8 @@
|
||||
$permit (action-permit +.act)
|
||||
$delete (action-delete +.act)
|
||||
$usage (action-usage +.act)
|
||||
$read (action-read +.act)
|
||||
$newdm (action-newdm +.act)
|
||||
:: messaging
|
||||
$convey (action-convey +.act)
|
||||
$phrase (action-phrase +.act)
|
||||
@ -493,6 +501,7 @@
|
||||
:- typ
|
||||
?. ?=(?($village $journal) typ) ~
|
||||
[our.bol ~ ~]
|
||||
0
|
||||
==
|
||||
(ta-evil (crip "{(trip nom)}: already exists"))
|
||||
::
|
||||
@ -560,6 +569,52 @@
|
||||
(ta-evil (crip "no story {(trip nom)}"))
|
||||
so-done:(~(so-usage so nom ~ u.soy) add tas)
|
||||
::
|
||||
++ action-read
|
||||
:: set the read message number
|
||||
::
|
||||
|= {nom/name red/@ud}
|
||||
=+ soy=(~(get by stories) nom)
|
||||
?~ soy
|
||||
(ta-evil (crip "no story {(trip nom)}"))
|
||||
so-done:(~(so-read so nom ~ u.soy) red)
|
||||
::
|
||||
++ action-newdm
|
||||
:: copy all behavior of create, permit, and source in that order
|
||||
::
|
||||
|= {sis/(set ship)}
|
||||
=/ nom/name
|
||||
%^ rsh 3 1
|
||||
%+ roll
|
||||
%+ sort (weld ~(tap in sis) [our.bol ~])
|
||||
|= [a=ship b=ship]
|
||||
^- ?
|
||||
(lth a b)
|
||||
|= {p/ship nam/name}
|
||||
^- @tas
|
||||
(crip "{(trip `@t`nam)}.{(slag 1 (trip (scot %p p)))}")
|
||||
=/ dels/(list delta)
|
||||
:~
|
||||
:*
|
||||
%story
|
||||
%inbox
|
||||
%follow
|
||||
&
|
||||
[[[our.bol nom] ~] ~ ~]
|
||||
==
|
||||
:*
|
||||
%story
|
||||
nom
|
||||
%new
|
||||
[[[our.bol nom] ~] ~ ~]
|
||||
'dm'
|
||||
~
|
||||
*filter
|
||||
[%village (~(put in sis) our.bol)]
|
||||
0
|
||||
==
|
||||
==
|
||||
(ta-deltas dels)
|
||||
::
|
||||
:: # %messaging
|
||||
+| %messaging
|
||||
++ action-convey
|
||||
@ -1182,6 +1237,7 @@
|
||||
[%filter fit.cof]
|
||||
[%secure sec.con.cof]
|
||||
[%permit & sis.con.cof]
|
||||
[%read red.cof]
|
||||
==
|
||||
=- (murn - same)
|
||||
^- (list (unit diff-config))
|
||||
@ -1262,6 +1318,13 @@
|
||||
?~ sas +>.$
|
||||
(so-delta-our %config so-cir %usage add sas)
|
||||
::
|
||||
++ so-read
|
||||
:: set the read message number in circle config
|
||||
|= {red/@ud}
|
||||
^+ +>
|
||||
?: =(red red.shape) +>
|
||||
(so-delta-our %config so-cir %read red)
|
||||
::
|
||||
++ so-filter
|
||||
:: change message rules
|
||||
::
|
||||
|
@ -79,6 +79,7 @@
|
||||
{$banish name (set ship)} :: deny permission
|
||||
{$source name (map circle range)} :: add source
|
||||
{$unsource name (map circle range)} :: remove source
|
||||
{$read name @ud} :: set read count
|
||||
:: personal metadata ::
|
||||
{$attend audience (unit presence)} :: set our presence
|
||||
{$name audience human} :: set our name
|
||||
@ -162,10 +163,15 @@
|
||||
++ prep-config
|
||||
|= cof/config-0
|
||||
^- config
|
||||
%= cof
|
||||
src
|
||||
=. src.cof
|
||||
%- ~(gas in *(set source))
|
||||
(murn ~(tap in src.cof) prep-source)
|
||||
:* src.cof
|
||||
cap.cof
|
||||
tag.cof
|
||||
fit.cof
|
||||
con.cof
|
||||
0
|
||||
==
|
||||
::
|
||||
++ prep-source
|
||||
@ -832,6 +838,8 @@
|
||||
;~ pose
|
||||
::
|
||||
:: circle management
|
||||
::
|
||||
;~((glue ace) (perk %read ~) cire dem:ag)
|
||||
::
|
||||
;~((glue ace) (perk %join ~) sorz)
|
||||
::
|
||||
@ -1070,6 +1078,7 @@
|
||||
$banish (permit | +.job)
|
||||
$source (source & +.job)
|
||||
$unsource (source | +.job)
|
||||
$read (read +.job)
|
||||
:: personal metadata
|
||||
$attend (attend +.job)
|
||||
$name (set-name +.job)
|
||||
@ -1273,6 +1282,15 @@
|
||||
^+ ..sh-work
|
||||
(sh-act %source nom sub pos)
|
||||
::
|
||||
++ read
|
||||
:: %read
|
||||
::
|
||||
:: set {red} for {nom}
|
||||
::
|
||||
|= {nom/name red/@ud}
|
||||
^+ ..sh-work
|
||||
(sh-act %read nom red)
|
||||
::
|
||||
:: #
|
||||
:: # %personal-metadata
|
||||
:: #
|
||||
@ -1916,6 +1934,9 @@
|
||||
::
|
||||
$caption
|
||||
"cap: {(trip cap.dif)}"
|
||||
::
|
||||
$read
|
||||
"red: {(scow %ud red.dif)}"
|
||||
::
|
||||
$filter
|
||||
;: weld
|
||||
|
@ -183,6 +183,7 @@
|
||||
$secure s+sec.a
|
||||
$permit (pairs add+b+add.a sis+(sa sis.a ship) ~)
|
||||
$remove b+&
|
||||
$read (numb red.a)
|
||||
==
|
||||
::
|
||||
++ disa ::: diff-status
|
||||
@ -233,6 +234,7 @@
|
||||
tag+(sa tag.a cord)
|
||||
fit+(filt fit.a)
|
||||
con+(cont con.a)
|
||||
red+(numb red.a)
|
||||
==
|
||||
::
|
||||
++ sorc ::: source
|
||||
@ -475,6 +477,7 @@
|
||||
tag+(as so)
|
||||
fit+filt
|
||||
con+cont
|
||||
red+ni
|
||||
==
|
||||
::
|
||||
::TODO maybe just an object?
|
||||
|
@ -145,6 +145,7 @@
|
||||
$caption cof(cap cap.dif)
|
||||
$filter cof(fit fit.dif)
|
||||
$remove cof
|
||||
$read cof(red red.dif)
|
||||
::
|
||||
$usage
|
||||
%= cof
|
||||
|
@ -2,6 +2,7 @@
|
||||
:::: /hoon/config/collection/mar
|
||||
::
|
||||
/+ collections
|
||||
!:
|
||||
|_ con=config:collections
|
||||
::
|
||||
::
|
||||
@ -9,88 +10,74 @@
|
||||
|%
|
||||
++ mime
|
||||
:- /text/x-collection-config
|
||||
(as-octs:mimes:html (jam con))
|
||||
:: ++ txt
|
||||
:: |^
|
||||
:: ^- (list @t)
|
||||
:: ;: weld
|
||||
:: ::
|
||||
:: :~ (cat 3 'name: ' goodname.con)
|
||||
:: (cat 3 'owner: ' (scot %p owner.con))
|
||||
:: (cat 3 'date-created: ' (scot %da date-created.con))
|
||||
:: (cat 3 'last-modified: ' (scot %da last-modified.con))
|
||||
:: (cat 3 'comments: ' ?:(comments.con 'y' 'n'))
|
||||
:: ==
|
||||
:: ::
|
||||
:: ?~ sort-key.con ~
|
||||
:: [(cat 3 'sort-key: ' (scot %ud u.sortkey.con)) ~]
|
||||
:: ::
|
||||
:: :- 'config-permissions:'
|
||||
:: (rules-to-txt r.config-permissions.con w.config-permissions.con)
|
||||
:: ::
|
||||
:: :- 'content-permissions:'
|
||||
:: (rules-to-txt r.content-permissions.con w.content-permissions.con)
|
||||
:: ::
|
||||
:: ==
|
||||
:: ++ rules-to-txt
|
||||
:: |= [r=rule:clay w=rule:clay]
|
||||
:: ^- (list @t)
|
||||
:: ;: weld
|
||||
:: ::
|
||||
:: :* (cat 3 ' read: ' mod.r)
|
||||
:: %+ turn ~(tap by who.r)
|
||||
:: |= hoe=whom:clay
|
||||
:: ?- -.hoe
|
||||
:: %& (cat 3 ' ' (scot %p +.hoe))
|
||||
:: %| (cat 3 ' ' +.hoe)
|
||||
:: ==
|
||||
:: ==
|
||||
:: ::
|
||||
:: [' ==' ~]
|
||||
:: ::
|
||||
:: :* (cat 3 ' write: ' mod.w)
|
||||
:: %+ turn ~(tap by who.w)
|
||||
:: |= hoe=whom:clay
|
||||
:: ?- -.hoe
|
||||
:: %& (cat 3 ' ' (scot %p +.hoe))
|
||||
:: %| (cat 3 ' ' +.hoe)
|
||||
:: ==
|
||||
:: ==
|
||||
:: ::
|
||||
:: [' ==' ~]
|
||||
:: ==
|
||||
:: --
|
||||
(as-octs:mimes:html (of-wain:format txt))
|
||||
++ txt
|
||||
^- wain
|
||||
::
|
||||
:~ (cat 3 'full-path: ' (spat (en-beam:format full-path.con)))
|
||||
(cat 3 'name: ' name.con)
|
||||
(cat 3 'description: ' description.con)
|
||||
::
|
||||
(cat 3 'owner: ' (scot %p owner.con))
|
||||
::
|
||||
(cat 3 'date-created: ' (scot %da date-created.con))
|
||||
(cat 3 'last-modified: ' (scot %da last-modified.con))
|
||||
::
|
||||
(cat 3 'type: ' type.con)
|
||||
(cat 3 'comments: ' ?:(comments.con 'y' 'n'))
|
||||
(cat 3 'sort-key: ' ?~(sort-key.con '~' (scot %ud u.sort-key.con)))
|
||||
(cat 3 'visible: ' ?:(visible.con 'y' 'n'))
|
||||
==
|
||||
--
|
||||
++ grab
|
||||
|%
|
||||
++ mime
|
||||
|= [mite:eyre p=octs:eyre]
|
||||
((hard config:collections) (cue q.p))
|
||||
:: ++ txt
|
||||
:: |= txs=(list @t)
|
||||
:: ?> ?= $: name=@t
|
||||
:: owner=@t
|
||||
:: dc=@t
|
||||
:: lm=@t
|
||||
:: com=@t
|
||||
:: res=(lest @t)
|
||||
:: ==
|
||||
:: txs
|
||||
:: ::
|
||||
:: =/ top
|
||||
:: :* (rash name.txs ;~(pfix (jest 'name: ') (cook crip (star next))))
|
||||
:: (rash owner.txs ;~(pfix (jest 'owner: ~') (fed:ag)))
|
||||
:: (rash dc.txs ;~(pfix (jest 'date-created: ~') (cook |=(a=^ +.a) crub:so)))
|
||||
:: (rash lm.txs ;~(pfix (jest 'last-modified: ~') (cook |=(a=^ +.a) crub:so)))
|
||||
:: (rash com.txs ;~(pfix (jest 'comments: ') (flag %y %n)))
|
||||
:: ==
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
(txt (to-wain:format q.p))
|
||||
++ txt
|
||||
|= txs=(pole @t)
|
||||
^- config:collections
|
||||
?> ?= $: full-path=@t
|
||||
name=@t
|
||||
desc=@t
|
||||
owner=@t
|
||||
dc=@t
|
||||
lm=@t
|
||||
type=@t
|
||||
com=@t
|
||||
sk=@t
|
||||
vis=@t
|
||||
~
|
||||
==
|
||||
txs
|
||||
::
|
||||
%- (hard config:collections)
|
||||
:* %- need
|
||||
%+ rash full-path.txs
|
||||
;~ pfix (jest 'full-path: ')
|
||||
%+ cook de-beam:format
|
||||
;~(pfix fas (more fas urs:ab))
|
||||
==
|
||||
::
|
||||
(rash name.txs ;~(pfix (jest 'name: ') (cook crip (star next))))
|
||||
::
|
||||
(rash desc.txs ;~(pfix (jest 'description: ') (cook crip (star next))))
|
||||
::
|
||||
(rash owner.txs ;~(pfix (jest 'owner: ~') fed:ag))
|
||||
::
|
||||
(rash dc.txs ;~(pfix (jest 'date-created: ~') (cook |=(a=^ +.a) crub:so)))
|
||||
::
|
||||
(rash lm.txs ;~(pfix (jest 'last-modified: ~') (cook |=(a=^ +.a) crub:so)))
|
||||
::
|
||||
(rash type.txs ;~(pfix (jest 'type: ') (cook crip (star next))))
|
||||
::
|
||||
(rash com.txs ;~(pfix (jest 'comments: ') (flag %y %n)))
|
||||
::
|
||||
(rush sk.txs ;~(pfix (jest 'sort-key: ') dem:ag))
|
||||
::
|
||||
(rash vis.txs ;~(pfix (jest 'visible: ') (flag %y %n)))
|
||||
==
|
||||
++ noun config:collections
|
||||
--
|
||||
++ grad %mime
|
||||
++ grad %txt
|
||||
--
|
||||
|
@ -22,7 +22,9 @@
|
||||
filter+(ot nom+so fit+filt ~)
|
||||
permit+(ot nom+so inv+bo sis+(as (su fed:ag)) ~)
|
||||
source+(ot nom+so sub+bo srs+(as sorc) ~)
|
||||
read+(ot nom+so red+ni ~)
|
||||
usage+(ot nom+so add+bo tas+(as so) ~)
|
||||
newdm+(ot sis+(as (su fed:ag)) ~)
|
||||
::
|
||||
convey+(ar thot)
|
||||
phrase+(ot aud+audi ses+(ar spec:dejs:hall-json) ~)
|
||||
@ -54,7 +56,9 @@
|
||||
$filter ~[nom+s+nom.act fit+(filt fit.act)]
|
||||
$permit ~[nom+s+nom.act inv+b+inv.act sis+(sa sis.act ship)]
|
||||
$source ~[nom+s+nom.act sub+b+sub.act srs+(sa srs.act sorc)]
|
||||
$read ~[nom+s+nom.act red+(numb red.act)]
|
||||
$usage ~[nom+s+nom.act add+b+add.act tas+(sa tas.act cord:enjs)]
|
||||
$newdm ~[sis+(sa sis.act ship)]
|
||||
::
|
||||
$phrase ~[aud+(audi aud.act) ses+a+(turn ses.act spec:enjs)]
|
||||
::
|
||||
|
@ -23,11 +23,12 @@
|
||||
=/ sho (fall (~(get by qix.gas) %show) %default)
|
||||
;div.container
|
||||
;input
|
||||
=type "hidden"
|
||||
=name "urb-header"
|
||||
=value "collection"
|
||||
=station "{(scow %p p.bem.gas)}/{<(flop s.bem.gas)>}"
|
||||
=ship "{(scow %p p.bem.gas)}";
|
||||
=type "hidden"
|
||||
=name "urb-header"
|
||||
=value (trip -.itm)
|
||||
=show (trip sho)
|
||||
=path "{<(flop s.bem.gas)>}"
|
||||
=ship "{(scow %p p.bem.gas)}";
|
||||
;div.row
|
||||
;div.col-sm-10.col-sm-offset-2
|
||||
;div.collection-index.mt-12
|
||||
|
@ -1,5 +1,5 @@
|
||||
/? 309
|
||||
/+ collections
|
||||
/+ collections, cram, elem-to-react-json
|
||||
/= gas /$ fuel:html
|
||||
/= jon
|
||||
/^ json
|
||||
@ -22,7 +22,7 @@
|
||||
%both
|
||||
%- pairs:enjs:format
|
||||
:~ [%item (raw-to-json raw.itm)]
|
||||
[%colleciton (collection-to-json col.itm)]
|
||||
[%collection (collection-to-json col.itm)]
|
||||
==
|
||||
==
|
||||
::
|
||||
@ -44,8 +44,10 @@
|
||||
++ raw-to-json
|
||||
|= raw=raw-item:collections
|
||||
^- json
|
||||
=/ elm=manx elm:(static:cram (ream data.raw))
|
||||
=/ rec=json (elem-to-react-json elm)
|
||||
%- pairs:enjs:format
|
||||
:~ [%data [%s data.raw]]
|
||||
:~ [%data rec]
|
||||
[%meta (meta-to-json meta.raw)]
|
||||
==
|
||||
::
|
||||
|
@ -116,13 +116,14 @@
|
||||
{$filter fit/filter} :: changed filter
|
||||
{$secure sec/security} :: changed security
|
||||
{$permit add/? sis/(set ship)} :: add/rem to b/w-list
|
||||
{$remove ~} :: removed config
|
||||
{$remove ~} :: removed config
|
||||
{$read red/@ud} :: changed read message
|
||||
== ::
|
||||
++ diff-status :: status change
|
||||
$% {$full sat/status} :: fully changed status
|
||||
{$presence pec/presence} :: changed presence
|
||||
{$human dif/diff-human} :: changed name
|
||||
{$remove ~} :: removed status
|
||||
{$remove ~} :: removed status
|
||||
== ::
|
||||
++ diff-human :: name change
|
||||
$% {$full man/human} :: fully changed name
|
||||
@ -145,6 +146,8 @@
|
||||
{$filter nom/name fit/filter} :: change message rules
|
||||
{$permit nom/name inv/? sis/(set ship)} :: invite/banish
|
||||
{$source nom/name sub/? srs/(set source)} :: un/sub to/from src
|
||||
{$read nom/name red/@ud} :: change read message
|
||||
{$newdm sis/(set ship)}
|
||||
{$usage nom/name add/? tas/tags} :: add/rem usage tags
|
||||
:: messaging ::
|
||||
{$convey tos/(list thought)} :: post exact
|
||||
@ -186,6 +189,7 @@
|
||||
tag/tags :: usage tags
|
||||
fit/filter :: message rules
|
||||
con/control :: restrictions
|
||||
red/@ud :: last read message
|
||||
== ::
|
||||
++ source {cir/circle ran/range} :: subscription target
|
||||
++ filter :: content filters
|
||||
|
@ -1475,7 +1475,7 @@
|
||||
=/ han (sham hen)
|
||||
=. pox (~(put by pox) han hen)
|
||||
=+ arg=(fcgi payload fcgi-cred)
|
||||
[%| (ames-gram p.bem %get-inner han ext arg bem)]
|
||||
[%| (ames-gram p.bem [%get-inner ~] han ext arg bem)]
|
||||
=+ wir=`whir`[%ha (en-beam -.bem ~)]
|
||||
=. wir ?+(mef !! $get wir, $head [%he wir])
|
||||
=. r.bem ?+(r.bem r.bem {$ud $0} da+now)
|
||||
|
3
web.hoon
3
web.hoon
@ -1,3 +1,2 @@
|
||||
^- manx
|
||||
|
||||
;div(data-component "InboxPage");
|
||||
;div(urb-component "InboxPage");
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,4 +0,0 @@
|
||||
:- ~[comments+&]
|
||||
;>
|
||||
|
||||
this is blah.umd
|
Binary file not shown.
@ -1,5 +0,0 @@
|
||||
;>
|
||||
|
||||
this is moo.umd
|
||||
|
||||
no comments
|
@ -1,5 +0,0 @@
|
||||
;>
|
||||
|
||||
this is moo.umd
|
||||
|
||||
no comments
|
2
web/landscape.hoon
Normal file
2
web/landscape.hoon
Normal file
@ -0,0 +1,2 @@
|
||||
^- manx
|
||||
;div(urb-component "InboxPage");
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -16,31 +16,12 @@
|
||||
;div.col-sm-offset-2.col-sm-10
|
||||
;div.profile-avatar
|
||||
;div(urb-component "AvatarLg", urb-ship "{(scow %p p.bem.gas)}");
|
||||
;div.profile-shipname: {(scow %p p.bem.gas)}
|
||||
;div(urb-component "ProfileMsgBtn", urb-ship "{(scow %p p.bem.gas)}");
|
||||
==
|
||||
==
|
||||
==
|
||||
;div.row
|
||||
;div.col-sm-offset-2.col-sm-10
|
||||
::;div.text-700.mt-8: Blogs, Forum and Notes
|
||||
::;ul.vanilla
|
||||
:: ;div;
|
||||
:: ;* %+ turn
|
||||
:: %+ sort
|
||||
:: %+ skim
|
||||
:: ~(tap by all-colls)
|
||||
:: is-pro
|
||||
:: |= [a=(pair knot *) b=(pair knot *)]
|
||||
:: (gth (unt:chrono:userlib (slav %da p.a)) (unt:chrono:userlib (slav %da p.b)))
|
||||
:: |= [t=knot col=collection:collections]
|
||||
:: ;div.mt-2.text-500
|
||||
:: ;a(href "/~~/{(scow %p p.bem.gas)}/==/web/collections/{(trip t)}")
|
||||
:: ; {(trip desc.conf.col)}
|
||||
:: ==
|
||||
:: ==
|
||||
::==
|
||||
::;div.text-700.mt-8: Chats
|
||||
;div(urb-component "ChatList", urb-hostship "{(scow %p p.bem.gas)}");
|
||||
;div.text-700.mt-8: Meta
|
||||
;div.mt-2.text-500.row
|
||||
@ -50,7 +31,7 @@
|
||||
;div.mt-2.text-500.row
|
||||
;span.col-sm-2: Issued:
|
||||
;span.col-sm-10.text-mono
|
||||
;a(href "/~~/{(scow %p (sein:title p.bem.gas))}/==/web/pages/nutalk/profile"): {(scow %p (sein:title p.bem.gas))}
|
||||
;a(href "/~~/{(scow %p (sein:title p.bem.gas))}/==/web/landscape/profile"): {(scow %p (sein:title p.bem.gas))}
|
||||
==
|
||||
==
|
||||
;div.mt-2.text-500.row
|
||||
|
Loading…
Reference in New Issue
Block a user