Merge branch '3.8'

This commit is contained in:
Romain Neutron
2014-01-23 08:28:14 +01:00
2 changed files with 59 additions and 183 deletions

View File

@@ -37,16 +37,13 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
var container = $('#reorder_box');//p4.Dialog.get(1).getDomElement(); var container = $('#reorder_box');//p4.Dialog.get(1).getDomElement();
$('button.autoorder', container).bind('click', function(){ $('button.autoorder', container).bind('click', function(){
console.log("click autoorder");
autoorder(); autoorder();
return false; return false;
}); });
$('button.reverseorder', container).bind('click', function(){ $('button.reverseorder', container).bind('click', function(){
console.log("click reverse order");
reverse_order(); reverse_order();
return false; return false;
}); });
@@ -54,102 +51,43 @@
function autoorder() function autoorder()
{ {
var val = $.trim($('#auto_order').val()); var val = $.trim($('#auto_order').val());
if(val == '') { if(val == '') {
return; return;
} }
var sorter = {}; var diapos = [];
$('#reorder_box .diapo form').each(function(i,n){ $('#reorder_box .diapo form').each(function(i,n){
var id = $('input[name=id]',n).val(); diapos.push({
"title": $('input[name=title]',n).val(),
switch(val) "order" : parseInt($('input[name=default]',n).val()),
{ "id" : $('input[name=id]',n).val()
case 'title': });
default:
var data = $('input[name=title]',n).val();
break;
case 'default':
var data = $('input[name=default]',n).val();
break;
}
sorter[id] = data;
}); });
var data_type = 'string'; var sorterCallback;
switch(val) if (val === "default") {
{ sorterCallback = function(diapo) {return diapo.order;};
case 'default':
var data_type = 'integer';
break;
}
sorter = arraySortByValue(sorter, data_type);
var last_moved = false;
for(i in sorter)
{
var elem = $('#ORDER_'+i);
if(last_moved) {
elem.after(last_moved);
} else { } else {
$('#reorder_box .elements').prepend(elem); sorterCallback = function(diapo) {return diapo.title;};
}
last_moved = elem;
} }
} var elements = [];
function arraySortByValue(datas, data_type) { _.chain(diapos)
var tmp = new Array(); .sortBy(sorterCallback)
.each(function(diapo) {
for (i in datas) { elements.push($('#ORDER_'+ diapo.id));
tmp.push({
v: i,
c: datas[i].toUpperCase(),
o: datas[i]
}); });
$('#reorder_box .elements').append(elements);
} }
switch(data_type)
{
case 'string':
tmp.sort(function (x, y) {
return y.c < x.c;
});
break;
case 'integer':
tmp.sort(function (x, y) {
return parseInt(y.c) < parseInt(x.c);
});
break;
}
var out = {};
for (i in tmp) {
out[tmp[i].v] = tmp[i].o;
}
return out;
}
function reverse_order() { function reverse_order() {
var elems = $('#reorder_box .diapo'); var $container = $('#reorder_box .elements');
$('#reorder_box .diapo').each(function() {
var last_moved = false; $(this).prependTo($container);
elems.each(function(i,n){
var elem = $(n);
if(last_moved) {
elem.before(last_moved);
} else {
$('#reorder_box .elements').append(elem);
}
last_moved = elem;
}); });
} }

View File

@@ -44,115 +44,53 @@
return false; return false;
}); });
$('button.reverseorder', container).bind('click', function(){ $('button.reverseorder', container).bind('click', function(){
reverse_order(); reverse_order();
return false; return false;
}); });
function autoorder() function autoorder()
{ {
var val = $.trim($('#auto_order').val()); var val = $.trim($('#auto_order').val());
if(val == '')
if(val == '') {
return; return;
}
var sorter = {}; var diapos = [];
$('#reorder_box .diapo form').each(function(i,n){ $('#reorder_box .diapo form').each(function(i,n){
var id = $('input[name=id]',n).val(); diapos.push({
"title": $('input[name=title]',n).val(),
switch(val) "order" : parseInt($('input[name=default]',n).val()),
{ "id" : $('input[name=id]',n).val()
case 'title': });
default:
var data = $('input[name=title]',n).val();
break;
case 'default':
var data = $('input[name=default]',n).val();
break;
}
sorter[id] = data;
}); });
var data_type = 'string'; var sorterCallback;
switch(val) if (val === "default") {
{ sorterCallback = function(diapo) {return diapo.order;};
case 'default': } else {
var data_type = 'integer'; sorterCallback = function(diapo) {return diapo.title;};
break;
} }
sorter = arraySortByValue(sorter, data_type); var elements = [];
var last_moved = false; _.chain(diapos)
.sortBy(sorterCallback)
for(i in sorter) .each(function(diapo) {
{ elements.push($('#ORDER_'+ diapo.id));
var elem = $('#ORDER_'+i);
if(last_moved)
{
elem.after(last_moved);
}
else
{
$('#reorder_box .elements').prepend(elem);
}
last_moved = elem;
}
}
function arraySortByValue(datas, data_type) {
var tmp = new Array();
for (i in datas) {
tmp.push({
v: i,
c: datas[i].toUpperCase(),
o: datas[i]
}); });
}
switch(data_type) $('#reorder_box .elements').append(elements);
{
case 'string':
tmp.sort(function (x, y) {
return y.c < x.c;
});
break;
case 'integer':
tmp.sort(function (x, y) {
return parseInt(y.c) < parseInt(x.c);
});
break;
} }
var out = {}; function reverse_order() {
for (i in tmp) { var $container = $('#reorder_box .elements');
out[tmp[i].v] = tmp[i].o; $('#reorder_box .diapo').each(function() {
} $(this).prependTo($container);
return out;
}
function reverse_order()
{
var elems = $('#reorder_box .diapo');
var last_moved = false;
elems.each(function(i,n){
var elem = $(n);
if(last_moved)
{
elem.before(last_moved);
}
else
{
$('#reorder_box .elements').append(elem);
}
last_moved = elem;
}); });
} }