| rev | 
   line source | 
| 
bsw@11
 | 
     1 execute.view{
 | 
| 
bsw@11
 | 
     2   module = "timeline",
 | 
| 
bsw@11
 | 
     3   view = "_constants"
 | 
| 
bsw@11
 | 
     4 }
 | 
| 
bsw@11
 | 
     5 
 | 
| 
bsw@11
 | 
     6 local options_string = param.get("options_string")
 | 
| 
bsw@11
 | 
     7 
 | 
| 
bsw@11
 | 
     8 if not options_string then
 | 
| 
bsw@11
 | 
     9   local active_options = ""
 | 
| 
bsw@11
 | 
    10   for event_ident, event_name in pairs(event_names) do
 | 
| 
bsw@11
 | 
    11     if param.get("option_" .. event_ident, atom.boolean) then
 | 
| 
bsw@11
 | 
    12       active_options = active_options .. event_ident .. ":"
 | 
| 
bsw@11
 | 
    13       local filter_idents = {}
 | 
| 
bsw@11
 | 
    14       for filter_ident, filter_name in pairs(filter_names) do
 | 
| 
bsw@11
 | 
    15         if param.get("option_" .. event_ident .. "_" .. filter_ident, atom.boolean) then
 | 
| 
bsw@11
 | 
    16           filter_idents[#filter_idents+1] = filter_ident
 | 
| 
bsw@11
 | 
    17         end
 | 
| 
bsw@11
 | 
    18       end
 | 
| 
bsw@11
 | 
    19       if #filter_idents > 0 then
 | 
| 
bsw@11
 | 
    20         active_options = active_options .. table.concat(filter_idents, "|") .. " "
 | 
| 
bsw@11
 | 
    21       else
 | 
| 
bsw@11
 | 
    22         active_options = active_options .. "* "
 | 
| 
bsw@11
 | 
    23       end
 | 
| 
bsw@11
 | 
    24     end
 | 
| 
bsw@11
 | 
    25   end
 | 
| 
bsw@11
 | 
    26   if #active_options > 0 then
 | 
| 
bsw@11
 | 
    27     options_string = active_options
 | 
| 
bsw@11
 | 
    28   end
 | 
| 
bsw@11
 | 
    29 end
 | 
| 
bsw@11
 | 
    30 
 | 
| 
bsw@162
 | 
    31 if not options_string then
 | 
| 
bsw@162
 | 
    32   options_string = "issue_created:* issue_finished_after_voting:* issue_accepted:* issue_voting_started:* suggestion_created:* issue_canceled:* initiative_created:* issue_finished_without_voting:* draft_created:* initiative_revoked:* issue_half_frozen:* "
 | 
| 
bsw@162
 | 
    33 end
 | 
| 
bsw@162
 | 
    34 
 | 
| 
poelzi@145
 | 
    35 if param.get_list("option_ignore_area", atom.string) then
 | 
| 
poelzi@145
 | 
    36   options_string = options_string.." ignore_area:"..table.concat(param.get_list("option_ignore_area", atom.string), "|")
 | 
| 
poelzi@145
 | 
    37 end
 | 
| 
poelzi@145
 | 
    38 
 | 
| 
bsw@11
 | 
    39 local setting_key = "liquidfeedback_frontend_timeline_current_options"
 | 
| 
bsw@11
 | 
    40 local setting = Setting:by_pk(app.session.member.id, setting_key)
 | 
| 
bsw@11
 | 
    41 
 | 
| 
bsw@11
 | 
    42 if not setting or setting.value ~= options_string then
 | 
| 
bsw@11
 | 
    43   if not setting then
 | 
| 
bsw@11
 | 
    44     setting = Setting:new()
 | 
| 
bsw@11
 | 
    45     setting.member_id = app.session.member_id
 | 
| 
bsw@11
 | 
    46     setting.key = setting_key
 | 
| 
bsw@11
 | 
    47   end
 | 
| 
bsw@11
 | 
    48   if options_string then
 | 
| 
bsw@11
 | 
    49     setting.value = options_string
 | 
| 
bsw@11
 | 
    50     setting:save()
 | 
| 
bsw@11
 | 
    51   end
 | 
| 
bsw@11
 | 
    52 end
 | 
| 
bsw@11
 | 
    53 
 | 
| 
bsw@11
 | 
    54 local date = param.get("date")
 | 
| 
bsw/jbe@19
 | 
    55 
 | 
| 
bsw/jbe@19
 | 
    56 if param.get("search_from") == "last_24h" then
 | 
| 
bsw/jbe@19
 | 
    57   date = "last_24h"
 | 
| 
bsw/jbe@19
 | 
    58 end
 | 
| 
bsw@11
 | 
    59 
 | 
| 
bsw@11
 | 
    60 if date and #date > 0 then
 | 
| 
bsw@11
 | 
    61   local setting_key = "liquidfeedback_frontend_timeline_current_date"
 | 
| 
bsw@11
 | 
    62   local setting = Setting:by_pk(app.session.member.id, setting_key)
 | 
| 
bsw@11
 | 
    63   if not setting or setting.value ~= date then
 | 
| 
bsw@11
 | 
    64     if not setting then
 | 
| 
bsw@11
 | 
    65       setting = Setting:new()
 | 
| 
bsw@11
 | 
    66       setting.member_id = app.session.member.id
 | 
| 
bsw@11
 | 
    67       setting.key = setting_key
 | 
| 
bsw@11
 | 
    68     end
 | 
| 
bsw@11
 | 
    69     setting.value = date
 | 
| 
bsw@11
 | 
    70     setting:save()
 | 
| 
bsw@11
 | 
    71   end
 | 
| 
bsw@11
 | 
    72 end
 | 
| 
bsw@11
 | 
    73 
 | 
| 
bsw@11
 | 
    74 local setting_key = "liquidfeedback_frontend_timeline_current_options"
 | 
| 
bsw@11
 | 
    75 local setting = Setting:by_pk(app.session.member.id, setting_key)
 | 
| 
bsw@11
 | 
    76 
 | 
| 
bsw@11
 | 
    77 local timeline_params = {}
 | 
| 
bsw@11
 | 
    78 if setting and setting.value then
 | 
| 
bsw@11
 | 
    79   for event_ident, filter_idents in setting.value:gmatch("(%S+):(%S+)") do
 | 
| 
bsw@11
 | 
    80     timeline_params["option_" .. event_ident] = true
 | 
| 
bsw@11
 | 
    81     if filter_idents ~= "*" then
 | 
| 
bsw@11
 | 
    82       for filter_ident in filter_idents:gmatch("([^\|]+)") do
 | 
| 
bsw@11
 | 
    83         timeline_params["option_" .. event_ident .. "_" .. filter_ident] = true
 | 
| 
bsw@11
 | 
    84       end
 | 
| 
bsw@11
 | 
    85     end
 | 
| 
bsw@11
 | 
    86   end
 | 
| 
bsw@11
 | 
    87 end
 | 
| 
bsw@11
 | 
    88 
 | 
| 
bsw@11
 | 
    89 local setting_key = "liquidfeedback_frontend_timeline_current_date"
 | 
| 
bsw@11
 | 
    90 local setting = Setting:by_pk(app.session.member.id, setting_key)
 | 
| 
bsw@11
 | 
    91 
 | 
| 
bsw@11
 | 
    92 if setting then
 | 
| 
bsw@11
 | 
    93   timeline_params.date = setting.value
 | 
| 
bsw@11
 | 
    94 end
 | 
| 
bsw@11
 | 
    95 
 | 
| 
bsw@11
 | 
    96 timeline_params.show_options = param.get("show_options", atom.boolean)
 | 
| 
bsw@11
 | 
    97 
 | 
| 
bsw@11
 | 
    98 if param.get("save", atom.boolean) then
 | 
| 
bsw@11
 | 
    99   request.redirect{
 | 
| 
bsw@11
 | 
   100     module = "timeline",
 | 
| 
poelzi@144
 | 
   101     view = "save_filter",
 | 
| 
poelzi@144
 | 
   102     params = {
 | 
| 
poelzi@144
 | 
   103       current_name = param.get("current_name")
 | 
| 
poelzi@144
 | 
   104     }
 | 
| 
bsw@11
 | 
   105   }
 | 
| 
bsw@11
 | 
   106 else
 | 
| 
bsw@11
 | 
   107   request.redirect{
 | 
| 
bsw@11
 | 
   108     module = "timeline",
 | 
| 
bsw@11
 | 
   109     view = "index",
 | 
| 
bsw@11
 | 
   110     params = timeline_params
 | 
| 
bsw@11
 | 
   111   }
 | 
| 
bsw@11
 | 
   112 end |