Overview
| Comment: | more progress on ui & circles |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
e78334fe044290702094265be2b1c24f |
| User & Date: | lexi on 2021-01-14 05:31:36 |
| Other Links: | manifest | tags |
Context
|
2021-01-14
| ||
| 17:37 | circle management complete check-in: c43a1b6e9d user: lexi tags: trunk | |
| 05:31 | more progress on ui & circles check-in: e78334fe04 user: lexi tags: trunk | |
| 01:11 | more work on UI and circles check-in: 03ea3dffe7 user: lexi tags: trunk | |
Changes
Modified common.lua from [c72e0a0971] to [c868f8cd22].
74 74 return { 75 75 exec = exec; 76 76 dump = dump; 77 77 ping = ping; 78 78 chomp = chomp; 79 79 map = map; 80 80 tobool = tobool; 81 + find = function(lst,pred) 82 + for k,v in pairs(lst) do 83 + local test = pred(v,k) 84 + if test then return test end 85 + end 86 + return nil 87 + end; 81 88 rndstr = function(len) 82 89 local s = '' 83 90 for i=1,len do 84 91 local ofs = math.random(0,10 + 26) 85 92 if ofs >= 10 then ofs = 0x60 + (ofs - 10) 86 93 else ofs = 0x30 + ofs end 87 94 s = s .. string.char(ofs)
Modified config.lua from [b2a2580dbd] to [e037d77845].
52 52 -- we should add support for content-encoding headers and pre-compress 53 53 -- the damn things before compiling (also making the binary smaller) 54 54 {'style.css', 'text/css'}; 55 55 {'live.js', 'text/javascript'}; -- rrrrrrrr 56 56 {'default-avatar.webp', 'image/webp'}; -- needs inkscape-exclusive svg features 57 57 {'bell.svg', 'image/svg+xml'}; 58 58 {'gear.svg', 'image/svg+xml'}; 59 + {'pen.svg', 'image/svg+xml'}; 59 60 {'heart.webp', 'image/webp'}; 60 61 {'retweet.webp', 'image/webp'}; 62 + {'logo.svg', 'image/svg+xml'}; 61 63 {'padlock.svg', 'image/svg+xml'}; 62 64 {'warn.svg', 'image/svg+xml'}; 63 65 {'query.webp', 'image/webp'}; 64 66 {'reply.webp', 'image/webp'}; 65 67 {'file.webp', 'image/webp'}; 66 68 {'follow.webp', 'image/webp'}; 67 69 -- keep in mind before you add anything to this list: these are not
Modified render/nav.t from [5e68ddf43b] to [665c264b07].
2 2 local terra 3 3 render_nav(co: &lib.srv.convo) 4 4 var t = co:stra(64) 5 5 if co.who ~= nil or co.srv.cfg.pol_sec == lib.srv.secmode.public then 6 6 t:lpush(' <a accesskey="t" href="/"><u>t</u>imeline</a>') 7 7 end 8 8 if co.who ~= nil then 9 - t:lpush(' <a accesskey="c" href="/compose"><u>c</u>ompose</a> <a accesskey="m" href="/media"><u>m</u>edia</a> <a accesskey="d" href="/doc"><u>d</u>ocs</a> <hr> <a accesskey="p" href="'):push(co.who.xid,0):lpush('" class="ident">') 9 + t:lpush(' <a accesskey="m" href="/media"><u>m</u>edia</a> <a accesskey="d" href="/doc"><u>d</u>ocs</a> <hr> <a accesskey="p" href="'):push(co.who.xid,0):lpush('" class="ident">') 10 10 t:push(co.who.handle,0) 11 - t:lpush('</a> <a accesskey="g" href="/logout">lo<u>g</u> out</a> <a class="gear" accesskey="o" href="/conf">c<u>o</u>nfigure</a> <a class="bell" accesskey="x" href="/notices">notices (<u>x</u>)</a>') 11 + t:lpush('</a> <a accesskey="g" href="/logout">lo<u>g</u> out</a> <a class="pen" accesskey="c" href="/compose"><u>c</u>ompose</a> <a class="gear" accesskey="o" href="/conf">c<u>o</u>nfigure</a> <a class="bell" accesskey="x" href="/notices">notices (<u>x</u>)</a>') 12 12 else 13 13 t:lpush(' <a accesskey="d" href="/doc"><u>d</u>ocs</a> <a accesskey="g" href="/login">lo<u>g</u> in</a>') 14 14 end 15 15 return t:finalize() 16 16 end 17 17 return render_nav
Modified render/profile.t from [06727d1481] to [e47888d2bc].
193 193 if relationship.rel.block() then 194 194 comments:lpush('<li style="--co:80">blocked</li>') 195 195 end 196 196 197 197 if relationship.recip.follow() then 198 198 comments:lpush('<li style="--co:30">follows you</li>') 199 199 end 200 + 201 + var circpanel = co:stra(128) 202 + var allcircs = co.srv:circle_search(&co.srv.pool, co.who.id, 0) 203 + if allcircs:ref() then 204 + var mycircs = co.srv:circle_memberships_uid(&co.srv.pool, co.who.id, actor.id) 205 + for i=0, allcircs.ct do 206 + circpanel:lpush '<label><input type="checkbox" name="circle" value="' 207 + :shpush(allcircs(i).cid) 208 + :lpush '"> ' 209 + :ppush(allcircs(i).name) 210 + :lpush '</label>' 211 + end 212 + end 200 213 201 214 var profile = data.view.profile { 202 215 nym = fullname; 203 216 bio = bio; 204 217 xid = cs(actor.xid); 205 218 avatar = cs(actor.avatar); 206 219 ................................................................................ 208 221 nfollowers = sn_followers, nmutuals = sn_mutuals; 209 222 tweetday = cs(timestr); 210 223 timephrase = lib.trn(actor.origin == 0, pstr 'joined', pstr 'known since'); 211 224 212 225 remarks = ''; 213 226 214 227 auxbtn = auxp; 228 + circles = circpanel:finalize(); 215 229 relations = relbtns:finalize(); 216 230 sanctions = sancbtns:finalize(); 217 231 } 218 232 if comments.sz > 0 then profile.remarks = comments:finalize() end 219 233 220 234 var ret = profile:poolstr(&co.srv.pool) 221 235 -- auxp:free() 222 236 --if actor.bio ~= nil then bio:free() end 223 237 --if comments.sz > 0 then profile.remarks:free() end 224 238 return ret 225 239 end 226 240 227 241 return render_profile
Modified route.t from [89c9cb6c12] to [23df5e6037].
16 16 if meth == method.post then 17 17 var act = co:ppostv('act') 18 18 if rel.recip.block() then 19 19 if act:cmp('follow') or act:cmp('subscribe') then 20 20 co:complain(403,'blocked','you cannot follow a user you are blocked by') return 21 21 end 22 22 end 23 - if act:cmp('block') and not rel.rel.block() then 23 + if act:cmp('circle') then 24 + lib.dbg('encircling user!') 25 + var iter = co:eachpostv('circle') 26 + for cid in iter do 27 + 28 + end 29 + elseif act:cmp('block') and not rel.rel.block() then 24 30 rel.rel.block = true rel.recip.follow = false 25 31 co.srv:actor_rel_create([lib.store.relation.idvmap.block], co.who.id, actor.id) 26 32 co.srv:actor_rel_destroy([lib.store.relation.idvmap.follow], actor.id, co.who.id) 27 33 elseif not act:cmp('report') then 28 34 [(function() 29 35 local tests = quote co:complain(400,'bad request','the action you have attempted on this user is not meaningful') return end 30 36 for i,v in ipairs(lib.store.relation.members) do
Modified srv.t from [36e7e8aa84] to [fbf604f655].
413 413 var ok = true 414 414 if self.aid == 0 or self.who.rights.powers.[pow:asvalue()]() == false then 415 415 ok = false 416 416 self:complain(403,'insufficient privileges',['you lack the <strong>'..pow:asvalue()..'</strong> power and cannot perform this action']) 417 417 end 418 418 in ok end 419 419 end) 420 + 421 +local pstr2mg, mg2pstr 422 +do -- aaaaaaaaaaaaaaaaaaaaaaaa 423 + mgstr = lib.util.find(lib.net.mg_http_message.entries, function(v) 424 + if v.field == 'body' or v[1] == 'body' then return v.type end 425 + end) 426 + terra pstr2mg(p: pstring): mgstr 427 + return mgstr { ptr = p.ptr, len = p.ct } 428 + end 429 + terra mg2pstr(m: mgstr): pstring 430 + return pstring { ptr = m.ptr, ct = m.len } 431 + end 432 +end 420 433 421 434 -- CALL ONLY ONCE PER VAR 422 -terra convo:postv(name: rawstring) 435 +terra convo:postv_next(name: pstring, start: &pstring) 423 436 if self.varbuf.ptr == nil then 424 437 self.varbuf = self.srv.pool:alloc(int8, self.msg.body.len + self.msg.query.len) 425 438 self.vbofs = self.varbuf.ptr 426 439 end 427 - var o = lib.net.mg_http_get_var(&self.msg.body, name, self.vbofs, self.varbuf.ct - (self.vbofs - self.varbuf.ptr)) 440 + var conv = pstr2mg(@start) 441 + var o = lib.net.mg_http_get_var( 442 + &conv, 443 + name.ptr, self.vbofs, 444 + self.varbuf.ct - (self.vbofs - self.varbuf.ptr) 445 + ) 428 446 if o > 0 then 447 + start:advance(name.ct + o + 2) 429 448 var r = self.vbofs 430 449 self.vbofs = self.vbofs + o + 1 431 450 @(self.vbofs - 1) = 0 432 451 var norm = lib.str.normalize([lib.mem.ptr(int8)]{ptr = r, ct = o}) 433 452 return norm.ptr, norm.ct 434 453 else return nil, 0 end 435 454 end 436 -terra convo:ppostv(name: rawstring) 455 +terra convo:postv(name: pstring) 456 + var start = mg2pstr(self.msg.body) 457 + return self:postv_next(name, &start) 458 +end 459 +terra convo:ppostv(name: pstring) 437 460 var s,l = self:postv(name) 438 461 return pstring { ptr = s, ct = l } 439 462 end 463 +do 464 + local struct postiter { co: &convo where: pstring name: pstring } 465 + terra convo:eachpostv(name: pstring) 466 + return postiter { co = self, where = mg2pstr(self.msg.body), name = name } 467 + end 468 + postiter.metamethods.__for = function(self, body) 469 + return quote 470 + while true do 471 + var str, len = self.co:postv_next(self.name, &self.where) 472 + if str == nil then break end 473 + [ body(`pstring {str, len}) ] 474 + end 475 + end 476 + end 477 +end 440 478 441 479 terra convo:getv(name: rawstring) 442 480 if self.varbuf.ptr == nil then 443 481 self.varbuf = self.srv.pool:alloc(int8, self.msg.query.len + self.msg.body.len) 444 482 self.vbofs = self.varbuf.ptr 445 483 end 446 484 var o = lib.net.mg_http_get_var(&self.msg.query, name, self.vbofs, self.varbuf.ct - (self.vbofs - self.varbuf.ptr))
Added static/pen.svg version [3b4f7b1099].
1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 +<!-- Created with Inkscape (http://www.inkscape.org/) --> 3 + 4 +<svg 5 + xmlns:dc="http://purl.org/dc/elements/1.1/" 6 + xmlns:cc="http://creativecommons.org/ns#" 7 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 8 + xmlns:svg="http://www.w3.org/2000/svg" 9 + xmlns="http://www.w3.org/2000/svg" 10 + xmlns:xlink="http://www.w3.org/1999/xlink" 11 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 12 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 13 + width="0.2in" 14 + height="0.2in" 15 + viewBox="0 0 5.0800002 5.0800002" 16 + version="1.1" 17 + id="svg8" 18 + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" 19 + sodipodi:docname="pen.svg"> 20 + <defs 21 + id="defs2"> 22 + <linearGradient 23 + id="linearGradient997" 24 + inkscape:collect="always"> 25 + <stop 26 + id="stop993" 27 + offset="0" 28 + style="stop-color:#ffffff;stop-opacity:0.40000001" /> 29 + <stop 30 + id="stop995" 31 + offset="1" 32 + style="stop-color:#ffffff;stop-opacity:0.22173913" /> 33 + </linearGradient> 34 + <linearGradient 35 + inkscape:collect="always" 36 + id="linearGradient863"> 37 + <stop 38 + style="stop-color:#ffffff;stop-opacity:0.5518868" 39 + offset="0" 40 + id="stop859" /> 41 + <stop 42 + style="stop-color:#ffffff;stop-opacity:0;" 43 + offset="1" 44 + id="stop861" /> 45 + </linearGradient> 46 + <radialGradient 47 + inkscape:collect="always" 48 + xlink:href="#linearGradient863" 49 + id="radialGradient865" 50 + cx="2.5399754" 51 + cy="295.73944" 52 + fx="2.5399754" 53 + fy="295.91135" 54 + r="1.6620824" 55 + gradientTransform="matrix(2.9231276,0,0,2.7982783,-11.452033,-531.55554)" 56 + gradientUnits="userSpaceOnUse" /> 57 + <radialGradient 58 + inkscape:collect="always" 59 + xlink:href="#linearGradient863" 60 + id="radialGradient865-3" 61 + cx="2.5399754" 62 + cy="295.73944" 63 + fx="2.5399754" 64 + fy="295.91135" 65 + r="1.6620824" 66 + gradientTransform="matrix(11.048041,0,0,10.57617,-21.779867,-3114.7234)" 67 + gradientUnits="userSpaceOnUse" /> 68 + <radialGradient 69 + inkscape:collect="always" 70 + xlink:href="#linearGradient863" 71 + id="radialGradient980" 72 + gradientUnits="userSpaceOnUse" 73 + gradientTransform="matrix(2.9231276,0,0,2.7982783,-11.452033,-531.55554)" 74 + cx="4.5320868" 75 + cy="295.40598" 76 + fx="4.5320868" 77 + fy="295.57788" 78 + r="1.6620824" /> 79 + <radialGradient 80 + inkscape:collect="always" 81 + xlink:href="#linearGradient863" 82 + id="radialGradient980-9" 83 + gradientUnits="userSpaceOnUse" 84 + gradientTransform="matrix(11.048041,0,0,10.57617,-45.140697,-3114.3717)" 85 + cx="4.5320868" 86 + cy="295.40598" 87 + fx="4.5320868" 88 + fy="295.57788" 89 + r="1.6620824" /> 90 + <radialGradient 91 + inkscape:collect="always" 92 + xlink:href="#linearGradient863" 93 + id="radialGradient1028-3" 94 + gradientUnits="userSpaceOnUse" 95 + gradientTransform="matrix(10.458714,0,0,10.012014,-42.732813,-2952.9055)" 96 + cx="4.5320868" 97 + cy="295.40598" 98 + fx="4.5320868" 99 + fy="295.57788" 100 + r="1.6620824" /> 101 + <radialGradient 102 + inkscape:collect="always" 103 + xlink:href="#linearGradient863" 104 + id="radialGradient877" 105 + gradientUnits="userSpaceOnUse" 106 + gradientTransform="matrix(12.203153,0,0,11.681946,-92.753639,-3438.82)" 107 + cx="8.0996866" 108 + cy="295.31769" 109 + fx="8.0996866" 110 + fy="295.48959" 111 + r="1.6620824" /> 112 + <radialGradient 113 + inkscape:collect="always" 114 + xlink:href="#linearGradient997" 115 + id="radialGradient884" 116 + gradientUnits="userSpaceOnUse" 117 + gradientTransform="matrix(2.5465177,-1.6303896e-5,1.5607543e-5,2.4377538,-19.130237,-425.06144)" 118 + cx="8.1182146" 119 + cy="295.52625" 120 + fx="8.1182146" 121 + fy="295.69815" 122 + r="1.6620824" /> 123 + <radialGradient 124 + inkscape:collect="always" 125 + xlink:href="#linearGradient863" 126 + id="radialGradient884-3" 127 + gradientUnits="userSpaceOnUse" 128 + gradientTransform="matrix(12.203153,0,0,11.681946,-97.773171,-3439.9293)" 129 + cx="8.0996866" 130 + cy="295.31769" 131 + fx="8.0996866" 132 + fy="295.48959" 133 + r="1.6620824" /> 134 + <radialGradient 135 + inkscape:collect="always" 136 + xlink:href="#linearGradient863" 137 + id="radialGradient915" 138 + gradientUnits="userSpaceOnUse" 139 + gradientTransform="matrix(22.775335,0,0,21.802581,-167.8904,-6432.8016)" 140 + cx="8.0996866" 141 + cy="295.31769" 142 + fx="8.0996866" 143 + fy="295.48959" 144 + r="1.6620824" /> 145 + <radialGradient 146 + inkscape:collect="always" 147 + xlink:href="#linearGradient863" 148 + id="radialGradient923" 149 + gradientUnits="userSpaceOnUse" 150 + gradientTransform="matrix(1.5516004,-1.2029723e-6,1.1515923e-6,1.4853302,-6.8816939,-144.29024)" 151 + cx="7.9044895" 152 + cy="295.25067" 153 + fx="7.9044895" 154 + fy="295.25067" 155 + r="1.6620824" /> 156 + <radialGradient 157 + inkscape:collect="always" 158 + xlink:href="#linearGradient863" 159 + id="radialGradient884-9" 160 + gradientUnits="userSpaceOnUse" 161 + gradientTransform="matrix(12.203153,0,0,11.681946,-97.77317,-3439.9294)" 162 + cx="8.0996866" 163 + cy="295.31769" 164 + fx="8.0996866" 165 + fy="295.48959" 166 + r="1.6620824" /> 167 + <radialGradient 168 + inkscape:collect="always" 169 + xlink:href="#linearGradient863" 170 + id="radialGradient959" 171 + gradientUnits="userSpaceOnUse" 172 + gradientTransform="matrix(3.2287509,0,0,3.0908482,-24.416093,-618.0091)" 173 + cx="8.0996866" 174 + cy="295.31769" 175 + fx="8.0996866" 176 + fy="295.48959" 177 + r="1.6620824" /> 178 + <radialGradient 179 + inkscape:collect="always" 180 + xlink:href="#linearGradient863" 181 + id="radialGradient969" 182 + gradientUnits="userSpaceOnUse" 183 + gradientTransform="matrix(3.2287509,0,0,3.0908482,-24.416093,-618.0091)" 184 + cx="8.0996866" 185 + cy="295.31769" 186 + fx="8.0996866" 187 + fy="295.48959" 188 + r="1.6620824" /> 189 + <radialGradient 190 + inkscape:collect="always" 191 + xlink:href="#linearGradient863" 192 + id="radialGradient971" 193 + gradientUnits="userSpaceOnUse" 194 + gradientTransform="matrix(3.2287509,0,0,3.0908482,-24.321599,-617.98547)" 195 + cx="8.4411459" 196 + cy="294.28815" 197 + fx="8.4411459" 198 + fy="294.46005" 199 + r="1.6620824" /> 200 + <radialGradient 201 + inkscape:collect="always" 202 + xlink:href="#linearGradient863" 203 + id="radialGradient983" 204 + gradientUnits="userSpaceOnUse" 205 + gradientTransform="matrix(3.2287509,0,0,3.0908482,-24.593269,-617.99727)" 206 + cx="8.0996866" 207 + cy="295.31769" 208 + fx="8.0996866" 209 + fy="295.48959" 210 + r="1.6620824" /> 211 + </defs> 212 + <sodipodi:namedview 213 + id="base" 214 + pagecolor="#2f000f" 215 + bordercolor="#666666" 216 + borderopacity="1.0" 217 + inkscape:pageopacity="0" 218 + inkscape:pageshadow="2" 219 + inkscape:zoom="5.6" 220 + inkscape:cx="30.052814" 221 + inkscape:cy="10.293303" 222 + inkscape:document-units="mm" 223 + inkscape:current-layer="layer1" 224 + showgrid="false" 225 + units="in" 226 + inkscape:window-width="1920" 227 + inkscape:window-height="1042" 228 + inkscape:window-x="0" 229 + inkscape:window-y="38" 230 + inkscape:window-maximized="0" /> 231 + <metadata 232 + id="metadata5"> 233 + <rdf:RDF> 234 + <cc:Work 235 + rdf:about=""> 236 + <dc:format>image/svg+xml</dc:format> 237 + <dc:type 238 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 239 + <dc:title></dc:title> 240 + </cc:Work> 241 + </rdf:RDF> 242 + </metadata> 243 + <g 244 + inkscape:label="Layer 1" 245 + inkscape:groupmode="layer" 246 + id="layer1" 247 + transform="translate(0,-291.91998)"> 248 + <path 249 + style="opacity:1;vector-effect:none;fill:url(#radialGradient971);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 250 + d="m 4.4124934,292.1625 c 0,0 -1.1108656,0.38981 -1.6371093,1.10122 -0.5262438,0.71139 -1.227832,2.09497 -1.227832,2.09497 0.1266883,-0.01 0.3994588,-0.18501 0.3994588,-0.18501 l 0.5555216,-0.98443 c 0,0 0.3995245,-0.0443 0.8433593,-0.16847 -0.1282446,-0.0703 -0.2669278,-0.14068 -0.3922241,-0.18397 0,0 0.4669658,0.007 0.7456911,0.0667 0.3067058,-0.11755 0.5913485,-0.27672 0.7327717,-0.49403 0.1385432,-0.21288 0.1746504,-0.42615 0.1679485,-0.6165 -0.2153555,-0.0167 -0.7131349,-0.0134 -0.7131349,-0.0134 0.3030665,-0.14907 0.5896433,-0.18827 0.6888469,-0.19998 -0.05315,-0.24735 -0.1632976,-0.41703 -0.1632976,-0.41703 z" 251 + id="path852" 252 + inkscape:connector-curvature="0" /> 253 + <path 254 + style="opacity:1;vector-effect:none;fill:url(#radialGradient923);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 255 + d="m 3.986763,294.05518 c -0.131622,-0.008 -0.2734744,0.006 -0.4382161,0.0646 -0.064856,0.0259 -0.1406203,0.0387 -0.1421104,0.14211 -0.00535,0.11274 0.060433,0.15383 0.1576131,0.16433 -0.082549,0.0209 -0.1693344,0.0404 -0.2092894,0.0754 0.1085829,0.0613 0.2280063,0.0826 0.3586343,0.0625 0,0 -0.2872568,0.1916 -0.4495848,0.49609 l 0.5286497,0.0507 a 0.15252899,0.15252899 0 0 1 0.127124,0.2129 l -0.280086,0.64699 c 0.3274787,0.0428 0.6397358,0.0399 0.9777179,-0.0584 0.4754632,-0.77165 -0.4206462,-1.34824 -0.4206462,-1.34824 0.1306288,0.0201 0.2500527,-0.002 0.3586345,-0.0625 -0.039955,-0.0349 -0.1267404,-0.0547 -0.2092896,-0.0754 0.09718,-0.0102 0.1624465,-0.0516 0.1570963,-0.16433 -0.00149,-0.10321 -0.076738,-0.11621 -0.1415933,-0.14211 -0.1219084,-0.0273 -0.2430323,-0.0568 -0.374654,-0.0646 z" 256 + id="path919" 257 + inkscape:connector-curvature="0" /> 258 + <path 259 + style="opacity:1;vector-effect:none;fill:url(#radialGradient884);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" 260 + d="m 0.83863466,294.98018 -0.59066162,1.08676 2.91765136,0.61392 0.6139159,-1.41697 -1.5962849,-0.154 -0.084749,0.14986 a 0.17411337,0.17411337 0 0 1 -0.058911,0.061 c 0,-10e-6 -0.07109,0.0468 -0.1617473,0.0956 -0.090657,0.0488 -0.1834986,0.10679 -0.3167765,0.11731 a 0.17411337,0.17411337 0 0 1 -0.1679484,-0.25218 c 0,0 0.096479,-0.18004 0.125057,-0.23565 z" 261 + id="path932" 262 + inkscape:connector-curvature="0" /> 263 + </g> 264 +</svg>
Modified static/style.scss from [2db0a5b279] to [cdc5fd8fbb].
171 171 outline: none; 172 172 @extend %glow; 173 173 } 174 174 } 175 175 select { width: 100%; } 176 176 177 177 @mixin glass { 178 + box-shadow: inset 0 0 1.5em tone(-56%); 178 179 @supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) { 179 180 backdrop-filter: blur(40px); 180 181 -webkit-backdrop-filter: blur(40px); 181 182 background-color: tone(-53%, -0.7); 182 183 } 183 184 @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { 184 185 background-color: tone(-53%, -0.1); ................................................................................ 242 243 //padding: calc((25% - 1em)/2) 0.15in; 243 244 &, &::after { transition: 0.3s; } 244 245 text-shadow: 1px 1px 1px black; 245 246 &:hover{ 246 247 transform: scale(1.2); 247 248 } 248 249 } 249 - > a[href].bell, a[href].gear { 250 + > a[href].bell, a[href].gear, a[href].pen { 250 251 height: 2em; 252 + width: 2em; 251 253 padding: 0.125in 0.05in; 252 254 filter: drop-shadow(1px 1px 3px tone(-5%)); 253 255 &:hover { 254 256 filter: drop-shadow(1px 1px 3px tone(-5%)) 255 257 drop-shadow(0 0 10px tone(-5%)); 256 258 } 257 259 } 258 260 > a[href].bell { content: url(/s/bell.svg); } 259 261 > a[href].gear { content: url(/s/gear.svg); } 262 + > a[href].pen { content: url(/s/pen.svg); } 260 263 } 261 264 } 262 265 } 263 266 264 267 main { 265 268 @extend %content; 266 269 display: block; ................................................................................ 300 303 grid-gap: 0.1in; 301 304 > .opt { 302 305 padding: 0.1in; 303 306 border-radius: 5px; 304 307 border: 1px solid transparent; 305 308 &.on { 306 309 background-color: tone(-30%, -0.7); 307 - box-shadow: 0 0 10px tone(-30%); 308 - border-color: tone(-20%); 310 + border-color: tone(-20%) transparent; 309 311 } 310 312 > button, > p, > a[href] { display: block; } 311 313 > p { text-align: center; font-size: 80%; margin: 0; margin-top: 0.1in; } 312 314 > button, > a[href] { 313 315 width: max-content; 314 316 margin: auto; 315 317 }
Modified view/docskel.tpl from [e2ac83ad65] to [f103ec4227].
1 1 <!doctype html> 2 2 <html> 3 3 <head> 4 4 <title>@instance :: @title</title> 5 5 <link rel="stylesheet" type="text/css" href="/s/style.css"> 6 + <link rel="icon" href="/s/logo.svg"> 6 7 <script type="text/javascript" src="/s/live.js" async></script> 7 8 </head> 8 9 <body class="@class"@attr> 9 10 <header><div> 10 11 <h1>@title</h1> 11 12 <nav> 12 13 <a accesskey="i" href="/instance"><u>i</u>nstance</a>
Modified view/profile.tpl from [ae30d737ce] to [9ae0c0e533].
29 29 </div> 30 30 </form> 31 31 </div> 32 32 33 33 <form id="rel" class="modal" method="post"> 34 34 <a href="#0" class="button">close</a><div> 35 35 <menu>@relations</menu> 36 - <details> 37 - <summary>circles</summary> 38 - <button name="act" value="encircle">commit</button> 39 - </details> 36 + <div class="check-panel"> 37 + @circles 38 + </div> 39 + <button name="act" value="circle">set circles</button> 40 40 <details> 41 41 <summary>sanctions</summary> 42 42 <menu> 43 43 @sanctions 44 44 <div class="opt"> 45 45 <a class="neg button" href="/@:xid/report">report</a> 46 46 <p>if this user is violating instance rules, you can report this behavior to moderation staff and ask them to take action. please do not report users simply because you dislike them; this is what the above options are for.</p> 47 47 </div> 48 48 </menu> 49 49 </details> 50 50 </div></form>