liquid_feedback_frontend
changeset 619:7dc5ab12bfe3
Optical enhancements :)
author | bsw |
---|---|
date | Mon Jun 25 14:40:34 2012 +0200 (2012-06-25) |
parents | 56147a5153f6 |
children | 496bed1b59b8 |
files | app/main/area/_head.lua app/main/area/_list.lua app/main/area/_list_entry.lua app/main/area/show_tab.lua app/main/event/_list.lua app/main/index/_index_member.lua app/main/index/_member_home.lua app/main/index/initiator_invites.lua app/main/member/_event_list.lua static/style.css |
line diff
1.1 --- a/app/main/area/_head.lua Mon Jun 25 01:17:27 2012 +0200 1.2 +++ b/app/main/area/_head.lua Mon Jun 25 14:40:34 2012 +0200 1.3 @@ -4,7 +4,9 @@ 1.4 1.5 area:load_delegation_info_once_for_member_id(app.session.member_id) 1.6 1.7 -execute.view{ module = "unit", view = "_head", params = { unit = area.unit } } 1.8 +if not param.get("hide_unit", atom.boolean) then 1.9 + execute.view{ module = "unit", view = "_head", params = { unit = area.unit } } 1.10 +end 1.11 1.12 ui.container{ attr = { class = "area_head" }, content = function() 1.13
2.1 --- a/app/main/area/_list.lua Mon Jun 25 01:17:27 2012 +0200 2.2 +++ b/app/main/area/_list.lua Mon Jun 25 14:40:34 2012 +0200 2.3 @@ -29,13 +29,9 @@ 2.4 areas_selector:add_field("0", "issues_to_vote_count") 2.5 end 2.6 2.7 -slot.put("<br />") 2.8 +ui.container{ attr = { class = "area_list" }, content = function() 2.9 + for i, area in ipairs(areas_selector:exec()) do 2.10 + execute.view { module = "area", view = "_list_entry", params = { area = area } } 2.11 + end 2.12 +end } 2.13 2.14 -for i, area in ipairs(areas_selector:exec()) do 2.15 - 2.16 - ui.container{ attr = { class = "area_list" }, content = function() 2.17 - execute.view { module = "area", view = "_list_entry", params = { area = area } } 2.18 - end } 2.19 - 2.20 -end 2.21 -
3.1 --- a/app/main/area/_list_entry.lua Mon Jun 25 01:17:27 2012 +0200 3.2 +++ b/app/main/area/_list_entry.lua Mon Jun 25 14:40:34 2012 +0200 3.3 @@ -1,17 +1,12 @@ 3.4 local area = param.get("area", "table") 3.5 3.6 ui.container{ attr = { class = "area" }, content = function() 3.7 - execute.view{ module = "delegation", view = "_info", params = { area = area } } 3.8 3.9 - ui.container{ attr = { class = "title" }, content = function() 3.10 - -- area name 3.11 - ui.link{ 3.12 - module = "area", view = "show", id = area.id, 3.13 - attr = { class = "area_name" }, content = area.name 3.14 - } 3.15 - end } 3.16 + execute.view{ module = "area", view = "_head", params = { area = area, hide_unit = true, show_content = true } } 3.17 3.18 ui.container{ attr = { class = "content" }, content = function() 3.19 + ui.tag{ content = _"Issues:" } 3.20 + slot.put(" ") 3.21 ui.link{ 3.22 module = "area", view = "show", id = area.id, params = { tab = "open", filter = "new" }, 3.23 text = _("#{count} new", { count = area.issues_new_count })
4.1 --- a/app/main/area/show_tab.lua Mon Jun 25 01:17:27 2012 +0200 4.2 +++ b/app/main/area/show_tab.lua Mon Jun 25 14:40:34 2012 +0200 4.3 @@ -10,6 +10,8 @@ 4.4 4.5 local members_selector = area:get_reference_selector("members"):add_where("member.active") 4.6 local delegations_selector = area:get_reference_selector("delegations") 4.7 + :join("member", "truster", "truster.id = delegation.truster_id AND truster.active") 4.8 + :join("member", "trustee", "trustee.id = delegation.trustee_id AND trustee.active") 4.9 4.10 local tabs = { 4.11 module = "area",
5.1 --- a/app/main/event/_list.lua Mon Jun 25 01:17:27 2012 +0200 5.2 +++ b/app/main/event/_list.lua Mon Jun 25 14:40:34 2012 +0200 5.3 @@ -45,23 +45,6 @@ 5.4 last_event_id = event.id 5.5 event.issue:load_everything_for_member_id(app.session.member_id) 5.6 5.7 - if event.occurrence.date ~= last_event_date then 5.8 - local days_ago_text 5.9 - if event.time_ago == 0 then 5.10 - days_ago_text = _"Today" 5.11 - elseif event.time_ago == 1 then 5.12 - days_ago_text = _"Yesterday" 5.13 - else 5.14 - days_ago_text = _("#{count} days ago", { count = event.time_ago }) 5.15 - end 5.16 - ui.container{ attr = { class = "date" }, content = function() 5.17 - ui.tag{ content = format.date(event.occurrence.date) } 5.18 - slot.put(" · ") 5.19 - ui.tag{ content = days_ago_text } 5.20 - end } 5.21 - 5.22 - last_event_date = event.occurrence.date 5.23 - end 5.24 local class = "issue" 5.25 if event.is_interested then 5.26 class = class .. " interested" 5.27 @@ -69,57 +52,70 @@ 5.28 class = class .. " interested_by_delegation" 5.29 end 5.30 5.31 - ui.container{ attr = { class = "issue_policy_info" }, content = function() 5.32 - if (app.session.member_id or config.public_access == "pseudonym") and event.member_id then 5.33 - if app.session.member_id then 5.34 - ui.link{ 5.35 - content = function() 5.36 - execute.view{ 5.37 - module = "member_image", 5.38 - view = "_show", 5.39 - params = { 5.40 - member = event.member, 5.41 - image_type = "avatar", 5.42 - show_dummy = true, 5.43 - class = "micro_avatar", 5.44 - popup_text = text 5.45 - } 5.46 - } 5.47 - end, 5.48 - module = "member", view = "show", id = event.member_id 5.49 + ui.container{ attr = { class = "issue_policy_info" }, content = function() 5.50 + if (app.session.member_id or config.public_access == "pseudonym") and event.member_id then 5.51 + if app.session.member_id then 5.52 + ui.link{ 5.53 + content = function() 5.54 + execute.view{ 5.55 + module = "member_image", 5.56 + view = "_show", 5.57 + params = { 5.58 + member = event.member, 5.59 + image_type = "avatar", 5.60 + show_dummy = true, 5.61 + class = "micro_avatar", 5.62 + popup_text = text 5.63 + } 5.64 } 5.65 - slot.put(" ") 5.66 - end 5.67 - ui.link{ 5.68 - text = event.member.name, 5.69 - module = "member", view = "show", id = event.member_id 5.70 - } 5.71 - slot.put(" · ") 5.72 - end 5.73 - local event_name = event.event_name 5.74 - local event_image 5.75 - if event.event == "issue_state_changed" then 5.76 - if event.state == "discussion" then 5.77 - event_name = _"Discussion started" 5.78 - event_image = "comments.png" 5.79 - elseif event.state == "verification" then 5.80 - event_name = _"Verification started" 5.81 - event_image = "lock.png" 5.82 - elseif event.state == "voting" then 5.83 - event_name = _"Voting started" 5.84 - event_image = "email_open.png" 5.85 - else 5.86 - event_name = event.state_name 5.87 - end 5.88 - if event_image then 5.89 - ui.image{ static = "icons/16/" .. event_image } 5.90 - slot.put(" ") 5.91 - end 5.92 - end 5.93 - ui.tag{ attr = { class = "event_name" }, content = event_name } 5.94 - slot.put(" · ") 5.95 - ui.tag{ attr = { class = "time" }, content = format.time(event.occurrence) } 5.96 - end } 5.97 + end, 5.98 + module = "member", view = "show", id = event.member_id 5.99 + } 5.100 + slot.put(" ") 5.101 + end 5.102 + ui.link{ 5.103 + text = event.member.name, 5.104 + module = "member", view = "show", id = event.member_id 5.105 + } 5.106 + slot.put(" · ") 5.107 + end 5.108 + local event_name = event.event_name 5.109 + local event_image 5.110 + if event.event == "issue_state_changed" then 5.111 + if event.state == "discussion" then 5.112 + event_name = _"Discussion started" 5.113 + event_image = "comments.png" 5.114 + elseif event.state == "verification" then 5.115 + event_name = _"Verification started" 5.116 + event_image = "lock.png" 5.117 + elseif event.state == "voting" then 5.118 + event_name = _"Voting started" 5.119 + event_image = "email_open.png" 5.120 + else 5.121 + event_name = event.state_name 5.122 + end 5.123 + if event_image then 5.124 + ui.image{ static = "icons/16/" .. event_image } 5.125 + slot.put(" ") 5.126 + end 5.127 + end 5.128 + local days_ago_text 5.129 + if event.time_ago == 0 then 5.130 + days_ago_text = _("Today at #{time}", { time = format.time(event.occurrence) }) 5.131 + elseif event.time_ago == 1 then 5.132 + days_ago_text = _("Yesterday at #{time}", { time = format.time(event.occurrence) }) 5.133 + else 5.134 + days_ago_text = _("#{date} at #{time}", { date = format.date(event.occurrence.date), time = format.time(event.occurrence) }) 5.135 + end 5.136 + ui.tag{ attr = { class = "event_name" }, content = event_name } 5.137 + slot.put(" · ") 5.138 + ui.tag{ content = days_ago_text } 5.139 + if event.time_ago > 1 then 5.140 + slot.put(" (") 5.141 + ui.tag{ content = _("#{count} days ago", { count = event.time_ago }) } 5.142 + slot.put(")") 5.143 + end 5.144 + end } 5.145 5.146 ui.container{ attr = { class = class }, content = function() 5.147
6.1 --- a/app/main/index/_index_member.lua Mon Jun 25 01:17:27 2012 +0200 6.2 +++ b/app/main/index/_index_member.lua Mon Jun 25 14:40:34 2012 +0200 6.3 @@ -60,5 +60,10 @@ 6.4 params = { members_selector = Member:new_selector():add_where("active") } 6.5 } 6.6 6.7 +if not param.get("tab") then 6.8 + execute.view{ 6.9 + module = "index", view = "_notifications" 6.10 + } 6.11 +end 6.12 6.13 ui.tabs(tabs)
7.1 --- a/app/main/index/_member_home.lua Mon Jun 25 01:17:27 2012 +0200 7.2 +++ b/app/main/index/_member_home.lua Mon Jun 25 14:40:34 2012 +0200 7.3 @@ -3,10 +3,7 @@ 7.4 local filter_unit = param.get_all_cgi()["filter_unit"] or "my_areas" 7.5 7.6 if not for_member then 7.7 - execute.view{ 7.8 - module = "index", view = "_notifications" 7.9 - } 7.10 - 7.11 + 7.12 ui.container{ attr = { class = "ui_filter" }, content = function() 7.13 ui.container{ attr = { class = "ui_filter_head" }, content = function() 7.14 7.15 @@ -35,8 +32,6 @@ 7.16 end } 7.17 end 7.18 7.19 - slot.put("<br />") 7.20 - 7.21 if not for_member then 7.22 if filter_unit == "global" then 7.23 execute.view{ module = "unit", view = "_list" } 7.24 @@ -76,15 +71,40 @@ 7.25 7.26 local area_count = areas_selector:count() 7.27 7.28 - ui.container{ attr = { class = "area_list" }, content = function() 7.29 - ui.container{ attr = { class = "unit_head" }, content = function() 7.30 - ui.link{ 7.31 - text = unit.name, 7.32 - module = "unit", view = "show", id = unit.id 7.33 - } 7.34 + local max_area_count = Area:new_selector() 7.35 + :add_where{ "area.unit_id = ?", unit.id } 7.36 + :add_where{ "area.active" } 7.37 + :count() 7.38 + local more_area_count = max_area_count - area_count 7.39 + local delegated_count = Area:new_selector() 7.40 + :add_where{ "area.unit_id = ?", unit.id } 7.41 + :add_where{ "area.active" } 7.42 + :left_join("membership", nil, { "membership.area_id = area.id AND membership.member_id = ?", member.id } ) 7.43 + :add_where{ "membership.member_id ISNULL" } 7.44 + :join("delegation", nil, { "delegation.area_id = area.id AND delegation.truster_id = ?", member.id } ) 7.45 + :add_where{ "delegation.trustee_id NOTNULL" } 7.46 + :count() 7.47 7.48 - execute.view{ module = "delegation", view = "_info", params = { unit = unit } } 7.49 - end } 7.50 + local more_area_text 7.51 + if area_count == 0 and more_area_count == 1 then 7.52 + more_area_text = _("You are not participating in the only area of the unit") 7.53 + elseif area_count == 0 and more_area_count > 0 then 7.54 + more_area_text = _("You are not participating in any of the #{count} areas in this unit", { count = more_area_count }) 7.55 + elseif area_count > 0 and more_area_count == 1 then 7.56 + more_area_text = _("One more area in this unit") 7.57 + elseif area_count > 0 and more_area_count > 0 then 7.58 + more_area_text = _("#{count} more areas in this unit", { count = more_area_count }) 7.59 + end 7.60 + local delegated_text 7.61 + if delegated_count == 1 then 7.62 + delegated_text = _("One of them have an area delegation set", { count = delegated_count }) 7.63 + elseif delegated_count > 0 then 7.64 + delegated_text = _("#{count} of them have an area delegation set", { count = delegated_count }) 7.65 + end 7.66 + 7.67 + ui.container{ attr = { class = "area_list" }, content = function() 7.68 + 7.69 + execute.view{ module = "unit", view = "_head", params = { unit = unit, show_content = true } } 7.70 7.71 if area_count > 0 then 7.72 local areas = areas_selector:exec() 7.73 @@ -95,57 +115,23 @@ 7.74 } 7.75 } 7.76 end 7.77 - elseif member:has_voting_right_for_unit_id(unit.id) then 7.78 + end 7.79 + 7.80 + if area_count == 0 and member:has_voting_right_for_unit_id(unit.id) or 7.81 + more_area_count > 0 then 7.82 + 7.83 ui.container{ attr = { class = "area" }, content = function() 7.84 ui.container{ attr = { class = "content" }, content = function() 7.85 - slot.put("<br />") 7.86 - if for_member then 7.87 - ui.tag{ content = _"This member has voting privileges for this unit, but you ist not member of any of its areas." } 7.88 - else 7.89 - ui.tag{ content = _"You have voting privileges for this unit, but you are not member of any of its areas." } 7.90 + if more_area_text then 7.91 + ui.link{ module = "unit", view = "show", id = unit.id, text = more_area_text } 7.92 + end 7.93 + if delegated_text then 7.94 + slot.put(" · ") 7.95 + ui.tag{ content = delegated_text } 7.96 end 7.97 end } 7.98 end } 7.99 end 7.100 - local max_area_count = Area:new_selector() 7.101 - :add_where{ "area.unit_id = ?", unit.id } 7.102 - :add_where{ "area.active" } 7.103 - :count() 7.104 - local more_area_count = max_area_count - area_count 7.105 - local delegated_count = Area:new_selector() 7.106 - :add_where{ "area.unit_id = ?", unit.id } 7.107 - :add_where{ "area.active" } 7.108 - :left_join("membership", nil, { "membership.area_id = area.id AND membership.member_id = ?", member.id } ) 7.109 - :add_where{ "membership.member_id ISNULL" } 7.110 - :join("delegation", nil, { "delegation.area_id = area.id AND delegation.truster_id = ?", member.id } ) 7.111 - :add_where{ "delegation.trustee_id NOTNULL" } 7.112 - :count() 7.113 - if more_area_count > 0 then 7.114 - ui.container{ attr = { class = "area" }, content = function() 7.115 - ui.container{ attr = { class = "content" }, content = function() 7.116 - slot.put("<br />") 7.117 - local text 7.118 - if more_area_count == 1 then 7.119 - text = _("One more area in this unit") 7.120 - else 7.121 - text = _("#{count} more areas in this unit", { count = more_area_count }) 7.122 - end 7.123 - ui.link{ module = "unit", view = "show", id = unit.id, text = text } 7.124 - if delegated_count > 0 then 7.125 - slot.put(" · ") 7.126 - local text 7.127 - if delegated_count == 1 then 7.128 - text = _("One of them have an area delegation set", { count = delegated_count }) 7.129 - else 7.130 - text = _("#{count} of them have an area delegation set", { count = delegated_count }) 7.131 - end 7.132 - ui.tag{ content = text } 7.133 - end 7.134 - end } 7.135 - end } 7.136 - end 7.137 - slot.put("<br />") 7.138 - slot.put("<br />") 7.139 end } 7.140 end 7.141 end
8.1 --- a/app/main/index/initiator_invites.lua Mon Jun 25 01:17:27 2012 +0200 8.2 +++ b/app/main/index/initiator_invites.lua Mon Jun 25 14:40:34 2012 +0200 8.3 @@ -1,13 +1,8 @@ 8.4 - 8.5 +local initiatives_selector = Initiator:selector_for_invites(app.session.member_id) 8.6 8.7 -local initiatives_selector = Initiator:selector_for_invites(app.session.member_id) 8.8 +ui.title(_"Initiatives that invited you to become initiator:") 8.9 8.10 if initiatives_selector:count() > 0 then 8.11 - ui.container{ 8.12 - attr = { style = "font-weight: bold;" }, 8.13 - content = _"Initiatives that invited you to become initiator:" 8.14 - } 8.15 - 8.16 execute.view{ 8.17 module = "initiative", 8.18 view = "_list",
9.1 --- a/app/main/member/_event_list.lua Mon Jun 25 01:17:27 2012 +0200 9.2 +++ b/app/main/member/_event_list.lua Mon Jun 25 14:40:34 2012 +0200 9.3 @@ -1,25 +1,25 @@ 9.4 local member = param.get("member", "table") 9.5 local events = param.get_all_cgi()["events"] or "personal" 9.6 9.7 -ui.container{ attr = { class = "ui_filter_head" }, content = function() 9.8 +ui.container{ attr = { class = "ui_filter" }, content = function() 9.9 + ui.container{ attr = { class = "ui_filter_head" }, content = function() 9.10 9.11 - ui.link{ 9.12 - attr = { class = events == "personal" and "ui_tabs_link active" or nil }, 9.13 - text = _"My areas and issues", 9.14 - module = "index", view = "index", params = { tab = "timeline", events = "personal" } 9.15 - } 9.16 - 9.17 - slot.put(" ") 9.18 + ui.link{ 9.19 + attr = { class = events == "personal" and "ui_tabs_link active" or nil }, 9.20 + text = _"My areas and issues", 9.21 + module = "index", view = "index", params = { tab = "timeline", events = "personal" } 9.22 + } 9.23 + 9.24 + slot.put(" ") 9.25 9.26 - ui.link{ 9.27 - attr = { class = events == "global" and "active" or nil }, 9.28 - text = _"Everything", 9.29 - module = "index", view = "index", params = { tab = "timeline", events = "global" } 9.30 - } 9.31 + ui.link{ 9.32 + attr = { class = events == "global" and "active" or nil }, 9.33 + text = _"Everything", 9.34 + module = "index", view = "index", params = { tab = "timeline", events = "global" } 9.35 + } 9.36 + end } 9.37 end } 9.38 9.39 -slot.put("<br />") 9.40 - 9.41 if events == "personal" then 9.42 execute.view{ 9.43 module = "event", view = "_list"
10.1 --- a/static/style.css Mon Jun 25 01:17:27 2012 +0200 10.2 +++ b/static/style.css Mon Jun 25 14:40:34 2012 +0200 10.3 @@ -344,11 +344,6 @@ 10.4 margin-top: 1ex; 10.5 } 10.6 10.7 -.page_head .actions { 10.8 - margin-top: 0.5ex; 10.9 - margin-bottom: 1ex; 10.10 -} 10.11 - 10.12 .slot_head { 10.13 background-color: #fff; 10.14 margin: 0px 10px 2ex 10px; 10.15 @@ -364,12 +359,24 @@ 10.16 padding: 8px 10px 2px 10px; 10.17 } 10.18 10.19 +.page_head .actions, 10.20 .page_head .unit_head .content, 10.21 .page_head .area_head .content, 10.22 .issue .content, 10.23 .initiative_head .content, 10.24 +.area_list .unit_head .content, 10.25 .area_list .area .content { 10.26 - padding: 2px 10px 8px 10px; 10.27 + padding: 10px 10px 0 10px; 10.28 +} 10.29 + 10.30 +.page_head .actions:last-child, 10.31 +.page_head .unit_head .content:last-child, 10.32 +.page_head .area_head .content:last-child, 10.33 +.issue .content:last-child, 10.34 +.initiative_head .content:last-child, 10.35 +.area_list .unit_head .content:last-child, 10.36 +.area_list .area .content:last-child { 10.37 + padding: 10px 10px 10px 10px; 10.38 } 10.39 10.40 .page_head .initiative_list, 10.41 @@ -386,6 +393,7 @@ 10.42 .page_head .title, 10.43 .issue .title, 10.44 .initiative_head .title, 10.45 +.area_list .unit_head .unit_name, 10.46 .area_list .area_name { 10.47 font-weight: bold; 10.48 font-size: 120%; 10.49 @@ -407,13 +415,12 @@ 10.50 .issues .issue .content.actions a, 10.51 .area_list .area .content, 10.52 .area_list .area .content a { 10.53 - color: #777; 10.54 + color: #000; 10.55 } 10.56 10.57 -.page_head .unit_head .title, 10.58 -.page_head .area_head .title, 10.59 -.area_list .area .title, 10.60 -.issue .title { 10.61 +x.page_head .unit_head .title, 10.62 +x.page_head .area_head .title, 10.63 +x.issue .title { 10.64 background-color: #eee; 10.65 background-image: linear-gradient(top, #eee 0%, #f7f7f7 10%, #fff 100%); 10.66 background-image: -o-linear-gradient(top, #eee 0%, #f7f7f7 10%, #fff 100%); 10.67 @@ -422,6 +429,33 @@ 10.68 background-image: -ms-linear-gradient(top, #eee 0%, #f7f7f7 10%, #fff 100%); 10.69 } 10.70 10.71 +.unit_head { 10.72 + background-color: #cdf; 10.73 + background-image: -webkit-linear-gradient(top, #abf 0%, #cdf 20%, #f0f7ff 100%); 10.74 +} 10.75 + 10.76 +.area_head { 10.77 + background-color: #def; 10.78 + background-image: -webkit-linear-gradient(top, #bef 0%, #def 20%, #f7faff 100%); 10.79 +} 10.80 + 10.81 +.issue { 10.82 + background-color: #f0f7ff; 10.83 + background-image: -webkit-linear-gradient(top, #f0faff 0%, #f0f7ff 20%, #fff 100%); 10.84 +} 10.85 + 10.86 +.issue .initiative_list { 10.87 + background: #fff; 10.88 +} 10.89 + 10.90 +x { 10.91 + background-image: linear-gradient(top, #eee 0%, #f7f7f7 10%, #fff 100%); 10.92 + background-image: -o-linear-gradient(top, #eee 0%, #f7f7f7 10%, #fff 100%); 10.93 + background-image: -moz-linear-gradient(top, #eee 0%, #f7f7f7 10%, #fff 100%); 10.94 + background-image: -webkit-linear-gradient(top, #dde 0%, #d7d7e7 10%, #fff 100%); 10.95 + background-image: -ms-linear-gradient(top, #eee 0%, #f7f7f7 10%, #fff 100%); 10.96 +} 10.97 + 10.98 .page_head .area_head .title, 10.99 .page_head .issue .title { 10.100 border-top: 1px solid #ddd; 10.101 @@ -491,23 +525,25 @@ 10.102 * ui.tab 10.103 */ 10.104 .ui_tabs { 10.105 - margin: 10px 0px; 10.106 + margin: 20px 0px; 10.107 } 10.108 10.109 .ui_tabs_links a { 10.110 - padding: 0.75ex 0.6em; 10.111 + padding: 1ex 1em; 10.112 line-height: 225%; 10.113 background-color: #f7f7f7; 10.114 + background-color: #444; 10.115 + background-image: -webkit-linear-gradient(top, #000 0%, #444 70%, #777 90%, #888 100%); 10.116 + color: #fff; 10.117 white-space: nowrap; 10.118 border-radius: 5px; 10.119 - margin-right: 5px; 10.120 + margin-right: 2px; 10.121 font-weight: bold; 10.122 } 10.123 10.124 .ui_tabs_links a:hover, 10.125 .ui_tabs_links a.selected { 10.126 - background-color: #444; 10.127 - color: #fff; 10.128 + box-shadow: 0px 0px 3px 3px #fc0; 10.129 text-decoration: none; 10.130 } 10.131 10.132 @@ -518,29 +554,29 @@ 10.133 10.134 .ui_filter { 10.135 overflow: auto; 10.136 + margin: 2ex 0; 10.137 } 10.138 10.139 .ui_filter_head { 10.140 color: #777; 10.141 - margin-top: 1ex; 10.142 font-size: 90%; 10.143 - font-weight: bold; 10.144 float: left; 10.145 line-height: 200%; 10.146 margin-right: 2em; 10.147 } 10.148 10.149 -.ui_filter_head a { 10.150 - color: #777; 10.151 - padding: 0.5ex; 10.152 +.ui_filter a { 10.153 + font-weight: bold; 10.154 + margin-right: 0.5em; 10.155 } 10.156 10.157 -.ui_filter_head a:hover, 10.158 + 10.159 .ui_filter_head a.active { 10.160 + text-decoration: none; 10.161 + background-color: #555; 10.162 color: #fff; 10.163 - background-color: #777; 10.164 - padding: 0.5ex; 10.165 - border-radius: 5px; 10.166 + padding: 0.5ex 0.5em; 10.167 + border-radius: 4px; 10.168 } 10.169 10.170 /************************************************************************* 10.171 @@ -591,7 +627,7 @@ 10.172 margin-top: 1ex; 10.173 background-color: #fdd; 10.174 padding: 0.5ex; 10.175 - border: 1px solid #daa; 10.176 + border: 1px solid #fbb; 10.177 } 10.178 10.179 .notifications ul { 10.180 @@ -780,17 +816,27 @@ 10.181 /************************************************************************* 10.182 * Area list 10.183 */ 10.184 - 10.185 -.area_list .unit_head { 10.186 - font-size: 120%; 10.187 - font-weight: bold; 10.188 - margin-bottom: 1ex; 10.189 +.area_list { 10.190 + border: 1px solid #abf; 10.191 + border-radius: 8px; 10.192 + margin-top: 2ex; 10.193 } 10.194 10.195 .area_list .area { 10.196 - margin-bottom: 1ex; 10.197 + border-bottom: 1px solid #cdf; 10.198 +} 10.199 + 10.200 +.area_list .unit_head { 10.201 + border-radius: 8px 8px 0 0; 10.202 } 10.203 10.204 +.area_list .area:last-child { 10.205 + border-radius: 0 0 8px 8px; 10.206 +} 10.207 + 10.208 +.area_list .area:first-child { 10.209 + border-radius: 8px 8px 0 0; 10.210 +} 10.211 10.212 10.213 /************************************************************************* 10.214 @@ -1353,14 +1399,12 @@ 10.215 10.216 /* shadows */ 10.217 10.218 -.area_list .area, 10.219 .initiative_head, 10.220 .box, 10.221 div.notifications { 10.222 border-radius: 8px; 10.223 } 10.224 10.225 -.area_list .area, 10.226 .initiative_head, 10.227 .box { 10.228 border: 1px solid #aaa; 10.229 @@ -1371,7 +1415,7 @@ 10.230 } 10.231 10.232 .slot_head, 10.233 -.area_list .area, 10.234 +.area_list, 10.235 .initiative_head, 10.236 .issues .issue, 10.237 .ui_tabs_links a, 10.238 @@ -1379,7 +1423,6 @@ 10.239 .help, 10.240 .use_terms, 10.241 .motd, 10.242 -.ui_filter a.active, 10.243 .vote_info .content, 10.244 .box, 10.245 div.notifications {