Refactor basket_adapter

This commit is contained in:
Romain Neutron
2011-12-26 10:48:44 +01:00
parent d42201986a
commit d10aa10424
10 changed files with 357 additions and 62 deletions

View File

@@ -13,7 +13,7 @@
<script type="text/javascript">
$(document).ready(function(){
$('#bask_create_sel').val(p4.sel.join(';'));
$('#bask_create_sel').val(p4.Result.Selection.serialize());
$('#DIALOG form').bind('submit', function(event){
@@ -31,7 +31,7 @@
},
success: function(data){
refreshBaskets(data.basket.id);
p4.WorkZone.refresh(data.basket.id);
$('#DIALOG').dialog('close').empty();
return;

View File

@@ -35,7 +35,7 @@
},
success: function(data){
refreshBaskets(data.basket.id);
return p4.WorkZone.refresh(data.basket.id);
$('#DIALOG').dialog('close').empty();
return;

View File

@@ -20,7 +20,7 @@
<script type="text/javascript">
$(document).ready(function(){
$('#story_create_sel').val(p4.sel.join(';'));
$('#story_create_sel').val(p4.Result.Selection.serialize());
$('#DIALOG form').bind('submit', function(event){
@@ -38,7 +38,7 @@
},
success: function(data){
refreshBaskets(data.basket.id);
p4.WorkZone.refresh(data.basket.id);
$('#DIALOG').dialog('close').empty();
return;

View File

@@ -0,0 +1,72 @@
<div style="margin:0 7px;overflow:hidden;">
{% set basket_length = basket.getElements()|length %}
<div class="tools">
<button class="ui-corner-all TOOL_disktt_btn basket_window" title="{% trans 'action : exporter' %}">
<img src="/skins/prod/000000/images/disktt_history.gif"/>
</button>
<button class="ui-corner-all TOOL_print_btn basket_window" title="{% trans 'action : print' %}">
<img src="/skins/prod/000000/images/print_history.gif"/>
</button>
{% if user.ACL().has_right('modifyrecord') %}
<button class="ui-corner-all TOOL_ppen_btn basket_window" title="{% trans 'action : editer' %}">
<img src="/skins/prod/000000/images/ppen_history.gif"/>
</button>
{% endif %}
{% if user.ACL().has_right('changestatus') %}
<button class="ui-corner-all TOOL_chgstatus_btn basket_window" title="{% trans 'action : status' %}">
<img src="/skins/prod/000000/images/chgstatus_history.gif"/>
</button>
{% endif %}
{% if user.ACL().has_right('deleterecord') and user.ACL().has_right('addrecord') %}
<button class="ui-corner-all TOOL_chgcoll_btn basket_window" title="{% trans 'action : collection' %}">
<img src="/skins/prod/000000/images/chgcoll_history.gif"/>
</button>
{% endif %}
{% if user.ACL().has_right('push') %}
<button class="ui-corner-all TOOL_pushdoc_btn basket_window" title="{% trans 'action : push' %}">
<img src="/skins/prod/000000/images/pushdoc_history.gif"/>
</button>
{% endif %}
{% if user.ACL().has_right('bas_chupub') %}
<button class="ui-corner-all TOOL_bridge_btn basket_window" title="{% trans 'action : bridge' %}">
<img src="/skins/icons/door.png"/>
</button>
<button class="ui-corner-all TOOL_publish_btn basket_window" title="{% trans 'action : publier' %}">
<img src="/skins/icons/rss16.png"/>
</button>
{% endif %}
{% if user.ACL().has_right('doctools') %}
<button class="ui-corner-all TOOL_imgtools_btn basket_window" title="{% trans 'action : outils' %}">
<img src="/skins/prod/000000/images/imgtools_history.gif"/>
</button>
{% endif %}
<button class="ui-corner-all TOOL_trash_btn basket_window" title="{% trans 'action : supprimer' %}">
<img src="/skins/icons/delete.png"/>
</button>
</div>
<div class="alert_datas_changed ui-corner-all">{% trans 'Certaines donnees du panier ont change' %} <a class="basket_refresher" href="#">{% trans 'rafraichir' %}</a></div>
{% if basket_length == 0 %}
<div style="height:120px;"></div>
{% endif %}
{% set basket_scope = 'objects'%}
{% import 'prod/WorkZone/Macros.twig' as Macros %}
{% if basket.getValidation() and basket.getValidation().getInitiator() == core.getAuthenticatedUser() %}
{{ Macros.display_validation(basket, ordre, user, session) }}
{% else %}
{{ Macros.display_basket(basket, user, session) }}
{% endif %}
</div>

View File

@@ -1,43 +0,0 @@
{% macro element(wz_scope, container, contained, record, ord, user, session) %}
{% set box_height = 110 %}
{% if user.getPrefs('basket_title_display') == '1' %}
{% set box_height = (box_height + 20) %}
{% endif %}
{% if user.getPrefs('basket_status_display') == '1' %}
{% set box_height = (box_height + 20) %}
{% endif %}
{% import 'common/thumbnail.html' as thumbnail %}
<div ondblclick="{% if wz_scope == 'groupings' %}openPreview('REG',{{ ord }},'{{container.get_base_id()}}_{{container.get_record_id()}}');{% else %}openPreview('BASK',{{ ord }},{{container.getId()}});{% endif %}"
class="CHIM diapo CHIM_{{record.get_serialize_key()}}" style="height:{{box_height}}px;">
{% if user.getPrefs('basket_title_display') == '1' %}
<div class="title">
{{record.get_title()}}
</div>
{% endif %}
{% if user.getPrefs('basket_status_display') == '1' %}
<div class="status" style="position:relative;height:20px;overflow-y:visible;z-index:15;">
{{record.get_status_icons|raw}}
</div>
{% endif %}
<div style="position:absolute;background-color:#959595;color:black;font-weight:bold;padding:3px;z-index:90;">
{{record.get_number()}}
</div>
{{thumbnail.format(record.get_thumbnail,82,82, '', session, true)}}
<div class="bottom">
<a
{% if wz_scope == 'groupings' %}
href="/prod/story/{{ container.get_sbas_id() }}/{{ container.get_record_id() }}/delete/{{ record.get_sbas_id() }}/{{ record.get_record_id() }}/"
{% else %}
href="/prod/story/{{ container.getId() }}/delete/{{ contained.getId() }}/"
{% endif %}
class="WorkZoneElementRemover {{ wz_scope }}" title="{% trans 'delete'%}" >
X
</a>
{% if user.getPrefs('basket_caption_display') == '1' %}
<div class="captionRolloverTips" tooltipsrc="/prod/tooltip/caption/{{record.get_sbas_id()}}/{{record.get_record_id()}}/basket/?number={{record.get_number()}}"></div>
{% endif %}
</div>
</div>
{% endmacro %}

View File

@@ -0,0 +1,270 @@
{% macro make_bloc(WorkZone, selected_type, selected_id, srt) %}
<div class="alert_datas_changed ui-corner-all">{% trans 'Vous avez recu un nouveau panier' %} <a class="basket_refresher" href="#">{% trans 'rafraichir' %}</a></div>
<div class="bloc">
<div class="insidebloc">
{% set content = WorkZone.getContent() %}
{% for basket in content.get(constant('\\Alchemy\\Phrasea\\Helper\\WorkZone::BASKETS')) %}
<div tooltipsrc="/prod/tooltip/basket/{{basket.getId()}}/"
id="SSTT_{{basket.getId()}}"
class="basketTips ui-accordion-header ui-state-default
ui-corner-all header SSTT basket {% if not basket.getIsRead() %}unread{% endif %}
{% if basket.getId() == selected_id and selected_type == 'basket' %}active{% endif %}">
<a href="/prod/baskets/{{ basket.getId() }}/">
<span>
<img src='/skins/icons/basket.gif' title=''/>
{{basket.getName()}}
</span>
</a>
<div class="menu">
{% if basket.getValidation() %}
<img title="{% trans 'Vous avez envoye une demande de validation de document sur ce panier' %}"
class="basketTips" src="/skins/icons/myvalid.png"/>
{% endif %}
{% if basket.getPusher() %}
{% set pusher = basket.getPusher().get_display_name() %}
<img class="basketTips" title="{% trans %}paniers:: panier recu de {{pusher}}{% endtrans %}"
src="/skins/icons/pushed_bask.png"/>
{% endif %}
<a style="cursor:pointer;display:inline;padding:0;margin:0;" class="contextMenuTrigger">&#9660;</a>
<table cellspacing="0" cellpadding="0" style="display:none;" class="contextMenu basketcontextmenu">
<tbody>
<tr>
<td>
<div class="context-menu context-menu-theme-vista">
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="downloadThis('SSTTID={{basket.getId()}}');">{% trans 'action::exporter' %}
</div>
</div>
<div title="" class="context-menu-item menu3-custom-item">
<div onclick="editThis('SSTT','{{basket.getId()}}');" style=""
class="context-menu-item-inner">{% trans 'action::editer' %}
</div>
</div>
<div title="" class="context-menu-item">
<div class="context-menu-item-inner">
<a href="/lightbox/compare/{{basket.getId()}}/" target="_blank">Lightbox</a>
</div>
</div>
<div title="" class="context-menu-item">
<div class="context-menu-item-inner">
<a class="dialog" title="{% trans 'action::renommer' %}" href="/prod/baskets/{{basket.getId()}}/update/">
{% trans 'action::renommer' %}
</a>
</div>
</div>
{% if basket.getValidation() %}
<div title="" class="context-menu-item">
<a target="_blank" href="/lightbox/validate/{{basket.getId()}}/">
<div class="context-menu-item-inner">
{% trans 'action::Valider' %}
</div>
</a>
</div>
{% endif %}
<div title="" class="context-menu-item">
<div class="context-menu-item-inner" id="SSTTREMOVER_{{basket.getId()}}"
onclick="checkDeleteThis('SSTT',this);return false;">
{% trans 'action : supprimer' %}
</div>
</div>
<div title="" class="context-menu-item">
<div class="context-menu-item-inner" onclick="reorder({{basket.getId()}});return false;">
{% trans 'Re-ordonner' %}
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="SSTT_content_{{basket.getId()}}" class="content basket" style="overflow:hidden;">
</div>
{% endfor %}
{% for story in content.get(constant('\\Alchemy\\Phrasea\\Helper\\WorkZone::STORIES')) %}
<div tooltipsrc="/prod/tooltip/Story/{{story.getRecord().get_sbas_id()}}/{{story.getRecord().get_record_id()}}/"
id="SSWZ_{{story.getId()}}" sbas="{{story.getSbasId()}}"
class="basketTips ui-accordion-header ui-state-default
ui-corner-all header SSTT grouping
{% if story.getId() == selected_id and selected_type == 'grouping' %}active{% endif %}">
<a href="/prod/story/{{ story.getRecord().get_sbas_id }}/{{ story.getRecord().get_record_id() }}/">
<span>
{{story.getRecord().get_base_id()|get_collection_logo|raw}}
{{story.getRecord().get_title()}}
</span>
</a>
<div class="menu">
<a style="cursor:pointer;display:inline;padding:0;margin:0;" class="contextMenuTrigger">
&#9660;
</a>
<table cellspacing="0" cellpadding="0" style="display:none;" class="contextMenu basketcontextmenu">
<tbody>
<tr>
<td>
<div class="context-menu context-menu-theme-vista">
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="downloadThis('lst={{story.getRecord().get_serialize_key()}}');">{% trans 'action::exporter' %}
</div>
</div>
<div title="" class="context-menu-item menu3-custom-item">
<div onclick="editThis('IMGT','{{story.getRecord().get_serialize_key()}}');" style=""
class="context-menu-item-inner">{% trans 'action::editer' %}
</div>
</div>
<div title="" class="context-menu-item">
<div id="UNFIX_{{story.getId()}}" class="context-menu-item-inner" onclick="unFix(this);return false;">
{% trans 'action::detacher' %}
</div>
</div>
<div title="" class="context-menu-item">
<div class="context-menu-item-inner" onclick="reorder('STORY',{{story.getRecord().get_serialize_key()}});return false;">
{% trans 'Re-ordonner' %}
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div sbas="{{story.getSbasId()}}" id="SSTT_content_{{story.getId()}}" class="content grouping" style="overflow:hidden;">
</div>
{% endfor %}
</div>
</div>
{% endmacro %}
{% macro element(wz_scope, container, contained, record, ord, user, session) %}
{% set box_height = 110 %}
{% if user.getPrefs('basket_title_display') == '1' %}
{% set box_height = (box_height + 20) %}
{% endif %}
{% if user.getPrefs('basket_status_display') == '1' %}
{% set box_height = (box_height + 20) %}
{% endif %}
{% import 'common/thumbnail.html' as thumbnail %}
<div ondblclick="{% if wz_scope == 'groupings' %}openPreview('REG',{{ ord }},'{{container.get_base_id()}}_{{container.get_record_id()}}');{% else %}openPreview('BASK',{{ ord }},{{container.getId()}});{% endif %}"
class="CHIM diapo CHIM_{{record.get_serialize_key()}}" style="height:{{box_height}}px;"
id="CHIM_{% if wz_scope == 'groupings' %}{{record.get_serialize_key()}}{% else %}{{ contained.getId() }}{% endif %}">
<input type="hidden" name="id" value="{{ record.get_serialize_key() }}"/>
{% if user.getPrefs('basket_title_display') == '1' %}
<div class="title">
{{record.get_title()}}
</div>
{% endif %}
{% if user.getPrefs('basket_status_display') == '1' %}
<div class="status" style="position:relative;height:20px;overflow-y:visible;z-index:15;">
{{record.get_status_icons|raw}}
</div>
{% endif %}
<div style="position:absolute;background-color:#959595;color:black;font-weight:bold;padding:3px;z-index:90;">
{{record.get_number()}}
</div>
{{thumbnail.format(record.get_thumbnail,82,82, '', session, true)}}
<div class="bottom">
<a
{% if wz_scope == 'groupings' %}
id="WZEL{{ container.get_sbas_id() }}_{{ container.get_record_id() }}_{{ record.get_sbas_id() }}_{{ record.get_record_id() }}"
href="/prod/story/{{ container.get_sbas_id() }}/{{ container.get_record_id() }}/delete/{{ record.get_sbas_id() }}/{{ record.get_record_id() }}/"
{% elseif wz_scope == 'basket' %}
id="WZEL_{{ container.getId() }}_{{ record.get_sbas_id() }}_{{ record.get_record_id() }}"
href="/prod/baskets/{{ container.getId() }}/delete/{{ contained.getId() }}/"
{% elseif wz_scope == 'basket' %}
href="#"
{% endif %}
class="WorkZoneElementRemover {{ wz_scope }}" title="{% trans 'delete'%}" >
X
</a>
{% if user.getPrefs('basket_caption_display') == '1' %}
<div class="captionRolloverTips" tooltipsrc="/prod/tooltip/caption/{{record.get_sbas_id()}}/{{record.get_record_id()}}/basket/?number={{record.get_number()}}"></div>
{% endif %}
</div>
</div>
{% endmacro %}
{% macro display_basket(basket, user, session) %}
{% for basket_element in basket.getElements() %}
<span class="wrapCHIM_{{ basket_element.getRecord().get_serialize_key() }}">
{{ _self.element('basket', basket, basket_element, basket_element.getRecord(), basket_element.getOrd(), user, session) }}
</span>
{% endfor %}
{% endmacro %}
{% macro display_validation(basket, ordre, user, session) %}
<div style="margin:5px 0;text-align:center;">
<form>
<select name="valid_ord">
<option {% if ordre=='nat'%}selected{% endif %} value="nat">{% trans 'panier:: ordre du panier' %}</option>
<option {% if ordre=='desc'%}selected{% endif %} value="desc">{% trans 'panier:: ordre Validation ascendante' %}</option>
<option {% if ordre=='asc'%}selected{% endif %} value="asc">{% trans 'panier:: ordre Validation descendante' %}</option>
</select>
</form>
</div>
{% for basket_element in basket.get_elements() %}
<span class="wrapCHIM_{{ basket_element.getRecord().get_serialize_key() }} valid">
<table style="width: 100%; min-width: 330px; display: inline-block;">
<tr>
<td style="width:80px;">
{{ _self.element('basket', basket, basket_element, basket.getRecord(), basket_element.getOrd(), user, session) }}
</td>
<td style="width:100%;">
<table style=width:100%>
{% for choice in basket_element.get_choices() %}
<tr>
<td> {{choice.usr_name}} </td>
<td>
{% if choice.agreement == '1' %}
<img style="cursor:help;" src='/skins/lightbox/agree.png' title="{% trans "L'utilisateur approuve ce document" %}" />
{% elseif choice.agreement == '-1' %}
<img style="cursor:help;" src='/skins/lightbox/disagree.png' title="{% trans "L'utilisateur desapprouve ce document" %}" />
{% else %}
<img style="cursor:help;" src='/skins/icons/valid.png' title="{% trans "L'utilisateur n'a pas encore donne son avis sur ce document" %}" />
{% endif %}
</td>
<td style="width:25px;">
{% if choice.note != '' %}
<img style="cursor:help;" src='/skins/icons/file-edit.png' class="noteTips" title="{{choice.note|e|nl2br}}" />
{% endif %}
</td>
</tr>
{% endfor %}
</table>
</td>
</tr>
</table>
</span>
{% endfor %}
{% endmacro %}

View File

@@ -62,11 +62,11 @@
{% endif %}
{% set basket_scope = 'groupings'%}
{% import 'prod/WorkZone/Element.html.twig' as Element %}
{% import 'prod/WorkZone/Macros.twig' as Macros %}
{% for record in Story.get_children().get_elements() %}
<span class="wrapCHIM_{{ record.get_serialize_key() }}">
{{ Element.element('groupings', Story, record, record, record.get_number(), user, session) }}
{{ Macros.element('groupings', Story, record, record, record.get_number(), user, session) }}
</span>
{% endfor %}
</div>

View File

@@ -0,0 +1,2 @@
{% import 'prod/WorkZone/Macros.twig' as WorkZoneMacros %}
{{WorkZoneMacros.make_bloc(WorkZone, selected_type, selected_id, srt)}}

View File

@@ -305,7 +305,7 @@
{% endif %}
</ul>
<div id="baskets" class="PNB ui-tabs-panel ui-accordion" style="top:30px;">
{% import 'prod/baskets_macro.html' as WorkZoneMacros %}
{% import 'prod/WorkZone/Macros.twig' as WorkZoneMacros %}
{{WorkZoneMacros.make_bloc(WorkZone)}}
</div>
<div id="adv_search">
@@ -484,11 +484,6 @@
</table>
</div>
{% endif %}
<!--<div id="adv_tech">
<div style="margin:10px;">
<a href="#" onclick="search_doubles();return false;">{% trans 'recherche:: rechercher les doublons' %}</a> <label>{% trans 'aide doublon:: trouve les documents ayant la meme signature numerique' %}</label>
</div>
</div>-->
</div>
</div>
</div>
@@ -588,13 +583,13 @@
</div>
</li>
<li class="context-menu-item">
<div class="context-menu-item-inner" onclick="refreshBaskets('current','date');">
<div class="context-menu-item-inner" onclick="return p4.WorkZone.refresh('current','date');">
<img style="cursor:pointer;" src="/skins/icons/cal.png" title="{% trans 'phraseanet:: tri par date' %}" />
{% trans 'phraseanet:: tri par date' %}
</div>
</li>
<li class="context-menu-item">
<div class="context-menu-item-inner" onclick="refreshBaskets('current','name');">
<div class="context-menu-item-inner" onclick="return p4.WorkZone.refresh('current','date');">
<img style="cursor:pointer;" src="/skins/icons/alpha.png" title="{% trans 'phraseanet:: tri par nom' %}" />
{% trans 'phraseanet:: tri par nom' %}
</div>
@@ -1178,7 +1173,6 @@
{% include "prod/thesaurus.js" %}
</script>
<script type="text/javascript" src="{{registry.get('GV_STATIC_URL')}}/include/minify/g=prod"></script>
<script type="text/javascript" src="{{registry.get('GV_STATIC_URL')}}/include/minify/f=prod/jquery.dialogs.js"></script>
<script type="text/javascript" src="{{registry.get('GV_STATIC_URL')}}/include/jslibs/jquery-ui-1.8.12/js/jquery-ui-1.8.12.custom.min.js"></script>
<script type="text/javascript" src="{{registry.get('GV_STATIC_URL')}}/include/minify/f=include/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">

View File

@@ -16,10 +16,10 @@
<ul>
<li class="title">{% trans 'Apparait aussi dans ces paniers' %}</li>
{% for basket in baskets %}
<li onclick="openPreview('BASK',0,'{{basket.get_ssel_id()}}',true); return(false);"
class="otherBaskToolTip" title="{{basket.get_description()}}">
<li onclick="openPreview('BASK',0,'{{basket.getId()}}',true); return(false);"
class="otherBaskToolTip" title="{{basket.getDescription()}}">
<img style="vertical-align:middle;" title="" src="/skins/icons/basket.gif"/>
<span class="title">{{basket.get_name()|raw}}</span>
<span class="title">{{basket.getName()}}</span>
</li>
{% endfor %}
</ul>