Aipoの最大化画面で他の画面を呼ぶときにaipo.viewPageを使うケースが多いと思います。
この処理の中身は
https://github.com/aipocom/aipo/blob/master/war/src/main/webapp/javascript/aipo/aipo.js#L138
aipo.viewPage = function(url, portletId, params) { var portlet = dijit.byId('portlet_' + portletId); if(! portlet){ portlet = new aimluck.widget.Contentpane({},'portlet_' + portletId); } if(portlet){ ptConfig[portletId].reloadUrl= url; if(params){ for(i = 0 ; i < params.length; i++ ) { portlet.setParam(params[i][0], params[i][1]); } } portlet.onLoad=dojo.hitch(portlet.onLoad, setMouseListener); portlet.viewPage(url); } };
のようになっています。途中でptConfig[portletId].reloadUrl= url;
をしています。
ptConfigをセットしているのは、ToDoの場合だと
https://github.com/aipocom/aipo/blob/master/portlets/todo/src/main/webapp/WEB-INF/templates/vm/portlets/html/ja/todo-list.vm
<script language="JavaScript" type="text/javascript"> //<![CDATA[ dojo.provide('aipo.todo'); ptConfig['$!portlet.ID'] = { group:"todo", initUrl:'$!utils.escapeXML($!jslink.getPortletById($!portlet.ID).addQueryData("template","ToDoListScreen"))', reloadFunction:aipo.reloadPage }; aipo.todo.menuSelected = 0; //]]> </script>
になります。ここのところで初期のスクリーンで呼ぶテンプレートやリロード関数を指定しています。
Aipoではデータの登録・更新・削除とかをした後に画面を更新します。
aipo.portletReload('todo');
みたいな関数でリロードしています。
https://github.com/aipocom/aipo/blob/master/war/src/main/webapp/javascript/aipo/aipo.js#L97
aipo.portletReload = function(group, portletId) { for(var index in ptConfig) { if (index != portletId) { if(ptConfig[index].group == group) { ptConfig[index].reloadFunction.call(ptConfig[index].reloadFunction, index); } } } };
この3箇所の設定が連携しています。