liquid_feedback_frontend

changeset 274:aec9df5b4cd3

More optical enhancements and repositioning of elements
author bsw
date Sun Feb 12 12:20:19 2012 +0100 (2012-02-12)
parents 7196685f9dd7
children fc14e76afe31
files app/main/_layout/default.html app/main/area/_list.lua app/main/draft/_show.lua app/main/initiative/_details.lua app/main/initiative/_list.lua app/main/initiative/_list_element.lua app/main/initiative/_show.lua app/main/issue/_show_head.lua app/main/member/_area_list.lua app/main/member_image/_show.lua model/area.lua static/style.css
line diff
     1.1 --- a/app/main/_layout/default.html	Wed Feb 08 18:49:22 2012 +0100
     1.2 +++ b/app/main/_layout/default.html	Sun Feb 12 12:20:19 2012 +0100
     1.3 @@ -57,8 +57,11 @@
     1.4            <!-- WEBMCP SLOT actions -->
     1.5          </div>
     1.6        </div>
     1.7 +      <div class="initiatives_list" id="initiatives_list">
     1.8 +        <!-- WEBMCP SLOT initiatives_list -->
     1.9 +      </div>
    1.10      </div>
    1.11 -    <div class="initiative_head" id="initiative_head">
    1.12 +        <div class="initiative_head" id="initiative_head">
    1.13        <!-- WEBMCP SLOT initiative_head -->
    1.14      </div>
    1.15      <div class="support vote_info" id="support">
     2.1 --- a/app/main/area/_list.lua	Wed Feb 08 18:49:22 2012 +0100
     2.2 +++ b/app/main/area/_list.lua	Sun Feb 12 12:20:19 2012 +0100
     2.3 @@ -18,7 +18,12 @@
     2.4      :add_field({ "(SELECT COUNT(*) FROM issue LEFT JOIN direct_voter ON direct_voter.issue_id = issue.id AND direct_voter.member_id = ? WHERE issue.area_id = area.id AND issue.fully_frozen NOTNULL AND issue.closed ISNULL AND direct_voter.member_id ISNULL)", app.session.member.id }, "issues_to_vote_count")
     2.5      :left_join("membership", "_membership", { "_membership.area_id = area.id AND _membership.member_id = ?", app.session.member.id })
     2.6      :add_field("_membership.member_id NOTNULL", "is_member", { "grouped" })
     2.7 -    :add_field({ "(SELECT member.name FROM delegation LEFT JOIN member ON delegation.trustee_id = member.id WHERE delegation.scope = 'area' AND delegation.area_id = area.id AND truster_id = ?)", app.session.member.id }, "area_delegation_name")
     2.8 +    :left_join("delegation", nil, {
     2.9 +      "delegation.truster_id = ? AND delegation.area_id = area.id AND delegation.scope = 'area'", app.session.member_id
    2.10 +    })
    2.11 +    :left_join("member", nil, "member.id = delegation.trustee_id")
    2.12 +    :add_field("member.id", "trustee_member_id", { "grouped" })
    2.13 +    :add_field("member.name", "trustee_member_name", { "grouped" })
    2.14  else
    2.15    areas_selector:add_field("0", "issues_to_vote_count")
    2.16  end
    2.17 @@ -43,11 +48,19 @@
    2.18      },
    2.19      {
    2.20        content = function(record)
    2.21 -        if record.area_delegation_name then
    2.22 -          local text = _("Area delegated to '#{name}'", { name = record.area_delegation_name })
    2.23 -          ui.image{
    2.24 -            attr = { title = text, alt = text, style = "vertical-align: middle;" },
    2.25 -            static = "icons/16/link.png",
    2.26 +        if record.trustee_member_id then
    2.27 +          local trustee_member = Member:by_id(record.trustee_member_id)
    2.28 +          local text = _("Area delegated to '#{name}'", { name = record.trustee_member_name })
    2.29 +          execute.view{
    2.30 +            module = "member_image",
    2.31 +            view = "_show",
    2.32 +            params = {
    2.33 +              member = trustee_member,
    2.34 +              image_type = "avatar",
    2.35 +              show_dummy = true,
    2.36 +              class = "micro_avatar",
    2.37 +              popup_text = text
    2.38 +            }
    2.39            }
    2.40          end
    2.41        end
    2.42 @@ -218,7 +231,7 @@
    2.43      },
    2.44    }
    2.45  }
    2.46 -
    2.47 +--[[
    2.48  ui.bargraph_legend{
    2.49    width = 25,
    2.50    bars = {
    2.51 @@ -296,3 +309,4 @@
    2.52  slot.put(" ")
    2.53  slot.put(_"Cancelled")
    2.54  
    2.55 +--]]
    2.56 \ No newline at end of file
     3.1 --- a/app/main/draft/_show.lua	Wed Feb 08 18:49:22 2012 +0100
     3.2 +++ b/app/main/draft/_show.lua	Sun Feb 12 12:20:19 2012 +0100
     3.3 @@ -7,43 +7,6 @@
     3.4    readonly = true,
     3.5    content = function()
     3.6  
     3.7 -    if app.session.member_id or config.public_access == "pseudonym" then
     3.8 -      if draft.author then
     3.9 -        -- ugly workaround for getting html into a replaced string und to the user
    3.10 -        ui.container{label = _"Last author", label_attr={class="ui_field_label"}, content = function()
    3.11 -            local str = _("#{author} at #{date}",
    3.12 -                            {author = string.format('<a href="%s">%s</a>',
    3.13 -                                                    encode.url{
    3.14 -                                                      module    = "member",
    3.15 -                                                      view      = "show",
    3.16 -                                                      id        = draft.author.id,
    3.17 -                                                    },
    3.18 -                                                    encode.html(draft.author.name)),
    3.19 -                             date = encode.html(format.timestamp(draft.created))
    3.20 -                            }
    3.21 -                        )
    3.22 -            slot.put("<span>", str, "</span>")
    3.23 -          end
    3.24 -        }
    3.25 -      else
    3.26 -        text = _("#{author} at #{date}", {
    3.27 -          author = encode.html(draft.author_name),
    3.28 -          date = format.timestamp(draft.created)
    3.29 -        })
    3.30 -        ui.field.text{label = _"Last author", value = text }
    3.31 -      end
    3.32 -    else
    3.33 -      ui.field.text{
    3.34 -        label = _"Last author",
    3.35 -        value = _(
    3.36 -          "#{author} at #{date}", {
    3.37 -            author = _"[not displayed public]",
    3.38 -            date = format.timestamp(draft.created)
    3.39 -          }
    3.40 -        )
    3.41 -      }
    3.42 -    end
    3.43 -
    3.44      ui.container{
    3.45        attr = { class = "draft_content wiki" },
    3.46        content = function()
     4.1 --- a/app/main/initiative/_details.lua	Wed Feb 08 18:49:22 2012 +0100
     4.2 +++ b/app/main/initiative/_details.lua	Sun Feb 12 12:20:19 2012 +0100
     4.3 @@ -1,12 +1,12 @@
     4.4  local initiative = param.get("initiative", "table")
     4.5  
     4.6 +ui.container{ content = _"Initiative details" }
     4.7 +
     4.8  ui.form{
     4.9    attr = { class = "vertical" },
    4.10    record = initiative,
    4.11    readonly = true,
    4.12    content = function()
    4.13 -    local policy = initiative.issue.policy
    4.14 -    ui.field.text{ label = _"Issue policy", value = initiative.issue.policy.name }
    4.15      ui.field.text{
    4.16        label = _"Created at",
    4.17        value = tostring(initiative.created)
    4.18 @@ -17,17 +17,10 @@
    4.19           value = format.timestamp(initiative.revoked)
    4.20         }
    4.21      end
    4.22 -    ui.field.text{
    4.23 -      label   = _"Initiative quorum",
    4.24 -      value = format.percentage(policy.initiative_quorum_num / policy.initiative_quorum_den)
    4.25 -    }
    4.26 -    if initiative.issue.population then
    4.27 -      ui.field.text{
    4.28 -        label   = _"Currently required",
    4.29 -        value = math.ceil(initiative.issue.population * (policy.initiative_quorum_num / policy.initiative_quorum_den)),
    4.30 -      }
    4.31 -    end
    4.32 -  -- ui.field.date{ label = _"Revoked at", name = "revoked" }
    4.33      ui.field.boolean{ label = _"Admitted", name = "admitted" }
    4.34    end
    4.35  }
    4.36 +
    4.37 +ui.container{ content = _"Issue details" }
    4.38 +
    4.39 +execute.view{ module = "issue", view = "_details", params = { issue = initiative.issue } }
    4.40 \ No newline at end of file
     5.1 --- a/app/main/initiative/_list.lua	Wed Feb 08 18:49:22 2012 +0100
     5.2 +++ b/app/main/initiative/_list.lua	Sun Feb 12 12:20:19 2012 +0100
     5.3 @@ -4,6 +4,8 @@
     5.4  
     5.5  local initiatives_selector = param.get("initiatives_selector", "table")
     5.6  
     5.7 +local highlight_initiative = param.get("highlight_initiative", "table")
     5.8 +
     5.9  initiatives_selector
    5.10    :join("issue", nil, "issue.id = initiative.issue_id")
    5.11  
    5.12 @@ -150,7 +152,7 @@
    5.13      if issue.ranks_available then
    5.14        initiatives_selector:add_order_by("initiative.rank, initiative.admitted DESC, vote_ratio(initiative.positive_votes, initiative.negative_votes) DESC, initiative.id")
    5.15      else
    5.16 -      initiatives_selector:add_order_by("CASE WHEN issue.population = 0 THEN 0 ELSE initiative.supporter_count::float / issue.population::float END DESC, initiative.id")
    5.17 +      initiatives_selector:add_order_by("CASE WHEN issue.population = 0 OR initiative.supporter_count = 0 OR initiative.supporter_count ISNULL THEN 0 ELSE initiative.supporter_count::float / issue.population::float END DESC, initiative.id")
    5.18      end
    5.19    end
    5.20  
    5.21 @@ -162,9 +164,23 @@
    5.22        ui.paginate{
    5.23          name = issue and "issue_" .. tostring(issue.id) .. "_page" or nil,
    5.24          selector = initiatives_selector,
    5.25 -        per_page = param.get("per_page", atom.number),
    5.26 +        per_page = param.get("per_page", atom.number) or limit,
    5.27          content = function()
    5.28            local initiatives = initiatives_selector:exec()
    5.29 +          if highlight_initiative then
    5.30 +            local highlight_initiative_found
    5.31 +            for i, initiative in ipairs(initiatives) do
    5.32 +              if initiative.id == highlight_initiative.id then
    5.33 +                highhighlight_initiative_found = true
    5.34 +              end
    5.35 +            end
    5.36 +            if not highhighlight_initiative_found then
    5.37 +              initiatives[#initiatives+1] = highlight_initiative
    5.38 +              if more_initiatives_count then
    5.39 +                more_initiatives_count = more_initiatives_count - 1
    5.40 +              end
    5.41 +            end
    5.42 +          end
    5.43            for i, initiative in ipairs(initiatives) do
    5.44              local expanded = config.user_tab_mode == "accordeon_all_expanded" and expandable or
    5.45                show_for_initiative and initiative.id == show_for_initiative.id
    5.46 @@ -176,6 +192,7 @@
    5.47                view = "_list_element",
    5.48                params = {
    5.49                  initiative = initiative,
    5.50 +                selected = highlight_initiative and highlight_initiative.id == initiative.id or nil,
    5.51                  expanded = expanded,
    5.52                  expandable = expandable
    5.53                }
    5.54 @@ -187,9 +204,15 @@
    5.55    }
    5.56  
    5.57    if more_initiatives_count then
    5.58 +    local text
    5.59 +    if more_initiatives_count == 1 then
    5.60 +      text = _("and one more initiative")
    5.61 +    else
    5.62 +      text = _("and #{count} more initiatives", { count = more_initiatives_count })
    5.63 +    end
    5.64      ui.link{
    5.65 -      attr = { style = "font-size: 75%; font-style: italic;" },
    5.66 -      content = _("and #{count} more initiatives", { count = more_initiatives_count }),
    5.67 +      attr = { class = "more_initiatives_link" },
    5.68 +      content = text,
    5.69        module = "issue",
    5.70        view = "show",
    5.71        id = issue.id,
     6.1 --- a/app/main/initiative/_list_element.lua	Wed Feb 08 18:49:22 2012 +0100
     6.2 +++ b/app/main/initiative/_list_element.lua	Sun Feb 12 12:20:19 2012 +0100
     6.3 @@ -1,4 +1,5 @@
     6.4  local initiative = param.get("initiative", "table")
     6.5 +local selected = param.get("selected", atom.boolean)
     6.6  local expanded = param.get("expanded", atom.boolean)
     6.7  local expandable = param.get("expandable", atom.boolean)
     6.8  
     6.9 @@ -127,10 +128,19 @@
    6.10              {
    6.11                field_attr = { style = "padding: 0;"},
    6.12                content = function()
    6.13 -                local link_class
    6.14 +                local link_class = "initiative_link"
    6.15                  if initiative.revoked then
    6.16                    link_class = "revoked"
    6.17                  end
    6.18 +                if selected then
    6.19 +                  link_class = link_class .. " selected"
    6.20 +                end
    6.21 +                if initiative.is_supporter then
    6.22 +                  link_class = link_class .. " supported"
    6.23 +                end
    6.24 +                if initiative.is_potential_supporter then
    6.25 +                  link_class = link_class .. " potentially_supported"
    6.26 +                end
    6.27                  ui.link{
    6.28                    attr = { id = link_name, class = link_class },
    6.29                    content = function()
    6.30 @@ -140,6 +150,7 @@
    6.31                      else
    6.32                        name = encode.html(initiative.shortened_name)
    6.33                      end
    6.34 +                    ui.tag{ content = "i" .. initiative.id .. ": " }
    6.35                      slot.put(name)
    6.36                    end,
    6.37                    module  = module,
    6.38 @@ -148,27 +159,6 @@
    6.39                    params  = params,
    6.40                  }
    6.41      
    6.42 -                if initiative.issue.state == "new" then
    6.43 -                  ui.image{
    6.44 -                    static = "icons/16/new.png"
    6.45 -                  }
    6.46 -                end
    6.47 -                if initiative.is_supporter then
    6.48 -                  slot.put("&nbsp;")
    6.49 -                  local label = _"You are supporting this initiative"
    6.50 -                  ui.image{
    6.51 -                    attr = { alt = label, title = label },
    6.52 -                    static = "icons/16/thumb_up_green.png"
    6.53 -                  }
    6.54 -                end
    6.55 -                if initiative.is_potential_supporter then
    6.56 -                  slot.put("&nbsp;")
    6.57 -                  local label = _"You are potential supporter of this initiative"
    6.58 -                  ui.image{
    6.59 -                    attr = { alt = label, title = label },
    6.60 -                    static = "icons/16/thumb_up.png"
    6.61 -                  }
    6.62 -                end
    6.63                  if initiative.is_initiator then
    6.64                    slot.put("&nbsp;")
    6.65                    local label = _"You are initiator of this initiative"
     7.1 --- a/app/main/initiative/_show.lua	Wed Feb 08 18:49:22 2012 +0100
     7.2 +++ b/app/main/initiative/_show.lua	Sun Feb 12 12:20:19 2012 +0100
     7.3 @@ -10,6 +10,20 @@
     7.4  
     7.5  local initiators = initiators_members_selector:exec()
     7.6  
     7.7 +
     7.8 +local initiatives_selector = initiative.issue:get_reference_selector("initiatives")
     7.9 +slot.select("initiatives_list", function()
    7.10 +  execute.view{
    7.11 +    module = "initiative",
    7.12 +    view = "_list",
    7.13 +    params = {
    7.14 +      issue = initiative.issue,
    7.15 +      initiatives_selector = initiatives_selector,
    7.16 +      no_sort = true, highlight_initiative = initiative, limit = 3
    7.17 +    }
    7.18 +  }
    7.19 +end)
    7.20 +
    7.21  slot.select("initiative_head", function()
    7.22  
    7.23    ui.container{
    7.24 @@ -32,8 +46,8 @@
    7.25            module = "member", view = "show", id = initiator.id
    7.26          }
    7.27        end
    7.28 -    end
    7.29 -  }
    7.30 +   end
    7.31 +   }
    7.32  
    7.33    if initiator and initiator.accepted and not initiative.issue.fully_frozen and not initiative.issue.closed and not initiative.revoked then
    7.34      slot.put(" &middot; ")
     8.1 --- a/app/main/issue/_show_head.lua	Wed Feb 08 18:49:22 2012 +0100
     8.2 +++ b/app/main/issue/_show_head.lua	Sun Feb 12 12:20:19 2012 +0100
     8.3 @@ -46,19 +46,6 @@
     8.4      tag = "div",
     8.5      content = function()
     8.6      
     8.7 -      local initiative_count = issue:get_reference_selector("initiatives"):count()
     8.8 -      local text
     8.9 -      if initiative_count == 1 then
    8.10 -        text = _("1 initiative", { count = initiative_count })
    8.11 -      else
    8.12 -        text = _("#{count} initiatives", { count = initiative_count })
    8.13 -      end
    8.14 -      ui.link{
    8.15 -        text = text,
    8.16 -        module = "issue", view = "show", id = issue.id
    8.17 -      }
    8.18 -      
    8.19 -      slot.put(" &middot; ")
    8.20        ui.link{
    8.21          text = issue.policy.name,
    8.22          module = "policy",
    8.23 @@ -74,10 +61,6 @@
    8.24          ui.tag{ content = _("#{time_left} left", { time_left = issue.state_time_left }) }
    8.25        end
    8.26  
    8.27 -      if issue.next_states_names then
    8.28 -        slot.put(" &middot; ")
    8.29 -        ui.tag{ content = _("Next state: #{state}", { state = issue.next_states_names }) }
    8.30 -      end
    8.31      end
    8.32    }
    8.33  
     9.1 --- a/app/main/member/_area_list.lua	Wed Feb 08 18:49:22 2012 +0100
     9.2 +++ b/app/main/member/_area_list.lua	Sun Feb 12 12:20:19 2012 +0100
     9.3 @@ -6,13 +6,25 @@
     9.4      :add_where{ "area.unit_id = ?", unit.id }
     9.5      :add_order_by("area.member_weight DESC")
     9.6    ui.link{
     9.7 +    attr = { class = "heading" },
     9.8      text = unit.name,
     9.9      module = "area", view = "list", params = { unit_id = unit.id }
    9.10    }
    9.11    
    9.12 -  execute.view{
    9.13 -    module = "area", view = "_list",
    9.14 -    params = { areas_selector = areas_selector },
    9.15 -  }
    9.16 +  if areas_selector:count() > 0 then
    9.17 +    execute.view{
    9.18 +      module = "area", view = "_list",
    9.19 +      params = { areas_selector = areas_selector },
    9.20 +    }
    9.21 +  else
    9.22 +    ui.tag{ content = _"You have voting privileges for this unit, but you are not member of any of its areas." }
    9.23 +    slot.put(" ")
    9.24 +    ui.link{
    9.25 +      text = _"Show all areas of this unit",
    9.26 +      module = "area", view = "list", params = { unit_id = unit.id }
    9.27 +    }
    9.28 +   end
    9.29 +  slot.put("<br />")
    9.30 +  
    9.31  end
    9.32  
    10.1 --- a/app/main/member_image/_show.lua	Wed Feb 08 18:49:22 2012 +0100
    10.2 +++ b/app/main/member_image/_show.lua	Sun Feb 12 12:20:19 2012 +0100
    10.3 @@ -1,6 +1,14 @@
    10.4  local member = param.get("member", "table")
    10.5  local image_type = param.get("image_type")
    10.6  local show_dummy = param.get("show_dummy", atom.boolean)
    10.7 +local class = param.get("class")
    10.8 +local popup_text = param.get("popup_text")
    10.9 +
   10.10 +if class then
   10.11 +  class = " " .. class
   10.12 +else
   10.13 +  class = ""
   10.14 +end
   10.15  
   10.16  local image = member:get_reference_selector("images")
   10.17    :add_where{ "image_type = ?", image_type }
   10.18 @@ -10,18 +18,18 @@
   10.19  if image or show_dummy then
   10.20    if config.fastpath_url_func then
   10.21      ui.image{
   10.22 -      attr = { class = "member_image member_image_" .. image_type },
   10.23 +      attr = { title = popup_text, class = "member_image member_image_" .. image_type .. class },
   10.24        external = config.fastpath_url_func(member.id, image_type)
   10.25      }
   10.26    else
   10.27      if not image then
   10.28        ui.image{
   10.29 -        attr = { class = "member_image member_image_" .. image_type },
   10.30 +        attr = { title = popup_text, class = "member_image member_image_" .. image_type .. class },
   10.31          external = encode.url{ static = (config.member_image_default_file[image_type] or 'icons/16/lightning.png')},
   10.32        }
   10.33      else
   10.34        ui.image{
   10.35 -        attr = { class = "member_image member_image_" .. image_type },
   10.36 +        attr = { title = popup_text, class = "member_image member_image_" .. image_type .. class },
   10.37          module = "member_image",
   10.38          view = "show",
   10.39          extension = "jpg",
    11.1 --- a/model/area.lua	Wed Feb 08 18:49:22 2012 +0100
    11.2 +++ b/model/area.lua	Sun Feb 12 12:20:19 2012 +0100
    11.3 @@ -69,10 +69,10 @@
    11.4  function Area:build_selector(args)
    11.5    local selector = Area:new_selector()
    11.6    if args.active ~= nil then
    11.7 -    selector:add_where{ "active = ?", args.active }
    11.8 +    selector:add_where{ "area.active = ?", args.active }
    11.9    end
   11.10    if args.unit_id ~= nil then
   11.11 -    selector:add_where{ "unit_id = ?", args.unit_id }
   11.12 +    selector:add_where{ "area.unit_id = ?", args.unit_id }
   11.13    end
   11.14    return selector
   11.15  end
    12.1 --- a/static/style.css	Wed Feb 08 18:49:22 2012 +0100
    12.2 +++ b/static/style.css	Sun Feb 12 12:20:19 2012 +0100
    12.3 @@ -15,7 +15,7 @@
    12.4  }
    12.5  
    12.6  .area_list {
    12.7 -  line-height: 170%;
    12.8 +  line-height: 140%;
    12.9  }
   12.10  
   12.11  body, a {
   12.12 @@ -116,7 +116,7 @@
   12.13    background-color: #444;
   12.14    color: #fff;
   12.15    font-size: 90%;
   12.16 -  line-height: 140%;
   12.17 +  line-height: 100%;
   12.18    padding-left: 10px;
   12.19  }
   12.20  
   12.21 @@ -135,7 +135,7 @@
   12.22  
   12.23  .navigation,
   12.24  .logout_button {
   12.25 -  line-height: 250%;
   12.26 +  line-height: 200%;
   12.27  }
   12.28  
   12.29  .navigation img,
   12.30 @@ -195,17 +195,18 @@
   12.31   */
   12.32  
   12.33  .title_bar {
   12.34 -  padding-top: 2ex;
   12.35    padding-bottom: 1ex;
   12.36    xbackground-color: #def;
   12.37 +  text-shadow: #fff 0px 0px 3px;
   12.38 +}
   12.39 +
   12.40 +.title_bar_content {
   12.41 +  padding-left: 1em;
   12.42 +  padding-top: 1.5ex;
   12.43    background: -webkit-gradient(linear, left top, left bottom, 
   12.44      /*color-stop(0%,#abd3ee), color-stop(100%,#ffffff)*/
   12.45      color-stop(0%,#ddd), color-stop(100%,#fff)                           
   12.46 -  ); 
   12.47 -}
   12.48 -
   12.49 -.title_bar_content {
   12.50 -  margin-left: 1em;
   12.51 +  );
   12.52  }
   12.53  
   12.54  .path {
   12.55 @@ -258,6 +259,12 @@
   12.56    margin-right: 0.5em;
   12.57  }
   12.58  
   12.59 +.micro_avatar {
   12.60 +  width: 24px;
   12.61 +  height: 24px;
   12.62 +  border-radius: 4px;
   12.63 +}
   12.64 +
   12.65  .actions {
   12.66    font-size: 75%;
   12.67    line-height: 220%;
   12.68 @@ -267,9 +274,6 @@
   12.69    display: inline;
   12.70  }
   12.71  
   12.72 -.actions {
   12.73 -}
   12.74 -
   12.75  .actions a {
   12.76    padding: 1px 0.5em 1px 0.0em;
   12.77    margin-right: 1em;
   12.78 @@ -278,12 +282,13 @@
   12.79  
   12.80  
   12.81  .slot_initiative_head  {
   12.82 -  xbackground: -webkit-gradient(linear, left top, left bottom, 
   12.83 +  background: -webkit-gradient(linear, left top, left bottom, 
   12.84      /*color-stop(0%,#AFEFB9), color-stop(100%,#ffffff)                           */
   12.85      color-stop(0%,#ddd), color-stop(100%,#fff)                           
   12.86    ); 
   12.87    padding-left: 1em;
   12.88    padding-top: 2ex;
   12.89 +  text-shadow: #fff 0px 0px 3px;
   12.90  }
   12.91  
   12.92  .initiative_name {
   12.93 @@ -366,25 +371,25 @@
   12.94  .interest .head_active,
   12.95  .slot_support .head_potential_supporter{
   12.96    background-color: #fec;
   12.97 -  border: 1px solid #b96;
   12.98 +  box-shadow: #fff 0px 0px 10px 1px;
   12.99    border-radius: 5px;
  12.100  }
  12.101  
  12.102  .slot_support .head_supporter {
  12.103    background-color: #dfc;
  12.104 -  border: 1px solid #8b8;
  12.105 +  box-shadow: #fff 0px 0px 10px 1px;
  12.106    border-radius: 5px;
  12.107  }
  12.108  
  12.109  .slot_support .head_initiator {
  12.110    background-color: #eee;
  12.111 -  border: 1px solid #999;
  12.112 +  box-shadow: #fff 0px 0px 10px 1px;
  12.113    border-radius: 5px;
  12.114  }
  12.115  
  12.116  .delegation .head_active {
  12.117    background-color: #ddf;
  12.118 -  border: 1px solid #88b;
  12.119 +  box-shadow: #fff 0px 0px 10px 1px;
  12.120    border-radius: 5px;
  12.121  }
  12.122  
  12.123 @@ -801,7 +806,6 @@
  12.124  
  12.125  th {
  12.126    text-align: left;
  12.127 -  border-bottom: 1px solid #000;
  12.128  }
  12.129  
  12.130  tr:hover td {
  12.131 @@ -907,24 +911,24 @@
  12.132  
  12.133  .issues .issue {
  12.134    xborder: 1px solid #ccc;
  12.135 -  background: -webkit-gradient(linear, left top, left bottom,
  12.136 -    color-stop(0%,#e7e7e7), color-stop(33%, #f7f7f7), color-stop(100%,#fff));
  12.137    overflow: hidden;
  12.138    margin-bottom: 2ex;
  12.139    border-radius: 8px;
  12.140  }
  12.141  
  12.142 -.issues .issue.interested {
  12.143 -  background: -webkit-gradient(linear, left top, left bottom,
  12.144 -    color-stop(0%,#eec), color-stop(25%, #ffe), color-stop(100%,#fff));
  12.145 -}
  12.146 -
  12.147  .issues .issue .issue_info {
  12.148    xfloat: left;
  12.149    xwidth: 25%;
  12.150    padding: 1ex;
  12.151    line-height: 140%;
  12.152    xoverflow: hidden;
  12.153 +  background: -webkit-gradient(linear, left top, left bottom,
  12.154 +    color-stop(0%,#e7e7e7), color-stop(33%, #f7f7f7), color-stop(66%,#fff));
  12.155 +}
  12.156 +
  12.157 +.issues .issue.interested .issue_info{
  12.158 +  background: -webkit-gradient(linear, left top, left bottom,
  12.159 +    color-stop(0%,#FFEECC), color-stop(33%, #FFF7E6), color-stop(66%,#fff));
  12.160  }
  12.161  
  12.162  .issues .issue .issue_info .issue_id {
  12.163 @@ -939,11 +943,36 @@
  12.164    font-weight: bold;
  12.165  }
  12.166  
  12.167 +.more_initiatives_link {
  12.168 +  margin-left: 158px;
  12.169 +  font-style: italic;
  12.170 +}
  12.171 +
  12.172  .issues tr tr {
  12.173    border: none;
  12.174    background: none;
  12.175  }
  12.176  
  12.177 +.initiative_link {
  12.178 +  padding: 0.5ex 0.5em;
  12.179 +}
  12.180 +
  12.181 +.initiative_link.selected {
  12.182 +  font-weight: bold;
  12.183 +}
  12.184 +
  12.185 +.initiative_link.supported {
  12.186 +  background-color: #C9FFD1;
  12.187 +  border-radius: 5px;
  12.188 +  background: -webkit-radial-gradient(center, ellipse cover, #c9ffd1 0%,#fff 100%); /* Chrome10+,Safari5.1+ */
  12.189 +}
  12.190 +
  12.191 +.initiative_link.potentially_supported {
  12.192 +  background-color: #FFEECC;
  12.193 +  border-radius: 5px;
  12.194 +  background: -webkit-radial-gradient(center, ellipse cover, #ffeecc 0%,#fff 100%); /* Chrome10+,Safari5.1+ */
  12.195 +}
  12.196 +
  12.197  .lang_chooser {
  12.198    float: right;
  12.199    margin-right: 0.5em;
  12.200 @@ -1211,6 +1240,7 @@
  12.201  }
  12.202  
  12.203  .heading {
  12.204 +  display: block;
  12.205    font-size: 120%;
  12.206    font-weight: bold;
  12.207    margin-top: 2ex;

Impressum / About Us