liquid_feedback_frontend

changeset 564:418b590fa9ed

Optical enhancements, cleanup
author bsw
date Tue Jun 19 22:44:18 2012 +0200 (2012-06-19)
parents 774d8804ce65
children 06a6d9b661d7
files app/main/_layout/default.html app/main/contact/list.lua app/main/index/_index_member.lua app/main/index/email_unconfirmed.lua app/main/initiative/new.lua app/main/member/developer_settings.lua app/main/member/edit.lua app/main/member/edit_images.lua app/main/member/history.lua app/main/member/settings.lua app/main/member/settings_display.lua app/main/member/settings_email.lua app/main/member/settings_login.lua app/main/member/settings_name.lua app/main/member/settings_notification.lua app/main/member/settings_password.lua app/main/member/show.lua env/ui/title.lua static/style.css
line diff
     1.1 --- a/app/main/_layout/default.html	Tue Jun 19 22:39:57 2012 +0200
     1.2 +++ b/app/main/_layout/default.html	Tue Jun 19 22:44:18 2012 +0200
     1.3 @@ -26,6 +26,9 @@
     1.4          <div class="navigation" id="navigation">
     1.5            <!-- WEBMCP SLOT navigation -->
     1.6          </div>
     1.7 +        <div class="help_hidden" id="help_hidden">
     1.8 +          <!-- WEBMCP SLOT help_hidden -->
     1.9 +        </div>
    1.10          <br style="clear: both;" />
    1.11        </div>
    1.12      </div>
    1.13 @@ -39,27 +42,8 @@
    1.14        <div class="layout_error" id="layout_error" onclick="document.getElementById('layout_error').style.display='none';">
    1.15          <!-- WEBMCP SLOT error -->
    1.16        </div>
    1.17 -      <div class="logo" id="logo">
    1.18 -        <!-- WEBMCP SLOT logo -->
    1.19 -      </div>
    1.20        <div class="page_head" id="head">
    1.21          <!-- WEBMCP SLOT head -->
    1.22 -        <div class="title" id="title">
    1.23 -          <!-- WEBMCP SLOT title -->
    1.24 -        </div>
    1.25 -        <div class="title2" id="title2">
    1.26 -          <!-- WEBMCP SLOT title2 -->
    1.27 -        </div>
    1.28 -        <div class="actions" id="actions">
    1.29 -          <div class="interest vote_info" id="interest">
    1.30 -            <!-- WEBMCP SLOT interest -->
    1.31 -          </div>
    1.32 -          <!-- WEBMCP SLOT actions -->
    1.33 -          <div style="clear: left;"></div>
    1.34 -        </div>
    1.35 -      </div>
    1.36 -      <div class="help_hidden" id="help_hidden">
    1.37 -        <!-- WEBMCP SLOT help_hidden -->
    1.38        </div>
    1.39        <div class="initiatives_list" id="initiatives_list">
    1.40          <!-- WEBMCP SLOT initiatives_list -->
     2.1 --- a/app/main/contact/list.lua	Tue Jun 19 22:39:57 2012 +0200
     2.2 +++ b/app/main/contact/list.lua	Tue Jun 19 22:44:18 2012 +0200
     2.3 @@ -3,8 +3,7 @@
     2.4    order = "name"
     2.5  }
     2.6  
     2.7 -
     2.8 -slot.put_into("title", _"Contacts")
     2.9 +ui.title(_"Contacts")
    2.10  
    2.11  
    2.12  util.help("contact.list")
     3.1 --- a/app/main/index/_index_member.lua	Tue Jun 19 22:39:57 2012 +0200
     3.2 +++ b/app/main/index/_index_member.lua	Tue Jun 19 22:44:18 2012 +0200
     3.3 @@ -28,9 +28,6 @@
     3.4    label = _"Open issues",
     3.5    module = "issue",
     3.6    view = "_list",
     3.7 -  link_params = { 
     3.8 -    filter_interest = not show_as_homepage and "issue" or nil,
     3.9 -  },
    3.10    params = {
    3.11      for_state = "open",
    3.12      issues_selector = Issue:new_selector()
     4.1 --- a/app/main/index/email_unconfirmed.lua	Tue Jun 19 22:39:57 2012 +0200
     4.2 +++ b/app/main/index/email_unconfirmed.lua	Tue Jun 19 22:44:18 2012 +0200
     4.3 @@ -7,8 +7,11 @@
     4.4      :optional_object_mode()
     4.5      :exec()
     4.6  
     4.7 -  slot.select("title", function()
     4.8 -    ui.tag{ content =  _"Notification address unconfirmed" }
     4.9 +  slot.select("head", function()
    4.10 +    ui.container{
    4.11 +      attr = { class = "title" },
    4.12 +      content = _"Notification address unconfirmed"
    4.13 +    }
    4.14    end )
    4.15  
    4.16    if current then
     5.1 --- a/app/main/initiative/new.lua	Tue Jun 19 22:39:57 2012 +0200
     5.2 +++ b/app/main/initiative/new.lua	Tue Jun 19 22:44:18 2012 +0200
     5.3 @@ -12,9 +12,9 @@
     5.4  end
     5.5  
     5.6  if issue_id then
     5.7 -  slot.put_into("title", _"Add alternative initiative to issue")
     5.8 +  ui.title(_"Add alternative initiative to issue")
     5.9  else
    5.10 -  slot.put_into("title", _"Create new issue")
    5.11 +  ui.title(_"Create new issue")
    5.12  end
    5.13  
    5.14  ui.form{
     6.1 --- a/app/main/member/developer_settings.lua	Tue Jun 19 22:39:57 2012 +0200
     6.2 +++ b/app/main/member/developer_settings.lua	Tue Jun 19 22:44:18 2012 +0200
     6.3 @@ -1,108 +1,96 @@
     6.4 -slot.put_into("title", _"Developer settings")
     6.5 +ui.title(_"Developer settings")
     6.6 +
     6.7  
     6.8 -slot.select("actions", function()
     6.9 -  ui.link{
    6.10 -    content = function()
    6.11 -        ui.image{ static = "icons/16/cancel.png" }
    6.12 -        slot.put(_"Cancel")
    6.13 -    end,
    6.14 -    module = "member",
    6.15 -    view = "settings"
    6.16 -  }
    6.17 -end)
    6.18 -
    6.19 -  local setting_key = "liquidfeedback_frontend_developer_features"
    6.20 -  local setting = Setting:by_pk(app.session.member.id, setting_key)
    6.21 +local setting_key = "liquidfeedback_frontend_developer_features"
    6.22 +local setting = Setting:by_pk(app.session.member.id, setting_key)
    6.23  
    6.24 -  if setting then
    6.25 -    ui.form{
    6.26 -      attr = { class = "vertical" },
    6.27 -      module = "member",
    6.28 -      action = "update_stylesheet_url",
    6.29 -      routing = {
    6.30 -        ok = {
    6.31 -          mode = "redirect",
    6.32 -          module = "index",
    6.33 -          view = "index"
    6.34 -        }
    6.35 -      },
    6.36 -      content = function()
    6.37 -        local setting_key = "liquidfeedback_frontend_stylesheet_url"
    6.38 -        local setting = Setting:by_pk(app.session.member.id, setting_key)
    6.39 -        local value = setting and setting.value
    6.40 -        ui.field.text{ 
    6.41 -          label = _"Stylesheet URL",
    6.42 -          name = "stylesheet_url",
    6.43 -          value = value
    6.44 -        }
    6.45 -        ui.submit{ value = _"Set URL" }
    6.46 -      end
    6.47 -    }
    6.48 -  end
    6.49 +if setting then
    6.50 +  ui.form{
    6.51 +    attr = { class = "vertical" },
    6.52 +    module = "member",
    6.53 +    action = "update_stylesheet_url",
    6.54 +    routing = {
    6.55 +      ok = {
    6.56 +        mode = "redirect",
    6.57 +        module = "index",
    6.58 +        view = "index"
    6.59 +      }
    6.60 +    },
    6.61 +    content = function()
    6.62 +      local setting_key = "liquidfeedback_frontend_stylesheet_url"
    6.63 +      local setting = Setting:by_pk(app.session.member.id, setting_key)
    6.64 +      local value = setting and setting.value
    6.65 +      ui.field.text{ 
    6.66 +        label = _"Stylesheet URL",
    6.67 +        name = "stylesheet_url",
    6.68 +        value = value
    6.69 +      }
    6.70 +      ui.submit{ value = _"Set URL" }
    6.71 +    end
    6.72 +  }
    6.73 +end
    6.74 +
    6.75 +ui.heading{ content = _"API keys" }
    6.76  
    6.77 -  ui.heading{ content = _"API keys" }
    6.78 +local member_applications = MemberApplication:new_selector()
    6.79 +  :add_where{ "member_id = ?", app.session.member.id }
    6.80 +  :add_order_by("name, id")
    6.81 +  :exec()
    6.82    
    6.83 ---  util.help("member.developer_settings.api_key", _"API key")
    6.84 -
    6.85 -  local member_applications = MemberApplication:new_selector()
    6.86 -    :add_where{ "member_id = ?", app.session.member.id }
    6.87 -    :add_order_by("name, id")
    6.88 -    :exec()
    6.89 -    
    6.90 -  if #member_applications > 0 then
    6.91 +if #member_applications > 0 then
    6.92  
    6.93 -    ui.list{
    6.94 -      records = member_applications,
    6.95 -      columns = {
    6.96 -        {
    6.97 -          name = "name",
    6.98 -          label = _"Name"
    6.99 -        },
   6.100 -        {
   6.101 -          name = "access_level",
   6.102 -          label = _"Access level"
   6.103 -        },
   6.104 -        {
   6.105 -          name = "key",
   6.106 -          label = _"API Key"
   6.107 -        },
   6.108 -        {
   6.109 -          name = "last_usage",
   6.110 -          label = "Last usage"
   6.111 -        },
   6.112 -        {
   6.113 -          content = function(member_application)
   6.114 -            ui.link{
   6.115 -              text = _"Delete",
   6.116 -              module = "member", action = "update_api_key", id = member_application.id,
   6.117 -              params = { delete = true },
   6.118 -              routing = {
   6.119 -                default = {
   6.120 -                  mode = "redirect",
   6.121 -                  module = "member",
   6.122 -                  view = "developer_settings"
   6.123 -                }
   6.124 +  ui.list{
   6.125 +    records = member_applications,
   6.126 +    columns = {
   6.127 +      {
   6.128 +        name = "name",
   6.129 +        label = _"Name"
   6.130 +      },
   6.131 +      {
   6.132 +        name = "access_level",
   6.133 +        label = _"Access level"
   6.134 +      },
   6.135 +      {
   6.136 +        name = "key",
   6.137 +        label = _"API Key"
   6.138 +      },
   6.139 +      {
   6.140 +        name = "last_usage",
   6.141 +        label = "Last usage"
   6.142 +      },
   6.143 +      {
   6.144 +        content = function(member_application)
   6.145 +          ui.link{
   6.146 +            text = _"Delete",
   6.147 +            module = "member", action = "update_api_key", id = member_application.id,
   6.148 +            params = { delete = true },
   6.149 +            routing = {
   6.150 +              default = {
   6.151 +                mode = "redirect",
   6.152 +                module = "member",
   6.153 +                view = "developer_settings"
   6.154                }
   6.155              }
   6.156 -          end
   6.157 -        },
   6.158 +          }
   6.159 +        end
   6.160 +      },
   6.161 +    }
   6.162 +  }
   6.163 +
   6.164 +else
   6.165 +  
   6.166 +  slot.put(_"Currently no API key is set.")
   6.167 +  slot.put(" ")
   6.168 +  ui.link{
   6.169 +    text = _"Generate API key",
   6.170 +    module = "member",
   6.171 +    action = "update_api_key",
   6.172 +    routing = {
   6.173 +      default = {
   6.174 +        mode = "redirect",
   6.175 +        module = "member",
   6.176 +        view = "developer_settings"
   6.177        }
   6.178      }
   6.179 -  
   6.180 -  else
   6.181 -    
   6.182 -    slot.put(_"Currently no API key is set.")
   6.183 -    slot.put(" ")
   6.184 -    ui.link{
   6.185 -      text = _"Generate API key",
   6.186 -      module = "member",
   6.187 -      action = "update_api_key",
   6.188 -      routing = {
   6.189 -        default = {
   6.190 -          mode = "redirect",
   6.191 -          module = "member",
   6.192 -          view = "developer_settings"
   6.193 -        }
   6.194 -      }
   6.195 -    }
   6.196 -  end
   6.197 +  }
   6.198 +end
     7.1 --- a/app/main/member/edit.lua	Tue Jun 19 22:39:57 2012 +0200
     7.2 +++ b/app/main/member/edit.lua	Tue Jun 19 22:44:18 2012 +0200
     7.3 @@ -1,15 +1,4 @@
     7.4 -slot.put_into("title", _"Edit my profile")
     7.5 -
     7.6 -slot.select("actions", function()
     7.7 -  ui.link{
     7.8 -    content = function()
     7.9 -        ui.image{ static = "icons/16/cancel.png" }
    7.10 -        slot.put(_"Cancel")
    7.11 -    end,
    7.12 -    module = "member",
    7.13 -    view = "settings"
    7.14 -  }
    7.15 -end)
    7.16 +ui.title(_"Edit my profile")
    7.17  
    7.18  util.help("member.edit", _"Edit my page")
    7.19  
    7.20 @@ -21,8 +10,9 @@
    7.21    routing = {
    7.22      ok = {
    7.23        mode = "redirect",
    7.24 -      module = "index",
    7.25 -      view = "index"
    7.26 +      module = "member",
    7.27 +      view = "show",
    7.28 +      id = app.session.member_id
    7.29      }
    7.30    },
    7.31    content = function()
     8.1 --- a/app/main/member/edit_images.lua	Tue Jun 19 22:39:57 2012 +0200
     8.2 +++ b/app/main/member/edit_images.lua	Tue Jun 19 22:44:18 2012 +0200
     8.3 @@ -1,15 +1,4 @@
     8.4 -slot.put_into("title", _"Upload images")
     8.5 -
     8.6 -slot.select("actions", function()
     8.7 -  ui.link{
     8.8 -    content = function()
     8.9 -        ui.image{ static = "icons/16/cancel.png" }
    8.10 -        slot.put(_"Cancel")
    8.11 -    end,
    8.12 -    module = "member",
    8.13 -    view = "settings"
    8.14 -  }
    8.15 -end)
    8.16 +ui.title(_"Upload images")
    8.17  
    8.18  util.help("member.edit_images", _"Images")
    8.19  
     9.1 --- a/app/main/member/history.lua	Tue Jun 19 22:39:57 2012 +0200
     9.2 +++ b/app/main/member/history.lua	Tue Jun 19 22:44:18 2012 +0200
     9.3 @@ -1,17 +1,21 @@
     9.4  local member = Member:by_id(param.get_id())
     9.5  
     9.6 -slot.put_into("title", encode.html(_("Member name history for '#{name}'", { name = member.name })))
     9.7 -
     9.8 -slot.select("actions", function()
     9.9 -  ui.link{
    9.10 -    content = function()
    9.11 -        ui.image{ static = "icons/16/cancel.png" }
    9.12 -        slot.put(_"Back")
    9.13 -    end,
    9.14 -    module = "member",
    9.15 -    view = "show",
    9.16 -    id = member.id
    9.17 +slot.select("head", function()
    9.18 +  ui.container{
    9.19 +    attr = { class = "title" }, 
    9.20 +    content = _("Member name history for '#{name}'", { name = member.name })
    9.21    }
    9.22 +  ui.container{ attr = { class = "actions" }, content = function()
    9.23 +    ui.link{
    9.24 +      content = function()
    9.25 +          ui.image{ static = "icons/16/cancel.png" }
    9.26 +          slot.put(_"Back")
    9.27 +      end,
    9.28 +      module = "member",
    9.29 +      view = "show",
    9.30 +      id = member.id
    9.31 +    }
    9.32 +  end }
    9.33  end)
    9.34  
    9.35  ui.form{
    10.1 --- a/app/main/member/settings.lua	Tue Jun 19 22:39:57 2012 +0200
    10.2 +++ b/app/main/member/settings.lua	Tue Jun 19 22:44:18 2012 +0200
    10.3 @@ -1,15 +1,4 @@
    10.4 -slot.put_into("title", _"Settings")
    10.5 -
    10.6 -slot.select("actions", function()
    10.7 -  ui.link{
    10.8 -    content = function()
    10.9 -        ui.image{ static = "icons/16/cancel.png" }
   10.10 -        slot.put(_"Cancel")
   10.11 -    end,
   10.12 -    module = "index",
   10.13 -    view = "index"
   10.14 -  }
   10.15 -end)
   10.16 +ui.title(_"Settings")
   10.17  
   10.18  local pages = {}
   10.19  
    11.1 --- a/app/main/member/settings_display.lua	Tue Jun 19 22:39:57 2012 +0200
    11.2 +++ b/app/main/member/settings_display.lua	Tue Jun 19 22:44:18 2012 +0200
    11.3 @@ -1,16 +1,4 @@
    11.4 -slot.put_into("title", _"Display settings")
    11.5 -
    11.6 -slot.select("actions", function()
    11.7 -  ui.link{
    11.8 -    content = function()
    11.9 -        ui.image{ static = "icons/16/cancel.png" }
   11.10 -        slot.put(_"Cancel")
   11.11 -    end,
   11.12 -    module = "member",
   11.13 -    view = "settings"
   11.14 -  }
   11.15 -end)
   11.16 -
   11.17 +ui.title(_"Display settings")
   11.18  
   11.19  util.help("member.settings.display", _"Display settings")
   11.20  
    12.1 --- a/app/main/member/settings_email.lua	Tue Jun 19 22:39:57 2012 +0200
    12.2 +++ b/app/main/member/settings_email.lua	Tue Jun 19 22:44:18 2012 +0200
    12.3 @@ -1,15 +1,4 @@
    12.4 -slot.put_into("title", _"Change your notification email address")
    12.5 -
    12.6 -slot.select("actions", function()
    12.7 -  ui.link{
    12.8 -    content = function()
    12.9 -        ui.image{ static = "icons/16/cancel.png" }
   12.10 -        slot.put(_"Cancel")
   12.11 -    end,
   12.12 -    module = "member",
   12.13 -    view = "settings"
   12.14 -  }
   12.15 -end)
   12.16 +ui.title(_"Change your notification email address")
   12.17  
   12.18  util.help("member.settings.email_address", _"Change email")
   12.19  
    13.1 --- a/app/main/member/settings_login.lua	Tue Jun 19 22:39:57 2012 +0200
    13.2 +++ b/app/main/member/settings_login.lua	Tue Jun 19 22:44:18 2012 +0200
    13.3 @@ -1,15 +1,4 @@
    13.4 -slot.put_into("title", _"Change your login")
    13.5 -
    13.6 -slot.select("actions", function()
    13.7 -  ui.link{
    13.8 -    content = function()
    13.9 -        ui.image{ static = "icons/16/cancel.png" }
   13.10 -        slot.put(_"Cancel")
   13.11 -    end,
   13.12 -    module = "member",
   13.13 -    view = "settings"
   13.14 -  }
   13.15 -end)
   13.16 +ui.title(_"Change your login")
   13.17  
   13.18  util.help("member.settings.login", _"Change login")
   13.19  
    14.1 --- a/app/main/member/settings_name.lua	Tue Jun 19 22:39:57 2012 +0200
    14.2 +++ b/app/main/member/settings_name.lua	Tue Jun 19 22:44:18 2012 +0200
    14.3 @@ -1,15 +1,4 @@
    14.4 -slot.put_into("title", _"Change your name")
    14.5 -
    14.6 -slot.select("actions", function()
    14.7 -  ui.link{
    14.8 -    content = function()
    14.9 -        ui.image{ static = "icons/16/cancel.png" }
   14.10 -        slot.put(_"Cancel")
   14.11 -    end,
   14.12 -    module = "member",
   14.13 -    view = "settings"
   14.14 -  }
   14.15 -end)
   14.16 +ui.title(_"Change your screen name")
   14.17  
   14.18  util.help("member.settings.name", _"Change name")
   14.19  
    15.1 --- a/app/main/member/settings_notification.lua	Tue Jun 19 22:39:57 2012 +0200
    15.2 +++ b/app/main/member/settings_notification.lua	Tue Jun 19 22:44:18 2012 +0200
    15.3 @@ -1,16 +1,4 @@
    15.4 -slot.put_into("title", _"Notification settings")
    15.5 -
    15.6 -slot.select("actions", function()
    15.7 -  ui.link{
    15.8 -    content = function()
    15.9 -        ui.image{ static = "icons/16/cancel.png" }
   15.10 -        slot.put(_"Cancel")
   15.11 -    end,
   15.12 -    module = "member",
   15.13 -    view = "settings"
   15.14 -  }
   15.15 -end)
   15.16 -
   15.17 +ui.title(_"Notification settings")
   15.18  
   15.19  util.help("member.settings.notification", _"Notification settings")
   15.20  
    16.1 --- a/app/main/member/settings_password.lua	Tue Jun 19 22:39:57 2012 +0200
    16.2 +++ b/app/main/member/settings_password.lua	Tue Jun 19 22:44:18 2012 +0200
    16.3 @@ -1,15 +1,4 @@
    16.4 -slot.put_into("title", _"Change your password")
    16.5 -
    16.6 -slot.select("actions", function()
    16.7 -  ui.link{
    16.8 -    content = function()
    16.9 -        ui.image{ static = "icons/16/cancel.png" }
   16.10 -        slot.put(_"Cancel")
   16.11 -    end,
   16.12 -    module = "member",
   16.13 -    view = "settings"
   16.14 -  }
   16.15 -end)
   16.16 +ui.title(_"Change your password")
   16.17  
   16.18  util.help("member.settings.password", _"Change password")
   16.19  
    17.1 --- a/app/main/member/show.lua	Tue Jun 19 22:39:57 2012 +0200
    17.2 +++ b/app/main/member/show.lua	Tue Jun 19 22:44:18 2012 +0200
    17.3 @@ -7,50 +7,99 @@
    17.4  app.html_title.title = member.name
    17.5  app.html_title.subtitle = _("Member")
    17.6  
    17.7 -slot.select("title", function()
    17.8 -  execute.view{
    17.9 -    module = "member_image",
   17.10 -    view = "_show",
   17.11 -    params = {
   17.12 -      member = member,
   17.13 -      image_type = "avatar"
   17.14 -    }
   17.15 -  }
   17.16 -end)
   17.17 -
   17.18 -slot.put_into("title", encode.html(_"Member '#{member}'":gsub("#{member}", member.name)))
   17.19 -
   17.20 -slot.select("actions", function()
   17.21 -  ui.link{
   17.22 -    content = function()
   17.23 -      slot.put(encode.html(_"Show member history"))
   17.24 -    end,
   17.25 -    module  = "member",
   17.26 -    view    = "history",
   17.27 -    id      = member.id
   17.28 +slot.select("head", function()
   17.29 +  ui.container{
   17.30 +    attr = { class = "title" },
   17.31 +    content = _("Member '#{member}'", { member =  member.name })
   17.32    }
   17.33 -  if not member.active then
   17.34 -    ui.tag{
   17.35 -      tag = "div",
   17.36 -      attr = { class = "interest deactivated_member_info" },
   17.37 -      content = _"This member is deactivated."
   17.38 +
   17.39 +  ui.container{ attr = { class = "actions" }, content = function()
   17.40 +
   17.41 +    if member.id == app.session.member_id then
   17.42 +      ui.link{
   17.43 +        content = function()
   17.44 +          slot.put(encode.html(_"Edit profile"))
   17.45 +        end,
   17.46 +        module  = "member",
   17.47 +        view    = "edit"
   17.48 +      }
   17.49 +      slot.put(" &middot; ")
   17.50 +      ui.link{
   17.51 +        content = function()
   17.52 +          slot.put(encode.html(_"Upload avatar/photo"))
   17.53 +        end,
   17.54 +        module  = "member",
   17.55 +        view    = "edit_images"
   17.56 +      }
   17.57 +      slot.put(" &middot; ")
   17.58 +    end
   17.59 +    ui.link{
   17.60 +      content = function()
   17.61 +        slot.put(encode.html(_"Show member history"))
   17.62 +      end,
   17.63 +      module  = "member",
   17.64 +      view    = "history",
   17.65 +      id      = member.id
   17.66      }
   17.67 -    slot.put(" ")
   17.68 -  end
   17.69 -  if not (member.id == app.session.member.id) then
   17.70 +    if not member.active then
   17.71 +      slot.put(" &middot; ")
   17.72 +      ui.tag{
   17.73 +        attr = { class = "interest deactivated_member_info" },
   17.74 +        content = _"This member is deactivated."
   17.75 +      }
   17.76 +    end
   17.77 +    if not (member.id == app.session.member.id) then
   17.78 +      slot.put(" &middot; ")
   17.79 +      --TODO performance
   17.80 +      local contact = Contact:by_pk(app.session.member.id, member.id)
   17.81 +      if contact then
   17.82 +        ui.link{
   17.83 +          text   = _"Remove from contacts",
   17.84 +          module = "contact",
   17.85 +          action = "remove_member",
   17.86 +          id     = contact.other_member_id,
   17.87 +          routing = {
   17.88 +            default = {
   17.89 +              mode = "redirect",
   17.90 +              module = request.get_module(),
   17.91 +              view = request.get_view(),
   17.92 +              id = param.get_id_cgi(),
   17.93 +              params = param.get_all_cgi()
   17.94 +            }
   17.95 +          }
   17.96 +        }
   17.97 +      elseif member.activated then
   17.98 +        ui.link{
   17.99 +          text    = _"Add to my contacts",
  17.100 +          module  = "contact",
  17.101 +          action  = "add_member",
  17.102 +          id      = member.id,
  17.103 +          routing = {
  17.104 +            default = {
  17.105 +              mode = "redirect",
  17.106 +              module = request.get_module(),
  17.107 +              view = request.get_view(),
  17.108 +              id = param.get_id_cgi(),
  17.109 +              params = param.get_all_cgi()
  17.110 +            }
  17.111 +          }
  17.112 +        }
  17.113 +      end
  17.114 +    end
  17.115 +    local ignored_member = IgnoredMember:by_pk(app.session.member.id, member.id)
  17.116      slot.put(" &middot; ")
  17.117 -    --TODO performance
  17.118 -    local contact = Contact:by_pk(app.session.member.id, member.id)
  17.119 -    if contact then
  17.120 -      ui.container{
  17.121 +    if ignored_member then
  17.122 +      ui.tag{
  17.123          attr = { class = "interest" },
  17.124 -        content = _"You have saved this member as contact."
  17.125 +        content = _"You have ignored this member"
  17.126        }
  17.127 +      slot.put(" &middot; ")
  17.128        ui.link{
  17.129 -        text   = _"Remove from contacts",
  17.130 -        module = "contact",
  17.131 -        action = "remove_member",
  17.132 -        id     = contact.other_member_id,
  17.133 +        text   = _"Stop ignoring member",
  17.134 +        module = "member",
  17.135 +        action = "update_ignore_member",
  17.136 +        id     = member.id,
  17.137 +        params = { delete = true },
  17.138          routing = {
  17.139            default = {
  17.140              mode = "redirect",
  17.141 @@ -63,9 +112,10 @@
  17.142        }
  17.143      elseif member.activated then
  17.144        ui.link{
  17.145 -        text    = _"Add to my contacts",
  17.146 -        module  = "contact",
  17.147 -        action  = "add_member",
  17.148 +        attr = { class = "interest" },
  17.149 +        text    = _"Ignore member",
  17.150 +        module  = "member",
  17.151 +        action  = "update_ignore_member",
  17.152          id      = member.id,
  17.153          routing = {
  17.154            default = {
  17.155 @@ -78,49 +128,7 @@
  17.156          }
  17.157        }
  17.158      end
  17.159 -  end
  17.160 -  local ignored_member = IgnoredMember:by_pk(app.session.member.id, member.id)
  17.161 -  slot.put(" &middot; ")
  17.162 -  if ignored_member then
  17.163 -    ui.container{
  17.164 -      attr = { class = "interest" },
  17.165 -      content = _"You have ignored this member"
  17.166 -    }
  17.167 -    slot.put(" &middot; ")
  17.168 -    ui.link{
  17.169 -      text   = _"Stop ignoring member",
  17.170 -      module = "member",
  17.171 -      action = "update_ignore_member",
  17.172 -      id     = member.id,
  17.173 -      params = { delete = true },
  17.174 -      routing = {
  17.175 -        default = {
  17.176 -          mode = "redirect",
  17.177 -          module = request.get_module(),
  17.178 -          view = request.get_view(),
  17.179 -          id = param.get_id_cgi(),
  17.180 -          params = param.get_all_cgi()
  17.181 -        }
  17.182 -      }
  17.183 -    }
  17.184 -  elseif member.activated then
  17.185 -    ui.link{
  17.186 -      attr = { class = "interest" },
  17.187 -      text    = _"Ignore member",
  17.188 -      module  = "member",
  17.189 -      action  = "update_ignore_member",
  17.190 -      id      = member.id,
  17.191 -      routing = {
  17.192 -        default = {
  17.193 -          mode = "redirect",
  17.194 -          module = request.get_module(),
  17.195 -          view = request.get_view(),
  17.196 -          id = param.get_id_cgi(),
  17.197 -          params = param.get_all_cgi()
  17.198 -        }
  17.199 -      }
  17.200 -    }
  17.201 -  end
  17.202 +  end }
  17.203  end)
  17.204  
  17.205  util.help("member.show", _"Member page")
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/env/ui/title.lua	Tue Jun 19 22:44:18 2012 +0200
    18.3 @@ -0,0 +1,5 @@
    18.4 +function ui.title(content)
    18.5 +  slot.select("head", function()
    18.6 +    ui.container{ attr = { class = "title" }, content = content }
    18.7 +  end)
    18.8 +end
    18.9 \ No newline at end of file
    19.1 --- a/static/style.css	Tue Jun 19 22:39:57 2012 +0200
    19.2 +++ b/static/style.css	Tue Jun 19 22:44:18 2012 +0200
    19.3 @@ -175,7 +175,7 @@
    19.4  }
    19.5  
    19.6  .topbar .logolf {
    19.7 -  margin-left: 1%;
    19.8 +  margin-left: 6px;
    19.9    font-weight: bold;
   19.10  }
   19.11  
   19.12 @@ -274,38 +274,31 @@
   19.13    margin-top: 1ex;
   19.14  }
   19.15  
   19.16 -.slot_actions {
   19.17 +.page_head .actions {
   19.18    margin-left: 10px;
   19.19    margin-top: 0.5ex;
   19.20    margin-bottom: 1ex;
   19.21  }
   19.22  
   19.23 -.page_head {
   19.24 +.slot_head {
   19.25    background-color: #fff;
   19.26    margin: 0px 10px 2ex 10px;
   19.27    border: 1px solid #aaa;
   19.28    border-radius: 0 0 8px 8px;
   19.29  }
   19.30  
   19.31 -
   19.32 -.page_head .area_head,
   19.33 -.page_head .issue {
   19.34 -  xborder-top: 1px solid #000;
   19.35 -}
   19.36 -
   19.37 -.page_head .unit_head .title,
   19.38 -.page_head .area_head .title,
   19.39 +.page_head .title,
   19.40  .issue .context,
   19.41  .issue .title,
   19.42  .initiative_head .title {
   19.43 -  padding: 8px 16px 2px 16px;
   19.44 +  padding: 8px 10px 2px 10px;
   19.45  }
   19.46  
   19.47  .page_head .unit_head .content,
   19.48  .page_head .area_head .content,
   19.49  .issue .content,
   19.50  .initiative_head .content {
   19.51 -  padding: 2px 16px 8px 16px;
   19.52 +  padding: 2px 10px 8px 10px;
   19.53  }
   19.54  
   19.55  .page_head .initiative_list,
   19.56 @@ -319,8 +312,7 @@
   19.57  
   19.58  
   19.59  
   19.60 -.page_head .unit_head .title,
   19.61 -.page_head .area_head .title,
   19.62 +.page_head .title,
   19.63  .issue .title,
   19.64  .initiative_head .title {
   19.65    font-weight: bold;
   19.66 @@ -423,6 +415,9 @@
   19.67  /*************************************************************************
   19.68   * ui.tab
   19.69   */
   19.70 +.ui_tabs {
   19.71 +  margin: 10px 0px;
   19.72 +}
   19.73  
   19.74  .ui_tabs_links a {
   19.75    padding: 0.75ex 0.6em;
   19.76 @@ -1165,7 +1160,6 @@
   19.77  
   19.78  .slot_help_hidden {
   19.79    float: right;
   19.80 -  margin-right: 1em;
   19.81    margin-top: 1ex;
   19.82  }
   19.83  
   19.84 @@ -1383,7 +1377,7 @@
   19.85    padding: 0;
   19.86  }
   19.87  
   19.88 -.page_head,
   19.89 +.slot_head,
   19.90  .initiative_head,
   19.91  .issues .issue,
   19.92  .ui_tabs_links a,

Impressum / About Us