liquid_feedback_frontend
changeset 216:4f6e6b213fb8
Cleanup on second generation frontend code and stylesheet
author | bsw |
---|---|
date | Mon Mar 07 12:15:22 2011 +0100 (2011-03-07) |
parents | 1dab81353eb1 |
children | 73dbc9e2bfd4 |
files | app/main/lf2/_avatars.lua app/main/lf2/_initiative.lua app/main/lf2/_initiatives.lua app/main/lf2/_interested.lua app/main/lf2/_issues.lua app/main/lf2/_issues_issue.lua app/main/lf2/_sidebar_issue.lua app/main/lf2/initiative.lua app/main/lf2/interest.lua app/main/lf2/issue.lua env/ui/avatar.lua model/issue.lua static/lf2.css |
line diff
1.1 --- a/app/main/lf2/_avatars.lua Sat Mar 05 15:34:17 2011 +0100 1.2 +++ b/app/main/lf2/_avatars.lua Mon Mar 07 12:15:22 2011 +0100 1.3 @@ -1,8 +1,7 @@ 1.4 local members = param.get("members", "table") 1.5 local hidefirst = param.get("hidefirst", atom.boolean) 1.6 local size = param.get("size") or "normal" 1.7 - 1.8 -local first_participation = true 1.9 +local issue_id = param.get("issue_id", atom.integer) 1.10 1.11 ui.container{ attr = { class = "avatars " .. size }, content = function() 1.12 for i, member in ipairs(members) do 1.13 @@ -28,14 +27,13 @@ 1.14 end 1.15 if not hidefirst or i > 1 then 1.16 local class = "avatar" 1.17 - if first_participation and member.participation then 1.18 + if member.participation then 1.19 class = class .. " participation" 1.20 - first_participation = false 1.21 end 1.22 if member.overridden then 1.23 class = class .. " overridden" 1.24 end 1.25 - ui.container{ attr = { class = class, title = member.name }, content = function() 1.26 + local args = { attr = { class = class, title = member.name }, content = function() 1.27 ui.avatar(member, size) 1.28 --ui.image{ module = "member_image", view = "show", id = member.id, params = { image_type = "avatar" } } 1.29 if size == "normal" then 1.30 @@ -45,6 +43,14 @@ 1.31 ui.container{ attr = { class = "weight" }, content = member.weight } 1.32 end 1.33 end } 1.34 + if issue_id then 1.35 + args.module = "lf2" 1.36 + args.view = "interest" 1.37 + args.params = { issue_id = issue_id, member_id = member.id } 1.38 + ui.link(args) 1.39 + else 1.40 + ui.container(args) 1.41 + end 1.42 end 1.43 end 1.44 end }
2.1 --- a/app/main/lf2/_initiative.lua Sat Mar 05 15:34:17 2011 +0100 2.2 +++ b/app/main/lf2/_initiative.lua Mon Mar 07 12:15:22 2011 +0100 2.3 @@ -61,8 +61,10 @@ 2.4 slot.put(" ", _"and", " ") 2.5 end 2.6 ui.link{ 2.7 - module = "lf2", view = "initiative", id = initiative.id, 2.8 - params = { member_id = member.id }, content = function() 2.9 + module = "lf2", view = "interest", params = { 2.10 + issue_id = initiative.issue_id, 2.11 + member_id = member.id 2.12 + }, content = function() 2.13 ui.tag{ content = member.name } 2.14 end 2.15 }
3.1 --- a/app/main/lf2/_initiatives.lua Sat Mar 05 15:34:17 2011 +0100 3.2 +++ b/app/main/lf2/_initiatives.lua Mon Mar 07 12:15:22 2011 +0100 3.3 @@ -2,12 +2,10 @@ 3.4 3.5 initiatives:load("initiating_members", nil, "initiating_members") 3.6 3.7 -ui.box{ content = function() 3.8 - for i, initiative in ipairs(initiatives) do 3.9 +for i, initiative in ipairs(initiatives) do 3.10 3.11 - ui.box_row{ class = "initiative", content = function() ui.box_col { content = function() 3.12 - execute.view{ module = "lf2", view = "_initiative", params = { initiative = initiative } } 3.13 - end } end } 3.14 + ui.box_row{ class = "initiative", content = function() ui.box_col { content = function() 3.15 + execute.view{ module = "lf2", view = "_initiative", params = { initiative = initiative } } 3.16 + end } end } 3.17 3.18 - end 3.19 -end } 3.20 \ No newline at end of file 3.21 +end 3.22 \ No newline at end of file
4.1 --- a/app/main/lf2/_interested.lua Sat Mar 05 15:34:17 2011 +0100 4.2 +++ b/app/main/lf2/_interested.lua Mon Mar 07 12:15:22 2011 +0100 4.3 @@ -1,4 +1,5 @@ 4.4 local interested_members = param.get("interested_members", "table") 4.5 +local issue_id = param.get("issue_id", atom.integer) 4.6 ui.box{ row_count = 2, content = function() 4.7 ui.box_row{ class = "head interested", content = function() 4.8 ui.box_col{ class = "head left", content = _"Members, interested in this issue" } 4.9 @@ -6,7 +7,7 @@ 4.10 end } 4.11 ui.box_row{ class = "interested", content = function() 4.12 ui.box_col{ class = "", content = function() 4.13 - execute.view{ module = "lf2", view = "_avatars", params = { members = interested_members } } 4.14 + execute.view{ module = "lf2", view = "_avatars", params = { members = interested_members, issue_id = issue_id } } 4.15 end } 4.16 end } 4.17 end }
5.1 --- a/app/main/lf2/_issues.lua Sat Mar 05 15:34:17 2011 +0100 5.2 +++ b/app/main/lf2/_issues.lua Mon Mar 07 12:15:22 2011 +0100 5.3 @@ -63,7 +63,7 @@ 5.4 5.5 end } 5.6 5.7 - ui.box_row{ class = "head", content = function() 5.8 + ui.box_row{ class = "head2", content = function() 5.9 5.10 ui.box_col{ class = "state_name left", content = function() 5.11 ui.tag{ content = issue.state_name } 5.12 @@ -74,13 +74,13 @@ 5.13 end } 5.14 5.15 if #trustees > 1 then 5.16 - local class = "head2" 5.17 - if issue.closed or issue.fully_frozen then 5.18 - class = class .. " head2_last" 5.19 + local class = "head" 5.20 + if not issue.closed and not issue.fully_frozen then 5.21 + class = "head2" 5.22 end 5.23 - ui.box_row{ class = class, content = function() 5.24 + ui.box_row{ class = "head2", content = function() 5.25 ui.box_col{ class = "left", content = function() 5.26 - execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small" } } 5.27 + execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small", issue_id = issue.id } } 5.28 end } 5.29 if not issue.closed and not issue.fully_frozen then 5.30 if trustees[1].scope_out == "issue" then 5.31 @@ -99,7 +99,7 @@ 5.32 end 5.33 5.34 if not issue.closed and not issue.fully_frozen then 5.35 - ui.box_row{ class = "head2 head2_last", content = function() 5.36 + ui.box_row{ class = "head", content = function() 5.37 ui.box_col{ class = "interest left", content = function() 5.38 if interest then 5.39 ui.image{ static = "lf2/icon_star.png" }
6.1 --- a/app/main/lf2/_issues_issue.lua Sat Mar 05 15:34:17 2011 +0100 6.2 +++ b/app/main/lf2/_issues_issue.lua Mon Mar 07 12:15:22 2011 +0100 6.3 @@ -65,7 +65,7 @@ 6.4 ui.box_row{ class = "delegation", content = function() 6.5 if delegation then 6.6 ui.box_col{ content = function() 6.7 - execute.view{ module = "lf2", view = "_avatars", params = { members = { app.session.member, delegation.trustee }, arrows = true, hidefirst = true } } 6.8 + execute.view{ module = "lf2", view = "_avatars", params = { members = { app.session.member, delegation.trustee }, arrows = true, hidefirst = true, issue_id = issue.id } } 6.9 end } 6.10 else 6.11 end
7.1 --- a/app/main/lf2/_sidebar_issue.lua Sat Mar 05 15:34:17 2011 +0100 7.2 +++ b/app/main/lf2/_sidebar_issue.lua Mon Mar 07 12:15:22 2011 +0100 7.3 @@ -23,36 +23,40 @@ 7.4 7.5 ui.box{ class = "issue", content = function() 7.6 7.7 - ui.box_row{ class = "unit_name head2", content = function() ui.box_col{ content = function() 7.8 + ui.box_row{ class = "unit_name head2x", content = function() ui.box_col{ content = function() 7.9 ui.link{ 7.10 module = "lf2", view = "index", id = 1, 7.11 content = "DE / Berlin / Friedrichshain-Kreuzberg" 7.12 } 7.13 end } end } 7.14 7.15 - ui.box_row{ class = "area_name head2", content = function() ui.box_col{ content = function() 7.16 + ui.box_row{ class = "area_name head2x", content = function() ui.box_col{ content = function() 7.17 ui.link{ 7.18 module = "lf2", view = "area", id = issue.area_id, 7.19 content = issue.area.name 7.20 } 7.21 end } end } 7.22 7.23 - ui.box_row{ class = "issue_id head2", content = function() ui.box_col{ class = "head", content = function() 7.24 + ui.box_row{ class = "issue_id subhead", content = function() ui.box_col{ class = "head", content = function() 7.25 ui.link{ 7.26 module = "lf2", view = "issue", id = issue.id, 7.27 content = _("Issue ##{id}", { id = issue.id }) 7.28 } 7.29 end } end } 7.30 7.31 - ui.box_row{ class = "policy_name head2", content = function() ui.box_col{ content = function() 7.32 + ui.box_row{ class = "policy_name", content = function() ui.box_col{ content = function() 7.33 ui.link{ 7.34 module = "lf2", view = "policy", id = issue.policy_id, 7.35 content = issue.policy.name 7.36 } 7.37 end } end } 7.38 7.39 - ui.box_row{ class = "time_left head", content = function() 7.40 - ui.box_col{ content = issue.closed and _("Closed since #{date}", { date = format.date(issue.closed.date) }) or _("#{time_left} left", { time_left = issue.state_time_left }) } 7.41 + ui.box_row{ class = "time_left", content = function() 7.42 + ui.box_col{ class = "left", content = function() 7.43 + ui.tag{ content = issue.state_name } 7.44 + slot.put(" · ") 7.45 + ui.tag{ content = issue.closed and _("since #{date}", { date = format.date(issue.closed.date) }) or _("#{time_left} left", { time_left = issue.state_time_left }) } 7.46 + end } 7.47 end } 7.48 7.49 ui.box_row{ class = "interest hoverbutton_container", content = function() ui.box_col{ content = function() 7.50 @@ -181,11 +185,11 @@ 7.51 7.52 if #trustees > 1 then 7.53 ui.box_row{ class = "delegation", content = function() ui.box_col{ content = function() 7.54 - execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small" } } 7.55 + execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small", issue_id = issue.id } } 7.56 end } end } 7.57 end 7.58 7.59 - ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Initiatives in this issue" } end } 7.60 + ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Initiatives" } end } 7.61 ui.box_row{ class = "initiatives last", content = function() 7.62 ui.box_col{ class = "scrolled", content = function() 7.63 execute.view{ module = "lf2", view = "_issue_initiatives", params = { initiatives = alternative_initiatives, current_initiative_id = initiative_id } }
8.1 --- a/app/main/lf2/initiative.lua Sat Mar 05 15:34:17 2011 +0100 8.2 +++ b/app/main/lf2/initiative.lua Mon Mar 07 12:15:22 2011 +0100 8.3 @@ -99,14 +99,14 @@ 8.4 } } 8.5 8.6 ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Current draft" } end } 8.7 - ui.box_row{ content = function() ui.box_col{ content = function() 8.8 + ui.box_row{ class = "member_content", content = function() ui.box_col{ content = function() 8.9 execute.view{ module = "lf2", view = "_draft", params = { draft = draft } } 8.10 end } end } 8.11 8.12 if initiative.issue.fully_frozen and initiative.issue.closed then 8.13 ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Voters" } end } 8.14 ui.box_row{ content = function() ui.box_col{ content = function() 8.15 - execute.view{ module = "lf2", view = "_avatars", params = { members = voting_members } } 8.16 + execute.view{ module = "lf2", view = "_avatars", params = { members = voting_members, issue_id = initiative.issue_id } } 8.17 end } end } 8.18 end 8.19 8.20 @@ -117,7 +117,7 @@ 8.21 8.22 ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Supporters" } end } 8.23 ui.box_row{ content = function() ui.box_col{ content = function() 8.24 - execute.view{ module = "lf2", view = "_avatars", params = { members = supporting_members } } 8.25 + execute.view{ module = "lf2", view = "_avatars", params = { members = supporting_members, issue_id = initiative.issue_id } } 8.26 end } end } 8.27 8.28 end }
9.1 --- a/app/main/lf2/interest.lua Sat Mar 05 15:34:17 2011 +0100 9.2 +++ b/app/main/lf2/interest.lua Mon Mar 07 12:15:22 2011 +0100 9.3 @@ -1,20 +1,27 @@ 9.4 slot.set_layout("lf2") 9.5 9.6 +slot.put_into("leftright_pre", '<div class="sidebar_right">') 9.7 +slot.put_into("leftright_post", '</div>') 9.8 9.9 -local issue = Issue:by_id(param.get_id()) 9.10 -local member = Member:by_id(param.get("member", atom.integer)) 9.11 +local issue = Issue:by_id(param.get("issue_id", atom.integer)) 9.12 +local member = Member:by_id(param.get("member_id", atom.integer)) 9.13 9.14 local area = issue.area 9.15 9.16 -- TODO broken 9.17 --issue:load("interested_members_snapshot", {}, "interested_members") 9.18 -issue:load("delegating_interest_snapshot_for_member", { member_id = app.session.member_id }, "delegating_interest") 9.19 -issue:load("interest_for_member", { member_id = app.session.member_id }, "interest") 9.20 -issue:load("outgoing_delegations_for_member", { member_id = app.session.member_id }, "outgoing_delegations") 9.21 +issue:load("delegating_interest_snapshot_for_member", { member_id = member.id }, "delegating_interest") 9.22 +issue:load("interest_for_member", { member_id = member.id }, "interest") 9.23 +issue:load("outgoing_delegations_for_member", { member_id = member.id }, "outgoing_delegations") 9.24 +issue:load("trusters_for_member", { member_id = member.id }, "trusters") 9.25 9.26 local initiatives = issue.initiatives 9.27 9.28 -local interested_members = issue.interested_members 9.29 +local supported_initiatives = Initiative:new_selector() 9.30 + :add_where{ "initiative.issue_id = ?", issue.id } 9.31 + :join("supporter", nil, { "supporter.initiative_id = initiative.id AND supporter.member_id = ?", member.id }) 9.32 + :exec() 9.33 + 9.34 9.35 local interest = issue.interest 9.36 9.37 @@ -22,7 +29,7 @@ 9.38 9.39 local trustees = Member:new_selector() 9.40 :add_field("delegation_chain.*") 9.41 - :join("delegation_chain(" .. tostring(app.session.member.id) .. ", " .. tostring(area_id or "NULL") .. ", " .. tostring(issue_id or "NULL") .. ")", "delegation_chain", "member.id = delegation_chain.member_id") 9.42 + :join("delegation_chain(" .. tostring(member.id) .. ", " .. tostring(issue.area_id or "NULL") .. ", " .. tostring(issue_id or "NULL") .. ")", "delegation_chain", "member.id = delegation_chain.member_id") 9.43 :add_order_by("index") 9.44 :exec() 9.45 9.46 @@ -45,17 +52,54 @@ 9.47 app.topnav_area_id = issue.area_id 9.48 9.49 slot.select("sidebar", function() 9.50 - execute.view{ module = "lf2", view = "_sidebar_unit", params = { current_area_id = issue.area_id } } 9.51 + execute.view{ module = "lf2", view = "_sidebar_issue", params = { issue = issue, alternative_initiatives = initiatives } } 9.52 + 9.53 end) 9.54 9.55 -execute.view{ module = "lf2", view = "_area", params = { area = area } } 9.56 - 9.57 -execute.view{ module = "lf2", view = "_issues", params = { issues = { issue } } } 9.58 +ui.box{ content = function() 9.59 + ui.box_row{ class = "head", content = function() ui.box_col{ class = "head", content = function() 9.60 + ui.link{ module = "lf2", view = "member", id = member.id, content = function() 9.61 + ui.avatar(member) 9.62 + slot.put(" ") 9.63 + ui.tag{ content = member.name } 9.64 + end } 9.65 + end } end } 9.66 + if not member.active then 9.67 + ui.box_row{ class = "head", content = function() ui.box_col{ class = "head", content = function() 9.68 + ui.tag{ content = _"Member is deactivated" } 9.69 + end } end } 9.70 + end 9.71 + ui.box_row{ content = function() ui.box_col{ content = function() 9.72 + if interest then 9.73 + ui.image{ static = "lf2/icon_star.png" } 9.74 + slot.put(" ") 9.75 + ui.tag{ content = _"Member is interested in this issue" } 9.76 + elseif delegating_interest then 9.77 + ui.image{ static = "lf2/icon_delegated_star.png" } 9.78 + slot.put(" ") 9.79 + ui.tag{ content = _"Someone in members delegation chain is interested" } 9.80 + else 9.81 + ui.image{ static = "lf2/icon_star_grey.png" } 9.82 + slot.put(" ") 9.83 + ui.tag{ content = _"Member is not interested" } 9.84 + end 9.85 + end } end } 9.86 + if #trustees > 1 then 9.87 + ui.box_row{ content = function() ui.box_col{ content = function() 9.88 + execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small", issue_id = issue.id } } 9.89 + end } end } 9.90 + end 9.91 9.92 --- TODO bugfix for not working reference loader 9.93 -interested_members = issue:get_reference_selector("interested_members_snapshot"):exec() 9.94 + ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Statement about issue" } end } 9.95 + 9.96 + ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Supported initiatives" } end } 9.97 + execute.view{ module = "lf2", view = "_initiatives", params = { initiatives = supported_initiatives } } 9.98 9.99 -execute.view{ module = "lf2", view = "_interested", params = { 9.100 - interested_members = interested_members 9.101 -} } 9.102 + ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Incoming delegations" } end } 9.103 + ui.box_row{ content = function() ui.box_col{ content = function() 9.104 + execute.view{ module = "lf2", view = "_avatars", params = { members = issue.trusters, size = "small", issue_id = issue.id } } 9.105 + end } end } 9.106 9.107 + 9.108 +end } 9.109 +
10.1 --- a/app/main/lf2/issue.lua Sat Mar 05 15:34:17 2011 +0100 10.2 +++ b/app/main/lf2/issue.lua Mon Mar 07 12:15:22 2011 +0100 10.3 @@ -54,6 +54,6 @@ 10.4 interested_members = issue:get_reference_selector("interested_members_snapshot"):exec() 10.5 10.6 execute.view{ module = "lf2", view = "_interested", params = { 10.7 - interested_members = interested_members 10.8 + interested_members = interested_members, issue_id = issue.id 10.9 } } 10.10
11.1 --- a/env/ui/avatar.lua Sat Mar 05 15:34:17 2011 +0100 11.2 +++ b/env/ui/avatar.lua Mon Mar 07 12:15:22 2011 +0100 11.3 @@ -60,7 +60,7 @@ 11.4 member:save() 11.5 end 11.6 11.7 - ui.tag{ tag = "img", attr = { src = "data:image/jpeg;base64," .. base64_string } } 11.8 + ui.tag{ tag = "img", attr = { class = "avatar_image", src = "data:image/jpeg;base64," .. base64_string } } 11.9 11.10 end 11.11
12.1 --- a/model/issue.lua Sat Mar 05 15:34:17 2011 +0100 12.2 +++ b/model/issue.lua Mon Mar 07 12:15:22 2011 +0100 12.3 @@ -236,6 +236,42 @@ 12.4 end 12.5 } 12.6 12.7 +Issue:add_reference{ 12.8 + mode = 'mm', 12.9 + to = "Member", 12.10 + this_key = 'id', 12.11 + that_key = 'mm_ref_', 12.12 + ref = 'trusters_for_member', 12.13 + back_ref = 'issue', 12.14 + selector_generator = function(list, options) 12.15 + 12.16 + local member_id = assert(options.member_id) 12.17 + 12.18 + -- build list of issue ids 12.19 + local ids = { sep = ", " } 12.20 + for i, object in ipairs(list) do 12.21 + local id = object.id 12.22 + if id ~= nil then 12.23 + ids[#ids+1] = {"?", id} 12.24 + end 12.25 + end 12.26 + 12.27 + if #ids == 0 then 12.28 + return Delegation:new_selector():empty_list_mode() 12.29 + end 12.30 + 12.31 + local selector = Member:new_selector() 12.32 + selector:join("delegating_interest_snapshot", nil, { "delegating_interest_snapshot.delegate_member_ids[1] = ? AND delegating_interest_snapshot.member_id = member.id", member_id }) 12.33 + selector:join("issue", nil, "delegating_interest_snapshot.issue_id = issue.id AND delegating_interest_snapshot.event = issue.latest_snapshot_event") 12.34 + selector:add_where{ 'delegating_interest_snapshot.issue_id IN ($)', ids } 12.35 + selector:add_field("delegating_interest_snapshot.issue_id", "mm_ref_") 12.36 + selector:add_field("delegating_interest_snapshot.weight", "weight") 12.37 + selector:add_order_by("delegating_interest_snapshot.weight DESC, member.id") 12.38 + return selector 12.39 + 12.40 + end 12.41 +} 12.42 + 12.43 12.44 12.45 function Issue:get_state_name_for_state(value)
13.1 --- a/static/lf2.css Sat Mar 05 15:34:17 2011 +0100 13.2 +++ b/static/lf2.css Mon Mar 07 12:15:22 2011 +0100 13.3 @@ -1,4 +1,6 @@ 13.4 -/* CSS reset */ 13.5 +/* 13.6 + * CSS reset 13.7 + */ 13.8 13.9 html, body, div, span, applet, object, iframe, 13.10 h1, h2, h3, h4, h5, h6, p, blockquote, pre, 13.11 @@ -47,210 +49,170 @@ 13.12 quotes: "" ""; 13.13 } 13.14 13.15 -/* end CSS reset */ 13.16 + 13.17 +/* 13.18 + * Positioning 13.19 + */ 13.20 + 13.21 +.tab1 .right 13.22 + { float: right; } 13.23 + 13.24 +.tab1 a { float: left; } 13.25 + 13.26 +.slot_default 13.27 + { position: relative; width: 67%; } 13.28 + 13.29 +.slot_sidebar 13.30 + { float: left; width: 30%; } 13.31 + 13.32 +.sidebar_right .slot_sidebar 13.33 + { float: right; width: 30%; } 13.34 + 13.35 +.slot_sidebar .box 13.36 + { width: 100%; } 13.37 + 13.38 +.box 13.39 + { position: relative; width: 100%; } 13.40 + 13.41 +.box .row 13.42 + { overflow: auto; } 13.43 + 13.44 +.box .row .col.left 13.45 + { float: left; } 13.46 + 13.47 +.box .row .col.right 13.48 + { float: right; } 13.49 13.50 13.51 /* 13.52 - Global settings 13.53 -*/ 13.54 -body { 13.55 - font-family: sans-serif; 13.56 - background-color: #7df; 13.57 - xbackground-image: url('lf2/back.jpg'); 13.58 - color: #000; 13.59 -} 13.60 + * Margins und paddings 13.61 + */ 13.62 + 13.63 +.tab1 a 13.64 + { margin: 0 0 0 0.5em; padding: 0.5ex 0.5em 0.5ex 0.5em; } 13.65 +.tab1 .right a 13.66 + { margin: 0 0.5em 0 0; } 13.67 + 13.68 +.slot_default 13.69 + { margin: 2ex 1% 2ex 32%; } 13.70 + 13.71 +.sidebar_right .slot_default 13.72 + { margin: 2ex 32% 2ex 1%; } 13.73 + 13.74 +.slot_sidebar 13.75 + { margin: 2ex 1% 2ex 1%; } 13.76 + 13.77 +.sidebar_right .slot_sidebar 13.78 + { margin: 0 1% 2ex 1%; } 13.79 + 13.80 +.box 13.81 + { margin: 0 0 2ex 0; } 13.82 + 13.83 + 13.84 +.box .row .col 13.85 + { padding: 0.5ex 0.2em 0.5ex 0.2em; } 13.86 + 13.87 +.box .row .col:first-child 13.88 + { padding-left: 0.5em; } 13.89 + 13.90 +.box .row.subhead .col 13.91 + { margin-top: 2ex; } 13.92 + 13.93 13.94 -a { 13.95 - color: #000; 13.96 -} 13.97 +/* 13.98 + * Colors 13.99 + */ 13.100 + 13.101 +body, 13.102 +.tab1 a.active 13.103 +/* { background-color: #7df; color: #000 }*/ 13.104 + { background-color: #27C9FF; color: #000 } 13.105 + 13.106 +.tab1, 13.107 +.tab1 a { background-color: #444; color: #fff; } 13.108 + 13.109 + 13.110 +.box { background-color: #fff; } 13.111 + 13.112 +.box { color: #000; } 13.113 + 13.114 +.box a { color: #068; } 13.115 + 13.116 +.box .row.head, 13.117 +.box .row.head2, 13.118 +.box .row.active 13.119 + { background-color: #D7F5FF;} 13.120 + 13.121 +.box .row.head .col.head 13.122 + { color: #444; } 13.123 + 13.124 +.draft .authors, 13.125 +.initiative .authors 13.126 + { color: #777; } 13.127 + 13.128 +.member_content 13.129 + { background-color: #fec; } 13.130 13.131 /* 13.132 - Main top navigation 13.133 -*/ 13.134 + * Borders 13.135 + */ 13.136 + 13.137 +.box .row 13.138 + { border-bottom: 1px solid #ccc; } 13.139 +.box .row.head 13.140 + { border-bottom-color: #777; } 13.141 +.box .row.subhead 13.142 + { border-bottom-color: #777; } 13.143 +.box .row:last-child 13.144 + { border-bottom: none; } 13.145 + 13.146 +.box.issue .row.unit_name 13.147 + { border-bottom-color: #ccc; } 13.148 13.149 -.tab1 { 13.150 - background-color: #444; 13.151 - color: #000; 13.152 -} 13.153 +/* 13.154 + * Rounded corners 13.155 + */ 13.156 + 13.157 +.box { border-radius: 1ex; -moz-border-radius: 1ex; 13.158 + -webkit-box-shadow: 2px 2px 3px 0px #444; -moz-box-shadow: 2px 2px 3px 0px #444; } 13.159 13.160 -.tab1 .right { 13.161 - float: right; 13.162 +.box .row:first-child.head, 13.163 +.box .row:first-child.head2 13.164 + { border-radius: 1ex 1ex 0 0 ; } 13.165 +.box .row:last-child 13.166 + { border-radius: 0 0 1ex 1ex; } 13.167 + 13.168 +/* 13.169 + * Text Formatting 13.170 + */ 13.171 + 13.172 +body, input, select { 13.173 + font-family: sans-serif; 13.174 + font-size: 100%; 13.175 } 13.176 13.177 .tab1 a { 13.178 - float: left; 13.179 - padding: 0.5ex 0.5em 0.5ex 0.5em; 13.180 - margin-left: 0.5em; 13.181 - background-color: #444; 13.182 - color: #fff; 13.183 font-weight: bold; 13.184 text-decoration: none; 13.185 } 13.186 13.187 -.tab1 .right a { 13.188 - margin-left: 0; 13.189 - margin-right: 0.5em; 13.190 -} 13.191 - 13.192 -.tab1 a.active { 13.193 - background-color: #7df; 13.194 - color: #000; 13.195 -} 13.196 +.box a { text-decoration: none; } 13.197 13.198 -/* 13.199 - Default slot 13.200 -*/ 13.201 - 13.202 -.slot_default { 13.203 - margin: 2ex 1% 2ex 32%; 13.204 - position: relative; 13.205 - width: 67%; 13.206 -} 13.207 +.box .row .col 13.208 + { line-height: 115%; } 13.209 13.210 -.sidebar_right .slot_default { 13.211 - margin: 2ex 32% 2ex 1%; 13.212 -} 13.213 - 13.214 -/* 13.215 -Sidebar 13.216 -*/ 13.217 +.box .row.head .col.head, 13.218 +.box .row.head2 .col.head 13.219 + { font-weight: bold; } 13.220 13.221 -.slot_sidebar { 13.222 - margin: 2ex 1% 2ex 1%; 13.223 - float: left; 13.224 - width: 30%; 13.225 -} 13.226 +.box .row.subhead .col 13.227 + { font-weight: bold; } 13.228 13.229 -.sidebar_right .slot_sidebar { 13.230 - margin: 0 1% 2ex 1%; 13.231 - float: right; 13.232 - width: 30%; 13.233 -} 13.234 - 13.235 -.slot_sidebar .box { 13.236 - width: 100%; 13.237 -} 13.238 13.239 13.240 /* 13.241 - Boxes 13.242 -*/ 13.243 - 13.244 -.box a { 13.245 - text-decoration: none; 13.246 - color: #46a; 13.247 -} 13.248 - 13.249 -.box { 13.250 - /* position */ 13.251 - position: relative; 13.252 - width: 100%; 13.253 - margin-bottom: 2ex; 13.254 - 13.255 - /* border and shadow*/ 13.256 - border-radius: 1ex; 13.257 - -moz-border-radius: 1ex; 13.258 - -webkit-box-shadow: 2px 2px 3px 0px #444; 13.259 - -moz-box-shadow: 2px 2px 3px 0px #444; 13.260 - 13.261 - /* color */ 13.262 - background-color: #fff; 13.263 - color: #000; 13.264 - 13.265 -} 13.266 - 13.267 -.box .row { 13.268 - overflow: auto; 13.269 - /* position */ 13.270 - 13.271 - /* border */ 13.272 - border-bottom: 1px solid #ccc; 13.273 -} 13.274 - 13.275 -.box .row .col { 13.276 - /* position */ 13.277 - padding: 0.5ex 0.2em 0.5ex 0.2em; 13.278 - 13.279 - /* text format */ 13.280 - line-height: 115%; 13.281 -} 13.282 - 13.283 -.box .row .col.left { 13.284 - float: left; 13.285 -} 13.286 - 13.287 -.box .row .col.right { 13.288 - float: right; 13.289 -} 13.290 - 13.291 -.box .row:last-child { 13.292 - /* border */ 13.293 - border-bottom: none; 13.294 -} 13.295 - 13.296 -.box .row .col:first-child { 13.297 - /* position */ 13.298 - padding-left: 0.5em; 13.299 -} 13.300 - 13.301 -.box .row:first-child.head, 13.302 -.box .row:first-child.head2 { 13.303 - border-radius: 1ex 1ex 0 0; 13.304 -} 13.305 - 13.306 -.box .row.head { 13.307 - background-color: #fafcff; 13.308 - color: #000; 13.309 - border-bottom-color: #777; 13.310 -} 13.311 - 13.312 -.box .row:last-child { 13.313 - border-radius: 0 0 1ex 1ex; 13.314 -} 13.315 - 13.316 -.box .row.head .col.head { 13.317 - font-weight: bold; 13.318 - color: #444; 13.319 -} 13.320 - 13.321 -.box .row.head .col a { 13.322 - background-color: #fafcff; 13.323 - color: #3B6E7F; 13.324 -} 13.325 - 13.326 -.box .row.head2 { 13.327 - background-color: #fafcff; 13.328 - color: #000; 13.329 -} 13.330 - 13.331 -.box .row.head2 .col.head { 13.332 - font-weight: bold; 13.333 -} 13.334 - 13.335 -.box .row.head2 .col a { 13.336 - background-color: #fafcff; 13.337 - color: #3B6E7F; 13.338 -} 13.339 - 13.340 -.box .row.subhead .col { 13.341 - margin-top: 2ex; 13.342 - font-weight: bold; 13.343 -} 13.344 - 13.345 -.box .row.subhead { 13.346 - border-bottom-color: #777; 13.347 -} 13.348 - 13.349 -.box .row .col a { 13.350 - color: #3B6E7F; 13.351 -} 13.352 - 13.353 -.box .row.active, 13.354 -.box .row.active a { 13.355 - background-color: #DDF7FF; 13.356 -} 13.357 - 13.358 -/* Sidebar hover button */ 13.359 + * Sidebar hover button 13.360 + */ 13.361 13.362 .hoverbutton_container { 13.363 position: relative; 13.364 @@ -312,7 +274,9 @@ 13.365 } 13.366 13.367 13.368 -/* Scrolled col */ 13.369 +/* 13.370 + * Scrolled col 13.371 + */ 13.372 13.373 .box .row .col.scrolled { 13.374 padding: 0; 13.375 @@ -326,8 +290,8 @@ 13.376 } 13.377 13.378 /* 13.379 - Bars 13.380 -*/ 13.381 + * Bars 13.382 + */ 13.383 13.384 .bar { 13.385 float: right; 13.386 @@ -348,8 +312,12 @@ 13.387 } 13.388 13.389 /* 13.390 - Avatars 13.391 -*/ 13.392 + * Avatars 13.393 + */ 13.394 + 13.395 +.avatar_image { 13.396 + border-radius: 1ex; 13.397 +} 13.398 13.399 .avatars { 13.400 overflow: auto; 13.401 @@ -380,16 +348,6 @@ 13.402 margin-top: 0.3ex; 13.403 } 13.404 13.405 -.avatars .avatar.myweight { 13.406 - border-color: #f70; 13.407 - background-color: #f70; 13.408 -} 13.409 - 13.410 -.avatars .avatar.autoreject { 13.411 - border-color: #f00; 13.412 - background-color: #f00; 13.413 -} 13.414 - 13.415 .avatars.small .avatar img { 13.416 border-radius: 0.25ex; 13.417 -moz-border-radius: 0.25ex; 13.418 @@ -436,8 +394,8 @@ 13.419 } 13.420 13.421 /* 13.422 - Area 13.423 -*/ 13.424 + * Area 13.425 + */ 13.426 13.427 .area .name { 13.428 color: #444; 13.429 @@ -452,7 +410,9 @@ 13.430 margin-top: -3px; 13.431 } 13.432 13.433 -/* Initiatives */ 13.434 +/* 13.435 + * Initiative 13.436 + */ 13.437 13.438 .initiative .name, 13.439 .initiative a.name { 13.440 @@ -461,29 +421,20 @@ 13.441 13.442 .draft .authors, 13.443 .initiative .authors { 13.444 - /* color */ 13.445 - color: #777; 13.446 - 13.447 /* text format */ 13.448 font-size: 80%; 13.449 font-style: italic; 13.450 } 13.451 13.452 -.draft .authors a, 13.453 -.initiative .authors a { 13.454 - /* color */ 13.455 -} 13.456 - 13.457 .drafts .draft .created { 13.458 font-weight: bold; 13.459 } 13.460 13.461 -.box.issue .row.unit_name { 13.462 - border-bottom-color: #ccc; 13.463 -} 13.464 -/* Draft */ 13.465 +/* 13.466 + * Draft 13.467 + */ 13.468 13.469 -.draft { 13.470 +.initiative .draft { 13.471 line-height: 135%; 13.472 } 13.473