Merge branch 'fix_878' of https://github.com/nlegoff/Phraseanet into nlegoff-fix_878

This commit is contained in:
Romain Neutron
2013-06-17 15:08:25 +02:00
10 changed files with 641 additions and 654 deletions

View File

@@ -80,6 +80,8 @@ class record_preview extends record_adapter
*/
protected $download_popularity;
protected $original_item;
/**
*
* @param Application $app
@@ -110,6 +112,7 @@ class record_preview extends record_adapter
}
foreach ($results->getResults() as $record) {
$number = $pos;
$this->original_item = $record;
$sbas_id = $record->get_sbas_id();
$record_id = $record->get_record_id();
break;
@@ -121,6 +124,7 @@ class record_preview extends record_adapter
$record_id = $contId[1];
$this->container = new record_adapter($app, $sbas_id, $record_id);
$this->original_item = $this->container;
if ($pos == 0) {
$number = 0;
$title = _('preview:: regroupement ');
@@ -128,6 +132,7 @@ class record_preview extends record_adapter
$children = $this->container->get_children();
foreach ($children as $child) {
$sbas_id = $child->get_sbas_id();
$this->original_item = $child;
$record_id = $child->get_record_id();
if ($child->get_number() == $pos)
break;
@@ -153,6 +158,7 @@ class record_preview extends record_adapter
/* @var $element \Entities\BasketElement */
$i ++;
if ($first) {
$this->original_item = $element;
$sbas_id = $element->getRecord($this->app)->get_sbas_id();
$record_id = $element->getRecord($this->app)->get_record_id();
$this->name = $Basket->getName();
@@ -161,6 +167,7 @@ class record_preview extends record_adapter
$first = false;
if ($element->getOrd() == $pos) {
$this->original_item = $element;
$sbas_id = $element->getRecord($this->app)->get_sbas_id();
$record_id = $element->getRecord($this->app)->get_record_id();
$this->name = $Basket->getName();
@@ -181,6 +188,7 @@ class record_preview extends record_adapter
if ($first) {
$sbas_id = $element->get_record()->get_sbas_id();
$record_id = $element->get_record()->get_record_id();
$this->original_item = $element;
$this->name = $entry->get_title();
$number = $element->get_ord();
}
@@ -189,6 +197,7 @@ class record_preview extends record_adapter
if ($element->get_ord() == $pos) {
$sbas_id = $element->get_record()->get_sbas_id();
$record_id = $element->get_record()->get_record_id();
$this->original_item = $element;
$this->name = $entry->get_title();
$number = $element->get_ord();
}
@@ -258,6 +267,11 @@ class record_preview extends record_adapter
return $this->env == 'REG';
}
public function get_original_item()
{
return $this->original_item;
}
/**
*
* @return String

View File

@@ -310,7 +310,7 @@
href="{{ path('prod_stories_story_remove_element', { 'sbas_id' : container.get_sbas_id(), 'record_id' : container.get_record_id(), 'child_sbas_id' : record.get_sbas_id(), 'child_record_id' : record.get_record_id() }) }}"
{% elseif wz_scope == 'basket' %}
id="WZEL_{{ container.getId() }}_{{ record.get_sbas_id() }}_{{ record.get_record_id() }}"
href="{{ path('prod_baskets_basket_element_remove', { 'basket_id' : container.getId(), 'basket_element_id' : contained.getId()}) }}/"
href="{{ path('prod_baskets_basket_element_remove', { 'basket_id' : container.getId(), 'basket_element_id' : contained.getId()}) }}"
{% elseif wz_scope == 'basket' %}
href="#"
{% endif %}

View File

@@ -5,6 +5,15 @@
onclick="evt_add_in_chutier('{{record.get_sbas_id()}}','{{record.get_record_id()}}',false,this);return(false);"></div>
{% endif %}
{% if record.is_from_basket() %}
<a sbas="{{record.get_sbas_id()}}" id="PREV_BASKDEL_{{record.get_serialize_key}}"
class="baskDeleter WorkZoneElementRemover" title="{% trans 'Remove from basket' %}"
data-context="reg_train_basket"
onclick="remove_from_basket($(this), false);return false;"
href="{{ path('prod_baskets_basket_element_remove', { 'basket_id' : record.get_container().getId(), 'basket_element_id' : record.get_original_item().getId()}) }}">
</a>
{% endif %}
<div class="printer" title="'{% trans 'action : print' %}"
onclick="evt_print('{{record.get_sbas_id()}}_{{record.get_record_id()}}');return(false);"></div>

View File

@@ -517,7 +517,7 @@ span.ww_winTitle {
/******* PRESENTATION DE MINIATURES *******************************************/
.captionRolloverTips, .previewTips, .infoTips,
.baskAdder, .printer, .downloader {
.baskAdder, .printer, .downloader, .baskDeleter {
background-image: url('../../icons/zoom.gif');
background-repeat: no-repeat;
background-position: center center;
@@ -539,6 +539,10 @@ span.ww_winTitle {
background-image: url('../../icons/basket.gif');
}
.baskDeleter {
background-image: url('../../icons/delete.gif');
}
.printer {
background-image: url('../../icons/print.gif');
}
@@ -731,8 +735,9 @@ div.diapo {
background-color: transparent;
border: none;
width: 16px;
height: 16px;
height: 22px;
cursor: pointer;
padding: 0px;
}
#idFrameC #baskets .alert_datas_changed {

View File

@@ -565,6 +565,10 @@ span.ww_winTitle {
background-image: url('../../icons/basket.gif');
}
.baskDeleter {
background-image: url('../../icons/delete.gif');
}
.printer {
background-image: url('../../icons/print.gif');
}
@@ -761,8 +765,9 @@ div.diapo {
background-color: transparent;
border: none;
width: 16px;
height: 16px;
height: 22px;
cursor: pointer;
padding: 0px;
}
#idFrameC #baskets .alert_datas_changed {

View File

@@ -1,17 +1,14 @@
(function() {
$(document).ready(function() {
humane.info = humane.spawn({addnCls: 'humane-libnotify-info', timeout: 1000});
humane.error = humane.spawn({addnCls: 'humane-libnotify-error', timeout: 1000});
$('a.dialog').live('click', function(event) {
var $this = $(this), size = 'Medium';
if($this.hasClass('small-dialog'))
{
if ($this.hasClass('small-dialog')) {
size = 'Small';
}
else if($this.hasClass('full-dialog'))
{
} else if ($this.hasClass('full-dialog')) {
size = 'Full';
}
@@ -28,9 +25,6 @@
type: "GET",
url: $this.attr('href'),
dataType: 'html',
beforeSend:function(){
},
success: function(data) {
$dialog.setContent(data);
return;
@@ -39,7 +33,5 @@
return false;
});
});
}())
}());

View File

@@ -1,15 +1,9 @@
var p4 = p4 || {};
(function(p4) {
function refreshBaskets(baskId, sort, scrolltobottom, type)
{
type = typeof type == 'undefined' ? 'basket' : type;
type = typeof type === 'undefined' ? 'basket' : type;
var active = $('#baskets .SSTT.ui-state-active');
if (baskId == 'current' && active.length > 0)
@@ -56,11 +50,8 @@ var p4 = p4 || {};
});
}
function setTemporaryPref(name, value)
{
$.ajax({
type: "POST",
url: "/user/preferences/temporary/",
@@ -75,10 +66,8 @@ var p4 = p4 || {};
}
$("#baskets div.content select[name=valid_ord]").live('change', function() {
var active = $('#baskets .SSTT.ui-state-active');
if(active.length==0)
{
if (active.length === 0) {
return;
}
@@ -87,16 +76,13 @@ var p4 = p4 || {};
getContent(active, order);
});
function WorkZoneElementRemover(el, confirm)
{
var context = el.data('context');
if(confirm !== true && $(el).hasClass('groupings') && p4.reg_delete == true)
{
if (confirm !== true && $(el).hasClass('groupings') && p4.reg_delete) {
var buttons = {};
buttons[language.valider] = function() {
$("#DIALOG-baskets").dialog('close').remove();
WorkZoneElementRemover(el, true);
@@ -112,7 +98,6 @@ var p4 = p4 || {};
.empty()
.append(texte)
.dialog({
autoOpen: false,
closeOnEscape: true,
resizable: false,
@@ -138,17 +123,38 @@ var p4 = p4 || {};
$('.wrapCHIM_' + id).find('.CHIM').fadeOut();
},
success: function(data) {
if(data.success)
{
if (data.success) {
humane.info(data.message);
p4.WorkZone.Selection.remove(id);
$('.wrapCHIM_' + id).find('.CHIM').draggable('destroy');
$('.wrapCHIM_' + id).remove();
if (context === "reg_train_basket") {
var carousel = $("#PREVIEWCURRENTCONT");
var carouselItemLength = $('li', carousel).length;
var selectedItem = $("li.prevTrainCurrent.selected", carousel);
var selectedItemIndex = $('li', carousel).index(selectedItem);
// item is first and list has at least 2 items
if (selectedItemIndex === 0 && carouselItemLength > 1) {
// click next item
selectedItem.next().find("img").trigger("click");
// item is last item and list has at least 2 items
} else if (carouselItemLength > 1 && selectedItemIndex === (carouselItemLength - 1)) {
// click previous item
selectedItem.prev().find("img").trigger("click");
// Basket is empty
} else if (carouselItemLength > 1) {
// click next item
selectedItem.next().find("img").trigger("click");
} else {
closePreview();
}
else
{
selectedItem.remove();
}
} else {
humane.error(data.message);
$('.wrapCHIM_' + id).find('.CHIM').fadeIn();
}
@@ -169,13 +175,10 @@ var p4 = p4 || {};
collapsible: true,
header: 'div.header',
change: function(event, ui) {
var b_active = $('#baskets .SSTT.active');
if(p4.next_bask_scroll)
{
if (p4.next_bask_scroll) {
p4.next_bask_scroll = false;
if (!b_active.next().is(':visible'))
return;
@@ -188,12 +191,10 @@ var p4 = p4 || {};
});
}
var uiactive = $(this).find('.ui-state-active');
b_active.not('.ui-state-active').removeClass('active');
if(uiactive.length === 0)
{
if (uiactive.length === 0) {
return; /* everything is closed */
}
@@ -212,6 +213,7 @@ var p4 = p4 || {};
$('#basketcontextwrap .basketcontextmenu').hide();
}
});
$('.bloc', cache).droppable({
accept: function(elem) {
if ($(elem).hasClass('grouping') && !$(elem).hasClass('SSTT'))
@@ -226,23 +228,19 @@ var p4 = p4 || {};
}
});
if($('.SSTT.active',cache).length>0)
{
if ($('.SSTT.active', cache).length > 0) {
var el = $('.SSTT.active', cache)[0];
$(el).trigger('click');
}
$(".SSTT, .content", cache)
.droppable({
scope: 'objects',
hoverClass: 'baskDrop',
tolerance: 'pointer',
accept: function(elem) {
if($(elem).hasClass('CHIM'))
{
if($(elem).closest('.content').prev()[0] == $(this)[0])
{
if ($(elem).hasClass('CHIM')) {
if ($(elem).closest('.content').prev()[0] == $(this)[0]) {
return false;
}
}
@@ -278,19 +276,15 @@ var p4 = p4 || {};
}
function getContent(header, order)
{
if(window.console)
{
if (window.console) {
console.log('Reload content for ', header);
}
var url = $('a', header).attr('href');
if(typeof order !== 'undefined')
{
if (typeof order !== 'undefined') {
url += '?order=' + order;
}
@@ -309,20 +303,18 @@ var p4 = p4 || {};
dest.droppable('destroy').empty().removeClass('loading');
dest.append(data)
dest.append(data);
$('a.WorkZoneElementRemover', dest)
.bind('mousedown', function(event){return false;})
.bind('click', function(event){
$('a.WorkZoneElementRemover', dest).bind('mousedown', function(event) {
return false;
}).bind('click', function(event) {
return WorkZoneElementRemover($(this), false);
});
dest.droppable({
accept: function(elem) {
if($(elem).hasClass('CHIM'))
{
if($(elem).closest('.content')[0] == $(this)[0])
{
if ($(elem).hasClass('CHIM')) {
if ($(elem).closest('.content')[0] == $(this)[0]) {
return false;
}
}
@@ -387,101 +379,75 @@ var p4 = p4 || {};
});
}
function dropOnBask(event, from, destKey, singleSelection)
{
var action = "",
from = $(from), dest_uri = '', lstbr = [],
sselcont = [], act = "ADD";
var action = "", from = $(from), dest_uri = '', lstbr = [], sselcont = [], act = "ADD";
if(from.hasClass("CHIM"))
{
if (from.hasClass("CHIM")) {
/* Element(s) come from an open object in the workzone */
action = $(' #baskets .ui-state-active').hasClass('grouping') ? 'REG2' : 'CHU2';
}
else
{
} else {
/* Element(s) come from result */
action = 'IMGT2';
}
action += destKey.hasClass('grouping') ? 'REG' : 'CHU';
if(destKey.hasClass('content'))
{
if (destKey.hasClass('content')) {
/* I dropped on content */
dest_uri = $('a', destKey.prev()).attr('href');
}
else
{
} else {
/* I dropped on Title */
dest_uri = $('a', destKey).attr('href');
}
if(window.console)
{
if (window.console) {
window.console.log('Requested action is ', action, ' and act on ', dest_uri);
}
if(action=="IMGT2CHU" || action=="IMGT2REG")
{
if($(from).hasClass('.baskAdder') )
{
if (action === "IMGT2CHU" || action === "IMGT2REG") {
if ($(from).hasClass('.baskAdder')) {
lstbr = [$(from).attr('id').split('_').slice(2, 4).join('_')];
}
else if(singleSelection)
{
if(from.length == 1) {
} else if (singleSelection) {
if (from.length === 1) {
lstbr = [$(from).attr('id').split('_').slice(1, 3).join('_')];
} else {
lstbr = [$(from).selector.split('_').slice(1,3).join('_') ]
lstbr = [$(from).selector.split('_').slice(1, 3).join('_')];
}
}
else
{
} else {
lstbr = p4.Results.Selection.get();
}
}
else
{
} else {
sselcont = $.map(p4.WorkZone.Selection.get(), function(n, i) {
return $('.CHIM_' + n, $('#baskets .content:visible')).attr('id').split('_').slice(1, 2).pop();
});
lstbr = p4.WorkZone.Selection.get();
}
switch(action)
{
switch (action) {
case "CHU2CHU" :
if(!is_ctrl_key(event))
act = "MOV";
if (!is_ctrl_key(event)) act = "MOV";
break;
case "IMGT2REG":
case "CHU2REG" :
case "REG2REG":
var sameSbas = true,
sbas_reg = destKey.attr('sbas');
var sameSbas = true, sbas_reg = destKey.attr('sbas');
for (var i=0; i<lstbr.length && sameSbas ; i++)
{
if(lstbr[i].split('_').shift() != sbas_reg)
{
for (var i = 0; i < lstbr.length && sameSbas; i++) {
if (lstbr[i].split('_').shift() != sbas_reg) {
sameSbas = false;
break;
}
}
if(sameSbas === false)
{
if (sameSbas === false) {
return p4.Alerts('', language.reg_wrong_sbas);
}
break;
}
switch(act+action)
{
switch (act + action) {
case 'MOVCHU2CHU':
var url = dest_uri + "stealElements/";
var data = {
@@ -500,16 +466,14 @@ var p4 = p4 || {};
};
break;
default:
if(window.console)
{
if (window.console) {
console.log('Should not happen');
}
return;
break;
}
if(window.console)
{
if (window.console) {
window.console.log('About to execute ajax POST on ', url, ' with datas ', data);
}
@@ -522,16 +486,12 @@ var p4 = p4 || {};
},
success: function(data) {
if(!data.success)
{
if (!data.success) {
humane.error(data.message);
}
else
{
} else {
humane.info(data.message);
}
if(act == 'MOV' || $(destKey).next().is(':visible') === true || $(destKey).hasClass('content') === true)
{
if (act == 'MOV' || $(destKey).next().is(':visible') === true || $(destKey).hasClass('content') === true) {
$('.CHIM.selected:visible').fadeOut();
p4.WorkZone.Selection.empty();
return p4.WorkZone.reloadCurrent();
@@ -542,8 +502,6 @@ var p4 = p4 || {};
});
}
function fix()
{
$.ajax({
@@ -586,12 +544,13 @@ var p4 = p4 || {};
'addElementToBasket': function(sbas_id, record_id, event, singleSelection) {
singleSelection = !!singleSelection || false;
if($('#baskets .SSTT.active').length == 1) {
if ($('#baskets .SSTT.active').length === 1) {
return dropOnBask(event, $('#IMGT_' + sbas_id + '_' + record_id), $('#baskets .SSTT.active'), singleSelection);
} else {
humane.info(language.noActiveBasket);
}
},
"removeElementFromBasket": WorkZoneElementRemover,
'reloadCurrent': function() {
var sstt = $('#baskets .content:visible');
if (sstt.length === 0)
@@ -599,9 +558,7 @@ var p4 = p4 || {};
getContent(sstt.prev());
},
'close': function() {
var frame = $('#idFrameC'),
that = this;
var frame = $('#idFrameC'), that = this;
if (!frame.hasClass('closed'))
{
@@ -623,7 +580,6 @@ var p4 = p4 || {};
}
},
'open': function() {
var frame = $('#idFrameC');
if (frame.hasClass('closed'))
@@ -641,4 +597,4 @@ var p4 = p4 || {};
});
return;
}(p4))
}(p4));

View File

@@ -2502,6 +2502,12 @@ function evt_add_in_chutier(sbas_id, record_id,event, singleSelection)
p4.WorkZone.addElementToBasket(sbas_id, record_id, event, singleSelection);
}
function remove_from_basket(el, confirm)
{
var confirm = confirm || false;
p4.WorkZone.removeElementFromBasket(el, confirm);
}
function doSpecialSearch(qry, allbase){
if (allbase) {