Merge branch 4.0

This commit is contained in:
Thibaud Fabre
2016-12-05 15:26:48 +01:00
parent f6700fbe12
commit b5bbb1851f
315 changed files with 6552 additions and 29445 deletions

View File

@@ -10,55 +10,3 @@
{{ 'Ajouter ma selection courrante' | trans }}
</label>
</form>
<script type="text/javascript">
$(document).ready(function(){
var $dialog = p4.Dialog.get(1);
var $dialogBox = $dialog.getDomElement();
$('input[name="lst"]', $dialogBox).val(p4.Results.Selection.serialize());
var buttons = $dialog.getOption('buttons');
buttons[language.create] = function(){
$('form', $dialogBox).trigger('submit')
};
$dialog.setOption('buttons', buttons);
$('form', $dialogBox).bind('submit', function(event){
var $form = $(this);
var dialog = $dialogBox.closest('.ui-dialog');
var buttonPanel = dialog.find('.ui-dialog-buttonpane');
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serializeArray(),
dataType: 'json',
beforeSend:function(){
$(":button:contains('" + language.create + "')", buttonPanel)
.attr("disabled", true).addClass("ui-state-disabled");
},
success: function(data){
p4.WorkZone.refresh(data.basket.id);
p4.Dialog.Close(1);
return;
},
error: function(){
$(":button:contains('" + language.create + "')", buttonPanel)
.attr("disabled", false).removeClass("ui-state-disabled");
},
timeout: function(){
}
});
return false;
});
});
</script>

View File

@@ -34,187 +34,3 @@
{% endfor %}
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
var container = $('#reorder_box');//p4.Dialog.get(1).getDomElement();
$('button.autoorder', container).bind('click', function(){
autoorder();
return false;
});
$('button.reverseorder', container).bind('click', function(){
reverse_order();
return false;
});
function autoorder()
{
var val = $.trim($('#auto_order').val());
if(val == '') {
return;
}
var diapos = [];
$('#reorder_box .diapo form').each(function(i,n){
diapos.push({
"title": $('input[name=title]',n).val(),
"order" : parseInt($('input[name=default]',n).val()),
"id" : $('input[name=id]',n).val()
});
});
var sorterCallback;
if (val === "default") {
sorterCallback = function(diapo) {return diapo.order;};
} else {
sorterCallback = function(diapo) {return diapo.title;};
}
var elements = [];
_.chain(diapos)
.sortBy(sorterCallback)
.each(function(diapo) {
elements.push($('#ORDER_'+ diapo.id));
});
$('#reorder_box .elements').append(elements);
}
function reverse_order() {
var $container = $('#reorder_box .elements');
$('#reorder_box .diapo').each(function() {
$(this).prependTo($container);
});
}
$('.elements', container).sortable({
appendTo : container,
placeholder: 'diapo ui-sortable-placeholder',
distance:20,
cursorAt: {
top:10,
left:-20
},
items:'div.diapo',
scroll:true,
scrollSensitivity:40,
scrollSpeed:30,
start:function(event, ui){
var selected = $('.selected',container);
selected.each(function(i,n){
$(n).attr('position',i);
});
var n = selected.length - 1;
$('.selected:visible', container).hide();
while(n > 0){
$('<div style="height:130px;" class="diapo ui-sortable-placeholderfollow"></div>').after($('.diapo.ui-sortable-placeholder', container));
n--;
}
},
stop:function(event, ui){
$('.diapo.ui-sortable-placeholderfollow', container).remove();
var main_id = $(ui.item[0]).attr('id');
var selected = $('.selected',container);
var sorter = new Array();
selected.each(function(i,n){
var position = parseInt($(n).attr('position'));
if(position !== '') {
sorter[position] = $(n);
}
var id = $(n).attr('id');
if(id == main_id) {
return;
}
});
var before = true;
var last_moved = $(ui.item[0]);
$(sorter).each(function(i,n){
$(n).show().removeAttr('position');
if($(n).attr('id') == main_id){
before = false;
} else {
if(before){
$(n).before($(ui.item[0]));
} else{
$(n).after($(last_moved));
}
}
last_moved = sorter[i];
});
},
change:function(){
$('.diapo.ui-sortable-placeholderfollow', container).remove();
var n = OrderSelection.length() - 1 ;
while(n > 0) {
$('<div style="height:130px;" class="diapo ui-sortable-placeholderfollow"></div>').after($('.diapo.ui-sortable-placeholder', container));
n--;
}
}
}).disableSelection();
var OrderSelection = new Selectable($('.elements', container), {
selector : '.CHIM'
});
$('form[name="reorder"]', container).bind('submit', function(event){
//$this.SetLoader(true);
var $form = $(this);
$('.elements form', container).each(function(i, el){
var id = $('input[name="id"]', $(el)).val();
$('input[name="element[' + id + ']"]', $form).val(i+1);
});
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serializeArray(),
dataType: 'json',
beforeSend:function(){
},
success: function(data){
if(!data.success) {
alert(data.message);
}
p4.WorkZone.refresh('current');
p4.Dialog.get(1).Close();
return;
},
error: function(){
},
timeout: function(){
}
});
return false;
});
});
</script>

View File

@@ -6,48 +6,4 @@
<textarea style="width:98%;height:120px;" name="description">{{ basket.getDescription() }}</textarea>
<button type='button' class="btn btn-inverse" style="margin: 5px 40%;">{{ 'boutton::valider' | trans }}</button>
</form>
<script type="text/javascript">
$(document).ready(function(){
$('form[name="basket-rename-box"]').on('submit', function(event){
event.preventDefault();
onSubmitRenameForm(event);
});
$('#basket-rename-box button').on('click', function(event){
event.preventDefault();
onSubmitRenameForm(event);
});
var onSubmitRenameForm = function(event) {
var $form = $(event.currentTarget).closest('form');
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
dataType: 'json',
data: $form.serializeArray(),
beforeSend:function(){
},
success: function(data){
$dialog = p4.Dialog.get(1).Close();
if(data.success) {
humane.info(data.message);
return p4.WorkZone.refresh(data.basket.id);
} else {
humane.error(data.message);
return false;
}
},
error: function(){
},
timeout: function(){
}
});
return false;
};
});
</script>
</div>

View File

@@ -53,44 +53,7 @@
</form>
</p>
</div>
<script language="javascript">
$(document).ready(function(){
$('input.ui-state-default').hover(
function(){$(this).addClass('ui-state-hover');},
function(){$(this).removeClass('ui-state-hover');}
);
$('#permalinkUrlCopy').on('click', function(event) {
event.preventDefault();
return copyElContentClipboard('permalinkUrl');
});
$('#permaviewUrlCopy').on('click', function(event) {
event.preventDefault();
return copyElContentClipboard('permaviewUrl');
});
$('#embedCopy').on('click', function(event) {
event.preventDefault();
return copyElContentClipboard('embedRecordUrl');
});
var copyElContentClipboard = function(elId) {
var copyEl = document.getElementById(elId);
copyEl.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('unable to copy');
}
}
});
</script>
{% else %}
<div>{{ 'No URL available' | trans }}</div>
{% endif %}
{% endif %}

View File

@@ -14,55 +14,4 @@
<input type="checkbox" name="lst" value="" id="new_story_add_sel"/>
{{ 'Ajouter ma selection courrante' | trans }}
</label>
<script type="text/javascript">
$(document).ready(function(){
var $dialog = p4.Dialog.get(1);
var $dialogBox = $dialog.getDomElement();
$('input[name="lst"]', $dialogBox).val(p4.Results.Selection.serialize());
var buttons = $dialog.getOption('buttons');
buttons[language.create] = function(){
$('form', $dialogBox).trigger('submit')
};
$dialog.setOption('buttons', buttons);
$('form', $dialogBox).bind('submit', function(event){
var $form = $(this);
var dialog = $dialogBox.closest('.ui-dialog');
var buttonPanel = dialog.find('.ui-dialog-buttonpane');
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serializeArray(),
dataType: 'json',
beforeSend:function(){
$(":button:contains('" + language.create + "')", buttonPanel)
.attr("disabled", true).addClass("ui-state-disabled");
},
success: function(data){
p4.WorkZone.refresh(data.WorkZone, '', true, 'story');
p4.Dialog.Close(1);
return;
},
error: function(){
$(":button:contains('" + language.create + "')", buttonPanel)
.attr("disabled", false).removeClass("ui-state-disabled");
},
timeout: function(){
}
});
return false;
});
});
</script>
</form>

View File

@@ -34,195 +34,3 @@
{% endfor %}
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
var optionsContainer = $('#reorder_options');
var container = $('#reorder_box');
$('button.autoorder', optionsContainer).bind('click', function(){
autoorder();
return false;
});
$('button.reverseorder', optionsContainer).bind('click', function(){
reverse_order();
return false;
});
function autoorder()
{
var val = $.trim($('#auto_order').val());
if(val == '') {
return;
}
var diapos = [];
$('#reorder_box .diapo form').each(function(i,n){
diapos.push({
"title": $('input[name=title]',n).val(),
"order" : parseInt($('input[name=default]',n).val()),
"id" : $('input[name=id]',n).val()
});
});
var sorterCallback;
if (val === "default") {
sorterCallback = function(diapo) {return diapo.order;};
} else {
sorterCallback = function(diapo) {return diapo.title;};
}
var elements = [];
_.chain(diapos)
.sortBy(sorterCallback)
.each(function(diapo) {
elements.push($('#ORDER_'+ diapo.id));
});
$('#reorder_box .elements').append(elements);
}
function reverse_order() {
var $container = $('#reorder_box .elements');
$('#reorder_box .diapo').each(function() {
$(this).prependTo($container);
});
}
$('.elements', container).sortable({
appendTo : container,
placeholder: 'diapo ui-sortable-placeholder',
distance:20,
cursorAt: {
top:10,
left:-20
},
items:'div.diapo',
scroll:true,
scrollSensitivity:40,
scrollSpeed:30,
start:function(event, ui){
var selected = $('.selected',container);
selected.each(function(i,n){
$(n).attr('position',i);
});
var n = selected.length - 1;
$('.selected:visible', container).hide();
while(n > 0)
{
$('<div style="height:130px;" class="diapo ui-sortable-placeholderfollow"></div>').after($('.diapo.ui-sortable-placeholder', container));
n--;
}
},
stop:function(event, ui){
$('.diapo.ui-sortable-placeholderfollow', container).remove();
var main_id = $(ui.item[0]).attr('id');
var selected = $('.selected',container);
var sorter = new Array();
selected.each(function(i,n){
var position = parseInt($(n).attr('position'));
if(position !== '')
{
sorter[position] = $(n);
}
var id = $(n).attr('id');
if(id == main_id)
{
return;
}
});
var before = true;
var last_moved = $(ui.item[0]);
$(sorter).each(function(i,n){
$(n).show().removeAttr('position');
if($(n).attr('id') == main_id)
{
before = false;
}
else
{
if(before)
$(n).before($(ui.item[0]));
else
$(n).after($(last_moved));
}
last_moved = sorter[i];
});
},
change:function(){
$('.diapo.ui-sortable-placeholderfollow', container).remove();
var n = OrderSelection.length() - 1 ;
while(n > 0)
{
$('<div style="height:130px;" class="diapo ui-sortable-placeholderfollow"></div>').after($('.diapo.ui-sortable-placeholder', container));
n--;
}
}
}).disableSelection();
var OrderSelection = new Selectable($('.elements', container), {
selector : '.CHIM'
});
$('form[name="reorder"] button').bind('click', function(event){
var $form = $(this).closest("form");
$('.elements form', container).each(function(i, el){
var id = $('input[name="id"]', $(el)).val();
$('input[name="element[' + id + ']"]', $form).val(i+1);
});
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serializeArray(),
dataType: 'json',
beforeSend:function(){
},
success: function(data){
if(!data.success) {
alert(data.message);
}
p4.WorkZone.refresh('current', null, false, 'story');
p4.Dialog.get(1).Close();
return;
},
error: function(){
},
timeout: function(){
}
});
return false;
});
});
</script>

View File

@@ -47,7 +47,7 @@
<label for="">{{ 'City' | trans }}</label>
</td>
<td>
<input name="city" type="text" value="" class="geoname_field"/>
<input name="city" type="text" value="" class="geoname_field" autocomplete="false"/>
</td>
</tr>
<tr>
@@ -66,67 +66,8 @@
</div>
<script type="text/javascript">
var addUserConfig = {
geonameServerUrl: "{{ app['geonames.server-uri'] }}"
}
$addUserForm = $('#quickAddUser');
$addUserFormMessages = $addUserForm.find('.messages');
var closeModal = function() {
var dialog = $addUserForm.closest('.ui-dialog-content');
if (dialog.data("ui-dialog")) {
dialog.dialog('destroy').remove();
}
};
var submitAddUser = function() {
console.log('add user');
$addUserFormMessages.empty();
var method = $addUserForm.attr('method');
method = $.inArray(method.toLowerCase(), ['post', 'get']) ? method : 'POST';
$.ajax({
type : method,
url : $addUserForm.attr('action'),
data : $addUserForm.serializeArray(),
beforeSend : function(){
$addUserForm.addClass('loading');
},
success : function(datas){
if( datas.success === true ) {
p4.Feedback.addUser($addUserForm, closeModal);
} else {
if( datas.message !== undefined ) {
$addUserFormMessages.empty().append('<div class="alert alert-error">' + datas.message + '</div>');
}
}
$addUserForm.removeClass('loading');
},
error:function(){
$addUserForm.removeClass("loading");
},
timeout:function(){
$addUserForm.removeClass("loading");
}
});
};
$addUserForm.find('.geoname_field').geocompleter({
"server": "{{ app['geonames.server-uri'] }}",
"limit": 40
});
$addUserForm.on('submit', function(event) {
event.preventDefault();
submitAddUser();
});
$addUserForm.on('click', '.validate', function(event) {
event.preventDefault();
submitAddUser();
});
$addUserForm.on('click', '.cancel', function(event) {
event.preventDefault();
closeModal();
return false;
});
</script>
</script>

View File

@@ -4,57 +4,57 @@
<label>Actions</label>
<button class="ui-corner-all TOOL_disktt_btn basket_window" title="{{ 'action : exporter' | trans }}">
<button class="ui-corner-all TOOL_disktt_btn basket_window" title="{{ 'action : exporter' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/disktt_history.png"/>
</button>
<button class="ui-corner-all TOOL_print_btn basket_window" title="{{ 'action : print' | trans }}">
<button class="ui-corner-all TOOL_print_btn basket_window" title="{{ 'action : print' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/print_history.png"/>
</button>
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('modifyrecord') %}
<button class="ui-corner-all TOOL_ppen_btn basket_window" title="{{ 'action : editer' | trans }}">
<button class="ui-corner-all TOOL_ppen_btn basket_window" title="{{ 'action : editer' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/ppen_history.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('changestatus') %}
<button class="ui-corner-all TOOL_chgstatus_btn basket_window" title="{{ 'action : status' | trans }}">
<button class="ui-corner-all TOOL_chgstatus_btn basket_window" title="{{ 'action : status' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/chgstatus_history.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('deleterecord') and app.getAclForUser(app.getAuthenticatedUser()).has_right('addrecord') %}
<button class="ui-corner-all TOOL_chgcoll_btn basket_window" title="{{ 'action : collection' | trans }}">
<button class="ui-corner-all TOOL_chgcoll_btn basket_window" title="{{ 'action : collection' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/chgcoll_history.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('push') %}
<button class="ui-corner-all TOOL_pushdoc_btn basket_window" title="{{ 'action : push' | trans }}">
<button class="ui-corner-all TOOL_pushdoc_btn basket_window" title="{{ 'action : push' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/push16.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('push') %}
<button class="ui-corner-all TOOL_feedback_btn basket_window" title="{{ 'Feedback' | trans }}">
<button class="ui-corner-all TOOL_feedback_btn basket_window" title="{{ 'Feedback' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/feedback16.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('bas_chupub') %}
<button class="ui-corner-all TOOL_bridge_btn basket_window" title="{{ 'action : bridge' | trans }}" data-href="{{ path("prod_bridge_manager") }}">
<button class="ui-corner-all TOOL_bridge_btn basket_window" title="{{ 'action : bridge' | trans }}" data-href="{{ path("prod_bridge_manager") }}" data-selection-source="basket">
<img src="/assets/common/images/icons/door.png"/>
</button>
<button class="ui-corner-all TOOL_publish_btn basket_window" title="{{ 'action : publier' | trans }}">
<button class="ui-corner-all TOOL_publish_btn basket_window" title="{{ 'action : publier' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/rss16.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('doctools') %}
<button class="ui-corner-all TOOL_imgtools_btn basket_window" title="{{ 'action : outils' | trans }}">
<button class="ui-corner-all TOOL_imgtools_btn basket_window" title="{{ 'action : outils' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/imgtools_history.png"/>
</button>
{% endif %}
<button class="ui-corner-all TOOL_trash_btn basket_window" title="{{ 'action : supprimer' | trans }}">
<button class="ui-corner-all TOOL_trash_btn basket_window" title="{{ 'action : supprimer' | trans }}" data-selection-source="basket">
<img src="/assets/common/images/icons/delete.png"/>
</button>
@@ -62,7 +62,7 @@
{% for plugin in plugins['actionbar'] %}
{% for key, action in plugin.getBasketActionBar() %}
{% set label = action.label %}
<button class="ui-corner-all basket_window {{ action.classes|default('') }}" title="{{ label|trans([], plugin.PluginLocale) }}">
<button class="ui-corner-all basket_window {{ action.classes|default('') }}" title="{{ label|trans([], plugin.PluginLocale) }}" data-selection-source="basket">
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}"/>
</button>
{% endfor %}

View File

@@ -84,226 +84,3 @@
<div class="PNB10 Basket">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
var $container = $('#BasketBrowser'),results = null;
function loadResults(datas, url)
{
results = $.ajax({
type: 'GET',
url: url,
dataType: 'html',
data: datas,
beforeSend: function(){
if(results && results.abort && typeof results.abort == 'function')
results.abort();
$('.results', $container).addClass('loading').empty();
},
error: function(){
$('.results', $container).removeClass('loading');
},
timeout: function(){
$('.results', $container).removeClass('loading');
},
success: function(data){
var results = $('.results', $container);
results.removeClass('loading').append(data);
activateLinks(results);
active_archiver(results);
return;
}
});
}
function loadBasket(url)
{
results = $.ajax({
type: 'GET',
url: url,
dataType: 'html',
beforeSend: function(){
if(results && results.abort && typeof results.abort == 'function')
results.abort();
$('.Browser', $container).hide();
$('.Basket', $container).addClass('loading').empty().show();
},
error: function(){
$('.Browser', $container).show();
$('.Basket', $container).removeClass('loading').hide();
},
timeout: function(){
$('.Browser', $container).show();
$('.Basket', $container).removeClass('loading').hide();
},
success: function(data){
$('.Basket', $container).removeClass('loading').append(data);
$('.Basket a.back', $container).bind('click', function(){
$('.Basket', $container).hide();
$('.Browser', $container).show();
return false;
});
active_archiver($('.Basket', $container));
return;
}
});
}
function activateLinks($scope)
{
$('a.result', $scope).bind('click', function(){
var $this = $(this);
loadResults({}, $this.attr('href'));
return false;
});
$('a.basket_link', $scope).bind('click', function(){
var $this = $(this);
loadBasket($this.attr('href'));
return false;
});
$('a.delete-basket', $scope).bind('click', function(event) {
event.preventDefault();
var $this = $(this);
var buttons = {};
buttons[language.valider] = function() {
$.ajax({
type: "POST",
dataType: "json",
url: $this.attr('href'),
data: {},
success: function(datas){
if(datas.success) {
confirmBox.Close();
$('form[name="BasketBrowser"]', $container).trigger('submit');
p4.WorkZone.refresh();
} else {
confirmBox.Close();
var alertBox = p4.Dialog.Create({
size : 'Alert',
closeOnEscape : true,
closeButton:true
}, 2);
alertBox.setContent(datas.message);
}
},
error: function() {
confirmBox.Close();
var alertBox = p4.Dialog.Create({
size : 'Alert',
closeOnEscape : true,
closeButton:true
}, 2);
alertBox.setContent("{{'Something wrong happened, please retry or contact an admin.'|trans|e('js') }}");
}
});
};
var confirmBox = p4.Dialog.Create({
size : 'Alert',
closeOnEscape : true,
cancelButton: true,
buttons: buttons
}, 2);
confirmBox.setContent("{{'You are about to delete this basket. Would you like to continue ?'|trans|e('js') }}");
return false;
});
}
function active_archiver($scope)
{
$('a.UserTips', $scope).bind('click', function(){
return false;
}).tooltip();
$('.infoTips, .previewTips', $scope).tooltip();
$('a.archive_toggler', $scope).bind('click', function(){
var $this = $(this), parent = $this.parent();
$.ajax({
type: 'POST',
url: $this.attr('href'),
dataType: 'json',
beforeSend: function(){
$('.loader',parent).show();
$('.archive_toggler:visible', parent).addClass('last_act').hide();
},
error: function(){
$('.loader',parent).hide();
$('.last_act', parent).removeClass('last_act').show();
},
timeout: function(){
$('.loader',parent).hide();
$('.last_act', parent).removeClass('last_act').show();
},
success: function(data){
$('.loader',parent).hide();
$('.last_act', parent).removeClass('last_act');
if(!data.success)
{
humane.error(data.message);
return;
}
if(data.archive === true)
{
$('.unarchiver', parent).show();
$('.archiver', parent).hide();
}
else
{
$('.unarchiver', parent).hide();
$('.archiver', parent).show();
}
p4.WorkZone.refresh();
return;
}
});
return false;
});
}
$('form[name="BasketBrowser"]', $container).bind('submit', function(){
var $this = $(this);
loadResults($this.serializeArray(), $this.attr('action'));
return false;
}).trigger('submit').find('label').bind('click', function(){
var input = $(this).prev('input'),
name = input.attr('name');
var inputs = $('input[name="' + $(this).prev('input').attr('name') + '"]', $container);
inputs.prop('checked', false).next('label').removeClass('selected');
input.prop('checked', true).next('label').addClass('selected');
$('form[name="BasketBrowser"]', $container).trigger('submit')
});
});
</script>

View File

@@ -44,14 +44,14 @@
<td>
<div class="context-menu context-menu-theme-vista">
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="downloadThis('ssel={{basket.getId()}}');">{{ 'action::exporter' | trans }}
<div class="context-menu-item-inner export-record-action"
data-kind="basket" data-id="{{basket.getId()}}">{{ 'action::exporter' | trans }}
</div>
</div>
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('modifyrecord') %}
<div title="" class="context-menu-item menu3-custom-item">
<div onclick="editThis('SSTT','{{basket.getId()}}');" style=""
class="context-menu-item-inner">{{ 'edit' | trans }}
<div data-kind="basket" data-id="{{basket.getId()}}"
class="context-menu-item-inner edit-record-action">{{ 'edit' | trans }}
</div>
</div>
{% endif %}
@@ -138,8 +138,8 @@
<td>
<div class="context-menu context-menu-theme-vista">
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="downloadThis('ssel={{basket.getId()}}');">{{ 'action::exporter' | trans }}
<div class="context-menu-item-inner export-record-action"
data-kind="basket" data-id="{{basket.getId()}}">{{ 'action::exporter' | trans }}
</div>
</div>
<div title="" class="context-menu-item">
@@ -149,7 +149,7 @@
</div>
<div title="" class="context-menu-item">
<div class="context-menu-item-inner">
<a class="dialog small-dialog" title="{{ 'action::renommer' | trans }}" href="{{ path('prod_baskets_basket_update', { 'basket' : basket.getId()}) }}">
<a class="basket-update-action" data-basket-id="{{ basket.getId() }}" title="{{ 'action::renommer' | trans }}" href="#">
{{ 'action::renommer' | trans }}
</a>
</div>
@@ -166,21 +166,19 @@
{% endif %}
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="archiveBasket({{ basket.getId() }});return false;">
<div class="context-menu-item-inner basket-archive-action" data-basket-id="{{ basket.getId() }}" >
{{ 'Archive' | trans }}
</div>
</div>
<div title="" class="context-menu-item">
<div class="context-menu-item-inner" id="SSTTREMOVER_{{basket.getId()}}"
onclick="checkDeleteThis('SSTT',this);return false;">
<div class="context-menu-item-inner basket-delete-action" id="SSTTREMOVER_{{basket.getId()}}" data-context="SSTT">
{{ 'action : supprimer' | trans }}
</div>
</div>
<div title="" class="context-menu-item">
<div class="context-menu-item-inner">
<a class="dialog" title="{{ 'Re-ordonner' | trans }}" href="{{ path('prod_baskets_basket_reorder', { 'basket' : basket.getId() }) }}">
<a class="basket-reorder-content-action" data-basket-id="{{ basket.getId() }}" title="{{ 'Re-ordonner' | trans }}" href="#">
{{ 'Re-ordonner' | trans }}
</a>
</div>
@@ -226,14 +224,15 @@
<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(app).get_serialize_key()}}');">{{ 'action::exporter' | trans }}
<div class="context-menu-item-inner export-record-action"
data-kind="record" data-id="{{story.getRecord(app).get_serialize_key()}}">{{ 'action::exporter' | trans }}
</div>
</div>
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('modifyrecord') %}
<div title="" class="context-menu-item menu3-custom-item">
<div onclick="editThis('IMGT','{{story.getRecord(app).get_serialize_key()}}');" style=""
class="context-menu-item-inner">{{ 'action::editer' | trans }}
<div class="context-menu-item-inner edit-record-action"
data-kind="record" data-id="{{story.getRecord(app).get_serialize_key()}}"
>{{ 'action::editer' | trans }}
</div>
</div>
{% endif %}
@@ -246,7 +245,10 @@
</div>
<div title="" class="context-menu-item menu3-custom-item">
<div class="context-menu-item-inner">
<a class="dialog" title="{{ 'Re-ordonner' | trans }}" href="{{ path('prod_stories_story_reorder', { 'sbas_id' : story.getRecord(app).get_sbas_id, 'record_id' : story.getRecord(app).get_record_id() }) }}">
<a class="story-reorder-content-action" title="{{ 'Re-ordonner' | trans }}"
data-db-id="{{ story.getRecord(app).get_sbas_id }}"
data-record-id="{{ story.getRecord(app).get_record_id() }}"
href="#">
{{ 'Re-ordonner' | trans }}
</a>
</div>
@@ -277,8 +279,11 @@
{% import 'common/thumbnail.html.twig' as thumbnail %}
<div ondblclick="{% if wz_scope == 'groupings' %}openPreview(this, 'REG',{{ ord }},'{{container.get_sbas_id()}}_{{container.get_record_id()}}');{% else %}openPreview(this, 'BASK',{{ ord }},{{container.getId()}});{% endif %}"
class="CHIM diapo CHIM_{{record.get_serialize_key()}}" style="height:{{box_height}}px;"
<div class="CHIM diapo CHIM_{{record.get_serialize_key()}} open-preview-action"
data-kind="{% if wz_scope == 'groupings' %}REG{% else %}BASK{% endif %}"
data-position="{{ ord }}"
data-id="{% if wz_scope == 'groupings' %}{{container.get_sbas_id()}}_{{container.get_record_id()}}{% else %}{{container.getId()}}{% endif %}"
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 app['settings'].getUserSetting(app.getAuthenticatedUser(), 'basket_title_display') == '1' %}

View File

@@ -4,57 +4,57 @@
<label>Actions</label>
<button class="ui-corner-all TOOL_disktt_btn story_window" title="{{ 'action : exporter' | trans }}">
<button class="ui-corner-all TOOL_disktt_btn story_window" title="{{ 'action : exporter' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/disktt_history.png"/>
</button>
<button class="ui-corner-all TOOL_print_btn story_window" title="{{ 'action : print' | trans }}">
<button class="ui-corner-all TOOL_print_btn story_window" title="{{ 'action : print' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/print_history.png"/>
</button>
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('modifyrecord') %}
<button class="ui-corner-all TOOL_ppen_btn story_window" title="{{ 'action : editer' | trans }}">
<button class="ui-corner-all TOOL_ppen_btn story_window" title="{{ 'action : editer' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/ppen_history.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('changestatus') %}
<button class="ui-corner-all TOOL_chgstatus_btn story_window" title="{{ 'action : status' | trans }}">
<button class="ui-corner-all TOOL_chgstatus_btn story_window" title="{{ 'action : status' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/chgstatus_history.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('deleterecord') and app.getAclForUser(app.getAuthenticatedUser()).has_right('addrecord') %}
<button class="ui-corner-all TOOL_chgcoll_btn story_window" title="{{ 'action : collection' | trans }}">
<button class="ui-corner-all TOOL_chgcoll_btn story_window" title="{{ 'action : collection' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/chgcoll_history.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('push') %}
<button class="ui-corner-all TOOL_pushdoc_btn story_window" title="{{ 'action : push' | trans }}">
<button class="ui-corner-all TOOL_pushdoc_btn story_window" title="{{ 'action : push' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/push16.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('push') %}
<button class="ui-corner-all TOOL_feedback_btn story_window" title="{{ 'Feedback' | trans }}">
<button class="ui-corner-all TOOL_feedback_btn story_window" title="{{ 'Feedback' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/feedback16.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('bas_chupub') %}
<button class="ui-corner-all TOOL_bridge_btn story_window" title="{{ 'action : bridge' | trans }}" data-href="{{ path("prod_bridge_manager") }}">
<button class="ui-corner-all TOOL_bridge_btn story_window" title="{{ 'action : bridge' | trans }}" data-href="{{ path("prod_bridge_manager") }}" data-selection-source="story">
<img src="/assets/common/images/icons/door.png"/>
</button>
<button class="ui-corner-all TOOL_publish_btn story_window" title="{{ 'action : publier' | trans }}">
<button class="ui-corner-all TOOL_publish_btn story_window" title="{{ 'action : publier' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/rss16.png"/>
</button>
{% endif %}
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('doctools') %}
<button class="ui-corner-all TOOL_imgtools_btn story_window" title="{{ 'action : outils' | trans }}">
<button class="ui-corner-all TOOL_imgtools_btn story_window" title="{{ 'action : outils' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/imgtools_history.png"/>
</button>
{% endif %}
<button class="ui-corner-all TOOL_trash_btn story_window" title="{{ 'action : supprimer' | trans }}">
<button class="ui-corner-all TOOL_trash_btn story_window" title="{{ 'action : supprimer' | trans }}" data-selection-source="story">
<img src="/assets/common/images/icons/delete.png"/>
<input type="hidden" name="story_key" value="{{ Story.get_serialize_key() }}"/>
</button>

View File

@@ -3,7 +3,8 @@
{% if error_message is empty %}
<script type="text/javascript">
window.opener.publicator_reload_publicator("{{ path("prod_bridge_manager") }}");
window.opener.prodApp.appEvents.emit('push.reload',{{ path("prod_bridge_manager") }});
// pushModule.reloadBridge("{{ path("prod_bridge_manager") }}");
window.close();
</script>

View File

@@ -84,332 +84,6 @@
{# SCRIPT - HORIZONTAL TABS #}
<script type ="text/javascript">
$(function() {
var pub_tabs = $("#pub_tabs");
var container = $('#dialog_publicator');
var managerUrl = container.data("url");
function popme(url) {
var newwindow=window.open(url,'logger','height=500,width=800');
if (window.focus)
{
newwindow.focus();
}
return false;
}
function panel_load($panel)
{
$(".new_bridge_button", $panel).bind("click", function(){
var url = $(this).parent('form').find('input[name="url"]').val();
popme(url);
return false;
});
$('.error_box, .notice_box', $panel).delay(10000).fadeOut();
$('.back_link', $panel).bind('click', function(){
if ($('#pub_tabs').data("ui-tabs")) {
$('#pub_tabs').tabs('load',$('#pub_tabs').tabs('option', 'active'));
}
return false;
});
$('.bridge_action', $panel).bind('click', function(){
var $this = $(this);
$.ajax({
type : 'GET',
url : $(this).attr('href'),
beforeSend : function(){
var container = $('.container-bridge', $panel);
container.empty();
if( ! $this.hasClass('bridge_logout')) {
container.addClass('loading');
}
},
success : function(datas){
$('.container-bridge', $panel).removeClass('loading').append(datas);
panel_load($panel);
},
error:function(){
$panel.removeClass("loading");
},
timeout:function(){
$panel.removeClass("loading");
}
});
return false;
});
$(".delete-account" , $panel).bind("click", function(){
account_id = $(this).val();
var buttons = {};
buttons[language.valider] = function() {
$.ajax({
type: "POST",
dataType: "json",
url: "/prod/bridge/adapter/" + account_id + "/delete/",
data: {},
success: function(datas){
if(datas.success) {
confirmBox.Close();
publicator_reload_publicator(managerUrl);
} else {
confirmBox.Close();
var alertBox = p4.Dialog.Create({
size : 'Alert',
closeOnEscape : true,
closeButton:true
}, 2);
alertBox.setContent(datas.message);
}
}
});
};
var confirmBox = p4.Dialog.Create({
size : 'Alert',
closeOnEscape : true,
closeButton:true,
cancelButton: true,
buttons: buttons
}, 2);
confirmBox.setContent("{{'You are about to delete this account. Would you like to continue ?'|trans|e('js') }}");
});
$('.form_submitter', $panel).bind('click', function(){
var $form = $(this).closest('form');
var method = $form.attr('method');
method = $.inArray(method.toLowerCase(), ['post', 'get']) ? method : 'POST';
$.ajax({
type : method,
url : $form.attr('action'),
data : $form.serializeArray(),
beforeSend : function(){
$panel.empty().addClass('loading');
},
success : function(datas){
$panel.removeClass('loading').append(datas);
panel_load($panel);
},
error:function(){
$panel.removeClass("loading");
},
timeout:function(){
$panel.removeClass("loading");
}
});
return false;
});
$(".bridge_all_selector", $panel).bind("click", function() {
var checkboxes = $('.bridge_element_selector', $panel);
var $this = $(this);
checkboxes.each(function(i, checkbox){
if($(checkbox).is(':checked') !== $this.is(':checked'))
{
var event = jQuery.Event("click");
event.selector_all = true;
$(checkbox).trigger(event);
}
});
});
$('.bridge_element_selector', $panel)
.bind('click', function(event){
var $this = $(this);
if(event.selector_all)
{
$this.prop('checked', $(".bridge_all_selector", $panel).is(':checked'));
}
$('form[name="bridge_selection"] input[name="elements_list"]', $panel).val(
$.makeArray($('.bridge_element_selector:checked', $panel).map(function(i, el){
return ($(el).val());
})).join(';')
);
if($this.is(':checked'))
$this.closest('.element').addClass('selected');
else
$this.closest('.element').removeClass('selected');
if(!event.selector_all)
{
var bool = !($(".bridge_element_selector:checked", $panel).length !== $(".bridge_element_selector", $panel).length);
$(".bridge_all_selector", $panel).prop('checked', bool);
}
else
{
if(event.stopPropagation)
event.stopPropagation();
return false;
}
});
$('a.form_multiple_submitter', $panel).bind('click', function(){
var $form = $(this).closest('form');
var elements = $('form[name="bridge_selection"] input[name="elements_list"]', $panel).val();
if($.trim(elements) === '')
var n_elements = 0;
else
var n_elements = elements.split(';').length;
if(n_elements === 0 && $form.hasClass('action_works_standalone') === false)
{
alert('No records selected');
return false;
}
if(n_elements === 1 && $form.hasClass('action_works_single_element') === false)
{
alert('This action works only with a single records');
return false;
}
if(n_elements > 1 && $form.hasClass('action_works_many_element') === false)
{
alert('This action works only with many records');
return false;
}
$('input[name="elements_list"]', $form).val(elements);
$.ajax({
type : 'GET',
url : $form.attr('action'),
data : $form.serializeArray(),
beforeSend : function(){
$panel.empty().addClass('loading');
},
success : function(datas){
$panel.removeClass('loading').append(datas);
panel_load($panel);
},
error:function(){
$panel.removeClass("loading");
},
timeout:function(){
$panel.removeClass("loading");
}
});
return false;
});
}
pub_tabs.tabs({
beforeLoad: function( event, ui ) {
ui.tab.html_tab = ui.tab.find('span').html();
ui.tab.find('span').html("<i>{{ 'Loading'|trans }}...</i>");
},
load: function(event, ui)
{
ui.tab.find('span').empty().append(ui.tab.html_tab);
$panel = $(ui.panel);
$('.container-bridge', $panel).removeClass('loading');
$panel.addClass("PNB");
$panel.wrapInner("<div class='PNB10 container-bridge' />");
panel_load($panel);
}
,beforeActivate: function(event, ui)
{
if($(ui.tab).hasClass('account'))
{
var container = $('.container-bridge', ui.panel);
container.empty();
$('.container', ui.panel).addClass('loading');
}
}
}).addClass('ui-tabs-vertical ui-helper-clearfix');
$('.ui-tabs-nav', pub_tabs).removeClass('ui-corner-all');
$(".new_bridge_button", pub_tabs).bind("click", function(){
var url = $(this).parent('form').find('input[name="url"]').val();
popme(url);
return false;
});
$("ul li a.account", pub_tabs).bind("click", function(){
$('#dialog_publicator form[name="current_datas"] input[name="account_id"]').val($('input[name="account_id"]', this).val());
});
$("ul li.ui-tabs-selected a.account", pub_tabs).trigger("click");
$('#publicator_selection .PNB10:first').selectable();
$('#publicator_selection button.act_upload').bind('click', function(){
var $this = $(this);
var $form = $this.closest('form');
$('input[name=lst]', $form).val(
$.makeArray(
$('#publicator_selection .diapo.ui-selected').map(function(i, el){
return $(el).attr('id').split('_').slice(2,4).join('_');
})
).join(';')
);
var account_id = $('form[name="current_datas"] input[name="account_id"]').val();
$('input[name="account_id"]', $form).val(account_id);
var $panel = $('#pub_tabs .ui-tabs-panel:visible');
$.ajax({
type : 'GET',
url : '/prod/bridge/upload/',
data : $form.serializeArray(),
beforeSend : function(){
$panel.empty().addClass('loading');
},
success : function(datas){
$panel.removeClass('loading').append(datas);
panel_load($panel);
},
error:function(){
$panel.removeClass("loading");
},
timeout:function(){
$panel.removeClass("loading");
}
});
return false;
});
$("li", pub_tabs).removeClass('ui-corner-top').addClass('ui-corner-left');
$("#api_connexion").click(function(){
if (container.data("ui-dialog")) {
container.dialog("close");
}
});
{% if route.get_count_element_received() == 0 %}
alert('{{ "Vous n\'avez selectionne aucun element"|trans|e('js') }}');
if (container.data("ui-dialog")) {

View File

@@ -106,19 +106,18 @@
{% if list['complete'] is not defined %} {# Zip not done #}
$.post("{{ path('execute_download', {'token': token.getValue(), 'type': type, 'anonymous': anonymous}) }}", function(data){
var data = $.parseJSON(data);
if(data.success) {
$('form[name=download]').submit();
} else {
setTimeout("location.reload()", "{{ time ~ "000" }}");
}
return false;
});
setTimeout("location.reload()", "{{ time ~ "000" }}");
{% elseif (list['complete'] is defined and list['complete'])%} {# Zip done #}
// Get files
$('form[name=download]').submit();
{% else %}
setTimeout("location.reload()", "{{ time ~ "000" }}");
{% endif %}
});

View File

@@ -39,7 +39,7 @@
{% endif %}
{% else %}
<label>{{ 'Role' | trans }}</label>
<select name="role">
<select name="role" data-list-id="{{ list.getId() }}" data-user-id="{{ owner.getUser().getId() }}">
<option {% if owner.getRole() == constant('Alchemy\\Phrasea\\Model\\Entities\\UsrListOwner::ROLE_USER') %}selected {% endif %} value="{{ constant('Alchemy\\Phrasea\\Model\\Entities\\UsrListOwner::ROLE_USER') }}">
{{ 'Access' | trans }}
</option>
@@ -54,7 +54,7 @@
</td>
<td style="width:15px">
{% if app.getAuthenticatedUser().getId() == owner.getUser().getId() %}
<a href="#" class="deleter">
<a href="#" class="deleter listmanager-share-delete-user-action" data-list-id="{{ list.getId() }}" data-user-id="{{ owner.getUser().getId() }}">
<img src="/assets/prod/images/Push/close_badge.png" title="{{ 'Remove' | trans }}"/>
</a>
{% endif %}
@@ -67,137 +67,4 @@
</div>
{% include "prod/templates/push.html.twig" %}
<script type="text/javascript">
$(document).ready(function(){
var $container = $('#ListShare'),
$completer_form = $('form[name="list_share_user"]', $container),
$owners_form = $('form[name="owners"]', $container),
$autocompleter = $('input[name="user"]', $completer_form),
$dialog = p4.Dialog.get(2);
$completer_form.bind('submit', function(){
return false;
});
$('select[name="role"]', $owners_form).bind('change', function(){
var usr_id = $(this).closest('.owner').find('input[name="usr_id"]').val(),
role = $(this).val();
shareWith(usr_id, role);
return false;
});
$('.deleter', $container).bind('click', function(){
var owner = $(this).closest('.owner');
var usr_id = owner.find('input[name="usr_id"]').val();
unShareWith(usr_id, function(data){
owner.remove();
});
return false;
});
function shareWith(usr_id, role)
{
var role = typeof role === 'undefined' ? 1 : role;
$.ajax({
type: 'POST',
url: '/prod/lists/list/{{ list.getId() }}/share/' + usr_id + '/',
dataType: 'json',
data : {role : role},
beforeSend:function(){
},
success: function(data){
if(data.success)
{
humane.info(data.message);
}
else
{
humane.error(data.message);
}
$dialog.refresh();
return;
},
error: function(){
return;
},
timeout: function(){
return;
}
});
}
function unShareWith(usr_id, callback)
{
$.ajax({
type: 'POST',
url: '/prod/lists/list/{{ list.getId() }}/unshare/' + usr_id + '/',
dataType: 'json',
data : {},
beforeSend:function(){
},
success: function(data){
if(data.success)
{
humane.info(data.message);
callback(data);
}
else
{
humane.error(data.message);
}
$dialog.refresh();
return;
},
error: function(){
return;
},
timeout: function(){
return;
}
});
}
$autocompleter.autocomplete({
minLength: 2,
source: function( request, response ) {
$.ajax({
url: '/prod/push/search-user/',
dataType: "json",
data: {
query: request.term
},
success: function( data ) {
response( data );
}
});
},
select: function( event, ui ) {
if(ui.item.type === 'USER')
{
shareWith(ui.item.usr_id);
}
return false;
}
})
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
if(item.type === 'USER') {
html = _.template($("#list_user_tpl").html(), {
item: item
});
return $(html).data( "ui-autocomplete-item", item ).appendTo(ul);
}
};
});
</script>
{% endif %}

View File

@@ -97,79 +97,6 @@
{% endif %}
</div>
</div>
<script>
$(document).ready(function(){
var $editor = $('#list-editor-search-results');
$('a.next, a.prev', $editor).bind('click', function(){
var page = $(this).attr('value');
$('input[name="page"]', $form).val(page);
$form.trigger('submit');
return false;
});
var $form = $('#ListManager .editor').find('form[name="list-editor-search"]');
$('input[name="page"]', $form).val('');
$('th.sortable', $editor).bind('click', function(){
var $this = $(this);
var sort = $('input', $this).val();
if((sort == $('input[name="srt"]', $form).val())
&& ($('input[name="ord"]', $form).val() == 'asc'))
{
var ord = 'desc';
}
else
{
var ord = 'asc';
}
$('input[name="srt"]', $form).val(sort);
$('input[name="ord"]', $form).val(ord);
$form.trigger('submit');
})
.bind('mouseover', function(){$(this).addClass('hover');})
.bind('mouseout', function(){$(this).removeClass('hover');});
$('tbody tr', $editor).bind('click', function(){
var $this = $(this);
var usr_id = $('input[name="usr_id"]', $this).val();
var counters = $('#ListManager .counter.current, #ListManager .lists .list.selected .counter');
if($this.hasClass('selected'))
{
$this.removeClass('selected');
p4.ListManager.getList().removeUser(usr_id);
counters.each(function(i,el){
var n = parseInt($(el).text());
$(el).text(n - 1);
});
}
else
{
$this.addClass('selected');
p4.ListManager.getList().addUser(usr_id);
counters.each(function(i,el){
var n = parseInt($(el).text());
$(el).text(n + 1);
});
}
});
});
</script>
{% endmacro %}
@@ -178,7 +105,7 @@
<div class="badge">
<input type="hidden" value="{{ entry.getUser().getId() }}" name="id">
{% if role >= constant('Alchemy\\Phrasea\\Model\\Entities\\UsrListOwner::ROLE_EDITOR') %}
<a class="deleter" href="#">
<a class="deleter listmanager-delete-list-user-action" href="#" data-list-id="" data-user-id="{{ entry.getUser().getId() }}">
<img src="/assets/prod/images/Push/close_badge.png">
</a>
{% endif %}

View File

@@ -17,7 +17,10 @@
</td>
<td style="text-align:right;white-space:nowrap;">
{% if list.getOwner(app.getAuthenticatedUser()).getRole() == constant('Alchemy\\Phrasea\\Model\\Entities\\UsrListOwner::ROLE_ADMIN') %}
<a href="{{ path('prod_lists_list_share', { 'list_id' : list.getId() }) }}" title="{{ 'Share the list' | trans }}" class="list_sharer">
<a href="{{ path('prod_lists_list_share', { 'list_id' : list.getId() }) }}" title="{{ 'Share the list' | trans }}"
class="list_sharer push-list-share-action"
data-list-id="{{ list.getId() }}">
<img src="/assets/prod/images/Push/list-icon.png" />
{{ "Set sharing permission" | trans }}
</a>
@@ -25,7 +28,7 @@
</td>
{% if list.getOwner(app.getAuthenticatedUser()).getRole() >= constant('Alchemy\\Phrasea\\Model\\Entities\\UsrListOwner::ROLE_ADMIN') %}
<td style="text-align:right;white-space:nowrap;width:150px;">
<button class="deleter btn btn-inverse" data-list-id="{{ list.getId() }}">
<button class="deleter btn btn-inverse listmanager-delete-list-action" data-list-id="{{ list.getId() }}">
{{ 'Delete' | trans }}
</button>
</td>
@@ -159,15 +162,3 @@
</div>
{% endif %}
</div>
<script type="text/javascript">
$(document).ready(function(){
p4.ListManager.workOn({{ list.getId() }});
$("#ListManager .readonly .badge .deleter").click(function(){
var badge = $(this).closest(".badge");
var usr_id = badge.find('input[name="id"]').val();
p4.ListManager.getList().removeUser(usr_id, function(list, data){
badge.remove();
});
});
});
</script>

View File

@@ -2,17 +2,17 @@
<div class="PNB10 lists">
<h1>{{ 'Lists' | trans }}</h1>
<span class="action">
<a href="{{ path('prod_lists_list') }}" class="list_adder link">
<a href="{{ path('prod_lists_list') }}" class="list_adder link push-add-list-action">
{{ "Add" | trans }}
</a>
<a href="{{ path('prod_lists_all') }}" class="list_refresh link">
<a href="{{ path('prod_lists_all') }}" class="list_refresh link push-refresh-list-action">
{{ "Refresh" | trans }}
</a>
</span>
<ul class="lists">
{% for list in lists %}
<li class="list" style="padding:2px;">
<a href="{{ path('prod_push_list_edit', { 'list_id' : list.getId() }) }}" class="list_link">
<a href="#" class="list_link list-edit-action" data-list-id="{{ list.getId() }}">
{% if list.getOwner(app.getAuthenticatedUser()).getRole() >= constant('Alchemy\\Phrasea\\Model\\Entities\\UsrListOwner::ROLE_EDITOR') %}
<img src="/assets/prod/images/Push/list-icon.png" />
{% else %}

View File

@@ -16,12 +16,12 @@
<input type="hidden" name='original_selection' value="{{ app.request.query.get('lst') }}">
<ul>
<li><a href="#property-statut">{{ 'Records Statut' | trans }}</a></li>
<li><a href="#property-status">{{ 'Records Statut' | trans }}</a></li>
{# <span>&nbsp;</span> element is required for the jQuery loading spinner appears && disappears properly #}
<li><a href="{{ path('display_type_property', { 'lst' : records.serializedList() } ) }}">{{ 'Records type' | trans }}&nbsp;<span>&nbsp;</span></a></li>
</ul>
<div id='property-statut'>
<div id="property-status">
<p class="header">
<h4 style='text-align:center;'>
{% if nbReceivedDocuments == 1 %}
@@ -119,64 +119,6 @@
</div>
</form>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#tabs-records-property").tabs({
beforeLoad: function( event, ui ) {
ui.ajaxSettings.data = {
lst: $("input[name=original_selection]", $(this)).val()
};
// load template only once
if ( ui.tab.data( "loaded" ) ) {
event.preventDefault();
return;
}
ui.jqXHR.success(function() {
ui.tab.data( "loaded", true );
});
ui.tab.find('span').html("<i>{{ 'Loading'|trans }}...</i>");
},
load: function(event, ui)
{
ui.tab.find('span').empty();
}
});
var $dialog = p4.Dialog.get(1);
var $dialogBox = $dialog.getDomElement();
$("button.cancel", $dialogBox).bind("click", function(){
$dialog.Close();
});
$("button.submiter", $dialogBox).bind("click", function(){
var $this = $(this);
var form = $(this).closest("form");
var loader = form.find("form-action-loader");
$.ajax({
type: form.attr("method"),
url: form.attr("action"),
data: form.serializeArray(),
dataType: 'json',
beforeSend:function(){
$this.attr("disabled", true);
loader.show();
},
success: function(data){
$dialog.Close();
},
complete: function(){
$this.attr("disabled", false);
loader.hide();
}
});
});
});
</script>
<div id="type-status"></div>
</div>
{% endif %}

View File

@@ -53,36 +53,3 @@
</span>
</div>
</form>
<script type="text/javascript">
var $dialog = p4.Dialog.get(1);
var $dialogBox = $dialog.getDomElement();
$("button.cancel", $dialogBox).bind("click", function(){
$dialog.Close();
});
$("button.submiter", $dialogBox).bind("click", function(){
var $this = $(this);
var form = $(this).closest("form");
var loader = form.find("form-action-loader");
$.ajax({
type: form.attr("method"),
url: form.attr("action"),
data: form.serializeArray(),
dataType: "json",
beforeSend:function(){
$this.attr("disabled", true);
loader.show();
},
success: function(data){
$dialog.Close();
},
complete: function(){
$this.attr("disabled", false);
loader.hide();
}
});
});
</script>

View File

@@ -8,7 +8,7 @@
{% endif %}
</div>
<div style="text-align:center;margin-top:15px;">
<button class="btn btn-inverse" onclick="p4.Dialog.Close(1)">{{ "boutton::fermer" | trans }}</button>
<button class="btn btn-inverse close-dialog-action">{{ "boutton::fermer" | trans }}</button>
</div>
</div>
{% else %}
@@ -89,7 +89,7 @@
{{ 'Select a user in the list' | trans }} <br/>
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right('manageusers') %}
{{ 'or' | trans }}
<a href="{{ path('prod_push_add_user') }}" class="user_adder btn btn-mini">{{ 'Add user' | trans }}</a>
<a href="#" class="push-add-user btn btn-mini">{{ 'Add user' | trans }}</a>
{% endif %}
</div>
<p id="recommanded-users">
@@ -263,11 +263,4 @@
</div>
{% include "prod/templates/push.html.twig" %}
<script type="text/javascript">
$(document).ready(function(){
p4.Feedback = new Feedback($('#PushBox'), '{{ context }}');
p4.ListManager = new ListManager($('#ListManager'));
});
</script>
{% endif %}

View File

@@ -16,7 +16,7 @@
</tr>
<tr>
<td colspan="2" style='text-align:left'>
{{ 'do you want to validate' | trans }} ?
{{ 'do you want to validate' | trans }}
</td>
</tr>
</tbody>

View File

@@ -37,6 +37,11 @@
{{ "video tool" | trans }}
</a>
</li>
<li>
<a href="#rangeExtractor">
{{ "video range extractor" | trans }}
</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
@@ -124,7 +129,9 @@
{% set height = technical_info[dataH].value %}
{% if width and height %}
{% set ratio = (width / height)|number_format(2, '.') %}
{% set rawRatio = (width / height)|number_format(3, '.') %}
{% set rawRatioLength = rawRatio|length %}
{% set ratio = rawRatio|slice(0,rawRatioLength-1) %}
{% else %}
{% set ratio = '' %}
{% endif %}
@@ -171,6 +178,33 @@
</div>
</div>
<div id="rangeExtractor" class="">
<div class="main_title">
<img src='/assets/prod/images/ThumbExtractor/camera_title.png'/>
{{ "video range extractor" | trans }}
</div>
<div class="video-range-editor-container"></div>
<div class="video-data-container">
<dl class="dl-horizontal">
<dt>Ratio</dt><dd>{{ ratio }}</dd>
<dt>Type</dt><dd>{{ record.get_mime() }}</dd>
{% if record.exif[constant('media_subdef::TC_DATA_FRAMERATE')] is defined %}
<dt>{{ 'Images par secondes' | trans }}</dt>
<dd>{{ record.exif[constant('media_subdef::TC_DATA_FRAMERATE')] | round(2) }} ips</dd>
{% endif %}
{% if record.exif[constant('media_subdef::TC_DATA_AUDIOCODEC')] is defined %}
<dt>{{ 'Codec Audio' | trans }}</dt>
<dd>{{ record.exif[constant('media_subdef::TC_DATA_AUDIOCODEC')] }}</dd>
{% endif %}
<dt>{{ 'Size' | trans }}</dt><dd>{% set width = record.exif[constant('media_subdef::TC_DATA_WIDTH')]|default
(null) %}
{% set height = record.exif[constant('media_subdef::TC_DATA_HEIGHT')]|default(null) %}
{% if width is not none and height is not none %}
{{ width ~ " x " ~ height }}
{% endif %}</dd>
</dl>
</div>
</div>
{% endif %}
{% endfor %}
{% endif %}
@@ -348,302 +382,55 @@
</div>
<script type="text/javascript">
var toolsConfig = {
selectionLength: {{ selectionLength }},
databaseId: {% if selectionLength == 1%}{{record.get_base_id}}{% else %}0{% endif %},
recordId: {% if selectionLength == 1%}{{record.get_record_id}}{% else %}0{% endif %},
translations: {
alertTitle: '{{ "alert" | trans }}',
noImgSelected: '{{ "no image selected" | trans }}',
processing: '{{ "processing" | trans }}',
thumbnailTitle: '{{ 'thumbnail validation' | trans }}'
},
videoEditorConfig: {% if videoEditorConfig is not null %}{{ videoEditorConfig|json_encode()|raw }}{% else %}{}{% endif %},
records: [
$(document).ready(function(){
var $scope = $("#prod-tool-box");
var tabs = $("#tool-tabs", $scope).tabs();
var width = 0;
$(".iframe_submiter", $scope).bind("click", function(){
var form = $(this).closest("form");
form.submit();
form.find('.load').empty().html(language.loading + ' ...');
$("#uploadHdsub").contents().find(".content").empty();
$("#uploadHdsub").load(function(){
form.find('.load').empty();
var iframeContent = $("#uploadHdsub").contents().find(".content").html();
form.closest('div').find('.resultAction').empty().append(iframeContent);
});
});
$(".action_submiter", $scope).bind("click", function(){
var $this = $(this);
var form = $(this).closest("form");
$.ajax({
url : form.attr("action"),
type : form.attr("method"),
dataType : 'json',
data : form.serializeArray(),
beforeSend: function(){
$this.prop('disabled', true);
},
success : function(data){
if(!data.success){
humane.error(data.message);
}else{
var dialog = p4.Dialog.get(1);
dialog.Close();
}
},
complete: function(){
$this.prop('disabled', false);
}
});
return false;
});
$(".action_cancel", $scope).bind("click", function(){
var dialog = p4.Dialog.get(1);
dialog.Close();
return false;
});
//thumbExtractor
var ThumbEditor = new this.THUMB_EDITOR("thumb_video", "thumb_canvas", {
altCanvas: $('#alt_canvas_container .alt_canvas')
});
if(ThumbEditor.isSupported()) {
var $sliderWrapper = $("#thumb_wrapper", $scope);
$sliderWrapper.on('click', 'img', function(){
$('.selected', $sliderWrapper).removeClass('selected');
$(this).addClass('selected');
var $self = this;
var selectedScreenId = $self.getAttribute("id").split("_").pop();
var screenshots = ThumbEditor.store.get(selectedScreenId);
ThumbEditor.copy(screenshots.getDataURI(), screenshots.getAltScreenShots());
});
$scope.on('click', '#thumb_delete_button', function(){
var img = $sliderWrapper.find(".selected");
var id = img.attr("id").split("_").pop();
var previous = img.prev();
var next = img.next();
if(previous.length > 0)
{% for record in records %}
{
previous.trigger("click");
}
else if(next.length > 0)
{
next.trigger("click");
}
else
{
$(this).hide();
$("#thumb_info", $scope).show();
ThumbEditor.resetCanva();
}
id: {{ record.get_record_id }},
type: "{{ record.get_type() }}",
{% if record.get_type() == 'video' %}
{% if selectionLength == 1 %}
{% set outputFormats = record.getSubdfefByDeviceAndMime(null, ['image/jpeg', 'image/png']) %}
{% set previewHtml5 = record.getSubdfefByDeviceAndMime(constant('\\databox_subdef::DEVICE_SCREEN'), ['video/ogg', 'video/mp4', 'video/webm']) %}
{% set dataW = constant('media_subdef::TC_DATA_WIDTH') %}
{% set dataH = constant('media_subdef::TC_DATA_HEIGHT') %}
img.remove();
ThumbEditor.store.remove(id);
});
{% set technical_info = record.get_technical_infos %}
{% set width = technical_info[dataW].value %}
{% set height = technical_info[dataH].value %}
$scope.on('click', '.close_action_frame', function(){
$(this).closest(".action_frame").hide();
});
{% if width and height %}
{% set ratio = (width / height)|number_format(2, '.') %}
{% else %}
{% set ratio = '' %}
{% endif %}
$scope.on('click', '#thumb_camera_button', function(){
$("#thumb_info", $scope).hide();
$("#thumb_delete_button", $scope).show();
var screenshot = ThumbEditor.screenshot();
var img = $("<img />");
$('.selected', $sliderWrapper).removeClass('selected');
img.addClass('selected')
.attr('id', 'working_'+ screenshot.getId())
.attr('src', screenshot.getDataURI())
.attr("alt", screenshot.getVideoTime())
.appendTo($sliderWrapper);
});
$("#thumb_canvas").on('tool_event', function(){
var thumbnail = $('.selected', $sliderWrapper);
if(thumbnail.length === 0)
{
console.error('No image selected');
return;
}
thumbnail.attr('src', ThumbEditor.getCanvaImage());
});
$scope.on('click', '#thumb_validate_button', function(){
var thumbnail = $('.selected', $sliderWrapper);
if(thumbnail.length === 0)
{
var dialog = p4.Dialog.Create({
size:'Alert',
title: '{{ "alert" | trans }}',
closeOnEscape:true
}, 3);
var content = $("<div />").css({
'text-align':'center',
'width': '100%',
'font-size':'14px'
}).append('{{ "no image selected" | trans }}');
dialog.setContent(content);
return;
}
var buttons = {};
var record_id = $("input[name=record_id]").val();
var sbas_id = $("input[name=sbas_id]").val();
var selectedScreenId = thumbnail.attr('id').split("_").pop();
var screenshots = ThumbEditor.store.get(selectedScreenId);
var screenData = screenshots.getAltScreenShots(),
subDefs = [];
for(var i = 0; i < screenData.length; i++ ) {
subDefs.push({
name: screenData[i].name,
src: screenData[i].dataURI
});
}
function disableConfirmButton(dialog){
dialog.getDomElement().closest('.ui-dialog').find(".ui-dialog-buttonpane button").filter(function() {
return $(this).text() == language.valider;
}).addClass("ui-state-disabled").attr("disabled", true);
}
function enableConfirmButton(dialog){
dialog.getDomElement().closest('.ui-dialog').find(".ui-dialog-buttonpane button").filter(function() {
return $(this).text() == language.valider;
}).removeClass("ui-state-disabled").attr("disabled", false);
}
buttons[language.valider] = function(){
var dialog = p4.Dialog.get(2);
var buttonPanel = dialog.getDomElement().closest('.ui-dialog').find(".ui-dialog-buttonpane");
var loadingDiv = buttonPanel.find('.info-div');
if(loadingDiv.length == 0)
{
loadingDiv = $("<div />").css({
'width' : '120px',
'height' : '40px',
'float':'left',
'line-height' : '40px',
'padding-left' : '40px',
'text-align' : 'left',
'background-position' : 'left center'
}).attr('class', 'info-div').prependTo(buttonPanel);
}
$.ajax({
type: "POST",
url: "/prod/tools/thumb-extractor/apply/",
data: {
sub_def: subDefs,
record_id : record_id,
sbas_id: sbas_id
},
beforeSend: function(){
disableConfirmButton(dialog);
loadingDiv.empty().addClass('loading').append('{{ "processing" | trans }}');
},
success: function(data){
loadingDiv.empty().removeClass('loading');
if(data.success)
{
dialog.Close();
p4.Dialog.get(1).Close();
}
else
{
//var content = $("<div />").css({'color':'#a00'}).append("{{ "an error occured" | trans }} " + data.message);
loadingDiv.append(content);
enableConfirmButton(dialog);
}
}
});
};
//show confirm box, content is loaded here /prod/tools/thumb-extractor/confirm-box/
var dialog = p4.Dialog.Create({
size:'Small',
title:"{{ 'thumbnail validation' | trans }}",
cancelButton:true,
buttons: buttons
}, 2);
var datas = {
image: $('.selected', $sliderWrapper).attr("src"),
sbas_id: sbas_id,
record_id: record_id
};
$.ajax({
type: "POST",
url: "/prod/tools/thumb-extractor/confirm-box/",
data: datas,
success: function(data){
if(data.error)
sources: [
{% for subdef in previewHtml5 %}
{
var content = $("<div />").css({'font-size':'16px', 'text-align':'center'}).append(data.datas);
dialog.setContent(content);
disableConfirmButton(dialog);
}
else
{
dialog.setContent(data.datas);
}
}
});
});
} else {
//not supported
$("#thumbExtractor").empty().append(language.browserFeatureSupport);
}
ratio: '{{ ratio }}',
framerate: {{ record.exif[constant('media_subdef::TC_DATA_FRAMERATE')] | round(2) }},
type: "{{ subdef.get_mime() }}",
src: "{{ subdef.get_url() }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
]
{% endif %}
{% endif %}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
{% if selectionLength == 1%}
$('#tools-sharing .stateChange_button').bind('click',function(event){
var $btn = $(event.currentTarget),
state = true;
// inverse state
if( $btn.data('state') == 1) {
state = false;
}
// submit changes
$.post('tools/sharing-editor/{{record.get_base_id}}/{{record.get_record_id}}/', {
name: $btn.data('name'),
state: state
}).done(function(data) {
// self reload tab with current active tab:
var activeTab = tabs.tabs('option', 'active');
toolREFACTOR($dialog.getOption('contextArgs'), activeTab);
}).error(function(err) {
alert('forbidden action')
});
return false;
});
{% endif %}
});
};
</script>

View File

@@ -1,110 +1,42 @@
{% set canValid = false %}
<div class="well-small text-center">
<form onsubmit="return false" action="{{ path('prod_move_collection_apply') }}" method="post">
{% if records.databoxes() | length > 1 %}
{% if records | length != records.received() | length %}
<div class="well-small">
{{ 'prod::Les enregistrements ne provienent pas tous de la meme base et ne peuvent donc etre traites ensemble' | trans }}
</div>
{% elseif records | length == 0 %}
<div class="well-small">
{{ 'prod::Vous n\'avez le droit d\'effectuer l\'operation sur aucun document' | trans }}
</div>
{% elseif collections | length == 0 %}
<div class="well-small">
{{ 'erreur : Vous n\'avez pas les droits' | trans }}
</div>
{% else %}
{% set canValid = true %}
{% if records | length != records.received() | length %}
<div class="well-small">
{% set countable = records.received().count() - records.count() %}
{% if countable == 1 %}
{% trans %}One document can not be modified.{% endtrans %}
{% else %}
{% trans with {'%countable%' : countable} %}%countable% documents can not be modified.{% endtrans %}
{% endif %}
</div>
{% endif %}
<div class="well-small">
{% set countable = records | length %}
{% set countable = records.received().count() - records.count() %}
{% if countable == 1 %}
{% trans %}Move one record to the chosen collection in the list.{% endtrans %}
{% trans %}One document can not be modified.{% endtrans %}
{% else %}
{% trans with {'%countable%' : countable} %}Move %countable% records to the chosen collection in the list.{% endtrans %}
{% trans with {'%countable%' : countable} %}%countable% documents can not be modified.{% endtrans %}
{% endif %}
</div>
<div class="well-small">
<select name="base_id">
{% for collection in collections %}
<option value="{{ collection.get_base_id() }}">{{ collection.get_label(app['locale']) }}</option>
{% endfor %}
</select>
</div>
{% if records.stories() | length > 0 %}
<div class="well-small">
<label class="checkbox text-info">
<input type="checkbox" value="1" name="chg_coll_son"> {{ 'prod::collection deplacer egalement les documents rattaches a ce(s) regroupement(s)' | trans }}
</label>
</div>
{% endif %}
<input type="hidden" name="act" value="WORK">
<input type="hidden" name="lst" value="{{ records.serializedList() }}">
{% endif %}
<div class="well-small">
{% set countable = records | length %}
{% if countable == 1 %}
{% trans %}Move one record to the chosen collection in the list.{% endtrans %}
{% else %}
{% trans with {'%countable%' : countable} %}Move %countable% records to the chosen collection in the list.{% endtrans %}
{% endif %}
</div>
<div class="well-small">
<select name="base_id">
{% for collection in collections %}
<option value="{{ collection.get_base_id() }}">{{ collection.get_label(app['locale']) }}</option>
{% endfor %}
</select>
</div>
{% if records.stories() | length > 0 %}
<div class="well-small">
<label class="checkbox text-info">
<input type="checkbox" value="1" name="chg_coll_son"> {{ 'prod::collection deplacer egalement les documents rattaches a ce(s) regroupement(s)' | trans }}
</label>
</div>
{% endif %}
<input type="hidden" name="act" value="WORK">
<input type="hidden" name="lst" value="{{ records.serializedList() }}">
</form>
</div>
{% if canValid %}
<script type="text/javascript">
$(document).ready(function(){
$dialog = p4.Dialog.get(1);
var $form = $dialog.getDomElement();
var buttons = {};
buttons[language.valider] = function(){
var coll_son = $('input[name="chg_coll_son"]:checked', $form).length > 0 ? '1' : '0';
var datas = {
lst: $('input[name="lst"]', $form).val(),
base_id: $('select[name="base_id"]', $form).val(),
chg_coll_son: coll_son
};
var buttonPanel = $dialog.getDomElement()
.closest('.ui-dialog')
.find('.ui-dialog-buttonpane');
$.ajax({
type: "POST",
url: "/prod/records/movecollection/apply/",
dataType: 'json',
data: datas,
beforeSend: function() {
$(":button:contains('" + language.valider + "')", buttonPanel)
.attr("disabled", true).addClass("ui-state-disabled");
},
success: function(data){
$dialog.Close();
if(data.success) {
humane.info(data.message);
} else {
humane.error(data.message);
}
},
complete: function(){
$(":button:contains('" + language.valider + "')", buttonPanel)
.attr("disabled", false).removeClass("ui-state-disabled");
}
});
return false;
};
$dialog.setOption('buttons', buttons);
});
</script>
{% endif %}

View File

@@ -27,73 +27,6 @@
</span>
</div>
</form>
<script type="text/javascript">
var $dialog = p4.Dialog.get(1);
var $dialogBox = $dialog.getDomElement();
var $closeButton = $("button.ui-dialog-titlebar-close", $dialogBox.parent());
var $cancelButton = $("button.cancel", $dialogBox);
$cancelButton.bind("click", function(){
$dialog.Close();
});
$("button.submiter", $dialogBox).bind("click", function(){
var $this = $(this);
var form = $(this).closest("form");
var loader = form.find("form-action-loader");
$.ajax({
type: form.attr("method"),
url: form.attr("action"),
data: form.serializeArray(),
dataType: "json",
beforeSend:function(){
$this.prop('disabled', true);
$closeButton.prop('disabled', true);
$cancelButton.prop('disabled', true);
$dialog.setOption('closeOnEscape', false);
loader.show();
},
success: function(data){
$dialog.Close();
$.each(data,function(i,n){
var imgt = $('#IMGT_'+n),
chim = $('.CHIM_'+n),
stories = $('.STORY_'+n);
$('.doc_infos', imgt).remove();
imgt.unbind("click").removeAttr("ondblclick").removeClass("selected").draggable("destroy").removeClass("IMGT").find("img").unbind();
imgt.find(".thumb img").attr("src","/assets/common/images/icons/deleted.png").css({
width:'100%',
height:'auto',
margin: '0 10px',
top: '0'
});
chim.parent().slideUp().remove();
imgt.find(".status,.title,.bottom").empty();
p4.Results.Selection.remove(n);
if(stories.length > 0)
{
p4.WorkZone.refresh();
}
else
{
p4.WorkZone.Selection.remove(n);
}
});
viewNbSelect();
},
complete: function(){
$this.prop('disabled', false);
$closeButton.prop('disabled', false);
$cancelButton.prop('disabled', false);
$dialog.setOption('closeOnEscape', true);
loader.hide();
}
});
});
</script>
{% elseif nbReceived == 0 %}
<div class="well-small" style="text-align:center;">
<span class="label label-important">{{ "No document selected" | trans }}</span>
@@ -102,4 +35,4 @@
<div class="well-small" style="text-align:center;">
<span class="label label-info">{{ "You do not have rights to remove selected documents" | trans }}</span>
</div>
{% endif %}
{% endif %}

View File

@@ -35,7 +35,9 @@
<div class='titre'>
{{ record.get_original_name() }}
</div>
<img class="edit_IMGT" id="idEditDiapoImg_{{ i }}" style="position:absolute; top:{{ top|round }}%; width:{{ width }}; height:{{ height }}; left:{{ left|round }}%;" onclick="edit_clk_editimg(event, {{ i }});" src="{{ thumbnail }}" />
<img class="edit_IMGT select-record-action" id="idEditDiapoImg_{{ i }}"
style="position:absolute; top:{{ top|round }}%; width:{{ width }}; height:{{ height }}; left:{{ left|round }}%;"
data-index="{{ i }}" src="{{ thumbnail }}" />
<div style='position:absolute; top:0px; left:0px; height:20px'>
<img class="require_alert" src="/assets/common/images/icons/alert.png" style="display:none;cursor:help;" title="{{ 'edit::Certains champs doivent etre remplis pour valider cet editing' | trans }}">
</div>
@@ -59,7 +61,9 @@
<td>
<div class="context-menu context-menu-theme-vista">
<div title="" class="context-menu-item">
<div class="context-menu-item-inner" onclick="setRegDefault('{{i}}','{{record.get_record_id()}}');">{{ 'edit: chosiir limage du regroupement' | trans }}</div>
<div class="context-menu-item-inner set-grouping-image-action"
data-index="{{i}}"
data-record-id="{{record.get_record_id()}}">{{ 'edit: chosiir limage du regroupement' | trans }}</div>
</div>
</div>
</td>
@@ -75,7 +79,7 @@
{% endmacro %}
{% macro HTML_fieldlist(recordsRequest, fields) %}
<div class="edit_field" id="EditFieldBox_status" onclick="return(edit_mdwn_status(event));" >
<div class="edit_field edit-status-action" id="EditFieldBox_status">
{% trans %}prod::editing::fields: status{% endtrans %}
</div>
{% set cssfile = '000000' %}
@@ -85,7 +89,9 @@
{% for field in fields %}
{% set i = field.get_id() %}
{% if field.is_readonly() is empty %}
<div class="edit_field" id="EditFieldBox_{{i}}" onclick="return(edit_mdwn_fld(event, {{i}}, '{{field.get_name()}}'));" >
<div class="edit_field edit-field-action" id="EditFieldBox_{{i}}"
data-id="{{i}}"
data-name="{{field.get_name()}}">
<i id="editSGtri_{{i}}" style="visibility:hidden;" class="icon-caret-right"></i>
<span class="icon-stack fieldTips" tooltipsrc="{{ path('prod_tooltip_metadata', { 'sbas_id' : field.get_databox().get_sbas_id(), 'field_id' : field.get_id() }) }}">
<i class="icon-circle icon-stack-base"></i>
@@ -118,19 +124,6 @@
{% set actionable = recordsRequest|length %}
{% set not_actionable = recordsRequest.received|length - actionable %}
<script type="text/javascript">
p4.edit.T_statbits = {{ JSonStatus|raw }};
p4.edit.T_fields = {{ JSonFields|raw }};
p4.edit.T_records = {{ JSonRecords|raw }};
p4.edit.T_sgval = {{ JSonSuggValues|raw }};
p4.edit.T_id = p4.edit.T_pos = {{ JSonIds|raw }};
p4.edit.T_mval = [];
</script>
<div id="EDIT_ALL">
<div class="content-wrapper">
@@ -173,28 +166,32 @@
<div class="edit-zone-title PNB">
<table style='position:relative; top:5px; table-layout:fixed; width:100%'>
<tr>
<td style='width:30px; text-align:right'>
<input type='button' value='&#9668;' class='btn btn-inverse' onclick="edit_chgFld(event, -1);return(false);" />
</td>
<td style='width:30px; text-align:right'>
<input type='button' value='&#9668;' class='btn btn-inverse field-navigate-action'
data-direction="backward"/>
</td>
<td id="idFieldNameEdit"></td>
<td style='width:30px; text-align:left'>
<input type='button' value='&#9658;' class='btn btn-inverse' onclick="edit_chgFld(event, 1);return(false);" />
<input type='button' value='&#9658;' class='btn btn-inverse field-navigate-action'
data-direction="forward"/>
</td>
</tr>
</table>
</div>
<div id="EDIT_EDIT" class="PNB">
<div id="ZTextMonoValued">
<textarea id="idEditZTextArea" onmousedown="return(edit_mdwn_ta(event));" onmouseup="return(edit_mup_ta(event, this));" onkeyup="return(edit_kup_ta(event, this));" onKeyDown="return(edit_kdwn(event, this));"></textarea>
<textarea id="idEditZTextArea" ></textarea>
<div id="idEditDateZone"></div>
</div>
<div id="ZTextMultiValued">
<form onsubmit="edit_addmval($('#EditTextMultiValued', p4.edit.editBox).val(), null);return(false);" style="position:absolute; height:30px; left:2px; right:2px;">
<form class="add-multivalued-field-action"
data-input-id="EditTextMultiValued"
style="position:absolute; height:30px; left:2px; right:2px;">
<div style="position:absolute; top:0px; left:0px; right:70px; height:17px;">
<input type='text' style="font-size:15px; position:absolute; top:0px; left:0px; width:100%; height:100%;" id="EditTextMultiValued" value="" />
</div>
<div style="position:absolute; top:6px; width:60px; right:0px; height:11px;">
<img id="EditButAddMultiValued" style="cursor:pointer" src="/assets/common/images/icons/plus16.png" onclick="edit_addmval($('#EditTextMultiValued', p4.edit.editBox).val(), null);" />
<img id="EditButAddMultiValued add-multivalued-field-action" style="cursor:pointer" src="/assets/common/images/icons/plus16.png" />
</div>
</form>
<div id="ZTextMultiValued_values"></div>
@@ -211,7 +208,8 @@
{% for n, stat in status %}
<tr>
<td style="padding-left:10px">
<span style="cursor:pointer" onclick="edit_clkstatus(event, {{n}}, 0);">
<span class="toggle-status-field-action" data-state="false" data-bit="{{n}}"
style="cursor:pointer" >
<div id="idCheckboxStatbit0_{{n}}" class="gui_ckbox_0"></div>
{% if stat['img_off'] %}
<img src="{{stat['img_off']}}" title="{{stat['label0']}}" style="width:16px;height:16px;vertical-align:bottom" />
@@ -220,7 +218,8 @@
</span>
</td>
<td style="padding-left:20px">
<span style="cursor:pointer" onclick="edit_clkstatus(event, {{n}}, 1);">
<span class="toggle-status-field-action" data-state="true" data-bit="{{n}}"
style="cursor:pointer" >
<div id="idCheckboxStatbit1_{{n}}" class="gui_ckbox_0"></div>
{% if stat['img_on'] %}
<img src="{{stat['img_on']}}" title="{{stat['label1']}}" style="width:16px;height:16px;vertical-align:bottom" />
@@ -235,9 +234,9 @@
</div>
</div>
<div id="idDivButtons" class="PNB">
<input id="ok" type="button" value="{{ 'boutton::remplacer' | trans }}" class="btn btn-inverse" onclick="edit_validField(event, 'ok');return(false);">
<input id="fusion" type="button" value="{{ 'boutton::ajouter' | trans }}" class="btn btn-inverse" onclick="edit_validField(event, 'fusion');return(false);">
<input id="cancel" type="button" value="{{ 'boutton::annuler' | trans }}" class="btn btn-inverse" onclick="edit_validField(event, 'cancel');return(false);">
<input id="ok" type="button" value="{{ 'boutton::remplacer' | trans }}" class="btn btn-inverse commit-field-action" data-mode="ok">
<input id="fusion" type="button" value="{{ 'boutton::ajouter' | trans }}" class="btn btn-inverse commit-field-action" data-mode="fusion">
<input id="cancel" type="button" value="{{ 'boutton::annuler' | trans }}" class="btn btn-inverse commit-field-action" data-mode="cancel">
</div>
<div id="idExplain" class="PNB"></div>
</div>
@@ -249,15 +248,15 @@
{% if thesaurus %}
<li><a href="#TH_Ofull">{{ 'phraseanet:: thesaurus' | trans }}</a></li>
{% endif %}
<li><a href="#TH_Oclipboard">{{ 'phraseanet:: presse-papier' | trans }}</a></li>
<li><a href="#TH_Opreview">{{ 'phraseanet:: preview' | trans }}</a></li>
<li><a href="#TH_Oreplace">{{ 'prod::editing: rechercher-remplacer' | trans }}</a></li>
<li><a href="#TH_Opresets">{{ 'prod::editing: modeles de fiches' | trans }}</a></li>
<li><a href="#TH_Oclipboard">{{ 'phraseanet:: presse-papier' | trans }}</a></li>
</ul>
{% if thesaurus %}
<div id='TH_Ofull'>
<div class='thesaurus' ondblclick='return(edit_dblclickThesaurus(event));' onclick='return(edit_clickThesaurus(event));'>
<p id='TH_T.{{ databox.get_sbas_id() }}.T'>
<div class='thesaurus edit-thesaurus-action'>
<p id='TH_T.{{ databox.get_sbas_id() }}.T' class="thesaurus-db-root">
<u id='TH_P.{{ databox.get_sbas_id() }}.T'>+</u><a id='GL_W.{{ databox.get_sbas_id() }}.T' style='FONT-WEIGHT: bold;'>{{ databox.get_label(app['locale']) }}</a>
</p>
<div id='TH_K.{{ databox.get_sbas_id() }}.T' class='c'>{{ 'phraseanet::chargement' | trans }}</div>
@@ -265,11 +264,6 @@
<img style="position:absolute; margin:auto" id="TH_searching" src="/assets/common/images/icons/ftp-loader-blank.gif" />
</div>
{% endif %}
<div id='TH_Oclipboard'>
<div class="PNB10">
<textarea id='CLIP_CC' style="width:98%; height:98% !important; height:300px;"></textarea>
</div>
</div>
<div id='TH_Opreview'>
<div class="PNB10"></div>
</div>
@@ -301,7 +295,7 @@
<tr>
<td valign="top">{{ 'prod::editing:remplace: options de remplacement' | trans }}</td>
<td>
<input type="checkbox" class="checkbox" id="EditSROptionRX" value="regexp" onchange="changeReplaceMode(this);">
<input type="checkbox" id="EditSROptionRX" value="regexp" class="checkbox record-editor-toggle-replace-mode-action">
{{ 'prod::editing:remplace::option : utiliser une expression reguliere' | trans }}
{% set help_link = 'https://secure.wikimedia.org/wikipedia/en/wiki/Regular_expression' %}
{% if app['locale'] == 'de' %}
@@ -338,7 +332,7 @@
<tr>
<td colspan="2" align="center">
<br />
<input type="button" class='btn btn-inverse' value="{{ 'boutton::valider' | trans }}" onclick="replace(); return(false);" />
<input type="button" class="btn btn-inverse record-editor-searchReplace-action" value="{{ 'boutton::valider' | trans }}"/>
<br />
</td>
</tr>
@@ -350,13 +344,18 @@
</div>
<ul style="top:50px;" class="PNB10 EDIT_presets_list"></ul>
</div>
<div id='TH_Oclipboard'>
<div class="PNB10">
<textarea id='CLIP_CC' style="width:98%; height:98% !important; height:300px;"></textarea>
</div>
</div>
</div>
</div>
</div>
<div id="buttonEditing">
<input type='button' value="{{ 'boutton::valider' | trans }}" class="btn btn-inverse btn-small" onclick="edit_applyMultiDesc(event);" />
<input type='button' value="{{ 'boutton::annuler' | trans }}" class="btn btn-inverse btn-small" onclick="edit_cancelMultiDesc(event);" />
<input type='button' value="{{ 'boutton::valider' | trans }}" class="btn btn-inverse btn-small apply-multi-desc-action" />
<input type='button' value="{{ 'boutton::annuler' | trans }}" class="btn btn-inverse btn-small cancel-multi-desc-action" />
</div>
</div>
@@ -376,7 +375,7 @@
<input type="hidden" name="edit-lst" id="edit_lst" value="{{ recordsRequest.serializedList() }}" />
<input type='button' class='btn btn-inverse'
value="{{ 'boutton::fermer' | trans }}"
onClick="$('#EDITWINDOW').fadeOut();hideOverlay(2);return(false);" />
onClick="$('#EDITWINDOW').fadeOut();return(false);" />
</center>
</div>
@@ -404,30 +403,64 @@
</div>
<script type="text/javascript">
{% if multipleDataboxes or recordsRequest|length == 0 %}
$('#EDITWINDOW').hide();
hideOverlay(2);
$(function() {
// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
$( "#dialog-edit-many-sbas:ui-dialog" ).dialog( "destroy" );
$( "#dialog-edit-many-sbas" ).dialog({
modal: true,
resizable:false,
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
}
});
});
{% else %}
{% if not_actionable > 1 %}
alert("{{ 'prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants' | trans({'%not_actionable%' : not_actionable}) | e('js') }}");
{% elseif not_actionable == 1 %}
alert("{{ 'prod::editing: 1 document ne peut etre edite car vos droits sont induffisants' | trans | e('js') }}");
{% endif %}
startThisEditing({{ databox.get_sbas_id }},{% if recordsRequest.isSingleStory() %}'GRP'{% else %}'LST'{% endif %},"",'');
{% set notActionableMsg = '' %}
{% if not_actionable > 1 %}
{% set notActionableMsg = 'prod::editing: %not_actionable% documents ne peuvent etre edites car vos droits sont induffisants' | trans({'%not_actionable%' : not_actionable}) %}
{% elseif not_actionable == 1 %}
{% set notActionableMsg = 'prod::editing: 1 document ne peut etre edite car vos droits sont induffisants' | trans | e('js')%}
{% endif %}
var recordEditorConfig = {
hasMultipleDatabases: {% if multipleDataboxes or recordsRequest|length == 0 %}true{% else %}false{% endif %},
databoxId: {{ databox.get_sbas_id }},
mode: {% if recordsRequest.isSingleStory() %}'GRP'{% else %}'LST'{% endif %},
notActionable: {{ not_actionable }},
notActionableMsg: '{{notActionableMsg}}',
diapoSize: {{ app['settings'].getUserSetting(app.getAuthenticatedUser(), 'editing_images_size') }},
state: {
T_statbits: {{ JSonStatus|raw }},
T_fields: {{ JSonFields|raw }},
T_records: {{ JSonRecords|raw }},
T_sgval: {{ JSonSuggValues|raw }},
T_id: {{ JSonIds|raw }},
T_pos: {{ JSonIds|raw }},
T_mval: []
},
videoEditorConfig: {% if videoEditorConfig is not null %}{{ videoEditorConfig|json_encode()|raw }}{% else %}{}{% endif %},
records: [
{% for record in recordsRequest %}
{
id: {{ record.get_record_id }},
type: "{{ record.get_type() }}",
{% if record.get_type() == 'video' %}
{% set outputFormats = record.getSubdfefByDeviceAndMime(null, ['image/jpeg', 'image/png']) %}
{% set previewHtml5 = record.getSubdfefByDeviceAndMime(constant('\\databox_subdef::DEVICE_SCREEN'), ['video/ogg', 'video/mp4', 'video/webm']) %}
{% set dataW = constant('media_subdef::TC_DATA_WIDTH') %}
{% set dataH = constant('media_subdef::TC_DATA_HEIGHT') %}
{% set technical_info = record.get_technical_infos %}
{% set width = technical_info[dataW].value %}
{% set height = technical_info[dataH].value %}
{% if width and height %}
{% set ratio = (width / height)|number_format(2, '.') %}
{% else %}
{% set ratio = '' %}
{% endif %}
sources: [
{% for subdef in previewHtml5 %}
{
ratio: '{{ ratio }}',
framerate: {{ record.exif[constant('media_subdef::TC_DATA_FRAMERATE')] | round(2) }},
type: "{{ subdef.get_mime() }}",
src: "{{ subdef.get_url() }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
]
{% endif %}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
};
</script>

View File

@@ -5,18 +5,9 @@
</div>
{% endmacro %}
<style type="text/css">
.record_list .sortable.ui-sortable-placeholder{
width:112px;
height:118px;
position:relative;
float:left;
}
</style>
<div id="modal_feed">
<div class="row-fluid" style="height:120px">
<div class="span12" style="overflow:auto;">
<div class="span12 record_list" style="overflow:auto;">
{% for record in publishing %}
<div class="sortable" style="position:relative;float:left;">
{{ _self.format_diapo(record) }}
@@ -83,16 +74,3 @@
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#modal_feed .record_list').sortable({
stop:function(event, ui){
var lst = [];
$('#modal_feed .record_list .sortable form').each(function(i, el){
lst.push($('input[name="sbas_id"]', el).val()+'_'+$('input[name="record_id"]', el).val());
});
$('#modal_feed form.main_form input[name="lst"]').val(lst.join(';'));
}
});
});
</script>

View File

@@ -5,18 +5,9 @@
</div>
{% endmacro %}
<style type="text/css">
.record_list .sortable.ui-sortable-placeholder{
width:112px;
height:118px;
position:relative;
float:left;
}
</style>
<div id="modal_feed">
<div class="row-fluid" style="height:120px">
<div class="span12" style="overflow:auto;">
<div class="span12 record_list" style="overflow:auto;">
{% for content in entry.getItems() %}
<div class="sortable" style="position:relative;float:left;">
{{ _self.format_diapo(content.getRecord(app)) }}
@@ -31,7 +22,7 @@
<div class="row-fluid">
<div class="span12">
<form class="main_form" method="post" action="{{ path('prod_feeds_entry_update', {'id': entry.getId()}) }}">
<input type="hidden" name="sorted_lst" value="" />
<input type="hidden" name="lst" value="" />
<div class="row-fluid">
<div class="span6">
<h1>{{ 'Editer' | trans }}</h1>
@@ -68,16 +59,3 @@
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#modal_feed .record_list').sortable({
stop:function(event, ui){
var lst = [];
$('#modal_feed .record_list form').each(function(i, el){
lst.push($('input[name="item_id"]', el).val()+'_'+(i+1));
});
$('#modal_feed form.main_form input[name="sorted_lst"]').val(lst.join(';'));
}
});
});
</script>

View File

@@ -5,9 +5,8 @@
<div class="sbas_list sbas_{{sbas_id}}" style="margin-bottom: 10px;">
<input type="hidden" name="reference" value="{{sbas_id}}"/>
<div class="clksbas">
<span onclick="deploy(this, '.sbascont_{{sbas_id}}' );" class="deployer_closed" ></span>
<input type="checkbox" checked style="display: none;" id="sbasChkr_{{sbas_id}}_{{unique_id}}" class="sbasChkr_{{sbas_id}}"
onchange="clksbas(this, {{sbas_id}});" />
<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}}">
@@ -23,8 +22,8 @@
<table>
<tr>
<td>
<input class="ck_{{collection["base_id"]}} checkbas" style="*margin-top:-18px;"
onchange="checkFilters(true);"
<input class="ck_{{collection["base_id"]}} checkbas check-filters" style="*margin-top:-18px;" data-save="true"
id="ck_{{collection["base_id"]}}_{{unique_id}}" type="checkbox"
name="bases[]" value="{{collection["base_id"]}}" {% if collection["selected"] %}checked="checked"{% endif %} />
</td>
@@ -67,22 +66,86 @@
{% endblock %}
{% block stylesheet %}
<link type="text/css" rel="stylesheet" href="/assets/prod/css/prod{% if not app.debug %}.min{% endif %}.css">
<link id="skinCss" type="text/css" rel="stylesheet" href="/assets/prod/skins/{{ cssfile }}/skin-{{ cssfile }}{% if not app.debug %}.min{% endif %}.css">
<link type="text/css" rel="stylesheet" href="/assets/production/production{% if not app.debug %}.min{% endif %}.css">
<link id="skinCss" type="text/css" rel="stylesheet" href="/assets/production/skin-{{ cssfile }}{% if not app.debug %}.min{% endif %}.css">
<style title="color_selection" type="text/css">
/* .diapo.ui-selecting,#reorder_box .diapo.selecting, #EDIT_ALL .diapo.selecting, .list.selecting, .list.selecting .diapo {
color: #{{ app['settings'].getUserSetting(app.getAuthenticatedUser(), 'fontcolor-selection', 'FFFFFF') }};
background-color: #{{ app['settings'].getUserSetting(app.getAuthenticatedUser(), 'background-selection-disabled', '333333')}}};
}*/
.diapo.selected,#reorder_box .diapo.selected, #EDIT_ALL .diapo.selected, .list.selected, .list.selected .diapo {
color: {{"#" ~ app['settings'].getUserSetting(app.getAuthenticatedUser(), 'fontcolor-selection', 'FFFFFF')}};
background-color: {{"#" ~ app['settings'].getUserSetting(app.getAuthenticatedUser(), 'background-selection', '404040')}};
}
</style>
{% endblock %}
{% block javascript %}
<script type="text/javascript" src="/assets/production/commons{% if not app.debug %}.min{% endif %}.js"></script>
<script type="text/javascript" src="/assets/production/production{% if not app.debug %}.min{% endif %}.js"></script>
<script type="text/javascript">
{% if app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page') == 'QUERY' %}
{% set initialAppState = 'default' %}
{% elseif app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page') == 'LAST_QUERY' %}
{% set initialAppState = 'default' %}
{% elseif app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page') == 'PUBLI' %}
{% set initialAppState = 'publication' %}
{% endif %}
window.prodApp = ProductionApplication.bootstrap({
lang: "{{ app.locale }}",
baseUrl: '{{ app['request'].getUriForPath('/') }}',
basePath: '{{ app.request.basePath|e('js') }}',
notify: {
url: "{{ path('list_notifications') }}",
moduleId: 1,
userId: {{app.getAuthenticatedUser().getId()}}
},
debug: {% if app.debug %}true{% else %}false{% endif %},
initialState: "{{ initialAppState }}",
geonameServerUrl: '{{ app['geonames.server-uri'] }}',
geocodingProviders: {{ geocodingProviders|json_encode()|raw}},
thesaurusConfig: {
replaceMessage: '{{ 'prod::thesaurusTab:dlg:Remplacement du candidat "%(from)s" par "%(to)s"' | trans }}',
replaceInProgressMsg: '{{ 'prod::thesaurusTab:dlg:Remplacement en cours.' | trans }}',
acceptMsg: '{{ 'prod::thesaurusTab:dlg:Acceptation en cours.' | trans }}',
deleteMsg: '{{ 'prod::thesaurusTab:dlg:Suppression en cours.' | trans }}',
candidateUniqueMsg: '{{ 'prod::thesaurusTab:dlg:accepter le terme candidat "%s" ?' | trans }}',
candidateManyMsg: '{{ 'prod::thesaurusTab:dlg:accepter les %d termes candidats ?' | trans }}',
acceptCandidateUniqueMsg: '{{ 'prod::thesaurusTab:wizard:clic-droit / accepter le terme candidat "%s"' | trans }}',
acceptCandidateManyMsg: '{{ "prod::thesaurusTab:wizard:clic-droit / accepter les %s termes candidats" | trans }}',
replaceCandidateUniqueMsg: '{{ "prod::thesaurusTab:dlg:remplacer le terme \"%s\" des fiches par :" | trans }}',
replaceCandidateManyMsg: '{{ "prod::thesaurusTab:dlg:remplacer les %d termes des fiches par :" | trans }}',
deleteCandidateUniqueMsg: '{{ 'prod::thesaurusTab:dlg:supprimer le terme "%s" des fiches ?' | trans }}',
deleteCandidateManyMsg: '{{ 'prod::thesaurusTab:dlg:supprimer les %d termes des fiches ?' | trans }}',
loadingMsg: '{{ 'prod::thesaurusTab:tree:loading' | trans }}',
searchMsg: '{{ 'boutton::chercher' | trans }}',
acceptSpecificTermMsg: '{{ 'prod::thesaurusTab:tmenu:Accepter comme terme specifique' | trans }}',
acceptSynonymeMsg: '{{ 'prod::thesaurusTab:tmenu:Accepter comme synonyme' | trans }}',
replaceWithMsg: '{{ 'prod::thesaurusTab:cmenu:Remplacer par...' | trans }}',
removeActionMsg: '{{ 'boutton::supprimer' | trans }}',
sbas: {{thesau_json_sbas|raw}},
bas2sbas: {{thesau_json_bas2sbas|raw}},
availableDatabases: [
{% for base in search_datas['bases'] %}{% if base['thesaurus'] %}{
id: {{base['sbas_id']}}
}{% if not loop.last %},{% endif %}{% endif %}{% endfor %}
],
languagesCount: {{ thesau_languages|length }},
langContextMenu: [
{% for lng_code, lng in thesau_languages %}
{
label:'{% trans with {'%lng_code%' : lng_code} %}prod::thesaurusTab:cmenu:Accepter en %lng_code%{% endtrans %}',
lngCode: '{{lng_code}}',
},
{% endfor %}
]
}
});
$(document).ready(function(){
prodApp.appEvents.emit('workzone.doRemoveWarning', "{% if app['settings'].getUserSetting(app.getAuthenticatedUser(), "warning_on_delete_story") %}true{% else %}false{% endif %}");
});
</script>
{% include "common/templates.html.twig" %}
{% endblock %}
@@ -115,8 +178,7 @@
{{WorkZoneMacros.make_bloc(app, WorkZone)}}
</div>
{% if GV_thesaurus %}
<div id="proposals" class="PNB"
ondblclick="return(thesau_dblclickThesaurus(event));" onclick="return(thesau_clickThesaurus(event));">
<div id="proposals" class="PNB thesaurus-from-facets-action">
<button id="facets-back-btn" style="display:none;">back</button>
</div>
{% include 'prod/tab_thesaurus.html.twig' with {has_access_to_module: app.getAclForUser(app.getAuthenticatedUser()).has_access_to_module('thesaurus')} %}
@@ -135,19 +197,19 @@
<ul style="list-style-type:none;margin:0;padding:0">
<li class="context-menu-item">
<div class="context-menu-item-inner">
<a title="{{ 'action:: nouveau panier' | trans }}" class="dialog small-dialog" href="{{ path('prod_baskets_create') }}">
<a title="{{ 'action:: nouveau panier' | trans }}" class="basket-create-action" href="#">
<img style="cursor:pointer;" src="/assets/common/images/icons/mtadd_0.gif" title="{{ 'action:: nouveau panier' | trans }}" />
{{ 'action:: nouveau panier' | trans }}
</a>
</div>
<div class="context-menu-item-inner">
<a title="{{ 'Browse Baskets' | trans }}" class="dialog" href="{{ path('prod_workzone_browse') }}">
<a title="{{ 'Browse Baskets' | trans }}" class="basket-browse-action" href="#">
{{ 'Browse Baskets' | trans }}
</a>
</div>
{% if app['conf'].get(['registry', 'modules', 'stories']) and app.getAclForUser(app.getAuthenticatedUser()).has_right('addrecord') %}
<div class="context-menu-item-inner">
<a title="{{ 'action:: nouveau reportage' | trans }}" class="dialog small-dialog" href="{{ path('prod_stories_create') }}">
<a title="{{ 'action:: nouveau reportage' | trans }}" class="story-create-action" href="#">
<img style="cursor:pointer;" src="/assets/common/images/icons/mtadd_0.gif" title="{{ 'action:: nouveau reportage' | trans }}" />
{{ 'action:: nouveau reportage' | trans }}
</a>
@@ -155,19 +217,19 @@
{% endif %}
</li>
<li class="context-menu-item">
<div class="context-menu-item-inner" onclick="return p4.WorkZone.refresh('current','date');">
<div class="context-menu-item-inner basket-filter-action" data-sort="date">
<img style="cursor:pointer;" src="/assets/common/images/icons/cal.png" title="{{ 'phraseanet:: tri par date' | trans }}" />
{{ 'phraseanet:: tri par date' | trans }}
</div>
</li>
<li class="context-menu-item">
<div class="context-menu-item-inner" onclick="return p4.WorkZone.refresh('current','name');">
<div class="context-menu-item-inner basket-filter-action" data-sort="name">
<img style="cursor:pointer;" src="/assets/common/images/icons/alpha.png" title="{{ 'phraseanet:: tri par nom' | trans }}" />
{{ 'phraseanet:: tri par nom' | trans }}
</div>
</li>
<li class="context-menu-item">
<div class="context-menu-item-inner" onclick="basketPrefs();">
<div class="context-menu-item-inner basket-preferences-action">
{{ 'Preferences' | trans }}
</div>
</li>
@@ -189,6 +251,11 @@
<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 }}"/>
</a>
{% if geocodingProviders|length > 0 %}
<a id="geo_query" href="#" class="btn btn-inverse adv_trigger geo-search-action-btn">
<img src="/assets/common/images/icons/map.png" title="{{ 'Geo Search' | trans }}"/>
</a>
{% endif %}
<button type="submit" class="btn btn-inverse" style="font-size:14px">{{ 'boutton::rechercher' | trans }}</button>
</div>
<div class="control-group">
@@ -215,17 +282,17 @@
</div>
</div>
<div class="controls controls-row adv_options" style="display:none;">
<div id="advancedSearchForm" class="controls controls-row adv_options" style="display:none;">
<table style="width:100%; table-layout:fixed;">
<tr>
<td style="width:50%; vertical-align:top;">
<div id="ADVSRCH_SBAS_ZONE" class="sbasglob">
<div class="btn-toolbar">
<input class="btn btn-inverse" type="button"
value="{{ 'boutton:: selectionner toutes les bases' | trans }}" onclick="checkBases(true);" />
<input class="btn btn-inverse" type="button"
value="{{ 'boutton:: selectionner aucune base' | trans }}" onclick="checkBases(false);" />
<input class="btn btn-inverse 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"
value="{{ 'boutton:: selectionner aucune base' | trans }}" />
</div>
{{_self.bas_list(module_prod, search_datas)}}
</div>
@@ -233,7 +300,7 @@
<td style="width:50%; vertical-align:top;">
<div id="sbasfiltercont">
<div class="btn-toolbar">
<input class="btn btn-inverse" type="button" value="{{ 'Re-initialiser' | trans }}" onclick="reset_adv_search();" />
<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">
@@ -250,7 +317,7 @@
{% set sortOrderPreference = search_datas.elasticSort.order %}
{% endif %}
<span>{{ 'Trier par' | trans }}</span>
<select name="sort" class="input-medium" onchange="checkFilters(true);">
<select name="sort" class="input-medium check-filters" data-save="true">
{% set isSelected = (sortByPreference == constant('\\Alchemy\\Phrasea\\SearchEngine\\SearchEngineOptions::SORT_CREATED_ON')) %}
{% set isDefault = (sortByDefault == constant('\\Alchemy\\Phrasea\\SearchEngine\\SearchEngineOptions::SORT_CREATED_ON')) %}
<option value="{{ constant('\\Alchemy\\Phrasea\\SearchEngine\\SearchEngineOptions::SORT_CREATED_ON') }}" {% if isSelected %}selected="selected"{% endif %}{% if isDefault %} class="default-selection"{% endif %}>{{ "Date Added"|trans }}</option>
@@ -267,7 +334,7 @@
{% endfor %}
</optgroup>
</select>
<select name="ord" class="input-medium" onchange="checkFilters(true);">
<select name="ord" class="input-medium check-filters" data-save="true">
{% for ord, ord_name in app['phraseanet.SE'].getAvailableOrder() %}
{% set isSelected = (sortOrderPreference == ord) %}
{% set isDefault = (sortOrderDefault == ord) %}
@@ -278,7 +345,7 @@
<div id="ADVSRCH_FIELDS_ZONE" class="danger_indicator">
<span>{{ 'Les termes apparaissent dans le(s) champs' | trans }}</span>
<select size="8" multiple onchange="checkFilters(true);" name="fields[]" style="vertical-align:middle; width:99%;">
<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' %}
@@ -298,7 +365,7 @@
<thead>
<tr>
<td colspan="2">
<span onclick="deploy(this, '#ADVSRCH_SB_{{databox_id}}' );return false;" class="deployer_closed" ></span>
<span class="toggle-collection deployer_closed" data-toggle-content="#ADVSRCH_SB_{{databox_id}}"></span>
<span class="danger_indicator">{{ databox['name'] }}</span>
</td>
</tr>
@@ -311,7 +378,7 @@
{% if status['img_off'] %}
<img src="{{status['img_off']}}" title="{{status['labels_off_i18n'][app['locale']]}}" />
{% endif %}
<input onchange="checkFilters(true);" class="field_switch field_{{databox_id}}"
<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}}]" />
{{status['labels_off_i18n'][app['locale']]}}
@@ -322,7 +389,7 @@
{% if status['img_on'] %}
<img src="{{status['img_on']}}" title="{{status['labels_on_i18n'][app['locale']]}}" />
{% endif %}
<input onchange="checkFilters(true);" class="field_switch field_{{databox_id}}"
<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}}]"/>
{{status['labels_on_i18n'][app['locale']]}}
@@ -341,7 +408,7 @@
{% if app['phraseanet.SE'].getAvailableDateFields() | length > 0 %}
<hr />
<span>
<select name="date_field" class="input-medium" onchange="checkFilters(true);">
<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'] %}
@@ -354,12 +421,12 @@
{{ 'phraseanet::time:: de' | trans }}
<div class="input-prepend">
<span class="add-on"><i class="icon-calendar"></i></span>
<input onchange="checkFilters(true);" class="datepicker input-small" type="text" name="date_min" placeholder="{% trans %}YYYY/MM/DD{% endtrans %}" style="margin: 0;position: relative; z-index: 10001;" />
<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="icon-calendar"></i></span>
<input onchange="checkFilters(true);" class="datepicker input-small" type="text" name="date_max" placeholder="{% trans %}YYYY/MM/DD{% endtrans %}" style="margin: 0;position: relative; z-index: 10001;" />
<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 %}
@@ -372,42 +439,14 @@
</div>
</form>
</div>
<!--
<div id="history-queries" class="PNB" style="top:30px;overflow:hidden;">
<div class="PNB10" style="overflow-y:auto;overflow-x:auto;">
{{queries_history|raw}}
</div>
</div>
{% if queries_topics %}
<div id="choosen-topics" class="PNB" style="top:30px;overflow:hidden;">
<div class="PNB10" style="overflow-y:auto;overflow-x:auto;">
{{queries_topics|raw}}
</div>
</div>
{% endif %}
</div>
</div>-->
</div>
<div id="idFrameT" class="PNB ui-corner-top">
<div class="tools PNB10 btn-toolbar">
{% include "prod/toolbar.html.twig" with {acl: app.getAclForUser(app.getAuthenticatedUser())} %}
<a href="#" id="settings" onclick="lookBox(this,event);return false;">{{ 'Preferences' | trans }} </a>
</div>
<div id="answers" class=" PNB10">
<script>
$(document).ready(function(){
{% if app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page') == 'QUERY' %}
$('form[name="phrasea_query"]').addClass('triggerAfterInit');
{% elseif app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page') == 'LAST_QUERY' %}
$('form[name="phrasea_query"]').addClass('triggerAfterInit');
{% elseif app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page') == 'PUBLI' %}
getHome('PUBLI');
{% endif %}
});
</script>
<a href="#" id="settings" class="open-preferences" data-action="">{{ 'Preferences' | trans }} </a>
</div>
<div id="answers" class=" PNB10"></div>
<div id="answers_status">
<div class="infos">
<span id="tool_results">
@@ -415,22 +454,6 @@
</span>
</div>
</div>
<!--div id="answers_status" class="PNB">
<table>
<tr>
<td class="infos">
<a href="#" onclick="lookBox(this,event);return false;">{{ 'Preferences' | trans }} </a>
|
<span id="tool_results">
</span>
</td>
<td class="navigation">
<div id="tool_navigate"></div>
</td>
</tr>
</table>
</div-->
</div>
</div>
</div>
@@ -531,7 +554,7 @@
<div class="" style="float:left; width:100%;margin-top:20px;">
{% set mod = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'advanced_search_reload') %}
<label class="checkbox inline" for="user_settings_advanced_search_reload">
<input onchange="setPref('advanced_search_reload',$(this).prop('checked')?'1' : '0');" name="advanced_search_reload" type="checkbox" style="margin: 3px 0 0 -18px;" class="checkbox" value="1" id="user_settings_advanced_search_reload" {% if mod == '1' %}checked="checked"{% endif %}/>
<input name="advanced_search_reload" type="checkbox" style="margin: 3px 0 0 -18px;" class="checkbox preferences-options-search-reload" value="1" id="user_settings_advanced_search_reload" {% if mod == '1' %}checked="checked"{% endif %}/>
{{ 'Use latest search settings on Production loading' | trans }}
</label>
</div>
@@ -541,31 +564,28 @@
<h1>{{ 'Mode de presentation' | trans }}</h1>
{% set mod = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'view') %}
<label class="radio inline" for="thumbs_view">
<input onchange="setPref('view',$(this).val());" name="view_type" type="radio" style="margin: 3px 0 0 -18px;" class="radio" value="thumbs" id="thumbs_view" {% if mod == 'thumbs' %}checked="checked"{% endif %}/>
<input name="view_type" type="radio" style="margin: 3px 0 0 -18px;" class="radio preferences-options-presentation-thumbnail" value="thumbs" id="thumbs_view" {% if mod == 'thumbs' %}checked="checked"{% endif %}/>
{{ 'reponses:: mode vignettes' | trans }}
</label>
<label class="radio inline" for="list_view">
<input onchange="setPref('view',$(this).val());" name="view_type" type="radio" style="margin: 3px 0 0 -18px;" class="radio" value="list" id="list_view" {% if mod == 'list' %}checked="checked"{% endif %}/>
<input name="view_type" type="radio" style="margin: 3px 0 0 -18px;" class="radio preferences-options-presentation-list" value="list" id="list_view" {% if mod == 'list' %}checked="checked"{% endif %}/>
{{ 'reponses:: mode liste' | trans }}
</label>
</div>
<div style="float:right; width:49%;">
<h1>{{ 'Theme' | trans }}</h1>
{% for color, file in css %}
<div title="{{ 'Selecteur de theme' | trans }}" class="colorpicker_box"
onclick="setCss('{{color}}');" style="width:16px;height:16px;background-color:{{ '#' ~ color ~ ';' }}">&nbsp;</div>
{% endfor %}
<div id="theme-container"></div>
</div>
</div>
<div class="box">
{% set rollover_thumbnail = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'rollover_thumbnail') %}
<h1>{{ 'Presentation de vignettes' | trans }}</h1>
<label class="radio" for="rollover_caption">
<input onchange="setPref('rollover_thumbnail',$(this).val());" name="rollover_thumbnail" type="radio" class="radio" value="caption" id="rollover_caption" {% if rollover_thumbnail == 'caption' %}checked="checked" {% endif %}/>
<input name="rollover_thumbnail" type="radio" class="radio preferences-options-rollover-caption" value="caption" id="rollover_caption" {% if rollover_thumbnail == 'caption' %}checked="checked" {% endif %}/>
{{ 'Iconographe (description au rollover)' | trans }}
</label>
<label class="radio" for="rollover_preview">
<input onchange="setPref('rollover_thumbnail',$(this).val());" name="rollover_thumbnail" type="radio" class="radio" value="preview" id="rollover_preview" {% if rollover_thumbnail == 'preview' %}checked="checked" {% endif %}/>
<input name="rollover_thumbnail" type="radio" class="radio preferences-options-rollover-preview" value="preview" id="rollover_preview" {% if rollover_thumbnail == 'preview' %}checked="checked" {% endif %}/>
{{ 'Graphiste (preview au rollover)' | trans }}
</label>
</div>
@@ -573,15 +593,15 @@
{% set technical_display = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'technical_display') %}
<h1>{{'Display technical data' | trans }}</h1>
<label class="radio" for="technical_show">
<input onchange="setPref('technical_display',$(this).val());" name="technical_display" type="radio" class="radio" value="1" id="technical_show" {% if technical_display == '1' %}checked="checked"{% endif %}/>
<input name="technical_display" type="radio" class="radio preferences-options-technical-display" value="1" id="technical_show" {% if technical_display == '1' %}checked="checked"{% endif %}/>
{{ 'In the answer grid' | trans }}
</label>
<label class="radio" for="technical_group">
<input onchange="setPref('technical_display',$(this).val());" name="technical_display" type="radio" class="radio" value="group" id="technical_group" {% if technical_display == 'group' %}checked="checked"{% endif %}/>
<input name="technical_display" type="radio" class="radio preferences-options-technical-display" value="group" id="technical_group" {% if technical_display == 'group' %}checked="checked"{% endif %}/>
{{ 'After metadata' | trans }}
</label>
<label class="radio" for="technical_hide">
<input onchange="setPref('technical_display',$(this).val());" name="technical_display" type="radio" class="radio" value="0" id="technical_hide" {% if technical_display == '0' %}checked="checked"{% endif %}/>
<input name="technical_display" type="radio" class="radio preferences-options-technical-display" value="0" id="technical_hide" {% if technical_display == '0' %}checked="checked"{% endif %}/>
{{ 'Do not display' | trans }}
</label>
</div>
@@ -589,7 +609,7 @@
{% set doctype_display = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'doctype_display') %}
<h1>{{'Type de documents' | trans }}</h1>
<label class="checkbox" for="doctype_display_show">
<input onchange="setPref('doctype_display',($(this).prop('checked') ? '1' :'0'));" name="doctype_display" type="checkbox" class="checkbox" value="1" id="doctype_display_show" {% if doctype_display != '0' %}checked="checked"{% endif %}/>
<input name="doctype_display" type="checkbox" class="checkbox preferences-options-doctype-display" value="1" id="doctype_display_show" {% if doctype_display != '0' %}checked="checked"{% endif %}/>
{{ 'Afficher une icone' | trans }}
</label>
@@ -623,7 +643,7 @@
<h1>{{ 'Affichage au demarrage' | trans }}</h1>
<form class="form-inline">
{% set start_page_pref = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page') %}
<select class="span4" name="start_page" onchange="start_page_selector();">
<select class="span4 preferences-options-start-page" name="start_page">
<option value="LAST_QUERY" {% if start_page_pref == 'LAST_QUERY' %}selected="selected"{% endif %} >
{{ 'Ma derniere question' | trans }}
</option>
@@ -638,7 +658,7 @@
</option>
</select>
<input type="text" class="span4" name="start_page_value" value="{{ app['settings'].getUserSetting(app.getAuthenticatedUser(), 'start_page_query')}}" style="display:{% if start_page_pref == 'QUERY' %}inline{% else %}none{% endif %}" />
<input type="button" class="btn btn-inverse" value="{{'boutton::valider' | trans }}" onclick="set_start_page();" />
<input type="button" class="btn btn-inverse preferences-options-submit" value="{{'boutton::valider' | trans }}" />
</form>
</div>
</div>
@@ -669,7 +689,7 @@
<div class="gui_vsplitter gui_vsplitter2" style="left:60%;">
</div>
<div id="PREVIEWRIGHT" class="preview_col PNB" style="top:7px;left:60%;overflow:hidden;">
<div id="PREVIEWRIGHT" class="preview_col PNB">
<div id="PREVIEWIMGDESC" class="PNB10">
<ul class="PNB" style="height:30px;bottom:auto;">
<li><a href="#PREVIEWIMGDESCINNER-BOX">{{ 'preview:: Description' | trans }}</a></li>
@@ -696,7 +716,7 @@
<div class="PNB" style="width:180px;left:auto;">
<div class="PNB10 ui-corner-all" style="height:20px;">
<button type="button" onclick="closePreview();" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close" role="button" aria-disabled="false" title="close">
<button type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close close-preview-action" role="button" aria-disabled="false" title="close">
<span class="ui-button-icon-primary ui-icon ui-icon-closethick"></span><span class="ui-button-text">close</span>
</button>
</div>
@@ -716,8 +736,8 @@
<div>
{% set basket_status_display = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'basket_status_display') %}
<label for="basket_status_display" class="checkbox">
<input onchange="setPref('basket_status_display',($(this).prop('checked') ? '1' :'0'));"
name="basket_status_display" type="checkbox" class="checkbox" value="1"
<input
name="basket_status_display" type="checkbox preferences-options-basket-status" class="checkbox" value="1"
id="basket_status_display" {% if basket_status_display == '1' %}checked="checked"{% endif %} />
{{ 'Afficher les status' | trans }}
</label>
@@ -725,8 +745,8 @@
<div>
{% set basket_caption_display = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'basket_caption_display') %}
<label for="basket_caption_display" class="checkbox">
<input onchange="setPref('basket_caption_display',($(this).prop('checked') ? '1' :'0'));"
name="basket_caption_display" type="checkbox" class="checkbox" value="1"
<input
name="basket_caption_display" type="checkbox" class="checkbox preferences-options-basket-caption" value="1"
id="basket_caption_display" {% if basket_caption_display == '1' %}checked="checked"{% endif %} />
{{ 'Afficher la fiche descriptive' | trans }}
</label>
@@ -734,8 +754,8 @@
<div>
{% set basket_title_display = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'basket_title_display') %}
<label for="basket_title_display" class="checkbox">
<input onchange="setPref('basket_title_display',($(this).prop('checked') ? '1' :'0'));"
name="basket_title_display" type="checkbox" class="checkbox" value="1"
<input
name="basket_title_display" type="checkbox" class="checkbox preferences-options-basket-title" value="1"
id="basket_title_display" {% if basket_title_display == '1' %}checked="checked"{% endif %} />
{{ 'Afficher le titre' | trans }}
</label>
@@ -746,59 +766,5 @@
<div id="dialog_publicator" title="{{ 'action : bridge' | trans }}" style="display:none;"></div>
<div id="modal_feed" title="{{ 'action : publier' | trans }}" style="display:none;"></div>
<div id="dialog_dwnl" title="{{ 'action : exporter' | trans }}" style="display:none;"></div>
<script type="text/javascript">
{% include "prod/thesaurus.js.twig" with {'search_datas': search_datas} %}
</script>
<script type="text/javascript" src="/assets/common/js/common{% if not app.debug %}.min{% endif %}.js"></script>
<script type="text/javascript" src="/assets/prod/js/prod{% if not app.debug %}.min{% endif %}.js"></script>
<script type="text/javascript">
$(document).ready(function(){
p4.reg_delete="{% if app['settings'].getUserSetting(app.getAuthenticatedUser(), "warning_on_delete_story") %}true{% else %}false{% endif %}";
});
function pollNotifications(){
$.ajax({
type: "POST",
url: "{{ path('list_notifications') }}",
dataType: "json",
data: {
module : 1,
usr : {{app.getAuthenticatedUser().getId()}}
},
error: function(){
window.setTimeout("pollNotifications();", 10000);
},
timeout: function(){
window.setTimeout("pollNotifications();", 10000);
},
success: function(data){
if(data)
manageSession(data, true);
var t = 120000;
if(data.apps && parseInt(data.apps)>1)
t = Math.round((Math.sqrt(parseInt(data.apps)-1) * 1.3 * 60000));
window.setTimeout("pollNotifications();", t);
return;
}
});
};
function setCss(color) {
$("#skinCss").attr("href","/assets/prod/skins/" + color + "/skin-" + color + "{% if not app.debug %}.min{% endif %}.css");
$.post("{{ path('save_pref') }}", {
prop: "css",
value: color,
t: Math.random()
}, function(data){
return;
});
if (( navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/6/) )) {
$("select").hide().show();
}
}
</script>
<script type="text/javascript" id="bitly_loader"></script>
{% endblock %}

View File

@@ -6,7 +6,7 @@
</div>
{% else %}
<div class="notification_title">
<a href="#" onclick="print_notifications(0);return false;">{{ 'toutes les notifications' | trans }}</a>
<a href="#" class="notification__print-action" data-page="0">{{ 'toutes les notifications' | trans }}</a>
</div>
{% endif %}

View File

@@ -41,7 +41,7 @@
<tbody>
{% for order in orders %}
{% set deadline = app['date-formatter'].getPrettyString(order.getDeadline()) %}
<tr id="order_{{ order.getId() }}" class="order_row" {{ current_date > order.getDeadline() ? "style=color:#777": "" }}>
<tr id="order_{{ order.getId() }}" class="order_row" {{ current_date > order.getDeadline() ? "style=color:#777": "" }} data-order-id="{{ order.getId() }}">
<td>{{ order.getUser().getDisplayName() }}</td>
<td>{{ app['date-formatter'].getPrettyString(order.getCreatedOn()) }}</td>
<td>
@@ -71,23 +71,3 @@
</ul>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
var dialog = p4.Dialog.get(1);
$('a.self-ajax', dialog.getDomElement()).bind('click', function(e){
e.preventDefault();
var url = $(this).attr('href');
dialog.load(url);
});
$('tr.order_row', dialog.getDomElement()).bind('click', function(e){
e.preventDefault();
var id = $(this).attr('id').split('_').pop();
dialog.load('/prod/order/' + id +'/');
}).addClass('clickable');
});
</script>

View File

@@ -68,8 +68,8 @@
{% set title_send %}
{% trans %}Forcer l'envoi du document{% endtrans %}
{% endset %}
<img style="cursor:help;" src="/assets/common/images/icons/delete.png" title="{% spaceless %}{{title|e}}{% endspaceless %}" />
<img style="cursor:pointer;" class="force_sender" src="/assets/common/images/icons/reload.png" title="{% spaceless %}{{title_send|e}}{% endspaceless %}" />
<img style="cursor:help;" src="/assets/common/images/icons/delete.png" title="{% spaceless %}{{title|e}}{% endspaceless %}" height="16" width="16" class="btn-image"/>
<img style="cursor:pointer;" class="force_sender" src="/assets/common/images/icons/reload.png" title="{% spaceless %}{{title_send|e}}{% endspaceless %}" height="16" width="16" class="btn-image"/>
{% else %}
{% set title %}
{% trans with {'%name%' : name} %}Document envoye par %name%{% endtrans %}
@@ -93,200 +93,8 @@
{{ 'Selectionnez des documents et' | trans }}
<button class="btn btn-primary send">{{ 'Send' | trans }}</button>
<button class="btn deny">{{ 'Deny' | trans }}</button>
<button class="order_launcher btn">{{ 'Retour aux commandes' | trans }}</button>
<button class="order-open-action btn">{{ 'Retour aux commandes' | trans }}</button>
<img src="/assets/common/images/icons/loader000000.gif" class="activity_indicator" style="display:none;"/>
<input name="order_id" type="hidden" value="{{ order.getId() }}" />
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
if ($('#notification_box').is(':visible')) {
$('#notification_trigger').trigger('mousedown');
}
var dialog = p4.Dialog.get(1);
var order_id = $('input[name=order_id]').val();
$('.order_launcher', dialog.getDomElement()).bind('click',function(){
dialog.load('{{ path('prod_orders') }}')
});
$('.order_list .selectable', dialog.getDomElement()).bind('click',function(event){
var $this = $(this);
if(is_ctrl_key(event))
{
if($this.hasClass('selected')) {
$this.removeClass('selected');
} else {
$this.addClass('selected');
}
}
else
{
if(is_shift_key(event))
{
var first = false, last = false;
$('.order_list .selectable', dialog.getDomElement()).each(function(i,n){
if (last) {
first = last = false;
}
if ($(n).attr('id') == $this.attr('id') || $(n).hasClass('last_selected'))
{
if (first) {
last = true;
}
first = true;
}
if (first || last) {
$(n).addClass('selected');
}
});
}
else
{
$('.order_list .selectable.selected', dialog.getDomElement()).removeClass('selected');
$this.addClass('selected');
}
}
$('.order_list .selectable.last_selected', dialog.getDomElement()).removeClass('last_selected');
$this.addClass('last_selected');
});
$('.captionTips, .captionRolloverTips, .infoTips', dialog.getDomElement()).tooltip({
delay:0
});
$('.previewTips', dialog.getDomElement()).tooltip({
fixable:true
});
$('button.send', dialog.getDomElement()).bind('click',function(){
send_documents(order_id);
});
$('button.deny', dialog.getDomElement()).bind('click',function(){
deny_documents(order_id);
});
$('.force_sender', dialog.getDomElement()).bind('click',function(){
if(confirm(language.forceSendDocument))
{
var element_id = [];
element_id.push($(this).closest('.order_wrapper').find('input[name=order_element_id]').val());
do_send_documents(order_id, element_id, true);
}
});
});
function do_send_documents(order_id, elements_ids, force)
{
var dialog = p4.Dialog.get(1);
var cont = dialog.getDomElement();
$('button.deny, button.send', cont).prop('disabled', true);
$('.activity_indicator', cont).show();
$.ajax({
type: "POST",
url: "../prod/order/"+order_id+"/send/",
dataType:'json',
data: {
'elements[]':elements_ids,
force:(force?1:0)
},
success: function(data){
var success = '0';
if(data.success)
{
success = '1';
}
dialog.load('../prod/order/' + order_id + '/?success=' + success + '&action=send');
},
error: function(){
$('button.deny, button.send', cont).prop('disabled', false);
$('.activity_indicator', cont).hide();
},
timeout: function(){
$('button.deny, button.send', cont).prop('disabled', false);
$('.activity_indicator', cont).hide();
}
});
}
function deny_documents(order_id)
{
var dialog = p4.Dialog.get(1);
var cont = dialog.getDomElement();
var elements = $('.order_list .selectable.selected', cont);
var elements_ids = [];
elements.each(function(i,n){
elements_ids.push($(n).find('input[name=order_element_id]').val());
});
if(elements_ids.length == 0) {
alert(language.nodocselected);
return;
}
$('button.deny, button.send', cont).prop('disabled', true);
$('.activity_indicator', cont).show();
$.ajax({
type: "POST",
url: "../prod/order/"+ order_id +"/deny/",
dataType:'json',
data: {
'elements[]':elements_ids
},
success: function(data){
var success = '0';
if(data.success)
{
success = '1';
}
dialog.load('/prod/order/' + order_id + '/?success=' + success + '&action=deny');
},
error: function(){
$('button.deny, button.send', cont).prop('disabled', false);
$('.activity_indicator', cont).hide();
},
timeout: function(){
$('button.deny, button.send', cont).prop('disabled', false);
$('.activity_indicator', cont).hide();
}
});
}
function send_documents(order_id)
{
var dialog = p4.Dialog.get(1);
var elements_ids = [];
$('.order_list .selectable.selected', dialog.getDomElement()).each(function(i,n){
elements_ids.push($(n).find('input[name=order_element_id]').val());
});
if(elements_ids.length == 0) {
alert(language.nodocselected);
return;
}
do_send_documents(order_id, elements_ids, false);
}
</script>

View File

@@ -3,8 +3,11 @@
<ul>
<li class="title">{{ 'Apparait aussi dans ces reportages' | trans }}</li>
{% for par in parents %}
<li onclick="openPreview(this, 'REG',0,'{{par.get_serialize_key()}}', true); return(false);"
class="otherRegToolTip" {% if app['conf'].get(['registry', 'classic', 'stories-preview']) %}tooltipsrc="{{ path('prod_tooltip_caption', { 'sbas_id' : par.get_sbas_id(), 'record_id' : par.get_record_id(), 'context' : 'basket' }) }}" {% endif %}>
<li data-kind="REG"
data-position="0"
data-id="{{par.get_serialize_key()}}"
data-reload="true"
class="otherRegToolTip open-preview-action" {% if app['conf'].get(['registry', 'classic', 'stories-preview']) %}tooltipsrc="{{ path('prod_tooltip_caption', { 'sbas_id' : par.get_sbas_id(), 'record_id' : par.get_record_id(), 'context' : 'basket' }) }}" {% endif %}>
<img src="{{par.get_thumbnail().get_url()}}" style="width:25px;height:25px;"/>
<span class="title" title="{{ par.get_title() }}"> {{ par.get_title() }} </span>
</li>
@@ -16,8 +19,11 @@
<ul>
<li class="title">{{ 'Apparait aussi dans ces paniers' | trans }}</li>
{% for basket in baskets %}
<li onclick="openPreview(this, 'BASK',0,'{{basket.getId()}}',true); return(false);"
class="otherBaskToolTip" title="{{basket.getDescription()}}">
<li data-kind="BASK"
data-position="0"
data-id="{{basket.getId()}}"
data-reload="true"
class="otherBaskToolTip open-preview-action" title="{{basket.getDescription()}}">
{#<img style="vertical-align:middle" src="/assets/common/images/icons/basket.png" width="16">#}
{% if basket.getValidation() %}

View File

@@ -49,10 +49,10 @@
</div>
<div class="cont_infos">
<div>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:10px;" onclick="getPrevious();"/>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:10px;" onclick="getNext();"/><br/>
<span onclick="startSlide()" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }}</span>
<span onclick="stopSlide()" id="stop_slide">{{ 'preview:: arreter le diaporama' | trans }}</span>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:10px;" class="preview-navigate-action" data-direction="backward"/>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:10px;" class="preview-navigate-action" data-direction="forward"/><br/>
<span class="preview-start-slideshow-action" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }}</span>
<span class="preview-stop-slideshow-action" id="stop_slide">{{ 'preview:: arreter le diaporama' | trans }}</span>
</div>
</div>
<div id="PREVIEWTOOL">

View File

@@ -5,7 +5,7 @@
{% if can_edit %}
<div class="edit_button" style="text-align:right">
<a href="#" onclick="editThis('IMGT','{{ record.get_serialize_key }}');">
<a href="#" class="edit-record-action" data-kind="record" data-id="{{ record.get_serialize_key }}">
<img style="vertical-align:middle" src="/assets/common/images/icons/ppen_history.png" width="16" class="btn-image"/>
{{ 'action : editer' | trans }}
</a>

View File

@@ -47,10 +47,10 @@
</div>
<div class="cont_infos">
<div>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:10px;" onclick="getPrevious();"/>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:10px;" onclick="getNext();"/><br/>
<span onclick="startSlide()" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }}</span>
<span onclick="stopSlide()" id="stop_slide">{{ 'preview:: arreter le diaporama' | trans }}</span>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:10px;" class="preview-navigate-action" data-direction="backward"/>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:10px;" class="preview-navigate-action" data-direction="forward"/><br/>
<span class="preview-start-slideshow-action" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }}</span>
<span class="preview-stop-slideshow-action" id="stop_slide">{{ 'preview:: arreter le diaporama' | trans }}</span>
</div>
</div>
<div id="PREVIEWTOOL">

View File

@@ -25,7 +25,10 @@
%}
<div id="PREVMAINREG" class="PNB10">
<img onclick="openPreview(this, 'REG',0,'{{story.get_serialize_key}}')"
<img data-kind="REG"
data-position="0"
data-id="{{story.get_serialize_key}}"
class="open-preview-action"
src="{{url}}"
style="
width:{{fit_size.width}}px;
@@ -80,10 +83,10 @@
</div>
<div class="cont_infos">
<div>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:10px;" onclick="getPrevious();"/>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:10px;" onclick="getNext();"/><br/>
<span onclick="startSlide()" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }}</span>
<span onclick="stopSlide()" id="stop_slide">{{ 'preview:: arreter le diaporama' | trans }}</span>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:10px;" class="preview-navigate-action" data-direction="backward"/>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:10px;" class="preview-navigate-action" data-direction="forward"/><br/>
<span class="preview-start-slideshow-action" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }}</span>
<span class="preview-stop-slideshow-action" id="stop_slide">{{ 'preview:: arreter le diaporama' | trans }}</span>
</div>
</div>
<div id="PREVIEWTOOL">

View File

@@ -43,10 +43,10 @@
</div>
<div class="cont_infos">
<div>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:10px;" onclick="getPrevious();"/>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:10px;" onclick="getNext();"/><br/>
<span onclick="startSlide()" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }} </span>
<span onclick="stopSlide()" id="stop_slide"> {{ 'preview:: arreter le diaporama' | trans }} </span>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:10px;" class="preview-navigate-action" data-direction="backward">
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:10px;" class="preview-navigate-action" data-direction="forward"><br/>
<span class="preview-start-slideshow-action" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }} </span>
<span class="preview-stop-slideshow-action" id="stop_slide"> {{ 'preview:: arreter le diaporama' | trans }} </span>
</div>
</div>
<div id="PREVIEWTOOL"></div>

View File

@@ -1,10 +1,10 @@
<div id="PREVIEWCURRENTCONT" class="PNB10">
<div style="margin:2px 0;">
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:20px;" onclick="getPrevious();"/>
<span onclick="startSlide()" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }}</span>
<span onclick="stopSlide()" id="stop_slide">{{ 'preview:: arreter le diaporama' | trans }}</span>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:20px;" onclick="getNext();"/><br/>
<img src="/assets/common/images/icons/light_left.gif" style="margin-right:20px;" class="preview-navigate-action" data-direction="backward"/>
<span class="preview-start-slideshow-action" id="start_slide">{{ 'preview:: demarrer le diaporama' | trans }}</span>
<span class="preview-stop-slideshow-action" id="stop_slide">{{ 'preview:: arreter le diaporama' | trans }}</span>
<img src="/assets/common/images/icons/light_right.gif" style="margin-left:20px;" class="preview-navigate-action" data-direction="forward"/><br/>
</div>
</div>
<div id="PREVIEWTOOL" style="top:0;bottom:auto;">

View File

@@ -1,28 +1,27 @@
{% if (record.is_from_basket is empty) and app.getAclForUser(app.getAuthenticatedUser()).has_right_on_base(record.get_base_id(), 'canputinalbum') %}
<div sbas="{{record.get_sbas_id()}}" id="PREV_BASKADD_{{record.get_serialize_key}}"
class="baskAdder" title="{{ 'action : ajouter au panier' | trans }}"
onclick="evt_add_in_chutier('{{record.get_sbas_id()}}','{{record.get_record_id()}}',false,this);return(false);">
class="baskAdder record-add-to-basket-action" data-db-id="{{record.get_sbas_id()}}" data-record-id="{{record.get_record_id()}}" title="{{ 'action : ajouter au panier' | trans }}">
<img src="/assets/common/images/icons/basket.png" height="16" width="16" class="btn-image">
</div>
{% endif %}
{% if record.is_from_basket() %}
<a sbas="{{record.get_sbas_id()}}" id="PREV_BASKDEL_{{record.get_serialize_key}}"
class="WorkZoneElementRemover"
class="WorkZoneElementRemover record-remove-from-basket-action"
data-context="reg_train_basket"
onclick="remove_from_basket($(this), false);return false;"
href="{{ path('prod_baskets_basket_element_remove', { 'basket' : record.get_container().getId(), 'basket_element_id' : record.get_original_item().getId()}) }}">
<img src="/assets/common/images/icons/delete.png" height="16" width="16" class="btn-image" title="{{ 'Remove from basket' | trans }}">
</a>
{% endif %}
<div onclick="evt_print('{{record.get_sbas_id()}}_{{record.get_record_id()}}');return(false);">
<div class="print-record-action" data-kind="record" data-id="{{record.get_sbas_id()}}_{{record.get_record_id()}}">
<img src="/assets/common/images/icons/print_history.png" height="16" width="16" class="btn-image" title="'{{ 'action : print' | trans }}">
</div>
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right_on_base(record.get_base_id(), 'candwnldhd') or app.getAclForUser(app.getAuthenticatedUser()).has_right_on_base(record.get_base_id(), 'candwnldpreview') %}
<div onclick="evt_dwnl('{{record.get_sbas_id()}}_{{record.get_record_id()}}');return(false);">
<div class="export-record-action" data-kind="record" data-id="{{record.get_sbas_id()}}_{{record.get_record_id()}}">
<img src="/assets/common/images/icons/disktt_history.png" height="16" width="16" class="btn-image" title="{{ 'action : exporter' | trans }}">
{# <img style="vertical-align:middle" src="/assets/common/images/icons/basket.png" width="16">#}

View File

@@ -5,8 +5,10 @@
<div style="width:{{ images_size+30 }}px;"
sbas="{{ record.databoxId }}"
id="{{'PUBLI_' ~ entry.id ~ '_' ~ record.id }}"
class="IMGT diapo type-{{ record.type }}"
onDblClick="openPreview(this, 'FEED',{{ record.getNumber }},{{ entry.id }});"
class="IMGT diapo type-{{ record.type }} open-preview-action"
data-kind="FEED"
data-position="{{ record.getNumber }}"
data-id="{{ entry.id }}"
>
<div style="padding: 4px;">
<div style="height:40px; position: relative; z-index: 95;margin-bottom:0;border-bottom:none;">

View File

@@ -4,8 +4,11 @@
<div style="width:{{ settings.images_size + 30}}px;"
sbas="{{ record.databoxId }}"
id="{{ prefix|default('IMGT') }}_{{ record.id }}"
class="IMGT diapo {% if record.story %}grouping{% endif %} type-{{ record.type }}"
{% if settings.handle_dblclick %}onDblClick="openPreview(this, '{{ record.story ? 'REG' : 'RESULT' }}', '{{ record.position|default(0) }}', '{{ record.id }}');"{% endif %}>
class="IMGT diapo {% if record.story %}grouping{% endif %} type-{{ record.type }} open-preview-action"
data-kind="{{ record.story ? 'REG' : 'RESULT' }}"
data-position="{{ record.position|default(0) }}"
data-id="{{ record.id }}"
>
<div style="padding: 4px;">
<div style="height:40px; position: relative; z-index: 95;margin-bottom:0;border-bottom:none;">
<div class="title" style="max-height:100%" title="{{ record.getTitle(app.locale) }}">
@@ -107,23 +110,21 @@
<div class="context-menu context-menu-theme-vista">
{% if granted_on_collection(record.baseId, 'canputinalbum') and not record.story %}
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="evt_add_in_chutier('{{record.databoxId}}','{{record.recordId}}',false,this);return(false);">
<div class="context-menu-item-inner record-add-to-basket-action" data-db-id="{{record.databoxId}}" data-record-id="{{record.recordId}}">
{{ 'action : ajouter au panier' | trans }}
</div>
</div>
{% endif %}
{% if granted_on_collection(record.baseId, 'candwnldpreview') or granted_on_collection(record.baseId, 'candwnldhd') %}
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="evt_dwnl('{{record.id}}',false,this);return(false);">
<div class="context-menu-item-inner record-export-action" data-kind="record" data-id="{{record.id}}">
{{ 'action : exporter' | trans }}
</div>
</div>
{% endif %}
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="evt_print('{{record.id}}');return(false);">
<div class="context-menu-item-inner record-print-action"
data-kind="record" data-id="{{record.id}}">
{{ 'action : print' | trans }}
</div>
</div>
@@ -132,8 +133,7 @@
and granted_on_databox(record.databoxId, 'bas_chupub')) %}
{% if record.story is empty %}
<div title="" class="context-menu-item">
<div class="context-menu-item-inner"
onclick="shareThis('{{record.baseId}}','{{record.recordId}}');">
<div class="context-menu-item-inner share-record-action" data-db="{{record.baseId}}" data-record-id="{{record.recordId}}">
{{ 'reponses:: partager' | trans }}
</div>
</div>

View File

@@ -19,23 +19,21 @@
<div class="wizard wiz_2" style="display:none">
<div class="txt">{{ 'prod::thesaurusTab:wizard:remplacer par le terme' | trans }}</div>
</div>
<form class="gform form-inline" onsubmit="T_Gfilter(this);return(false);">
<form class="gform form-inline thesaurus-filter-submit-action">
<div class="input-append">
<input type="text" name="search_value" class="input-medium"
onkeyup="T_Gfilter_delayed(this.value, 300);"/>
<input type="text" name="search_value" class="input-medium thesaurus-filter-suggest-action"/>
<button type="submit" class="th_ok btn btn-inverse">
<i class="icon-search"></i>
</button>
<input type="button" class="th_clear"/>
<input type="button" class="th_cancel btn" value="{{ 'boutton::annuler' | trans }}"
onclick="thesauCancelWizard();return(false);"/>
<input type="button" class="th_cancel btn thesaurus-cancel-wizard-action" value="{{ 'boutton::annuler' | trans }}"/>
</div>
</form>
</div>
<div id='THPD_T_treeBox' class="searchZone"
style="position:absolute; top:45px; bottom:0px; left:0px; width:100%;">
<div onclick="Xclick(event);return(false);" ondblclick="TXdblClick(event);">
<div class="thesaurus-branch-action" data-context="thesaurus">
<ul class="treeview" id="THPD_T_tree">
{% for base in search_datas['bases'] %}
{% if base['thesaurus'] %}
@@ -54,7 +52,7 @@
{% if has_access_to_module %}
<div id="THPD_C">
<div id='THPD_C_treeBox' class="searchZone">
<div onclick="Xclick(event);return(false);" ondblclick="CXdblClick(event);">
<div class="thesaurus-branch-action" data-context="candidate">
<ul class="treeview" id="THPD_C_tree">
{% for base in search_datas['bases'] %}
{% if base['cterms'] %}

File diff suppressed because it is too large Load Diff

View File

@@ -1,42 +1,42 @@
{% block toolbar %}
<span class="dropdownButton">
<div class="btn-group">
<button id="selectCase" class="default_action btn btn-inverse">&nbsp;</button>
<button id="selectCase" class="default_action btn btn-inverse answer_selector" data-action-name="select-toggle" data-state="default">&nbsp;</button>
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="answer_selector all_selector">
<a class="answer_selector all_selector" data-action-name="select-all" data-state="default">
{{ 'reponses:: selectionner tout' | trans }}
</a>
</li>
<li class="divider"></li>
<li>
<a class="answer_selector none_selector">
<a class="answer_selector none_selector" data-action-name="unselect-all" data-state="true">
{{ 'reponses:: selectionner rien' | trans }}
</a>
</li>
<li class="divider"></li>
<li>
<a class="answer_selector image_selector">
<a class="answer_selector image_selector" data-action-name="select-type" data-state="default" data-type=".type-image">
{{ 'phraseanet::type:: images' | trans }}
</a>
</li>
<li class="divider"></li>
<li>
<a class="answer_selector document_selector">
<a class="answer_selector document_selector" data-action-name="select-type" data-state="default" data-type=".type-document">
{{ 'phraseanet::type:: documents' | trans }}
</a>
</li>
<li class="divider"></li>
<li>
<a class="answer_selector video_selector">
<a class="answer_selector video_selector" data-action-name="select-type" data-state="default" data-type=".type-video">
{{ 'phraseanet::type:: videos' | trans }}
</a>
</li>
<li class="divider"></li>
<li>
<a class="answer_selector audio_selector">
<a class="answer_selector audio_selector" data-action-name="select-type" data-state="default" data-type=".type-audio">
{{ 'phraseanet::type:: audios' | trans }}
</a>
</li>
@@ -46,14 +46,14 @@
<span class="dropdownButton">
<div class="btn-group">
<button id="TOOL_disktt" class="default_action TOOL_disktt_btn results_window btn btn-inverse">
<button id="TOOL_disktt" class="default_action TOOL_disktt_btn results_window btn btn-inverse" data-selection-source="search-result">
<img src="/assets/common/images/icons/disktt_history.png" height="16" width="16" class="btn-image"/> {{ 'action : exporter' | trans }}
</button>
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="TOOL_print_btn results_window">
<a class="TOOL_print_btn results_window" data-selection-source="search-result">
<img src="/assets/common/images/icons/print_history.png" height="16" width="16" class="btn-image"/>
{{ 'action : print' | trans }}
</a>
@@ -88,7 +88,7 @@
<div class="btn-group">
{% for action in actions %}
{% if loop.first %}
<button class="default_action {{ action.class }} results_window btn btn-inverse">
<button class="default_action {{ action.class }} results_window btn btn-inverse" data-selection-source="search-result">
<img src="{{ action.icon }}" height="16" width="16" class="btn-image"/> {{ action.label }}
</button>
{% endif %}
@@ -99,7 +99,7 @@
{% for action in actions %}
{% if not loop.first %}
<li>
<a class="{{ action.class }} results_window">
<a class="{{ action.class }} results_window" data-selection-source="search-result">
<img src="{{ action.icon }}" height="16" width="16" class="btn-image"/>
{{ action.label }}
</a>
@@ -116,7 +116,7 @@
<span class="classicButton">
<div class="btn-group">
{% for action in actions %}
<button class="{{ action.class }} results_window btn btn-inverse">
<button class="{{ action.class }} results_window btn btn-inverse" data-selection-source="search-result">
<img src="{{ action.icon }}" height="16" width="16" class="btn-image"/> {{ action.label }}
</button>
{% endfor %}
@@ -127,28 +127,28 @@
{% if acl.has_right('push') and acl.has_right('bas_chupub') %}
<span class="dropdownButton">
<div class="btn-group">
<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse">
<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse" data-selection-source="search-result">
<img src="/assets/common/images/icons/push16.png" height="16" width="16" class="btn-image"/> {{ 'action : push' | trans }}
</button>
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
class="caret"></span></button>
<ul class="dropdown-menu">
<li>
<a class="TOOL_feedback_btn results_window">
<a class="TOOL_feedback_btn results_window" data-selection-source="search-result">
<img src="/assets/common/images/icons/feedback16.png" height="16" width="16" class="btn-image"/>
{{ 'Feedback' | trans }}
</a>
</li>
<li class="divider"></li>
<li>
<a class="TOOL_bridge_btn results_window" href="{{ path("prod_bridge_manager") }}">
<a class="TOOL_bridge_btn results_window" href="{{ path("prod_bridge_manager") }}" data-selection-source="search-result">
<img src="/assets/common/images/icons/door.png" height="16" width="16" class="btn-image"/>
{{ 'action : bridge' | trans }}
</a>
</li>
<li class="divider"></li>
<li>
<a class="TOOL_publish_btn results_window">
<a class="TOOL_publish_btn results_window" data-selection-source="search-result">
<img src="/assets/common/images/icons/rss16.png" height="16" width="16" class="btn-image"/>
{{ 'action : publier' | trans }}
</a>
@@ -158,7 +158,7 @@
<li class="divider"></li>
{% for key, action in plugin.getActionBar().push|default([]) %}
<li>
<a class="results_window {{ action.classes|default('') }}">
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
{% if action.icon %}
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16" class="btn-image"/>
{% endif %}
@@ -176,14 +176,14 @@
{% elseif acl.has_right('push') %}
<span class="dropdownButton">
<div class="btn-group">
<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse">
<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse" data-selection-source="search-result">
<img src="/assets/common/images/icons/push16.png" height="16" width="16" class="btn-image"/> {{ 'action : push' | trans }}
</button>
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
class="caret"></span></button>
<ul class="submenu dropdown-menu">
<li>
<a class="TOOL_feedback_btn results_window">
<a class="TOOL_feedback_btn results_window" data-selection-source="search-result">
<img src="/assets/common/images/icons/feedback16.png" height="16" width="16" class="btn-image"/>
{{ 'Feedback' | trans }}
</a>
@@ -193,7 +193,7 @@
<li class="divider"></li>
{% for key, action in plugin.getActionBar().push|default([]) %}
<li>
<a class="results_window {{ action.classes|default('') }}">
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
{% if action.icon %}
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16" class="btn-image"/>
{% endif %}
@@ -211,14 +211,14 @@
{% elseif acl.has_right('bas_chupub') %}
<span class="dropdownButton">
<div class="btn-group">
<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse">
<button class="TOOL_pushdoc_btn default_action results_window btn btn-inverse" data-selection-source="search-result">
<img src="/assets/common/images/icons/door.png" height="16" width="16" class="btn-image"/> {{ 'action : bridge' | trans }}
</button>
<button class="trigger btn btn-inverse dropdown-toggle" data-toggle="dropdown"><span
class="caret"></span></button>
<ul class="submenu dropdown-menu">
<li>
<a class="TOOL_publish_btn results_window">
<a class="TOOL_publish_btn results_window" data-selection-source="search-result">
<img src="/assets/common/images/icons/rss16.png" height="16" width="16" class="btn-image"/>
{{ 'action : publier' | trans }}
</a>
@@ -228,7 +228,7 @@
<li class="divider"></li>
{% for key, action in plugin.getActionBar().push|default([]) %}
<li>
<a class="results_window {{ action.classes|default('') }}">
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
{% if action.icon %}
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16" class="btn-image"/>
{% endif %}
@@ -250,8 +250,8 @@
{% for plugin in plugins.actionbar %}
{% for key, action in plugin.getActionBar().push|default([]) %}
{% if firstButton %}
<button class="default_action results_window btn btn-inverse">
<a class="results_window {{ action.classes|default('') }}">
<button class="default_action results_window btn btn-inverse" data-selection-source="search-result">
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
{% if action.icon %}
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16"/>
{% endif %}
@@ -266,7 +266,7 @@
{% if not loop.first %}<li class="divider"></li>{% endif %}
{% if not firstButton %}
<li>
<a class="results_window {{ action.classes|default('') }}">
<a class="results_window {{ action.classes|default('') }}" data-selection-source="search-result">
{% if action.icon %}
<img src="{{ plugin_asset(plugin.PluginName, action.icon) }}" height="16" width="16" class="btn-image"/>
{% endif %}
@@ -290,7 +290,7 @@
{% if acl.has_right('doctools') %}
<span class="classicButton">
<div class="btn-group">
<button class="TOOL_imgtools_btn results_window btn btn-inverse">
<button class="TOOL_imgtools_btn results_window btn btn-inverse" data-selection-source="search-result">
<img src="/assets/common/images/icons/imgtools_history.png" height="16" width="16" class="btn-image"/> {{ 'action : outils' | trans }}
</button>
</div>
@@ -299,7 +299,7 @@
{% if acl.has_right('deleterecord') %}
<span class="classicButton">
<div class="btn-group">
<button class="TOOL_trash_btn results_window btn btn-inverse">
<button class="TOOL_trash_btn results_window btn btn-inverse" data-selection-source="search-result">
<img src="/assets/common/images/icons/delete.png" height="16" width="16" class="btn-image"/> {{ 'action : supprimer' | trans }}
</button>
</div>

View File

@@ -346,7 +346,7 @@
if (this.getStats().files_queued === 0) {
$("#cancel-all", UploaderManager.getContainer()).addClass("disabled").attr("disabled", true);
var dialog = p4.Dialog.get(1);
var dialog = dialogModule.dialog.get(1);
//unbind check before close event & disabled button for cancel all download
dialog.getDomElement().unbind("dialogbeforeclose");
@@ -366,7 +366,7 @@
$("button.upload-submitter", UploaderManager.getContainer()).bind("click", function(e){
//prevent dialog box from being closed while files are being downloaded
p4.Dialog.get(1).getDomElement().bind("dialogbeforeclose", function(event, ui) {
dialogModule.dialog.get(1).getDomElement().bind("dialogbeforeclose", function(event, ui) {
if ( swfu.getStats().files_queued > 0) {
p4.Alerts(language.warning, language.fileBeingDownloaded);
return false;

View File

@@ -39,7 +39,7 @@
<td class='uploader-icon'>
<img src='/assets/common/images/icons/html5-logo.png' width="32px" heigh="32px" title="{{ 'You are using the HTML5 uploader.' | trans }}"/>
</td>
<td class="uploader-info">
<td class="uploader-infmaxFileSizeo">
<p>
{{ 'You are using the HTML5 uploader.' | trans }}
{% if not app['browser'].supportFileAPI() %}
@@ -141,8 +141,11 @@
{% include "prod/templates/upload.html.twig" %}
<script>
var uploaderOptions = {
maxFileSize: {{ maxFileSize }}
}
/*
$(document).ready(function () {
var iev=0;
@@ -270,7 +273,7 @@ $(document).ready(function () {
$(".number-files-to-transmit").html(totalElement);
$(".transmit-box").show();
var dialog = p4.Dialog.get(1);
var dialog = dialogModule.dialog.get(1);
//reset progressbar for iframe uploads
if( ! $.support.xhrFileUpload && ! $.support.xhrFormDataFileUpload) {
@@ -386,7 +389,7 @@ $(document).ready(function () {
progressbarAll.width('100%');
bitrateBox.empty();
$('#uploadBoxRight .progress').removeClass('progress-striped active');
var dialog = p4.Dialog.get(1);
var dialog = dialogModule.dialog.get(1);
//unbind check before close event & disabled button for cancel all download
dialog.getDomElement().unbind("dialogbeforeclose");
//disabled cancel-all button, if queue is empty and last upload success
@@ -506,7 +509,7 @@ $(document).ready(function () {
data.context.find('.progress-bar').width('25%');
}
});
});
});*/
</script>
<style>
.btn.page-lazaret a {