Bladeren bron

custom profile card themes

colours are all stored in the member table so they can be personal. maybe the form can be expanded so hex codes can be copy pasted between member profiles. idc about that rn though. also the style tag inside the index.html and full.html will flag a gazillion errors in vscode or any competent editor because it isnt technically valid css but ignore all of that. god bless
cube 4 dagen geleden
bovenliggende
commit
5ec6a62aa7

+ 2
- 2
myriad/home.py Bestand weergeven

@@ -11,8 +11,8 @@ bp = Blueprint('home', __name__)
11 11
 @bp.route('/')
12 12
 def index():
13 13
     db = get_db()
14
-    fronters = db.execute("SELECT * FROM member WHERE front=(?)",(1,)).fetchall()
15
-    homepage = db.execute("SELECT * FROM member WHERE homepage=(?)",(1,)).fetchall()
14
+    fronters = db.execute("SELECT * FROM member WHERE front=(?) ORDER BY member_name",(1,)).fetchall()
15
+    homepage = db.execute("SELECT * FROM member WHERE homepage=(?) ORDER BY member_name",(1,)).fetchall()
16 16
 
17 17
     icons={}
18 18
     for member in homepage:

+ 19
- 0
myriad/manage.py Bestand weergeven

@@ -85,6 +85,25 @@ def edit(mid):
85 85
 
86 86
             # the above cleanup operations should be a button in the manage sidebar but for now they are here.
87 87
 
88
+        if "c9" in request.form:
89
+            c9 = request.form["c9"]
90
+            c10 = request.form["c10"]
91
+            c11 = request.form["c11"]
92
+            c12 = request.form["c12"]
93
+            c13 = request.form["c13"]
94
+            c14 = request.form["c14"]
95
+            c15 = request.form["c15"]
96
+            c16 = request.form["c16"]
97
+            #c17 = request.form["c17"]
98
+            #c18 = request.form["c18"]
99
+            #c19 = request.form["c19"]
100
+            #c20 = request.form["c20"]
101
+            c21 = request.form["c21"]
102
+            c22 = request.form["c22"]
103
+
104
+            db.execute("UPDATE member SET card_border=(?), card_bg=(?), heading_bg=(?), heading_border=(?), heading_name=(?), heading_subtitle=(?), card_text=(?), icon_border=(?), a1=(?), a2=(?) WHERE id=(?)",(c9, c10, c11, c12, c13, c14, c15, c16, c21, c22, mid))
105
+            db.commit()
106
+
88 107
 
89 108
         member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
90 109
         icons = db.execute("SELECT * FROM icons WHERE member_id=(?)",(mid,)).fetchall()

+ 14
- 20
myriad/schema.sql Bestand weergeven

@@ -4,8 +4,6 @@ DROP TABLE IF EXISTS icons;
4 4
 DROP TABLE IF EXISTS groups;
5 5
 DROP TABLE IF EXISTS group_members;
6 6
 DROP TABLE IF EXISTS pages;
7
-DROP TABLE IF EXISTS themes;
8
-DROP TABLE IF EXISTS member_themes;
9 7
 
10 8
 CREATE TABLE user (
11 9
   id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -23,6 +21,20 @@ CREATE TABLE member (
23 21
   main_icon INTEGER,
24 22
   homepage BOOLEAN NOT NULL DEFAULT 0,
25 23
   front BOOLEAN NOT NULL DEFAULT 0,
24
+  card_border TEXT NOT NULL DEFAULT '#99dfff',
25
+  card_bg TEXT NOT NULL DEFAULT '#e6f7ff',
26
+  heading_bg TEXT NOT NULL DEFAULT '#b3e7ff',
27
+  heading_border TEXT NOT NULL DEFAULT '#008bcc',
28
+  heading_name TEXT NOT NULL DEFAULT 'black',
29
+  heading_subtitle TEXT NOT NULL DEFAULT 'black',
30
+  card_text TEXT NOT NULL DEFAULT 'black',
31
+  icon_border TEXT NOT NULL DEFAULT '#008bcc',
32
+  page_bg TEXT NOT NULL DEFAULT '#00b7ff',
33
+  gradient1 TEXT NOT NULL DEFAULT '#00b7ff',
34
+  gradient2 TEXT NOT NULL DEFAULT '#57c785',
35
+  gradient3 TEXT NOT NULL DEFAULT '#eddd53',
36
+  a1 TEXT NOT NULL DEFAULT '#008bcc',
37
+  a2 TEXT NOT NULL DEFAULT '#026897',
26 38
   FOREIGN KEY (user_id) REFERENCES user (id),
27 39
   FOREIGN KEY (main_icon) REFERENCES icons (id)
28 40
 );
@@ -53,22 +65,4 @@ CREATE TABLE pages (
53 65
   member_id INTEGER NOT NULL,
54 66
   page_location TEXT NOT NULL,
55 67
   FOREIGN KEY (member_id) REFERENCES member (id)
56
-);
57
-
58
-CREATE TABLE themes (
59
-  id INTEGER PRIMARY KEY AUTOINCREMENT,
60
-  theme_name TEXT NOT NULL,
61
-  color1 TEXT NOT NULL,
62
-  color2 TEXT NOT NULL,
63
-  color3 TEXT NOT NULL,
64
-  color4 TEXT NOT NULL,
65
-  color5 TEXT NOT NULL
66
-);
67
-
68
-CREATE TABLE member_themes (
69
-  id INTEGER PRIMARY KEY AUTOINCREMENT,
70
-  theme_id INTEGER NOT NULL,
71
-  member_id INTEGER NOT NULL,
72
-  FOREIGN KEY (theme_id) REFERENCES themes (id),
73
-  FOREIGN KEY (member_id) REFERENCES member (id)
74 68
 );

+ 1
- 1
myriad/static/style.css Bestand weergeven

@@ -5,7 +5,7 @@
5 5
 
6 6
 body{
7 7
     background: #00b7ff;
8
-    background: linear-gradient(90deg, rgba(0, 183, 255, 1) 0%, rgba(87, 199, 133, 1) 50%, rgba(237, 221, 83, 1) 100%);
8
+    background: linear-gradient(90deg, #00b7ff 0%, #57c785 50%, #eddd53 100%);
9 9
     font-family:monospace;
10 10
     font-size:12px; 
11 11
     scrollbar-color:#008bcc #b3e7ff;

+ 0
- 1
myriad/templates/base.html Bestand weergeven

@@ -14,7 +14,6 @@
14 14
     {% if g.user %}
15 15
     <div class="heading">Manage</div>
16 16
     <div class="navitem">> <a href="{{ url_for('manage.new') }}">Add New Member</a></div>
17
-    <div class="navitem">> <a href="">Profile Themes</a></div>
18 17
     {% endif %}
19 18
 
20 19
     <div class="heading">Administration</div>

+ 41
- 4
myriad/templates/full.html Bestand weergeven

@@ -9,21 +9,58 @@
9 9
     <div class="maintext">
10 10
         jump to:<br>
11 11
         {% for member in memberlist %}
12
-        <a href="#{{ member[0] }}">{{ member[3] }}</a> | 
12
+        <a href="#m{{ member[0] }}">{{ member[3] }}</a> | 
13 13
         {% endfor %}
14 14
     </div>
15 15
   
16 16
     {% for member in memberlist %}
17 17
 
18
-    <div class="profile" id="{{ member[0] }}">
19
-        <div class="heading"><b>{{ member[3] }}</b> {{ member[4] }}</div>
18
+    <style>
19
+        #m{{member[0]}}{
20
+            background-color:{{member[10]}};
21
+	        border-color:{{member[9]}};
22
+            color:{{member[15]}};
23
+        }
24
+        #m{{member[0]}} .heading
25
+        {
26
+            background-color:{{member[11]}};
27
+            border-color:{{member[12]}};
28
+            color:{{member[14]}};
29
+        }
30
+        #m{{member[0]}} .heading b
31
+        {
32
+            color:{{member[13]}};
33
+        }
34
+        #m{{member[0]}} a{
35
+            color: {{member[21]}};
36
+        }
37
+        #m{{member[0]}} a:hover{
38
+            color: {{member[22]}};
39
+        }
40
+        #m{{member[0]}} ::selection {
41
+            background: {{member[12]}};
42
+            color: white;
43
+            text-shadow: none;
44
+        }
45
+        #m{{member[0]}} ::-moz-selection {
46
+            background: {{member[12]}};
47
+            color: #EEE;
48
+            text-shadow: none;
49
+        }
50
+        #m{{member[0]}} .icon{
51
+            border-color:{{member[16]}};
52
+        }
53
+    </style>
54
+
55
+    <div class="profile" id="m{{ member[0] }}">
56
+        <div class="heading"><b>{{ member[3]|safe }}</b> {{ member[4]|safe }}</div>
20 57
         {% if icons[member[0]] %}
21 58
         <img src="{{ url_for('static', filename='icons/'+icons[member[0]]) }}" class="icon">
22 59
         {% else %}
23 60
         <img src="{{ url_for('static', filename='any.jpg') }}" class="icon">
24 61
         {% endif %}
25 62
         <div class="bio">
26
-            {{ member[5] }} 
63
+            {{ member[5]|safe }} 
27 64
         </div>
28 65
         <br class="clear" />
29 66
         {% if g.user %}<div class="heading links">{% if member[8]==0 %}<a href="{{ url_for('manage.add_to_front', mid=member[0]) }}">Add to Front</a>{% else %}<a href="{{ url_for('manage.remove_front', mid=member[0]) }}">Remove from Front</a>{% endif %} &#9734 <a href="{{ url_for('manage.edit', mid=member[0]) }}">Edit</a> &#9734 {% if member[7]==0 %}<a href="{{ url_for('manage.add_to_home', mid=member[0]) }}">Pin to Homepage</a>{% else %}<a href="{{ url_for('manage.remove_home', mid=member[0]) }}">Unpin from Homepage</a>{% endif %}</div>{% endif %}

+ 42
- 3
myriad/templates/index.html Bestand weergeven

@@ -7,15 +7,54 @@
7 7
   </div>
8 8
 
9 9
   {% for member in home_pins %}
10
-  <div class="profile" id="{{ member[0] }}">
11
-        <div class="heading"><b>{{ member[3] }}</b> {{ member[4] }}</div>
10
+
11
+  <style>
12
+        #m{{member[0]}}{
13
+            background-color:{{member[10]}};
14
+	        border-color:{{member[9]}};
15
+            color:{{member[15]}};
16
+        }
17
+        #m{{member[0]}} .heading
18
+        {
19
+            background-color:{{member[11]}};
20
+            border-color:{{member[12]}};
21
+            color:{{member[14]}};
22
+        }
23
+        #m{{member[0]}} .heading b
24
+        {
25
+            color:{{member[13]}};
26
+        }
27
+        #m{{member[0]}} a{
28
+            color: {{member[21]}};
29
+        }
30
+        #m{{member[0]}} a:hover{
31
+            color: {{member[22]}};
32
+        }
33
+        #m{{member[0]}} ::selection {
34
+            background: {{member[12]}};
35
+            color: white;
36
+            text-shadow: none;
37
+        }
38
+        #m{{member[0]}} ::-moz-selection {
39
+            background: {{member[12]}};
40
+            color: #EEE;
41
+            text-shadow: none;
42
+        }
43
+        #m{{member[0]}} .icon{
44
+            border-color:{{member[16]}};
45
+        }
46
+    </style>
47
+
48
+
49
+  <div class="profile" id="m{{ member[0] }}">
50
+        <div class="heading"><b>{{ member[3]|safe }}</b> {{ member[4]|safe }}</div>
12 51
         {% if icons[member[0]] %}
13 52
         <img src="{{ url_for('static', filename='icons/'+icons[member[0]]) }}" class="icon">
14 53
         {% else %}
15 54
         <img src="{{ url_for('static', filename='any.jpg') }}" class="icon">
16 55
         {% endif %}
17 56
         <div class="bio">
18
-            {{ member[5] }} 
57
+            {{ member[5]|safe }} 
19 58
         </div>
20 59
         <br class="clear" />
21 60
         {% if g.user %}<div class="heading links">{% if member[8]==0 %}<a href="{{ url_for('manage.add_to_front', mid=member[0]) }}">Add to Front</a>{% else %}<a href="{{ url_for('manage.remove_front', mid=member[0]) }}">Remove from Front</a>{% endif %} &#9734 <a href="{{ url_for('manage.edit', mid=member[0]) }}">Edit</a> &#9734 {% if member[7]==0 %}<a href="{{ url_for('manage.add_to_home', mid=member[0]) }}">Pin to Homepage</a>{% else %}<a href="{{ url_for('manage.remove_home', mid=member[0]) }}">Unpin from Homepage</a>{% endif %}</div>{% endif %}

+ 32
- 12
myriad/templates/manage/edit.html Bestand weergeven

@@ -38,19 +38,39 @@
38 38
 
39 39
   <div class="heading">Manage Theme</div>
40 40
 
41
-  <!-- <form method="post">
42
-    <label for="favcolor">Color 1:</label>
43
-    <input type="color" id="color1" name="color1" value="#ff0000"><br>
44
-    <label for="favcolor">Color 2:</label>
45
-    <input type="color" id="color1" name="color1" value="#ff0000"><br>
46
-    <label for="favcolor">Color 3:</label>
47
-    <input type="color" id="color1" name="color1" value="#ff0000"><br>
48
-    <label for="favcolor">Color 4:</label>
49
-    <input type="color" id="color1" name="color1" value="#ff0000"><br>
50
-    <label for="favcolor">Color 5:</label>
51
-    <input type="color" id="color1" name="color1" value="#ff0000"><br>
41
+  <form method="post">
42
+    <label for="c9">Card border colour:</label>
43
+    <input type="color" id="c9" name="c9" value="{{member[9]}}"><br>
44
+
45
+    <label for="c10">Card background colour:</label>
46
+    <input type="color" id="c10" name="c10" value="{{member[10]}}"><br>
47
+
48
+    <label for="c11">Heading background colour:</label>
49
+    <input type="color" id="c11" name="c11" value="{{member[11]}}"><br>
50
+
51
+    <label for="c12">Accent colour:</label>
52
+    <input type="color" id="c12" name="c12" value="{{member[12]}}"><br>
53
+
54
+    <label for="c13">Heading name text colour:</label>
55
+    <input type="color" id="c13" name="c13" value="{{member[13]}}"><br>
56
+    
57
+    <label for="c14">Heading subtitle text colour:</label>
58
+    <input type="color" id="c14" name="c14" value="{{member[14]}}"><br>
59
+
60
+    <label for="c15">Card text colour:</label>
61
+    <input type="color" id="c15" name="c15" value="{{member[15]}}"><br>
62
+
63
+    <label for="c16">Icon border colour:</label>
64
+    <input type="color" id="c16" name="c16" value="{{member[16]}}"><br>
65
+
66
+    <label for="c21">Links colour:</label>
67
+    <input type="color" id="c21" name="c21" value="{{member[21]}}"><br>
68
+
69
+    <label for="c22">Links hover colour:</label>
70
+    <input type="color" id="c22" name="c22" value="{{member[22]}}"><br>
71
+
52 72
     <input type="submit" value="Set Member Theme">
53
-  </form> -->
73
+  </form>
54 74
 
55 75
   <a href="">Click here to reset member theme to default</a>
56 76