Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mod_admin: add admin_content_query, also displayed in the content menu.
  • Loading branch information
mworrell committed Apr 14, 2015
1 parent bb18923 commit 2c372ba
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 23 deletions.
55 changes: 47 additions & 8 deletions modules/mod_admin/mod_admin.erl
Expand Up @@ -22,18 +22,21 @@

-mod_title("Admin module").
-mod_description("Provides administrative interface for editing pages, media, users etc.").
-mod_depends([base, authentication]).
-mod_depends([base, authentication, mod_search]).
-mod_provides([admin]).
-mod_schema(1).
-mod_prio(1000).

-export([
observe_sanitize_element/3,
observe_admin_menu/3,
observe_admin_edit_blocks/3,
observe_module_ready/2,
event/2,
observe_sanitize_element/3,
observe_admin_menu/3,
observe_admin_edit_blocks/3,
observe_module_ready/2,
event/2,

do_link/5
do_link/5,

manage_schema/2
]).

-include_lib("zotonic.hrl").
Expand Down Expand Up @@ -98,7 +101,10 @@ observe_admin_menu(admin_menu, Acc, Context) ->
#menu_item{id=admin_media,
parent=admin_content,
label=?__("Media", Context),
url={admin_media}},
url={admin_media}}
]
++ admin_menu_content_queries(Context) ++
[

%% STRUCTURE %%
#menu_item{id=admin_structure,
Expand Down Expand Up @@ -127,6 +133,25 @@ observe_admin_menu(admin_menu, Acc, Context) ->
|Acc].


admin_menu_content_queries(Context) ->
#search_result{result=Result} = z_search:search({all_bytitle, [{cat,admin_content_query}]}, Context),
AdminOverviewQueryId = m_rsc:rid(admin_overview_query, Context),
Result1 = lists:filter(
fun({_Title,Id}) ->
Id =/= AdminOverviewQueryId
end,
Result),
lists:map(fun({Title, Id}) ->
#menu_item{
id={admin_query, Id},
parent=admin_content,
label=Title,
url={admin_overview_rsc, [{qquery, Id}]}
}
end,
Result1).


observe_admin_edit_blocks(#admin_edit_blocks{}, Menu, Context) ->
[
{1, ?__("Standard", Context), [
Expand Down Expand Up @@ -335,3 +360,17 @@ context_language(Context) ->
end
end.


manage_schema(_Version, _Context) ->
#datamodel{
categories=[
{admin_content_query,
'query',
[
{title, {trans, [
{en, <<"Admin content query">>},
{nl, <<"Admin inhoud zoekopdracht">>}
]}}
]}
]
}.
4 changes: 2 additions & 2 deletions modules/mod_admin/models/m_admin_menu.erl
Expand Up @@ -74,8 +74,8 @@ menu(Context) ->
end,
z_depcache:memo(F,
{admin_menu, z_acl:user(Context), z_context:language(Context)},
?WEEK,
[admin_menu],
?HOUR,
[admin_menu, admin_content_query],
Context)
end.

Expand Down
15 changes: 13 additions & 2 deletions modules/mod_admin/templates/_admin_button_dropdown.tpl
Expand Up @@ -24,7 +24,9 @@ Optional:
option_class
%}
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
{% if selected_value %}
{% if default_value2 and selected_value == default_value2 %}
{{ default_label2 }}
{% elseif selected_value %}
{{ selected_label }}
{% else %}
{{ default_label }}
Expand All @@ -44,14 +46,23 @@ Optional:
{{ default_label }}
</a>
</li>
{% endif %}
{% if default_label2 %}
<li class="{% if selected_value == default_value2 %}active{% endif %}">
<a href="#" class="{{ option_class }}" data-value="{{ default_value2 }}">
{{ default_label2 }}
</a>
</li>
{% endif %}
{% if default_label or default_label2 %}
<li class="divider"></li>
{% endif %}
{% if option_template %}
{% include option_template
selected_value=selected_value
option_class=option_class
%}
{% elif options %}
{% elseif options %}
{% for value, label in options %}
<li class="{% ifequal value selected_value %}active{% endifequal %}">
<a href="#" class="{{ option_class }}" data-value="{{ value }}">{{ label }}</a>
Expand Down
1 change: 1 addition & 0 deletions modules/mod_admin/templates/_admin_menu.tpl
Expand Up @@ -61,6 +61,7 @@
<form class="navbar-right navbar-form form-inline hidden-sm" action="{% block search_target %}{% url admin_overview_rsc %}{% endblock %}" method="get">
<input type="hidden" name="qsort" value="{{ q.qsort|escape }}" />
<input type="hidden" name="qcat" value="{{ q.qcat|escape }}" />
<input type="hidden" name="qquery" value="{{ q.qquery|escape }}" />
<input class="search-query col-md-6 form-control" type="text" name="qs" value="{{q.qs|escape}}" placeholder="Search..." />
</form>
{% endblock %}
Expand Down
34 changes: 23 additions & 11 deletions modules/mod_admin/templates/admin_overview.tpl
@@ -1,6 +1,8 @@
{% extends "admin_base.tpl" %}

{% block title %}{_ Pages overview _}{% if q.qcat %}: {{ m.rsc[q.qcat].title }}{% endif %}{% if q.qs %}, {_ matching _}{{ q.qs|escape }}”{% endif %}{% endblock %}
{% block title %}
{% if not q.qcat %}{{ m.rsc[q.qquery].title|default:_"Pages overview" }}{% else %}{_ Pages overview _}{% endif %}{% if q.qcat == '*' %}: {_ All Categories _}{% elseif q.qcat %}: {{ m.rsc[q.qcat].title }}{% endif %}{% if q.qs %}, {_ matching _}{{ q.qs|escape }}”{% endif %}
{% endblock %}

{% block content %}
{% with
Expand All @@ -14,14 +16,17 @@
{% with q.qcat as qcat %}
<form id="{{ #form }}" method="GET" action="{% url admin_overview_rsc %}" class="form-inline">
<input type="hidden" name="qs" value="{{ q.qs|escape }}" />
<input type="hidden" name="qquery" value="{{ q.qquery|escape }}" />
<div class="btn-group pull-right">
<div class="btn-group">
{% include "_admin_button_dropdown.tpl"
select_name="qcat"
selected_value=qcat
selected_label=m.rsc[qcat].title
default_value=""
default_label=_"All Categories"
default_label=_"Selected Categories"
default_value2="*"
default_label2=_"All Categories"
form_id=#form
option_template="_admin_button_dropdown_categories.tpl"
header=_"Filter on category"
Expand Down Expand Up @@ -52,6 +57,9 @@
<input type="hidden" name="qs" value="{{ q.qs|escape }}" />
{% endif %}
</h2>
{% if q.qquery and not q.qcat and m.rsc[q.qquery].summary %}
<p>{{ m.rsc[q.qquery].summary }}</p>
{% endif %}
</div>
<div class="well z-button-row">
<a name="content-pager"></a>
Expand All @@ -72,15 +80,19 @@
<a class="btn btn-default" href="{% url admin_media %}">{_ All media _}</a>
</div>

{% with m.rsc.admin_overview_query.is_visible|
if:{query query_id=`admin_overview_query` cat=q.qcat text=q.qs page=q.page pagelen=qpagelen sort=q.qsort|default:"-modified"}
:{query authoritative=1 cat=q.qcat text=q.qs page=q.page pagelen=qpagelen sort=q.qsort|default:"-modified"}
as query
%}
{% with m.search.paged[query] as result %}
{% catinclude "_admin_overview_list.tpl" m.category[q.qcat].is_a result=result %}
{% pager result=result dispatch="admin_overview_rsc" qargs hide_single_page %}
{% endwith %}
{% with q.qcat|replace:'\\*':'' as qcat %}
{% with m.rsc[q.qquery|default:`admin_overview_query`].id as qqeury_id %}
{% with (qqeury_id.is_visible and not q.qcat)|
if:{query query_id=qqeury_id cat=qcat text=q.qs page=q.page pagelen=qpagelen sort=q.qsort|default:"-modified"}
:{query authoritative=1 cat=qcat text=q.qs page=q.page pagelen=qpagelen sort=q.qsort|default:"-modified"}
as query
%}
{% with m.search.paged[query] as result %}
{% catinclude "_admin_overview_list.tpl" m.category[qcat].is_a result=result %}
{% pager result=result dispatch="admin_overview_rsc" qargs hide_single_page %}
{% endwith %}
{% endwith %}
{% endwith %}
{% endwith %}
{% endwith %}
{% endwith %}
Expand Down

0 comments on commit 2c372ba

Please sign in to comment.