Merge remote-tracking branch 'origin/collections' into ford-turbo

This commit is contained in:
Elliot Glaysher 2018-08-20 13:14:13 -07:00
commit ba0de921ab
23 changed files with 2645 additions and 3796 deletions

View File

@ -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

View File

@ -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)
::
::::::
::::::

View File

@ -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
::

View File

@ -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

View File

@ -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?

View File

@ -145,6 +145,7 @@
$caption cof(cap cap.dif)
$filter cof(fit fit.dif)
$remove cof
$read cof(red red.dif)
::
$usage
%= cof

View File

@ -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
--

View File

@ -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)]
::

View File

@ -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

View File

@ -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)]
==
::

View File

@ -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

View File

@ -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)

View File

@ -1,3 +1,2 @@
^- manx
;div(data-component "InboxPage");
;div(urb-component "InboxPage");

View File

@ -1,4 +0,0 @@
:- ~[comments+&]
;>
this is blah.umd

View File

@ -1,5 +0,0 @@
;>
this is moo.umd
no comments

View File

@ -1,5 +0,0 @@
;>
this is moo.umd
no comments

2
web/landscape.hoon Normal file
View 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

View File

@ -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