浏览代码

- Make sure that the search form preserves it's "action" (i.e. target page) when reloading (when specifying a derived class). This was breaking the UniversalSearch page.
- Prepare for the style cleanup
- Don't display the menu to create a new 'Email Notification" when listing the notifications sent on a ticket (in the Notifications tab) !

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@1182 a333f486-631f-4898-b8df-5754b55c2be0

dflaven 14 年之前
父节点
当前提交
24d81c2c02
共有 4 个文件被更改,包括 19 次插入7 次删除
  1. 5 3
      application/cmdbabstract.class.inc.php
  2. 2 1
      js/utils.js
  3. 9 1
      pages/UniversalSearch.php
  4. 3 2
      pages/ajax.render.php

+ 5 - 3
application/cmdbabstract.class.inc.php

@@ -319,7 +319,7 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
 				// Display notifications regarding the object
 				// Display notifications regarding the object
 				$iId = $this->GetKey();
 				$iId = $this->GetKey();
 				$oBlock = new DisplayBlock(DBObjectSearch::FromOQL("SELECT EventNotificationEmail AS Ev JOIN TriggerOnObject AS T ON Ev.trigger_id = T.id WHERE T.target_class IN ('$sClassList') AND Ev.object_id = $iId"), 'list', false);
 				$oBlock = new DisplayBlock(DBObjectSearch::FromOQL("SELECT EventNotificationEmail AS Ev JOIN TriggerOnObject AS T ON Ev.trigger_id = T.id WHERE T.target_class IN ('$sClassList') AND Ev.object_id = $iId"), 'list', false);
-				$oBlock->Display($oPage, 'notifications', array());
+				$oBlock->Display($oPage, 'notifications', array('menu' => false));
 			}
 			}
 		}
 		}
 
 
@@ -1076,7 +1076,8 @@ EOF
 			$sClassesCombo = MetaModel::GetName($sClassName);
 			$sClassesCombo = MetaModel::GetName($sClassName);
 		}
 		}
 		$oUnlimitedFilter = new DBObjectSearch($sClassName);
 		$oUnlimitedFilter = new DBObjectSearch($sClassName);
-		$sHtml .= "<form id=\"fs_{$sSearchFormId}\" action=\"../pages/UI.php\">\n"; // Don't use $_SERVER['SCRIPT_NAME'] since the form may be called asynchronously (from ajax.php)
+		$sAction = (isset($aExtraParams['action'])) ? $aExtraParams['action'] : '../pages/UI.php';
+		$sHtml .= "<form id=\"fs_{$sSearchFormId}\" action=\"{$sAction}\">\n"; // Don't use $_SERVER['SCRIPT_NAME'] since the form may be called asynchronously (from ajax.php)
 		$sHtml .= "<h2>".Dict::Format('UI:SearchFor_Class_Objects', $sClassesCombo)."</h2>\n";
 		$sHtml .= "<h2>".Dict::Format('UI:SearchFor_Class_Objects', $sClassesCombo)."</h2>\n";
 		$index = 0;
 		$index = 0;
 		$sHtml .= "<p>\n";
 		$sHtml .= "<p>\n";
@@ -1281,9 +1282,10 @@ EOF
 					$aEventsList[] ='validate';
 					$aEventsList[] ='validate';
 					$aEventsList[] ='keyup';
 					$aEventsList[] ='keyup';
 					$aEventsList[] ='change';
 					$aEventsList[] ='change';
+					$sHeader = '<div class="caselog_input_header">&nbsp;'.Dict::S('UI:CaseLogTypeYourTextHere').'</div>';
 					$sEditValue = $oAttDef->GetEditValue($value);
 					$sEditValue = $oAttDef->GetEditValue($value);
 					$sPreviousLog = $oAttDef->GetAsHTML($value);
 					$sPreviousLog = $oAttDef->GetAsHTML($value);
-					$sHTMLValue = "<div style=\"overflow:auto;border:1px #999 solid; background:#fff;\"><table style=\"width:100%\"><tr><td><textarea class=\"resizable\" style=\"border:0;width:100%\" title=\"$sHelpText\" name=\"attr_{$sFieldPrefix}{$sAttCode}{$sNameSuffix}\" rows=\"8\" cols=\"40\" id=\"$iId\">$sEditValue</textarea>$sPreviousLog</td><td>{$sValidationField}</td></tr></table></div>";
+					$sHTMLValue = "<div style=\"overflow:auto;border:1px #999 solid; background:#fff;\"><table style=\"width:100%\"><tr><td>$sHeader<textarea class=\"resizable\" style=\"border:0;width:100%\" title=\"$sHelpText\" name=\"attr_{$sFieldPrefix}{$sAttCode}{$sNameSuffix}\" rows=\"8\" cols=\"40\" id=\"$iId\">$sEditValue</textarea>$sPreviousLog</td><td>{$sValidationField}</td></tr></table></div>";
 				break;
 				break;
 
 
 				case 'HTML':
 				case 'HTML':

+ 2 - 1
js/utils.js

@@ -135,9 +135,10 @@ function ReloadSearchForm(divId, sClassName, sBaseClass, sContext)
 			aSubmit [index ] = { data:oFormEvents.submit[index].data, namespace:oFormEvents.submit[index].namespace, handler:  oFormEvents.submit[index].handler};
 			aSubmit [index ] = { data:oFormEvents.submit[index].data, namespace:oFormEvents.submit[index].namespace, handler:  oFormEvents.submit[index].handler};
 		}
 		}
 	}
 	}
+	sAction =  $('#ds_'+divId+' form').attr('action');
 
 
 	$.post('../pages/ajax.render.php?'+sContext,
 	$.post('../pages/ajax.render.php?'+sContext,
-	   { operation: 'search_form', className: sClassName, baseClass: sBaseClass, currentId: divId },
+	   { operation: 'search_form', className: sClassName, baseClass: sBaseClass, currentId: divId, action: sAction },
 	   function(data) {
 	   function(data) {
 		   oDiv.empty();
 		   oDiv.empty();
 		   oDiv.append(data);
 		   oDiv.append(data);

+ 9 - 1
pages/UniversalSearch.php

@@ -36,7 +36,14 @@ LoginWebPage::DoLogin(true); // Check user rights and prompt if needed (must be
 $oAppContext = new ApplicationContext();
 $oAppContext = new ApplicationContext();
 
 
 $oP = new iTopWebPage(Dict::S('UI:UniversalSearchTitle'));
 $oP = new iTopWebPage(Dict::S('UI:UniversalSearchTitle'));
-
+$oP->add_linked_script("../js/json.js");
+$oP->add_linked_script("../js/forms-json-utils.js");
+$oP->add_linked_script("../js/wizardhelper.js");
+$oP->add_linked_script("../js/wizard.utils.js");
+$oP->add_linked_script("../js/linkswidget.js");
+$oP->add_linked_script("../js/extkeywidget.js");
+$oP->add_linked_script("../js/jquery.blockUI.js");
+		
 // From now on the context is limited to the the selected organization ??
 // From now on the context is limited to the the selected organization ??
 
 
 // Now render the content of the page
 // Now render the content of the page
@@ -98,6 +105,7 @@ if ($oFilter != null)
 	$aExtraParams = $oAppContext->GetAsHash();
 	$aExtraParams = $oAppContext->GetAsHash();
 	$aExtraParams['open'] = true;
 	$aExtraParams['open'] = true;
 	$aExtraParams['baseClass'] = $sBaseClass;
 	$aExtraParams['baseClass'] = $sBaseClass;
+	$aExtraParams['action'] = '../pages/UniversalSearch.php';
 	//$aExtraParams['class'] = $sClassName;
 	//$aExtraParams['class'] = $sClassName;
 	$oBlock->Display($oP, 0, $aExtraParams);
 	$oBlock->Display($oP, 0, $aExtraParams);
 
 

+ 3 - 2
pages/ajax.render.php

@@ -89,7 +89,7 @@ try
 		{
 		{
 			// Search form: no current object
 			// Search form: no current object
 			$oObj = null;
 			$oObj = null;
-			$currentValue = 'eviV bulgroZ';
+			$currentValue = '';
 		}
 		}
 		$aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, array('this' => $oObj));
 		$aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, array('this' => $oObj));
 		$oWidget = new UIExtKeyWidget($sAttCode, $sClass, '', $aAllowedValues, $currentValue, $iInputId, false, $sSuffix, '');
 		$oWidget = new UIExtKeyWidget($sAttCode, $sClass, '', $aAllowedValues, $currentValue, $iInputId, false, $sSuffix, '');
@@ -364,9 +364,10 @@ try
 		$sClass = utils::ReadParam('className', '');
 		$sClass = utils::ReadParam('className', '');
 		$sRootClass = utils::ReadParam('baseClass', '');
 		$sRootClass = utils::ReadParam('baseClass', '');
 		$currentId = utils::ReadParam('currentId', '');
 		$currentId = utils::ReadParam('currentId', '');
+		$sAction = utils::ReadParam('action', '');
 		$oFilter = new DBObjectSearch($sClass);
 		$oFilter = new DBObjectSearch($sClass);
 		$oSet = new CMDBObjectSet($oFilter); 
 		$oSet = new CMDBObjectSet($oFilter); 
-		$sHtml = cmdbAbstractObject::GetSearchForm($oPage, $oSet, array('currentId' => $currentId, 'baseClass' => $sRootClass));
+		$sHtml = cmdbAbstractObject::GetSearchForm($oPage, $oSet, array('currentId' => $currentId, 'baseClass' => $sRootClass, 'action' => $sAction));
 		$oPage->add($sHtml);
 		$oPage->add($sHtml);
 		break;
 		break;