mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°2847 - Tranform old itop datatable to jquery DataTable - manage popup "Configure this list"
This commit is contained in:
@@ -194,7 +194,9 @@ $(function()
|
||||
}
|
||||
}
|
||||
this._saveDlgState();
|
||||
|
||||
|
||||
$('#datatable_dlg_'+this.options.sListId).find('[name=action]').val("save");
|
||||
$('#datatable_dlg_'+this.options.sListId).dialog('close');
|
||||
},
|
||||
onDlgCancel: function()
|
||||
{
|
||||
|
||||
@@ -255,7 +255,8 @@ try
|
||||
$iLength = utils::ReadParam('end', 10);
|
||||
$aColumns = utils::ReadParam('columns', array(), false, 'raw_data');
|
||||
$sSelectMode = utils::ReadParam('select_mode', '');
|
||||
$aResult = DataTableFactory::GetOptionsForRendering( $aColumns, $sSelectMode, $sFilter, $iLength, $aExtraParams);
|
||||
$aClassAliases = utils::ReadParam('class_aliases', array());
|
||||
$aResult = DataTableFactory::GetOptionsForRendering( $aColumns, $sSelectMode, $sFilter, $iLength, $aClassAliases, $aExtraParams);
|
||||
$oPage->add(json_encode($aResult));
|
||||
break;
|
||||
|
||||
|
||||
@@ -328,6 +328,7 @@ class DataTableFactory
|
||||
$aOptions['bUseCustomSettings'] = $bUseCustomSettings;
|
||||
$aOptions['bViewLink'] = $bViewLink;
|
||||
$aOptions['sListId'] = $sListId;
|
||||
$aOptions['oClassAliases'] = json_encode($aClassAliases);
|
||||
|
||||
$oDataTable->SetOptions($aOptions);
|
||||
$oDataTable->SetAjaxUrl("ajax.render.php");
|
||||
@@ -540,6 +541,7 @@ class DataTableFactory
|
||||
$aOptions['sTableId'] = $sTableId;
|
||||
$aOptions['bUseCustomSettings'] = $bUseCustomSettings;
|
||||
$aOptions['bViewLink'] = $bViewLink;
|
||||
$aOptions['oClassAliases'] = json_encode($aClassAliases);
|
||||
|
||||
$oDataTable->SetOptions($aOptions);
|
||||
$oDataTable->SetAjaxUrl("ajax.render.php");
|
||||
@@ -567,13 +569,12 @@ class DataTableFactory
|
||||
* @return array
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function GetOptionsForRendering(array $aColumns, string $sSelectMode, string $sFilter, int $iLength, array $aExtraParams)
|
||||
public static function GetOptionsForRendering(array $aColumns, string $sSelectMode, string $sFilter, int $iLength, array $aClassAliases, array $aExtraParams)
|
||||
{
|
||||
$aOptions = [];
|
||||
|
||||
$aColumnsDefinitions = [];
|
||||
$aColumnDefinition = [];
|
||||
$aClassAliases = [];
|
||||
|
||||
if ($sSelectMode!=""){
|
||||
$aColumnDefinition["width"] = "auto";
|
||||
@@ -594,8 +595,8 @@ class DataTableFactory
|
||||
array_push($aColumnsDefinitions, $aColumnDefinition);
|
||||
}
|
||||
|
||||
foreach ($aColumns as $sClassName => $aClassColumns) {
|
||||
$aClassAliases[$sClassName] = $sClassName;
|
||||
foreach ($aColumns as $sClassAlias => $aClassColumns) {
|
||||
$sClassName=$aClassAliases[$sClassAlias];
|
||||
foreach ($aClassColumns as $sAttCode => $aData) {
|
||||
if ($aData['checked'] == "true") {
|
||||
$aColumnDefinition["width"] = "auto";
|
||||
@@ -608,14 +609,15 @@ class DataTableFactory
|
||||
$aColumnDefinition["title"] = $aData['alias'];
|
||||
$aColumnDefinition['metadata'] = [
|
||||
'object_class' => $sClassName,
|
||||
'class_alias' => $sClassAlias,
|
||||
'attribute_code' => $sAttCode,
|
||||
'attribute_type' => '_key_',
|
||||
'attribute_label' => $aData['alias'],
|
||||
];
|
||||
$aColumnDefinition["data"] = $sClassName."/".$sAttCode;
|
||||
$aColumnDefinition["data"] = $sClassAlias."/".$sAttCode;
|
||||
$aColumnDefinition["render"] = [
|
||||
"display" => "return '<a class=\'object-ref-link\' href=\'UI.php?operation=details&class=".$sClassName."&id='+data+'\'>'+row['".$sClassName."/friendlyname']+'</a>' ;",
|
||||
"_" => $sClassName."/".$sAttCode,
|
||||
"display" => "return '<a class=\'object-ref-link\' href=\'UI.php?operation=details&class=".$sClassName."&id='+data+'\'>'+row['".$sClassAlias."/friendlyname']+'</a>' ;",
|
||||
"_" => $sClassAlias."/".$sAttCode,
|
||||
];
|
||||
} else {
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClassName, $sAttCode);
|
||||
@@ -625,14 +627,15 @@ class DataTableFactory
|
||||
$aColumnDefinition["title"] = $sAttLabel;
|
||||
$aColumnDefinition['metadata'] = [
|
||||
'object_class' => $sClassName,
|
||||
'class_alias' => $sClassAlias,
|
||||
'attribute_code' => $sAttCode,
|
||||
'attribute_type' => $sAttDefClass,
|
||||
'attribute_label' => $sAttLabel,
|
||||
];
|
||||
$aColumnDefinition["data"] = $sClassName."/".$sAttCode;
|
||||
$aColumnDefinition["data"] = $sClassAlias."/".$sAttCode;
|
||||
$aColumnDefinition["render"] = [
|
||||
"display" => $oAttDef->GetRenderForDataTable($sClassName),
|
||||
"_" => $sClassName."/".$sAttCode,
|
||||
"display" => $oAttDef->GetRenderForDataTable($sClassAlias),
|
||||
"_" => $sClassAlias."/".$sAttCode,
|
||||
];
|
||||
}
|
||||
array_push($aColumnsDefinitions, $aColumnDefinition);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
</table>
|
||||
|
||||
<div id="datatable_dlg_{{ oUIBlock.GetId() }}" style="display: none; background : white;" class="">
|
||||
<input type="hidden" name="action" value="none"/>
|
||||
<form id="form_{{ oUIBlock.GetId() }}" onsubmit="return false">
|
||||
<p>
|
||||
<input id="dtbl_dlg_settings_{{ oUIBlock.GetId() }}" type="radio" name="settings" {% if (oUIBlock.GetOptions()['bUseCustomSettings'] == false) %} checked {% endif %} value="defaults">
|
||||
@@ -53,7 +54,7 @@
|
||||
<button type="button" onclick="$('#datatable_dlg_{{ oUIBlock.GetId() }}').DataTableSettings('onDlgCancel'); $('#datatable_dlg_{{ oUIBlock.GetId() }}').dialog('close')"> {{ 'UI:Button:Cancel'|dict_s }}</button>
|
||||
</td>
|
||||
<td style="text-align:center;">
|
||||
<button type="submit" onclick="$('#datatable_dlg_{{ oUIBlock.GetId() }}').DataTableSettings('onDlgOk'); $('#datatable_dlg_{{ oUIBlock.GetId() }}').dialog('close');"> {{ 'UI:Button:Ok'|dict_s }}</button>
|
||||
<button type="submit" onclick="$('#datatable_dlg_{{ oUIBlock.GetId() }}').DataTableSettings('onDlgOk'); "> {{ 'UI:Button:Ok'|dict_s }}</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -161,13 +161,15 @@ var oTable{{ oUIBlock.GetId() }} = $('#{{ oUIBlock.GetId() }}').DataTable({
|
||||
pages: 5 // number of pages to cache
|
||||
}),
|
||||
initComplete: function () {
|
||||
if (this.api().page.info().pages === 1) {
|
||||
if (this.api().page.info().pages === 1) {
|
||||
$('.dataTables_paginate').hide();
|
||||
$('.dataTables_length').hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
{% if oUIBlock.GetOption("select_mode") is not empty %}
|
||||
{% if oUIBlock.GetOption("select_mode") != "single" %}
|
||||
oTable{{ oUIBlock.GetId() }}.off('select').on('select', function (oEvent, dt, type, indexes) {
|
||||
@@ -273,22 +275,29 @@ $('#datatable_dlg_{{ oUIBlock.GetId() }}').dialog(
|
||||
autoOpen: false,
|
||||
title: "{{ 'UI:ListConfigurationTitle'|dict_s }}",
|
||||
width: 500,
|
||||
close: function () { //save data and refresh
|
||||
$('#datatable_dlg_{{ oUIBlock.GetId() }}').DataTableSettings('onDlgCancel');
|
||||
open: function(){
|
||||
$('#datatable_dlg_{{ oUIBlock.GetId() }}').find('[name=action]').val("none");
|
||||
},
|
||||
close: function (event, ui) { //save data and refresh
|
||||
if( $('#datatable_dlg_{{ oUIBlock.GetId() }}').find('[name=action]').val() == "none") {
|
||||
$('#datatable_dlg_{{ oUIBlock.GetId() }}').DataTableSettings('onDlgCancel');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$aOptions = {
|
||||
sListId: '{{ oUIBlock.GetId() }}',
|
||||
oColumns: {{ oUIBlock.GetResultColumnsAsJson()|raw }},
|
||||
sViewLink: '{{ oUIBlock.GetOptions()["bViewLink"] }}',
|
||||
iPageSize: '{{ oUIBlock.GetOptions()["iPageSize"] }}',
|
||||
sTableId: '{{ oUIBlock.GetOptions()["sTableId"] }}',
|
||||
sSelectMode: "{{ oUIBlock.GetOption("select_mode") }}",
|
||||
sViewLink: '{{ oUIBlock.GetOption("bViewLink") }}',
|
||||
iPageSize: '{{ oUIBlock.GetOption("iPageSize") }}',
|
||||
oClassAliases: JSON.parse('{{ oUIBlock.GetOption("oClassAliases") |raw}}'),
|
||||
sTableId: '{{ oUIBlock.GetOption("sTableId") }}',
|
||||
//oExtraParams
|
||||
sRenderUrl: "{{ oUIBlock.GetAjaxUrl() }}",
|
||||
sSelectMode: "{{ oUIBlock.GetOptions()["select_mode"] }}",
|
||||
oData: {{ oUIBlock.GetAjaxData() |raw }},
|
||||
oData: {{ oUIBlock.GetAjaxData() |raw }},//ttt
|
||||
oDefaultSettings: {{ oUIBlock.GetOption("oDefaultSettings")|raw }},
|
||||
oLabels: {moveup: "{{ 'UI:Button:MoveUp'|dict_s }}", movedown: "{{ 'UI:Button:MoveDown'|dict_s }}"},
|
||||
oDefaultSettings: {{ oUIBlock.GetOptions()["oDefaultSettings"]|raw }}
|
||||
};
|
||||
|
||||
//if (!typeof $('#datatable_dlg_{{ oUIBlock.GetId() }}').DataTableSettings() !== "undefined")
|
||||
|
||||
Reference in New Issue
Block a user