LOGC#90742: Rapportagekolommen verslepen in plaats van volgnummer invoeren.
svn path=/Website/trunk/; revision=71053
This commit is contained in:
@@ -107,9 +107,8 @@
|
||||
"columns": {
|
||||
"list": {
|
||||
"requires": { js: ["./fac_reportx.js"] },
|
||||
"sortable": { params: {"fac_usrrap_key": getQParamInt("fac_usrrap_key", -1) /*, test: 54321*/},
|
||||
"file": "fac_sort_reportx_save.asp"
|
||||
},
|
||||
"sortable": { "dragparams": {"fac_usrrap_key": getQParamInt("fac_usrrap_key", -1) /*, test: 54321*/},
|
||||
"dragfile": "fac_sort_reportx_save.asp" },
|
||||
// da werkt hier niet "orderby": ["visible", "sequence"],
|
||||
"buttons": [{
|
||||
"title": L("lcl_usrrap_show"),
|
||||
|
||||
159
APPL/FAC/fac_sort_reportx_save.asp
Normal file
159
APPL/FAC/fac_sort_reportx_save.asp
Normal file
@@ -0,0 +1,159 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
*/ %>
|
||||
<%
|
||||
var JSON_Result = true;
|
||||
%>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<%
|
||||
protectRequest.validateToken();
|
||||
var fac_usrrap_key = getFParamInt('fac_usrrap_key', -1);
|
||||
|
||||
user.checkAutorisation("WEB_PRSSYS");
|
||||
|
||||
var rowKey = getFParamInt('row_key');
|
||||
var previousRowKey = getFParamInt('previous_row_key');
|
||||
var nextRowKey = getFParamInt('next_row_key');
|
||||
var sql = "SELECT fac_usrrap_cols_key"
|
||||
+ " , fac_usrrap_cols_volgnr"
|
||||
+ " FROM fac_usrrap"
|
||||
+ " , fac_usrrap_cols"
|
||||
+ " WHERE fac_usrrap.fac_usrrap_key = fac_usrrap_cols.fac_usrrap_key"
|
||||
+ " AND fac_usrrap_cols.fac_usrrap_key = " + fac_usrrap_key
|
||||
+ " AND DECODE(fac_usrrap_cols_visible, 'H', 9, 'I', 5, 1) = 1"
|
||||
+ " AND (fac_functie_key IS NULL"
|
||||
+ " OR fac_functie_key IN (SELECT w.fac_functie_key"
|
||||
+ " FROM fac_v_webgebruiker W"
|
||||
+ " WHERE w.prs_perslid_key = " + user_key + ")"
|
||||
+ " OR fac_functie_key NOT IN"
|
||||
+ " (SELECT fac_functie_key"
|
||||
+ " FROM fac_functie"
|
||||
+ " WHERE fac_functie_code IN ('WEB_FACFAC', 'WEB_FACTAB')))"
|
||||
+ " AND fac_usrrap_cols_key IN (" + rowKey + ", " + previousRowKey + ", " + nextRowKey + ")"
|
||||
+ " ORDER BY fac_usrrap_volgnr NULLS LAST"
|
||||
+ " , fac_usrrap_omschrijving"
|
||||
+ " , DECODE(fac_usrrap_cols_visible, 'H', 9, 'I', 5, 1)"
|
||||
+ " , fac_usrrap_cols_volgnr";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
var data = { previousRow: {},
|
||||
oldRow: {},
|
||||
nextRow: {}
|
||||
};
|
||||
|
||||
while(!oRs.eof)
|
||||
{
|
||||
switch(oRs("fac_usrrap_cols_key").Value)
|
||||
{
|
||||
case rowKey: data.oldRow = { rowKey: oRs("fac_usrrap_cols_key").Value,
|
||||
volgNr: oRs("fac_usrrap_cols_volgnr").Value };
|
||||
break;
|
||||
case previousRowKey: data.previousRow = { rowKey: oRs("fac_usrrap_cols_key").Value,
|
||||
volgNr: oRs("fac_usrrap_cols_volgnr").Value };
|
||||
break;
|
||||
case nextRowKey: data.nextRow = { rowKey: oRs("fac_usrrap_cols_key").Value,
|
||||
volgNr: oRs("fac_usrrap_cols_volgnr").Value };
|
||||
break;
|
||||
}
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
if (data.previousRow.volgNr > data.oldRow.volgNr ||
|
||||
data.nextRow.volgNr < data.oldRow.volgNr )
|
||||
{
|
||||
var hasPrevious = (previousRowKey && previousRowKey != -1);
|
||||
var hasNext = (nextRowKey && nextRowKey != -1);
|
||||
var movedUp;
|
||||
var newVolgNr;
|
||||
|
||||
if (hasPrevious && hasNext)
|
||||
{ // Between rows.
|
||||
if (data.oldRow.volgNr > data.nextRow.volgNr )
|
||||
{ // Moved up.
|
||||
newVolgNr = data.nextRow.volgNr;
|
||||
movedUp = true;
|
||||
}
|
||||
else if (data.oldRow.volgNr < data.previousRow.volgNr)
|
||||
{ // Moved down.
|
||||
newVolgNr = data.previousRow.volgNr;
|
||||
movedUp = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// All volgNrs are equal, check volgnrs before previous/next - TODO
|
||||
newVolgNr = data.nextRow.volgNr;
|
||||
movedUp = true;
|
||||
}
|
||||
}
|
||||
else if (hasPrevious)
|
||||
{ // Moved to the end.
|
||||
movedUp = false;
|
||||
newVolgNr = data.previousRow.volgNr;
|
||||
}
|
||||
else if (hasNext)
|
||||
{ // Moved to the start.
|
||||
movedUp = true;
|
||||
newVolgNr = data.nextRow.volgNr;
|
||||
}
|
||||
|
||||
// Get volgnrs between old and new volgNr.
|
||||
var sql2 = "SELECT fac_usrrap_cols_key"
|
||||
+ " , fac_usrrap_cols_volgnr"
|
||||
+ " FROM fac_usrrap"
|
||||
+ " , fac_usrrap_cols"
|
||||
+ " WHERE fac_usrrap.fac_usrrap_key = fac_usrrap_cols.fac_usrrap_key"
|
||||
+ " AND fac_usrrap_cols.fac_usrrap_key = " + fac_usrrap_key
|
||||
+ " AND DECODE(fac_usrrap_cols_visible, 'H', 9, 'I', 5, 1) = 1" // Alleen de zichtbare kolommen.
|
||||
+ " AND (fac_functie_key IS NULL"
|
||||
+ " OR fac_functie_key IN (SELECT w.fac_functie_key"
|
||||
+ " FROM fac_v_webgebruiker W"
|
||||
+ " WHERE w.prs_perslid_key = " + user_key + ")"
|
||||
+ " OR fac_functie_key NOT IN"
|
||||
+ " (SELECT fac_functie_key"
|
||||
+ " FROM fac_functie"
|
||||
+ " WHERE fac_functie_code IN ('WEB_FACFAC', 'WEB_FACTAB')))"
|
||||
+ " AND fac_usrrap_cols_volgnr BETWEEN LEAST(" + newVolgNr + ", " + data.oldRow.volgNr + ")"
|
||||
+ " AND GREATEST(" + newVolgNr + ", " + data.oldRow.volgNr + ")"
|
||||
+ " ORDER BY fac_usrrap_volgnr NULLS LAST"
|
||||
+ " , fac_usrrap_omschrijving"
|
||||
+ " , DECODE(fac_usrrap_cols_visible, 'H', 9, 'I', 5, 1)"
|
||||
+ " , fac_usrrap_cols_volgnr";
|
||||
|
||||
oRs = Oracle.Execute(sql2);
|
||||
var colsKeys = [];
|
||||
var volgNrs = [];
|
||||
while (!oRs.eof)
|
||||
{
|
||||
colsKeys.push(oRs("fac_usrrap_cols_key").Value);
|
||||
volgNrs.push(oRs("fac_usrrap_cols_volgnr").Value);
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
if (movedUp)
|
||||
{
|
||||
var lastKey = colsKeys.pop();
|
||||
colsKeys.unshift(lastKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
var firstKey = colsKeys.shift();
|
||||
colsKeys.push(firstKey);
|
||||
}
|
||||
|
||||
var sql3 = "BEGIN";
|
||||
for (var i = 0; i < colsKeys.length; i++)
|
||||
{
|
||||
sql3 += " UPDATE fac_usrrap_cols SET fac_usrrap_cols_volgNr = " + volgNrs[i]
|
||||
+ " WHERE fac_usrrap_cols_key = " + colsKeys[i] + ";";
|
||||
}
|
||||
sql3 += " END;";
|
||||
Oracle.Execute(sql3);
|
||||
}
|
||||
|
||||
Response.Write(JSON.stringify({success:true}));
|
||||
%>
|
||||
<% ASPPAGE_END(); %>
|
||||
@@ -219,13 +219,13 @@ function scaffolding_list(model, scf_params)
|
||||
// Als er clientside op een (andere) kolom gesorteerd wordt, wordt het verplaatsen van regels uitgeschakel in de functie "doSort2" van bestand "sorttable.js".
|
||||
// Sortable moet daarbij op de tbody van een tabel gezet worden.
|
||||
// Daarnaast moet in het model in de columns.list de parameter sortable meegegeven worden die de volgende parameters moet bevatten:
|
||||
// 1) params: met een keys die nodig zijn voor de file.
|
||||
// 2) file: met een bestand die de verschovenn volgnummers aanpast aan de nieuwe volgorde.
|
||||
// 1) dragparams: met keys die nodig zijn voor de file.
|
||||
// 2) dragfile: met een bestand die de volgnummers van de verschoven regels aanpast aan de nieuwe volgorde.
|
||||
// Een voorbeeld hiervan zie je in bestand "fac_reportx.asp".
|
||||
// Daarin is het volgende toegevoegd:
|
||||
// "sortable": { params: {"fac_usrrap_key": getQParamInt("fac_usrrap_key", -1) /*, test: 54321*/},
|
||||
// "file": "fac_sort_reportx_save.asp"
|
||||
// Aan de parameter params kunnen meerdere parameters meegegeven worden als dat nodig is.
|
||||
// "sortable": { "dragparams": {"fac_usrrap_key": getQParamInt("fac_usrrap_key", -1) /*, test: 54321*/},
|
||||
// "dragfile": "fac_sort_reportx_save.asp" }
|
||||
// Aan de parameter dragparams kunnen meerdere parameters meegegeven worden als dat nodig is.
|
||||
// Alle parameters worden doorgegeven aan de file als die wordt aangeroepen.
|
||||
$("#<%=model.table%> tbody").sortable({
|
||||
items: "tr",
|
||||
@@ -269,8 +269,6 @@ function scaffolding_list(model, scf_params)
|
||||
{
|
||||
scrollMode = 0;
|
||||
parentScroll(scrollMode);
|
||||
e.currentTarget.removeEventListener("touchmove", touchmoveHandler);
|
||||
element.addEventListener("click", handler, false);
|
||||
if (document.off)
|
||||
(document).off('mousemove.helperFollow'); // opruimen
|
||||
},
|
||||
@@ -286,28 +284,31 @@ function scaffolding_list(model, scf_params)
|
||||
};
|
||||
|
||||
<% // In de list.sortable parameter zijn de volgende twee parameters meegegeven:
|
||||
// 1) params: met een keys die nodig zijn voor de file.
|
||||
// 2) file: met een bestand die de verschovenn volgnummers aanpast aan de nieuwe volgorde.
|
||||
// Aan de parameter params kunnen meerdere parameters meegegeven worden als dat nodig is.
|
||||
// Alle parameters worden doorgegeven aan de file als die wordt aangeroepen.
|
||||
if (scf_params.list.sortable && scf_params.list.sortable.params)
|
||||
// 1) dragparams: met keys die nodig zijn voor de file.
|
||||
// 2) dragfile: met een bestand die de volgnummers van de verschoven regels aanpast aan de nieuwe volgorde.
|
||||
// Aan de parameter dragparams kunnen meerdere parameters meegegeven worden als dat nodig is.
|
||||
// Alle parameters worden doorgegeven aan de dragfile als die wordt aangeroepen.
|
||||
if (scf_params.list.sortable && scf_params.list.sortable.dragparams)
|
||||
{
|
||||
var sortParams = scf_params.list.sortable.params;
|
||||
var sortFile = scf_params.list.sortable.file;
|
||||
for (var keyName in sortParams)
|
||||
var dragParams = scf_params.list.sortable.dragparams;
|
||||
for (var keyName in dragParams)
|
||||
{
|
||||
if (sortParams.hasOwnProperty(keyName))
|
||||
if (dragParams.hasOwnProperty(keyName))
|
||||
{ %>
|
||||
data["<%=keyName%>"] = <%=sortParams[keyName]%>;
|
||||
data["<%=keyName%>"] = <%=dragParams[keyName]%>;
|
||||
<% }
|
||||
}
|
||||
} %>
|
||||
|
||||
<% protectRequest.dataToken("data"); %>
|
||||
$.post("<%=sortFile%>",
|
||||
data,
|
||||
FcltCallbackRefresh,
|
||||
"json");
|
||||
<% if (scf_params.list.sortable && scf_params.list.sortable.dragfile)
|
||||
{
|
||||
var dragFile = scf_params.list.sortable.dragfile; %>
|
||||
$.post("<%=dragFile%>",
|
||||
data,
|
||||
FcltCallbackRefresh,
|
||||
"json");
|
||||
<% } %>
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user