Hello dp168,
as John has already mentioned these are the series of related issues which are referenced through github.
https://github.com/salesagility/SuiteCRM/issues/380 - layout changes are not displayed after save and deploy
https://github.com/salesagility/SuiteCRM/issues/383 - fields form keeps disappearing, but when it is fixed in the same place with themes/SuiteR/css/style.css -> line 4351 -> add: #toolbox {overflow: auto;} -> QR&R, then fields form changes are not displayed after save and deploy
These issues do not manifest themselves all the time. Sometimes it is possible to add a new item to layout, then click save and deploy and the changes will be visible. The same is for the fields - sometimes it is possible to add a new field, then click on save and deploy and the changes will be visible.
I found that if the changes are displayed correctly, and you go and do QR&R, the changes are not displayed anymore (this can last for a couple of hours).
The code which sits in the function action_popupSave():
if(empty($packageName)){
include_once (‘modules/Administration/QuickRepairAndRebuild.php’) ;
global $mod_strings;
$mod_strings[‘LBL_ALL_MODULES’] = ‘all_modules’;
$repair = new RepairAndClear();
$repair->show_output = false;
$class_name = $GLOBALS [ ‘beanList’ ] [ $_REQUEST [ ‘view_module’ ] ] ;
$repair->module_list = array($class_name);
$repair->clearTpls();
}
takes about 30 secs to execute on my machine and by this time the screen has already been refreshed with some old data instead of the new data that you’ve just added.
I proposed a fix for layout here: https://github.com/vladbar/SuiteCRM/commit/ce9624c8c03c6faab4f427b9f1ae520ba94163f8
and another fix for fields here: https://github.com/vladbar/SuiteCRM/commit/c511ca5a37e5f2bde77ddeea23c3a4f89368b166
Basically in both cases I created a new array view_object_map[], which is the main way for the controller to communicate with the view and then passed an updated parser inside of this array. Therefore changes to the layout and field form happen immediately.
Please also note that in case of the 380 fix I commented out these lines:
// /*
// * Pseudo-constructor to enable subclasses to call a parent’s constructor without knowing the parent in PHP4
// */
// function init()
// {
//
// }
as they did nothing, apart from disrupting creation of a view with the correct view_object_map[] array. Now view.popupview.php gets its init() function from its parent.
Please, let us know if the proposed fix is of any help to you.