PHRAS-2270_advance_search_port_top_41

This commit is contained in:
Filip Vilic
2018-11-07 12:54:57 +01:00
parent 9298580888
commit 82d8c5d4c0
16 changed files with 1270 additions and 1084 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2018-09-17T13:13:43Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
<file date="2018-11-07T11:48:26Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2018-09-17T13:15:26Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
<file date="2018-11-07T11:49:58Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2018-09-17T13:17:02Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
<file date="2018-11-07T11:51:34Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2018-09-17T13:18:41Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
<file date="2018-11-07T11:53:36Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

View File

@@ -1,46 +1,46 @@
{% macro bas_list(module, search_datas) %}
{% set unique_id = module.getRandom() %}
<div style="max-height: 57vh; overflow-x: hidden;">
{% for base in search_datas['bases'] %}
{% set sbas_id = base['sbas_id'] %}
<div class="sbas_list sbas_{{sbas_id}}" style="margin-bottom: 10px;">
<input type="hidden" name="reference" value="{{sbas_id}}"/>
<div class="clksbas">
<span class="toggle-collection deployer_closed" data-toggle-content=".sbascont_{{sbas_id}}"></span>
<input type="checkbox" checked style="display: none;" id="sbasChkr_{{sbas_id}}_{{unique_id}}" class="select-database sbasChkr_{{sbas_id}}" data-database="{{sbas_id}}" />
<label id="ADVSRCH_SBAS_LABEL_{{sbas_id}}" style="display: inline" class="checkbox danger_indicator" for="sbasChkr_{{sbas_id}}_{{unique_id}}">
<span>{{sbas_id|sbas_labels(app)}}</span>
<span class="infos_sbas_{{sbas_id}}">
{{base["collections"]|length}}/{{base['collections']|length}}
<span class="toggle-collection deployer_toggle deployer_closed" data-toggle-content=".sbascont_{{sbas_id}}"></span>
<label id="ADVSRCH_SBAS_LABEL_{{sbas_id}}" style="display: inline" class="checkbox custom_checkbox_label" for="sbasChkr_{{sbas_id}}_{{unique_id}}">
<input type="checkbox" checked style="display: none;" id="sbasChkr_{{sbas_id}}_{{unique_id}}" class="select-database sbasChkr_{{sbas_id}}" data-database="{{sbas_id}}" />
<span class="base_indicator">
{{sbas_id|sbas_labels(app)}}
</span>
<span class="custom_checkbox">
<span class="infos_sbas_{{sbas_id}}">
{{base["collections"]|length}}/{{base['collections']|length}}
</span>
</span>
</label>
</div>
<div class="sbascont sbascont_{{sbas_id}}" style="display:none; -moz-column-width:150px; -webkit-column-width: 150px; -moz-column-gap: 20px; -webkit-column-gap: 20px;">
<ul style="list-style-type:none; padding:0; margin:0;" class="basChild_{{sbas_id}}">
<div class="sbascont sbascont_{{sbas_id}}" style="display:none; margin-bottom: 8px;">
<ul class="basChild_{{sbas_id}} basChild_list">
{% for collection in base["collections"] %}
{% set base_id = collection["base_id"] %}
<li class="clkbas">
<table>
<tr>
<td>
<input class="ck_{{base_id}} checkbas check-filters" style="*margin-top:-18px;" data-save="true"
id="ck_{{base_id}}_{{unique_id}}" type="checkbox"
name="bases[]" value="{{base_id}}" {% if collection["selected"] %}checked="checked"{% endif %} />
</td>
<td>
<label style="line-height: 18px;"
for="ck_{{base_id}}_{{unique_id}}" class="ck_{{base_id}} {% if collection["selected"] %}selected{% endif %} checkbox inline">
{{base_id|get_collection_logo(app)|raw}} {{base_id|bas_labels(app)}}
</label>
</td>
</tr>
</table>
<label style="line-height: 18px;"
for="ck_{{base_id}}_{{unique_id}}" class="ck_{{base_id}} {% if collection["selected"] %}selected{% endif %} checkbox inline custom_checkbox_label">
<input class="ck_{{base_id}} checkbas check-filters"
id="ck_{{base_id}}_{{unique_id}}" type="checkbox"
data-save="true"
name="bases[]" value="{{base_id}}" {% if collection["selected"] %}checked="checked"{% endif %} />
<span class="custom_checkbox"></span>
{{base_id|get_collection_logo(app)|raw}} {{base_id|bas_labels(app)}}
</label>
</li>
{% endfor %}
</ul>
</div>
</div>
{% endfor %}
</div>
{% endmacro %}
{% set jquery_theme = 'dark-hive' %}
@@ -264,7 +264,7 @@
<input type="hidden" name="sel" value="">
<div class="controls controls-row">
<div class="input-append">
<div class="input-append advance_search_action">
<input id="EDIT_query" name="fake_qry" type="text" autocomplete="off" class="search query danger_indicator" value="{{app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page_query')}}">
<a id="ADV_query" href="#" class="btn btn-inverse adv_trigger adv_search_button">
<img src="/assets/common/images/icons/settings.png" title="{{ 'Advanced Search' | trans }}"/>
@@ -276,32 +276,39 @@
{% endif %}
<button type="submit" class="btn btn-inverse" style="font-size:14px">{{ 'boutton::rechercher' | trans }}</button>
</div>
<div class="control-group">
<div class="control-group pull-left">
{% if GV_multiAndReport %}
<label for="mode_type_doc" class="radio inline">
<label for="mode_type_doc" class="radio inline custom_checkbox_label">
<input type="radio" value="0" class="mode_type_doc" name="search_type" {% if GV_defaultQuery_type == 0 %}checked="checked"{% endif %} id="mode_type_doc"/>
<span class="custom_radio" style="width:9px;height:9px;margin-top:2px;"></span>
{{ 'phraseanet::type:: documents' | trans }}
</label>
<label for="mode_type_reg" class="radio inline">
<label for="mode_type_reg" class="radio inline custom_checkbox_label">
<input type="radio" value="1" class="mode_type_reg" name="search_type" {% if GV_defaultQuery_type != 0 %}checked="checked"{% endif %} id="mode_type_reg"/>
<span class="custom_radio" style="width:9px;height:9px;margin-top:2px;"></span>
{{ 'phraseanet::type:: reportages' | trans }}
</label>
{% else %}
<input type="hidden" value="0" name="search_type" />
{% endif %}
<select name="record_type" id="recordtype_sel" class="input-small">
<option value="">{{ 'Tout type' | trans }}</option>
<option value="image">{{ 'Image' | trans }}</option>
<option value="video">{{ 'Video' | trans }}</option>
<option value="audio">{{ 'Audio' | trans }}</option>
<option value="document">{{ 'Document' | trans }}</option>
<option value="flash">{{ 'Flash' | trans }}</option>
</select>
<div id="recordtype_sel" class="custom_select_dark" style="display: inline-block;">
<select name="record_type" class="input-small">
<option value="">{{ 'Tout type' | trans }}</option>
<option value="image">{{ 'Image' | trans }}</option>
<option value="video">{{ 'Video' | trans }}</option>
<option value="audio">{{ 'Audio' | trans }}</option>
<option value="document">{{ 'Document' | trans }}</option>
<option value="flash">{{ 'Flash' | trans }}</option>
</select>
</div>
</div>
<div class="pull-right">
<input class="btn btn_lightgrey reset_button search-reset-action" style="display: none;" type="button" value="{{ 'Re-initialiser' | trans }}" />
</div>
</div>
<div id="advancedSearchForm" class="controls controls-row adv_options" style="display:none;">
<table style="width:100%; table-layout:fixed;">
<table style="width:100%; height:100%; table-layout:fixed;">
<tr>
<td style="width:50%; vertical-align:top;">
{% set useTruncation = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'use_truncation') %}
@@ -312,11 +319,14 @@
{{ 'index:advanced-preferences:: use truncation' | trans }}
</label>
<div id="ADVSRCH_SBAS_ZONE" class="sbasglob">
<label class="base-section-title">
<span class="danger_indicator">{{ 'Selected base(s)' | trans }}</span>
</label>
<div class="btn-toolbar">
<input class="btn btn-inverse toggle-database" type="button"
<input class="btn btn_dark toggle-database" type="button"
value="{{ 'boutton:: selectionner toutes les bases' | trans }}"
data-state="true" />
<input class="btn btn-inverse toggle-database" type="button" data-state="false"
<input class="btn btn_dark toggle-database" type="button" data-state="false"
value="{{ 'boutton:: selectionner aucune base' | trans }}" />
</div>
{{_self.bas_list(module_prod, search_datas)}}
@@ -324,9 +334,6 @@
</td>
<td style="width:50%; vertical-align:top;">
<div id="sbasfiltercont">
<div class="btn-toolbar">
<input class="btn btn-inverse search-reset-action" type="button" value="{{ 'Re-initialiser' | trans }}" />
</div>
<div id="ADVSRCH_OPTIONS_ZONE">
<div id="ADVSRCH_SORT_ZONE">
{% set sortByDefault = app['phraseanet.SE'].getDefaultSort()%}
@@ -371,55 +378,140 @@
</select>
</div>
<div id="ADVSRCH_FIELDS_ZONE" class="danger_indicator">
<span>{{ 'Les termes apparaissent dans le(s) champs' | trans }}</span>
<select size="8" multiple onchange="prodApp.appEvents.emit('search.doCheckFilters', true);" name="fields[]" style="vertical-align:middle; width:99%;">
<option value="phraseanet--all--fields">{{ 'rechercher dans tous les champs' | trans }}</option>
{% for field_id, field in search_datas['fields'] %}
{% if field['type'] != 'date' %}
<option class="dbx db_{{field['sbas']|join(' db_')}}" value="{{field_id}}">{{field['fieldname']}}</option>
{% endif %}
{% endfor %}
</select>
<div id="ADVSRCH_FIELDS_ZONE">
<label class="status-section-title">
<span class="danger_indicator">{{ 'Les termes apparaissent dans le(s) champs' | trans }}</span>
<img id="info-box-trigger" src="/assets/common/images/icons/Info-white.png" width="18" height="18">
<div id="info-box">
<p>{{ 'prod::advancesearch:tooltips:field_restriction_explanation' | trans }}</p>
</div>
</label>
<label for="multiple-terms" class="radio inline custom_checkbox_label">
<input type="radio" class="multiple_terms" name="must_match" value="ALL" checked="checked" id="multiple-terms"/>
<span class="custom_radio"></span>
{{ 'All these conditions' | trans }}
</label>
<label for="single-terms" class="radio inline custom_checkbox_label">
<input type="radio" class="single_terms" name="must_match" value="ONE" id="single-terms"/>
<span class="custom_radio"></span>
{{ 'One of these conditions' | trans }}
</label>
<div class="term_select">
<div class="term_select_wrapper">
<select class="term_select_field" style="vertical-align:middle; width:30%;">
<option value="">{{ 'Select a field' | trans }}</option>
{% for field_id, field in search_datas['fields'] %}
{% if field['type'] != 'date' %}
<option class="dbx db_{{field['sbas']|join(' db_')}}" value="{{field_id}}">{{field['fieldname']}}</option>
{% endif %}
{% endfor %}
</select>
<select disabled style="vertical-align:middle; width: 23%;">
<option value="contains">{{ 'Contains' | trans }}</option>
<option value="equals">{{ 'Equals' | trans }}</option>
</select>
<input disabled style="vertical-align:middle; width: 32%;" placeholder="{{ 'Ex : Paris, bleu, montagne' | trans }}">
<input class="term_deleter" style="margin-bottom: 4px;" disabled>
</div>
<button class="add_new_term"><span>&plus;</span> Add</button>
</div>
<div style="display:none;">
<select class="term_select_multiple" size="8" multiple onchange="prodApp.appEvents.emit('search.doCheckFilters', true);" name="fields[]" style="vertical-align:middle; width:99%;">
<option value="phraseanet--all--fields">{{ 'rechercher dans tous les champs' | trans }}</option>
{% for field_id, field in search_datas['fields'] %}
{% if field['type'] != 'date' %}
<option class="dbx db_{{field['sbas']|join(' db_')}}" value="{{field_id}}">{{field['fieldname']}}</option>
{% endif %}
{% endfor %}
</select>
</div>
</div>
<div id="ADVSRCH_DATE_ZONE">
{% if app['phraseanet.SE'].getAvailableDateFields() | length > 0 %}
<hr />
<label class="status-section-title">
<span class="danger_indicator">{{ 'Date(s) from field(s)' | trans }}</span>
<img id="info-box-trigger" src="/assets/common/images/icons/info-white.png" width="18" height="18">
<div id="info-box">
<p>
{{ 'prod::advancesearch:tooltips:datefield_restriction_explanation' | trans }}
</p>
</div>
</label>
<span>
<select name="date_field" class="input-medium check-filters" data-save="true" style="width: 166px;">
<option selected="selected"
value="">{{ 'Rechercher dans un champ date' | trans }}</option>
{% for fieldname, date in search_datas['dates'] %}
<option
class="dbx db_{{date['sbas']|join(' db_')}}" value="{{ fieldname }}">{{ fieldname }}</option>
{% endfor %}
</select>
</span>
<span id="ADVSRCH_DATE_SELECTORS" style="display: inline-block;height: 26px;line-height: 26px;">
{{ 'phraseanet::time:: de' | trans }}
<div class="input-prepend">
<span class="add-on">
<i class="fa fa-calendar" aria-hidden="true"></i>
</span>
<input onchange="prodApp.appEvents.emit('search.doCheckFilters', true);" class="datepicker input-small" type="text" name="date_min" placeholder="{% trans %}YYYY/MM/DD{% endtrans %}" style="margin: 0;position: relative; z-index: 10001;" />
</div>
{{ 'phraseanet::time:: a' | trans }}
<div class="input-prepend">
<span class="add-on">
<i class="fa fa-calendar" aria-hidden="true"></i>
</span>
<input onchange="prodApp.appEvents.emit('search.doCheckFilters', true);" class="datepicker input-small" type="text" name="date_max" placeholder="{% trans %}YYYY/MM/DD{% endtrans %}" style="margin: 0;position: relative; z-index: 10001;" />
</div>
</span>
{% endif %}
</div>
<div id="ADVSRCH_SB_ZONE">
{% if search_status|length > 0 %}
<hr />
<span class="status-section-title">{{ 'Status des documents a rechercher' | trans }}</span>
<label class="status-section-title">
<span class="danger_indicator">{{ 'Status des documents a rechercher' | trans }}</span>
</label>
{% for databox_id, databox in search_status %}
{% if databox.status|length > 0 %}
<table style="width: 100%;" id="ADVSRCH_SB_ZONE_{{databox_id}}" class="field_{{databox_id}}">
<thead>
<tr>
<td colspan="2">
<span class="toggle-collection deployer_closed" data-toggle-content="#ADVSRCH_SB_{{databox_id}}"></span>
<span class="danger_indicator">{{ databox['name'] }}</span>
<span class="toggle-collection deployer_toggle deployer_closed" data-toggle-content="#ADVSRCH_SB_{{databox_id}}"></span>
<span>{{ databox['name'] }}</span>
</td>
</tr>
</thead>
<tbody id="ADVSRCH_SB_{{databox_id}}" style="display: none">
<tbody id="ADVSRCH_SB_{{databox_id}}" style="display: none; margin-top: 15px;">
{% for status_bit, status in databox.status %}
<tr>
<td>
<label class="checkbox inline">
<label class="checkbox inline custom_checkbox_label">
{% if status['img_off'] %}
<img src="{{status['img_off']}}" title="{{status['labels_off_i18n'][app['locale']]}}" />
{% endif %}
<input class="field_switch field_{{databox_id}} check-filters" data-save="true"
type="checkbox" value="0"
n="{{status_bit}}" name="status[{{databox_id}}][{{status_bit}}]" />
<span class="custom_checkbox"></span>
{{status['labels_off_i18n'][app['locale']]}}
</label>
</td>
<td>
<label class="checkbox inline">
<label class="checkbox inline custom_checkbox_label">
{% if status['img_on'] %}
<img src="{{status['img_on']}}" title="{{status['labels_on_i18n'][app['locale']]}}" />
{% endif %}
<input class="field_switch field_{{databox_id}} check-filters" data-save="true"
type="checkbox" value="1"
n="{{status_bit}}" name="status[{{databox_id}}][{{status_bit}}]"/>
<span class="custom_checkbox"></span>
{{status['labels_on_i18n'][app['locale']]}}
</label>
</td>
@@ -431,36 +523,6 @@
{% endfor %}
{% endif %}
</div>
<div id="ADVSRCH_DATE_ZONE" class="danger_indicator">
{% if app['phraseanet.SE'].getAvailableDateFields() | length > 0 %}
<hr />
<span>
<select name="date_field" class="input-medium check-filters" data-save="true">
<option selected="selected"
value="">{{ 'Rechercher dans un champ date' | trans }}</option>
{% for fieldname, date in search_datas['dates'] %}
<option
class="dbx db_{{date['sbas']|join(' db_')}}" value="{{ fieldname }}">{{ fieldname }}</option>
{% endfor %}
</select>
</span>
<span id="ADVSRCH_DATE_SELECTORS">
{{ 'phraseanet::time:: de' | trans }}
<div class="input-prepend">
<span class="add-on"><i class="fa fa-calendar"
aria-hidden="true"></i></span>
<input onchange="prodApp.appEvents.emit('search.doCheckFilters', true);" class="datepicker input-small" type="text" name="date_min" placeholder="{% trans %}YYYY/MM/DD{% endtrans %}" style="margin: 0;position: relative; z-index: 10001;" />
</div>
{{ 'phraseanet::time:: a' | trans }}
<div class="input-prepend">
<span class="add-on"><i class="fa fa-calendar"
aria-hidden="true"></i></span>
<input onchange="prodApp.appEvents.emit('search.doCheckFilters', true);" class="datepicker input-small" type="text" name="date_max" placeholder="{% trans %}YYYY/MM/DD{% endtrans %}" style="margin: 0;position: relative; z-index: 10001;" />
</div>
</span>
{% endif %}
</div>
</div>
</div>
</td>