m_sAttCode}{$this->m_sNameSuffix}\">";
- //$oTargetObj = $oContext->GetObject($sTargetClass, $this->m_iObjectId);
- $sHtml .= "
\n";
- //$sHtml .= "\n");
-
+ $sHtml .= "
\n";
$oContext = new UserContext();
$iWidgetIndex = self::$iWidgetIndex;
$oFilter = $oContext->NewFilter($this->m_sRemoteClass);
@@ -355,16 +353,17 @@ EOF
$oBlock = new DisplayBlock($oFilter, 'search', false);
$sHtml .= $oBlock->GetDisplay($oPage, "SearchFormToAdd_{$this->m_sAttCode}{$this->m_sNameSuffix}", array('open' => true));
$sHtml .= "
\n";
$sHtml .= "
\n";
- $oPage->add_ready_script("$('#dlg_{$this->m_sAttCode}{$this->m_sNameSuffix}').dialog({ autoOpen: false, modal: true });");
- $oPage->add_ready_script("$('#dlg_{$this->m_sAttCode}{$this->m_sNameSuffix}').dialog('option', {title:'".Dict::Format('UI:AddObjectsOf_Class_LinkedWith_Class_Instance', MetaModel::GetName($this->m_sLinkedClass), MetaModel::GetName($this->m_sClass), "
ZZZZ ")."'});");
+ $oPage->add_ready_script("$('#dlg_{$this->m_sAttCode}{$this->m_sNameSuffix}').dialog({ width: $(window).width()*0.8, height: $(window).height()*0.8, autoOpen: false, modal: true, resizeStop: oWidget$iWidgetIndex.UpdateSizes });");
+ $oPage->add_ready_script("$('#dlg_{$this->m_sAttCode}{$this->m_sNameSuffix}').dialog('option', {title:'".Dict::Format('UI:AddObjectsOf_Class_LinkedWith_Class', MetaModel::GetName($this->m_sLinkedClass), MetaModel::GetName($this->m_sClass))."'});");
$oPage->add_ready_script("$('#SearchFormToAdd_{$this->m_sAttCode}{$this->m_sNameSuffix} form').bind('submit.uilinksWizard', oWidget$iWidgetIndex.SearchObjectsToAdd);");
+ $oPage->add_ready_script("$('#SearchFormToAdd_{$this->m_sAttCode}{$this->m_sNameSuffix}').resize(oWidget$iWidgetIndex.UpdateSizes);");
return $sHtml;
}
diff --git a/css/light-grey.css b/css/light-grey.css
index 704f516f6..3590cd8db 100644
--- a/css/light-grey.css
+++ b/css/light-grey.css
@@ -129,7 +129,7 @@ tr.clicked td {
td.label {
font-family: Tahoma, Verdana, Arial, Helvetica;
- font-size: 8pt;
+ font-size: 12px;
color: #000000;
background-color:#f6f6f6;
padding: 0.25em;
@@ -161,33 +161,15 @@ td a.no-arrow:hover {
padding-left:0px;
background: inherit;
}
-
a.small_action {
font-family: Tahoma, Verdana, Arial, Helvetica;
font-size: 8pt;
color: #000000;
text-decoration:none;
}
-
.display_block {
- noborder: 1px dashed #CCC;
padding:0.25em;
}
-div#TopPane .display_block {
- background: #fff;
- padding:0.25em;
- text-align:center;
-}
-div#TopPane label {
- color:#000;
- background: #fff;
-}
-
-div#TopPane td {
- color:#000;
- background: #fff;
-}
-
.actions_details {
float:right;
margin-top:10px;
@@ -197,7 +179,6 @@ div#TopPane td {
padding-bottom: 2px;
background: url(../images/actions_left.png) no-repeat left;
}
-
.actions_details span{
background: url(../images/actions_right.png) no-repeat right;
color: #fff;
@@ -218,6 +199,7 @@ div#TopPane td {
input.textSearch {
border:1px solid #000;
font-family:Tahoma,Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
color:#000000;
}
@@ -581,16 +563,11 @@ input.dp-applied {
color: #000;
padding: 10px;
margin: 0;
-}
-.SearchDrawer form table tbody tr td {
- background: #d6e8ef;
- color: #fff;
- font-size: 10pt;
+ font-size: 12px;
}
.SearchDrawer label {
background: #d6e8ef;
color: #000;
- padding-left: 10px;
}
.SearchDrawer h1 {
color: #000;
@@ -612,6 +589,7 @@ input.dp-applied {
margin-top: 0;
margin-bottom: 0;
display: block;
+ font-size: 12px;
}
div.HRDrawer {
diff --git a/dictionaries/dictionary.itop.ui.php b/dictionaries/dictionary.itop.ui.php
index cf695da67..d023216f0 100644
--- a/dictionaries/dictionary.itop.ui.php
+++ b/dictionaries/dictionary.itop.ui.php
@@ -560,6 +560,7 @@ Dict::Add('EN US', 'English', 'English', array(
'UI:Link_Class_Attributes' => '%1$s attributes',
'UI:SelectAllToggle+' => 'Select All / Deselect All',
'UI:AddObjectsOf_Class_LinkedWith_Class_Instance' => 'Add %1$s objects linked with %2$s: %3$s',
+ 'UI:AddObjectsOf_Class_LinkedWith_Class' => 'Add %1$s objects to link with the %2$s',
'UI:ManageObjectsOf_Class_LinkedWith_Class_Instance' => 'Manage %1$s objects linked with %2$s: %3$s',
'UI:AddLinkedObjectsOf_Class' => 'Add %1$ss...',
'UI:RemoveLinkedObjectsOf_Class' => 'Remove selected objects',
diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php
index c51e18801..c709fd081 100644
--- a/dictionaries/fr.dictionary.itop.ui.php
+++ b/dictionaries/fr.dictionary.itop.ui.php
@@ -563,6 +563,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:Link_Class_Attributes' => 'Attributs du type %1$s',
'UI:SelectAllToggle+' => 'Tout sélectionner / Tout déselectionner',
'UI:AddObjectsOf_Class_LinkedWith_Class_Instance' => 'Ajouter des objets de type %1$s liés à %3$s (%2$s)',
+ 'UI:AddObjectsOf_Class_LinkedWith_Class' => 'Ajouter des objets de type %1$s à lier à cet objet de type %2$s',
'UI:ManageObjectsOf_Class_LinkedWith_Class_Instance' => 'Gérer les objets de type %1$s liés à %3$s (%2$s)',
'UI:AddLinkedObjectsOf_Class' => 'Ajouter des objets de type %1$s...',
'UI:RemoveLinkedObjectsOf_Class' => 'Enlever les objets sélectionnés',
diff --git a/js/linkswidget.js b/js/linkswidget.js
index 2127053ce..d57352a3d 100644
--- a/js/linkswidget.js
+++ b/js/linkswidget.js
@@ -56,9 +56,8 @@ function LinksWidget(id, sClass, sAttCode, iInputId, sSuffix)
this.AddObjects = function()
{
- //$('#dlg_'+this.id).hide();
$('#dlg_'+me.id).dialog('open');
- //alert('Not Yet Implemented !');
+ this.UpdateSizes(null, null);
}
this.SearchObjectsToAdd = function()
@@ -153,6 +152,7 @@ function LinksWidget(id, sClass, sAttCode, iInputId, sSuffix)
$('#linkedset_'+me.id+' .listResults tbody').append(data);
$('#linkedset_'+me.id+' .listResults').trigger('update');
$('#linkedset_'+me.id+' .listResults').tablesorter( { headers: { 0:{sorter: false }}, widgets: ['zebra']} ); // sortable and zebra tables
+ $('#linkedset_'+me.id+' :input').each( function() { $(this).trigger('validate', ''); }); // Validate newly added form fields...
}
},
'html'
@@ -160,4 +160,22 @@ function LinksWidget(id, sClass, sAttCode, iInputId, sSuffix)
$('#dlg_'+me.id).dialog('close');
return false;
}
+
+ this.UpdateSizes = function(event, ui)
+ {
+ var dlg = $('#dlg_'+me.id);
+ var searchForm = $('#SearchFormToAdd_'+me.id);
+ var results = $('#SearchResultsToAdd_'+me.id);
+ padding_right = parseInt(dlg.css('padding-right').replace('px', ''));
+ padding_left = parseInt(dlg.css('padding-left').replace('px', ''));
+ padding_top = parseInt(dlg.css('padding-top').replace('px', ''));
+ padding_bottom = parseInt(dlg.css('padding-bottom').replace('px', ''));
+ width = dlg.innerWidth() - padding_right - padding_left - 22; // 5 (margin-left) + 5 (padding-left) + 5 (padding-right) + 5 (margin-right) + 2 for rounding !
+ height = dlg.innerHeight() - padding_top - padding_bottom -22;
+ wizard = dlg.find('.wizContainer:first');
+ wizard.width(width);
+ wizard.height(height);
+ form_height = searchForm.outerHeight();
+ results.height(height - form_height - 40); // Leave some space for the buttons
+ }
}
diff --git a/js/utils.js b/js/utils.js
index de6d078f1..ccb8f0784 100644
--- a/js/utils.js
+++ b/js/utils.js
@@ -56,38 +56,40 @@ function UpdateFileName(id, sNewFileName)
*/
function ReloadSearchForm(divId, sClassName, sBaseClass)
{
- $('#'+divId).block();
- var formEvents = $('#'+divId+' form').data('events');
- var bSubmitHookIsUsed = false;
+ var oDiv = $('#'+divId);
+ oDiv.block();
+ var oFormEvents = $('#'+divId+' form').data('events');
// Save the submit handlers
aSubmit = new Array();
- if ( (formEvents != null) && (formEvents.submit != undefined))
+ if ( (oFormEvents != null) && (oFormEvents.submit != undefined))
{
- aSubmit = formEvents.submit;
+ aSubmit = oFormEvents.submit;
}
$.post('ajax.render.php',
{ operation: 'search_form', className: sClassName, baseClass: sBaseClass, currentId: divId },
- function(data){
- $('#'+divId).empty();
- $('#'+divId).append(data);
- if (aSubmit.length > 0)
- {
+ function(data) {
+ oDiv.empty();
+ oDiv.append(data);
+ if (aSubmit.length > 0)
+ {
+ var oForm = $('#'+divId+' form'); // Form was reloaded, recompute it
for(index = 0; index < aSubmit.length; index++)
{
// Restore the previously bound submit handlers
if (aSubmit[index].data != undefined)
{
- $('#'+divId+' form').bind('submit.'+aSubmit[index].namespace, aSubmit[index].data, aSubmit[index].handler)
+ oForm.bind('submit.'+aSubmit[index].namespace, aSubmit[index].data, aSubmit[index].handler)
}
else
{
- $('#'+divId+' form').bind('submit.'+aSubmit[index].namespace, aSubmit[index].handler)
+ oForm.bind('submit.'+aSubmit[index].namespace, aSubmit[index].handler)
}
}
- }
- $('#'+divId).unblock();
+ }
+ oDiv.unblock();
+ oDiv.parent().resize(); // Inform the parent that the form has just been (potentially) resized
}
);
}
diff --git a/pages/ajax.render.php b/pages/ajax.render.php
index 10778b599..06d8da519 100644
--- a/pages/ajax.render.php
+++ b/pages/ajax.render.php
@@ -68,6 +68,7 @@ switch($operation)
$oLinksWizard->DisplayAddForm($oPage, $oContext);
break;
+ // ui.linkswidget
case 'searchObjectsToAdd':
$sRemoteClass = utils::ReadParam('sRemoteClass', '');
$sAttCode = utils::ReadParam('sAttCode', '');
@@ -78,6 +79,7 @@ switch($operation)
$oWidget->SearchObjectsToAdd($oPage, $oContext, $sRemoteClass, $aAlreadyLinked);
break;
+ // ui.linkswidget
case 'doAddObjects':
$sAttCode = utils::ReadParam('sAttCode', '');
$iInputId = utils::ReadParam('iInputId', '');
@@ -223,15 +225,18 @@ switch($operation)
break;
case 'ui.linkswidget':
+ /*
$sClass = utils::ReadParam('sclass', 'bizContact');
$sAttCode = utils::ReadParam('attCode', 'name');
$sOrg = utils::ReadParam('org_id', '');
$sName = utils::ReadParam('q', '');
$iMaxCount = utils::ReadParam('max', 30);
UILinksWidget::Autocomplete($oPage, $oContext, $sClass, $sAttCode, $sName, $iMaxCount);
+ */
break;
case 'ui.linkswidget.linkedset':
+ /*
$sClass = utils::ReadParam('sclass', 'bizContact');
$sJSONSet = stripslashes(utils::ReadParam('sset', ''));
$sExtKeyToMe = utils::ReadParam('sextkeytome', '');
@@ -240,6 +245,7 @@ switch($operation)
UILinksWidget::RenderSet($oPage, $sClass, $sJSONSet, $sExtKeyToMe, $sExtKeyToRemote, $iObjectId);
$iFieldId = utils::ReadParam('myid', '-1');
$oPage->add_ready_script("$('#{$iFieldId}').trigger('validate');");
+ */
break;
case 'autocomplete':