<?xml version="1.0" encoding="UTF-8"?> <a:screen xmlns:a="http://www.leaf-framework.org/application" xmlns:p="uncertain.proc" trace="true"> <a:init-procedure> <p:method-invoke className="leaf.application.features.cache.CacheProviderRegistry" methodName="getAllProvider" resultPath="/model/results"/> </a:init-procedure> <a:view> <a:link id="reload_cache" url="${/request/@context_path}/modules/sys/SYS1050/sys_cache_data_reload.lsc"/> <a:link id="get_cache" url="${/request/@context_path}/modules/sys/SYS1050/sys_query_cache_data.lsc"/> <script type="text/javascript"><![CDATA[ var intervals = {}; function reloadCache(reocrd_index, topic, message) { var dataSet = $('cacheProvider_ds'); var record = dataSet.getAt(reocrd_index); var updateUrl = $('reload_cache').getUrl() + "?message=" + message + "&topic=" + topic; var queryUrl = $('get_cache').getUrl() + "?cacheName=" + record.get('cacheName'); Leaf.request({ url: updateUrl, success: function(res) { record.set('reloding', '更新中。。。'); intervals[message] = setInterval(function() { Leaf.request({ url: queryUrl, success: function(res) { if (res.result.record.lastReloadDate != record.get('lastReloadDate')) { clearInterval(intervals[message]); record.set('lastReloadDate', res.result.record.lastReloadDate); record.set('reloding', '更新成功'); } }, scope: this }); }, 2000); }, scope: this }); } function reload(value, record, name) { var topic = record.get('reloadTopic'); var message = record.get('reloadMessage'); var prompt = record.get('cacheDesc'); var reocrd_index = $('cacheProvider_ds').indexOf(record); var url = '<a href="javascript:reloadCache(\'' + reocrd_index + '\',\'' + topic + '\',\'' + message + '\')">更新</a>'; return url; } function convertTime(time) { var display = ""; var day = Math.floor(time / (24 * 3600)); if (day != 0) { display = display + day + " 天 "; } var hour = Math.floor(time % (24 * 3600) / 3600); if (hour != 0) { display = display + hour + " 小时 "; } var minute = Math.floor(time % 3600 / 60); if (minute != 0) { display = display + minute + " 分 "; } var second = Math.floor(time % 60); if (second != 0) { display = display + second + " 秒 "; } return display; } function pastTime_renderer(value, record, name) { var reloading = record.get('reloding'); if (reloading) { return reloading; } var between = record.get('pastTime'); return convertTime(between); } function reloadType_renderer(value, record, name) { var reloadType = record.get('reloadType'); if (reloadType == 'periodMode') { return '自动'; } return ''; } function reloadInterval_renderer(value, record, name) { var reloadInterval = record.get('reloadInterval'); return convertTime(reloadInterval / 1000); } function reload_select() { var ds = $('cacheProvider_ds'); var records = ds.getSelected(); if (records.length == 0) { Leaf.showMessage('提示', '请至少选中一行!'); return; } var record; for (var i = 0;i < records.length;i++) { record = records[i]; var topic = record.get('reloadTopic'); var message = record.get('reloadMessage'); var reocrd_index = $('cacheProvider_ds').indexOf(record); reloadCache(reocrd_index, topic, message); } } ]]></script> <a:dataSets> <a:dataSet id="cacheProvider_ds" selectable="true"> <a:datas dataSource="/model/results"/> </a:dataSet> </a:dataSets> <a:grid bindTarget="cacheProvider_ds" height="250" style="margin-left:10px;margin-top:50px;" width="1000"> <a:toolBar> <a:button click="reload_select" icon="${/request/@context_path}/images/continue.png" style="height:16px;" text="更新缓存"/> </a:toolBar> <a:columns> <a:column name="cacheDesc" prompt="缓存描述" width="150"/> <a:column name="pastTime" prompt="已过时间" renderer="pastTime_renderer" width="200"/> <a:column name="cacheName" prompt="缓存名称" width="200"/> <!--<a:column name="reload" align="center" prompt="马上更新" renderer="reload" width="100"/>--> <a:column name="reloadType" prompt="更新类型" renderer="reloadType_renderer" width="100"/> <a:column name="reloadInterval" prompt="更新间隔" renderer="reloadInterval_renderer" width="100"/> <a:column name="lastReloadDate" prompt="上次更新时间" width="200"/> </a:columns> </a:grid> </a:view> </a:screen>