From 96ef34eb77c9f4177f98aac417f2b8c297e5ca28 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Fri, 26 Jul 2019 11:30:13 +0100
Subject: [PATCH] Add scope icons

---
 daemon.py                     |  16 ++++++++++++
 epicyon-profile.css           |  48 ++++++++++++++++++++++++++++++++--
 img/icons/download.png        | Bin 0 -> 740 bytes
 img/icons/like.png            | Bin 0 -> 3982 bytes
 img/icons/like_inactive.png   | Bin 0 -> 811 bytes
 img/icons/scope_dm.png        | Bin 0 -> 775 bytes
 img/icons/scope_followers.png | Bin 0 -> 6882 bytes
 img/icons/scope_public.png    | Bin 0 -> 3253 bytes
 img/icons/scope_unlisted.png  | Bin 0 -> 794 bytes
 webinterface.py               |  17 +++++++++---
 10 files changed, 76 insertions(+), 5 deletions(-)
 create mode 100644 img/icons/download.png
 create mode 100644 img/icons/like.png
 create mode 100644 img/icons/like_inactive.png
 create mode 100644 img/icons/scope_dm.png
 create mode 100644 img/icons/scope_followers.png
 create mode 100644 img/icons/scope_public.png
 create mode 100644 img/icons/scope_unlisted.png

diff --git a/daemon.py b/daemon.py
index 24f94156c..4a7df439b 100644
--- a/daemon.py
+++ b/daemon.py
@@ -464,6 +464,22 @@ class PubServer(BaseHTTPRequestHandler):
                     return        
             self._404()
             return
+        # icon images
+        # Note that this comes before the busy flag to avoid conflicts
+        if '/icons/' in self.path:
+            if self.path.endswith('.png'):
+                mediaStr=self.path.split('/icons/')[1]
+                mediaFilename= \
+                    self.server.baseDir+'/img/icons/'+mediaStr
+                if os.path.isfile(mediaFilename):
+                    if mediaFilename.endswith('.png'):
+                        self._set_headers('image/png')
+                        with open(mediaFilename, 'rb') as avFile:
+                            mediaBinary = avFile.read()
+                            self.wfile.write(mediaBinary)
+                        return        
+            self._404()
+            return
         # show avatar or background image
         # Note that this comes before the busy flag to avoid conflicts
         if '/users/' in self.path:
diff --git a/epicyon-profile.css b/epicyon-profile.css
index 168e2e66c..55c639919 100644
--- a/epicyon-profile.css
+++ b/epicyon-profile.css
@@ -241,16 +241,17 @@ input[type=text], select, textarea {
 }
 
 input[type=submit] {
-    background-color: #4CAF50;
+    background-color: #555;
     color: white;
     padding: 12px 20px;
     border: none;
     border-radius: 4px;
     cursor: pointer;
+    font-size: 18px;
 }
 
 input[type=submit]:hover {
-    background-color: #45a049;
+    background-color: #555;
 }
 
 .vertical-center {
@@ -261,3 +262,46 @@ input[type=submit]:hover {
     min-width: 600px;
     margin: 0 auto;
 }
+
+.dropbtn {
+    background-color: #555;
+    color: white;
+    padding: 12px 20px;
+    border: none;
+    border-radius: 4px;
+    cursor: pointer;
+    font-size: 18px;
+}
+
+/* The container <div> - needed to position the dropdown content */
+.dropdown {
+  position: relative;
+  display: inline-block;
+}
+
+/* Dropdown Content (Hidden by Default) */
+.dropdown-content {
+  display: none;
+  position: absolute;
+  background-color: #f1f1f1;
+  min-width: 260px;
+  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
+  z-index: 1;
+}
+
+/* Links inside the dropdown */
+.dropdown-content a {
+  color: black;
+  padding: 12px 16px;
+  text-decoration: none;
+  display: block;
+}
+
+/* Change color of dropdown links on hover */
+.dropdown-content a:hover {background-color: #ddd;}
+
+/* Show the dropdown menu on hover */
+.dropdown:hover .dropdown-content {display: block;}
+
+/* Change the background color of the dropdown button when the dropdown content is shown */
+.dropdown:hover .dropbtn {background-color: #3e8e41;}
diff --git a/img/icons/download.png b/img/icons/download.png
new file mode 100644
index 0000000000000000000000000000000000000000..03b2c4ce750729ccad74328ef753a4a437732a92
GIT binary patch
literal 740
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU~I{Bb`J1#c2+1T%1_J8No8Qr
zm{>c}*5j~)%+dJZrCPdtWfLAvShy?0G2}?#>VOumrC}LY4?el1pK)ozk{uRY>sZ<C
z#a8p_o!e!#gRAKQdq?-`$&0$D{Mf(bg3__($8~#lf8SBf&e6*ie0E)-!&M#SxgFg%
z@2rxjaAgquk|d(oIrCSH*3_2gKX$eEuP-;8_q6uidBLDhYRolCA9XJCc2_i4R9(Jg
z`Chm^(le;zeCKhVT?!wSucuDGZy_!#R*`n&#FFQohmRy}Y<|j@rs}LZPpMC9mD^9J
zYpJcD#nQJ1C9kdiB+mBv)+wXwnS6?kt~!dWf<{>yi<!6$qfCQ*mSoz$d)ROBPh@9G
z(bR({Ha2L5c=XBt;jb&t7E@Edvm`<0Mcu}?{fP=2xJ_Pf`&*lH`>gPR|2#37x%FEa
z&(utc%g?^3yr5os$Bw-0PjUr2nR)D9PExd-G=Euu2E+UGFTR!u55!(X7guM$ef)*-
zL_qjS=?4!4Bs7D*?K-}@+N%2Zcc0b!<zo&M&C4rHm<Nm&wj^(N7l!{JxM1({$v_d#
z0*}aIU<_UdVMZs7*%d%R_7YEDSN6y3Qk*(+viV0<fkF>GT^vIyZoR#Eu$Re^$K_(9
zjBF~qrHX;mg|ey9pZ<Rrz3m^P5ic$%DCqlk>A!}K9me(huTA>b|NiBDpl(!fgV|^Q
z$I!Pq?6;E-XL9U5?3tBo$*Q<nYU%T3c`a{J!ZvL$RSbF4n%cZrdSRB1Zfr~}$5ija
zpHJ4ft(bRGb@py9$3o=^va+iLL)e90UR}!NSSc%2FEyDtMc_*RcE&df7IOKlKiCg`
zt*}0z&vEYfc7__~0{eZu4>%V-{`l7QNbRd#E-ogEK9)23C4(FWbhF^a19r<NhFE^p
RQfdMTdAj<!taD0e0sv;OHaGwP

literal 0
HcmV?d00001

diff --git a/img/icons/like.png b/img/icons/like.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ffba4282025df16af3c2afea3bd8b189049fb48
GIT binary patch
literal 3982
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

literal 0
HcmV?d00001

diff --git a/img/icons/like_inactive.png b/img/icons/like_inactive.png
new file mode 100644
index 0000000000000000000000000000000000000000..696562781bf32a5ca4b34e85d4a0b7b7037ea46e
GIT binary patch
literal 811
zcmV+`1JwM9P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF0004mX+uL$Nkc;*
zaB^>EX>4Tx04R}tkv&MmKpe$iQ>7{u2RoGFkfAzR5fyRNDionYs1;guFuC*#nlvOS
zE{=k0!NHHks)LKOt`4q(Aou~|;_9U6A|?JWDYS_7;J6>}?mh0_0YbgZG^=YI&~)2O
zCE{WxyDA1=5kLgJ7(-ZQmN6$uNpu`v_we!cF2=JupZjz4t2v7SK9P8q8KzCVK|H-_
z8=UuvL#!yP#OK7LCS8#Dk?V@bZ=4G*3p_Jqrc?98A!4!6#!4HrqNx#25l2-`r+gvf
zvC4UivsSLM<~{ifgE@U=nd>x%kia6AAVGwJDoQBBMvPXS6bmWZk9Y7#T)#vvg<K^t
zax9<%4YKP8|AXJ%TKUNdFDV!Yx?ddUV;BhR0*#vEd>=bb;{@<O16O*>U#SB#pQP7X
zTJ#7Q*aj}HTbi;5T<!qjCqp)6SMt*o@_FF>jJ_!g4Bi5LYhG{7eVjf3Y3eF@0~{Oz
zBL&J{@9^%P_TK(I)9mjDf1GlxcqL=D00006VoOIv0RI600RN!9r;`8x010qNS#tmY
z4c7nw4c7reD4Tcy000McNliru;|CfEFEs7>UoZdw0VqjCK~#9!?V7<3gdhw=#qf)K
zr5~v$lf7(&rFPoo&CSF_na;EfVcP%z0BF!!J6mg~@*noqi%^u+|9n1<qo4o?Si}O~
z8lS=jC?HDpRVqLMk*cpy0b>vg1e3qF4NySD>U*jH1w^gBmkLmTqN;CVR52yn0<Fox
z0vTm)X^oQE?-o6wt6^j%p{F5scg$=g^iG4Jk&%Ujkx@9j4~R~J$vz+}3BPQcr}o)V
zh?vO>(?LT`!faSFNm?orERv#G)bu97Dkhs|Z7&im&j>gchXCU6+D#A(Kma{p?VTVN
zPzM>+{lFVFf^_d^g_Ydn@KeRT?-5j0)t}z;QbUcha1{}I#KpfAeccpb{nKx%!Sqnn
pYou9zcaK{2DBl7A006-M;sRfYlw`ML^_2hs002ovPDHLkV1nydUIqXF

literal 0
HcmV?d00001

diff --git a/img/icons/scope_dm.png b/img/icons/scope_dm.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d8fa62701671172418ce61bd05b2353f4d119a9
GIT binary patch
literal 775
zcmV+i1Ni)jP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF0004nX+uL$Nkc;*
zaB^>EX>4Tx04R}tkv&MmKpe$iQ>7{u5j#k6$WX<>f~bh2R-p(LO0CeUgUO{|(4-+r
zad8w}3l4rPRvlcNb#-tR1i=pw7gr}m7b)?7NufoI2gm(*ckglc4iM^PrkWk&fT~$W
zDjpLv*;O&{iU7js#whwFX6kdvWCEV!>mEM7-bHzq_qjhuuaYwv;1h{wnQmCb8^qI_
zmd<&fIK+yQLVQj<X3zzRAGt2O{KmQ9u)s4zMmjZ593mDAZ7jDjD;g^C6mdjRHOdz<
zE-Re3IIHC<Yu=N;FqqR;mbp%I2yrZ82}y{MQAG)5ScuZ9kzyi6`!NrH*zqUHC6lWJ
zMvetkph9x|;D7MDTQfg7;U)!RK<A5Xe+&bGU7%63?eAmTZkz!AXW&X}`73o`=9BbV
zON$%<ecQmrbxV`?fXf|V@JW{p$&vgtg?t`(KcjET0t2@|&zjp?b04P<K$^Nr+yDoM
zz(|3z*FE0d)!y5`XPW)}0ADw9pNVC8$p8QV24YJ`L;(K){{a7>y{D4^000SaNLh0L
z01ejw01ejxLMWSf00007bV*G`2jd4C2`K_}8Er2B009F@L_t(|+U=T262l-21R=#2
zc_ojGuQ>!SFi2p!&k1<iVsjA!00000>`A=yqnz`1#c-vR*d<`q;7>%vw}-!y5O)ZF
zCgHRDB!~b6h?kWWmcFhEm{~&0v!$MnW?3zIUP@AQ>?J}`jgN*vEvUz^sP*~uWi&UU
zdH~Dd(v6TuHH?rhX>fEksM`P6j`YFRA}rdI?gW*?!fK8g)=6uCk-<$*gDutIv9g$S
zcoobl`0z<kwR5xV-}E?qCz$oNIt62DW$$&KaQh(g8`$$ynSvuT9H;pth5!U0009U<
z00Izz00bZa0SG|AesE3h>`z-?lzfAT749?v0001h7Y9Z*q*O;0_L%?x002ovPDHLk
FV1fbCMvDLd

literal 0
HcmV?d00001

diff --git a/img/icons/scope_followers.png b/img/icons/scope_followers.png
new file mode 100644
index 0000000000000000000000000000000000000000..623cad92d070bc13aa888ac6948dfb2a90d48628
GIT binary patch
literal 6882
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

literal 0
HcmV?d00001

diff --git a/img/icons/scope_public.png b/img/icons/scope_public.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd999f7c3547b9739bfada4dd93e273b3a90eda5
GIT binary patch
literal 3253
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

literal 0
HcmV?d00001

diff --git a/img/icons/scope_unlisted.png b/img/icons/scope_unlisted.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b82a5602e7152a99bf836518553535588f23dbb
GIT binary patch
literal 794
zcmV+#1LgdQP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF0004mX+uL$Nkc;*
zaB^>EX>4Tx04R}tkv&MmKpe$iQ>7{u2P;T%$j~}j5EXIMDionYs1;guFuC*#nlvOS
zE{=k0!NHHks)LKOt`4q(Aou~|;_9U6A|?JWDYS_7;J6>}?mh0_0YbgZG^=YI&~)2O
zCE{WxyDA1=5kMHdh+;@)mN6$uNpu`v_we!cF2=JupZjz4t2v7SK9P8q8KzCVK|H-_
z8=UuvL#!yP#OK6gCS8#Dk?V@bZ=4G*3p_Jqrc?98A!4!6#!4HrqNx#25l2)_r+gvf
zvC4UivsSLM<~{ifgE@U=nd>x1kia6AAVGwJDoQBBMvPXS6bmWZk9Y8gUB5&wg<K^t
zax9<%4YKP8|AXJ%TKUNdFDV!Yx?ddUBMJm|fkw@7zK<QJaRT_Cfh)b`uhfB=Ptt2G
zEph}5Yy%h9Elt@2E_Z<8Cqp)6SMt*o@_FF>jJ_!g4Bi5LYhG{7eVjf3Y3eF@0~{Oz
zqXo)d@9^%P_TK(I)9mjDVXktZ**-y{00006VoOIv0RI600RN!9r;`8x010qNS#tmY
z4c7nw4c7reD4Tcy000McNliru;|CfECk1r=)dBzj0T)R`K~#9!?V3vtgD?z4ag-}^
zN)Fksx<N%iAY;dQvy8-No{epkEDM@j=JC*VT|fWUw{5eu0FF!_Nd?2A8CQd_$mSIg
zEV}vL5NrhVJt3Hv`MsIe>z=Br+s=`J-+Hg?kz~Nx%U_M&Tlcx5;vISKfv7|?uZB=m
z=^wSrl!(z+W`V2*L{*ItX-`d`0RRBN<Z3Eh>Uq6qA+{{$TOn8`^DPicHuDt0o55lf
z9(@FU`e`x<0RR91003<;K>PA)r`6l|eq9ZsL@@99&p{E4II=3UfD8Zt05qC<dz=io
z5n1&h<aS1A+ELisFf{-G000000PtcP9DUQ2PavbIF6RSAJqLIuj>u#xd|9&;A%wc=
Y3#wp*f`G0duK)l507*qoM6N<$f)xl-LjV8(

literal 0
HcmV?d00001

diff --git a/webinterface.py b/webinterface.py
index 51e95f04d..482d2c497 100644
--- a/webinterface.py
+++ b/webinterface.py
@@ -92,8 +92,20 @@ def htmlNewPost(baseDir: str,path: str) -> str:
         '' \
         '    <textarea id="message" name="message" placeholder="Write something..." style="height:200px"></textarea>' \
         '' \
-        '    <input type="submit" value="Cencel">' \
+        '    <div class="container">' \
+        '    <input type="submit" value="Cancel">' \
         '    <input type="submit" value="Submit">' \
+        '    <div class="dropdown">' \
+        '      <button class="dropbtn">Scope</button>' \
+        '      <div class="dropdown-content">' \
+        '        <a href="#"><img="/icons/scope_public.png"/><b>Public</b><br>Visible to anyone</a>' \
+        '        <a href="#"><img="/icons/scope_unlisted.png"/><b>Unlisted</b><br>Not shown on public timeline</a>' \
+        '        <a href="#"><img="/icons/scope_followers.png"/><b>Followers Only</b><br>Only sent to followers</a>' \
+        '        <a href="#"><img="/icons/scope_dm.png"/><b>Direct Message</b><br>Sent only to mentioned people</a>' \
+        '        <a href="#"><img="/icons/scope_offer.png"/><b>Offer</b><br>Describe a shared item</a>' \
+        '      </div>' \
+        '    </div>' \
+        '    </div>' \
         '  </div>' \
         '</form>'
     newPostForm+=htmlFooter()
@@ -399,8 +411,7 @@ def htmlTimeline(session,baseDir: str,wfRequest: {},personCache: {}, \
         '<div class="timeline-banner">' \
         '</div>' \
         '<div class="container">\n' \
-        '  <center>'+ \
-        newPostStr+ \
+        '  <center>'+newPostStr+ \
         '    <a href="'+actor+'/inbox"><button class="'+localButton+'"><span>Local </span></button></a>' \
         '    <a href="'+actor+'/outbox"><button class="'+personalButton+'"><span>Personal </span></button></a>' \
         '    <a href="'+actor+'/federated"><button class="'+federatedButton+'"><span>Federated </span></button></a>' \