SCENARIO
========
I have a main page containing a 2 column layout where the right hand cell contains a row of tabs each containing a grid. I can’t use edit in place at the moment so I need to pop up a window to add a new row. This works perfectly and I’m able to save the new record.
PROBLEM
=======
What I haven’t been able to do is to update the relevant grid with the new row and display a progress image in the relevant tab. Note that the progress image works fine from a refresh button on a toolbar in the same tab as the grid. Note that I’m also using Symfony as a framework but that shouldn’t be relevant.
REFERENCES
==========
I’ve read section 3.5.1 and 3.5.2 from the documentation on dealing with access to inner window content and all other parts of the documentation. Also from the Knowledge Base:
dhtmlx.com/docs/products/kb/ … e=3&q=7250
CODE SNIPPETS
=============
Relevant code from the my page is:
var dhxLayout;
dhxLayout = new dhtmlXLayoutObject(document.body, “2U”, “dhx_blue”);
dhxLayout.cells(“b”).attachObject(“container”);
var tabbarJob;
var toolbarNotes;
var gridNotes;
function updateGrid(grid, ajax, indicator)
{
json = ajax.responseJSON;
grid.clearAll(false);
grid.parse(json,‘json’);
Element.hide(indicator);
}
function doAddNote(){
dhxLayout.dhxWins.createWindow(“add_note”, 0, 0, 500, 400);
dhxLayout.dhxWins.window(“add_note”).attachURL(“<?php echo url_for("note/edit").'?layout=false&client_id='.$job->getClientId().'&job_id='.$job->getId(); ?>”);
}
function doInitObjects(){
tabbarJob = new dhtmlXTabBar(“tabbar_job”,“top”);
tabbarJob.addTab(“tab_notes”,“Notes ”,“100px”);
tabbarJob.setContent(“tab_notes”,“tab_content_notes”);
toolbarNotes = new dhtmlXToolbarObject(“toolbar_notes”);
toolbarNotes.addButton(“button_notes_add”, <?php echo $buttonNo++; ?>, “Add”, “icons/Blue/18/add.png”, “icons/Blue/18/add.png”);
toolbarNotes.addButton(“button_notes_refresh”, <?php echo $buttonNo++; ?>, “Refresh”, “icons/Blue/18/refresh.png”, “icons/Blue/18/refresh.png”);
toolbarNotes.attachEvent(“onClick”, function(id){
if (id == “button_notes_add”)
doAddNote();
else if (id == “button_notes_refresh”){
<?php echo remote_function(array(
'url' => 'note/getNotesJSON?job_id='.$job->getId(),
//'update' => array('success' => 'posts', 'failure' => 'error'),
'loading' => "Element.show('loading_indicator_notes');",
'complete' => 'updateGrid(gridNotes, request, "loading_indicator_notes")'
)) ?>};
});
gridNotes = new dhtmlXGridObject(‘grid_notes’);
gridNotes.init();
gridNotes.load(“<?php echo url_for("note/getNotesJSON?job_id=".$job->getId()); ?>”,“json”);
}
dhtmlxEvent(window,“load”,doInitObjects);
When I click the Add note button it creates a window from a URL containing:
var window_self = parent.dhxLayout.dhxWins.window(“<?php echo ($note->isNew() ? 'add_note' : 'edit_note'.$note->getId()) ?>”);
dhxToolbar = window_self.attachToolbar();
dhxToolbar.addButton(“save”, <?php echo $buttonNo++; ?>, “Save”, “icons/dhtmlx/iconSave.gif”, “icons/dhtmlx/iconSave_dis.gif”);
dhxToolbar.attachEvent(“onClick”, function(id){
var gridNotes = parent.dhxLayout.dhxWins.window(“grid_notes”);
if (id == “save”)
{
???
???
}
QUESTIONS
=========
What do i put where the question marks are to access the grid and the loading indicator?