123 lines
3.9 KiB
JavaScript
123 lines
3.9 KiB
JavaScript
// index block init.
|
|
$(function() {
|
|
$('#dashboard').dashboard( {
|
|
height : 245,
|
|
draggable : false,
|
|
resizable : false,
|
|
shadowType : false,
|
|
afterOrdered : sortBlocks,
|
|
sensitive : true,
|
|
onResize : resizeBlock,
|
|
panelRemovingTip : config.confirmRemoveBlock
|
|
});
|
|
|
|
/**
|
|
* refresh index block
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
var refreshTimer = 1000 * 60 * 5;
|
|
setInterval(function ()
|
|
{
|
|
$('.refresh-panel').trigger('click');
|
|
}, refreshTimer);
|
|
});
|
|
|
|
var versionApiUrl = v.versionApiUrl;
|
|
var xxcCurrentVersion = v.currentVersion;
|
|
var upgradeNoticeInfo = $.zui.store.get('upgradeNoticeInfo');
|
|
var upgradeNoticeStatus = upgradeNoticeInfo ? upgradeNoticeInfo.status : ''; // notice status `hide`|`show`
|
|
var upgradeNoticeInfoInit = {
|
|
date : new Date().getTime(),
|
|
version : xxcCurrentVersion,
|
|
status: 'show',
|
|
}
|
|
|
|
$(function ()
|
|
{
|
|
showNotice(xxcCurrentVersion, upgradeNoticeInfo);
|
|
$('#noticeGoUpgrade .close').on('click', function ()
|
|
{
|
|
upgradeNoticeInfoInit.status = 'hide';
|
|
$.zui.store.set('upgradeNoticeInfo', upgradeNoticeInfoInit);
|
|
});
|
|
});
|
|
|
|
function showNotice(xxcCurrentVersion, upgradeNoticeInfo)
|
|
{
|
|
if(upgradeNoticeStatus === 'hide' && (new Date().getTime() - upgradeNoticeInfo.date) < 604800000) return;
|
|
// upgradeNoticeInfo && store notice info version > xxc current version
|
|
if(upgradeNoticeInfo && window.compareVersions(upgradeNoticeInfo.version, xxcCurrentVersion) === '1')
|
|
{
|
|
$('#noticeGoUpgrade .version').text(upgradeNoticeInfo.version);
|
|
$('#noticeGoUpgrade').show();
|
|
}
|
|
else
|
|
{
|
|
$.get(versionApiUrl, function (data, status)
|
|
{
|
|
if(status === 'success')
|
|
{
|
|
var versionInfo = typeof data === 'string' ? JSON.parse(data) : data;
|
|
var xxcVersion = versionInfo[0]['xxcVersion'];
|
|
if(!xxcCurrentVersion || window.compareVersions(xxcVersion, xxcCurrentVersion) === '1')
|
|
{
|
|
$('#noticeGoUpgrade .version').text(xxcVersion);
|
|
upgradeNoticeInfoInit.version = xxcVersion;
|
|
$.zui.store.set('upgradeNoticeInfo', upgradeNoticeInfoInit);
|
|
$('#noticeGoUpgrade').show();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Sort blocks.
|
|
*
|
|
* @param object $orders format is {'block2' : 1, 'block1' : 2, oldOrder : newOrder}
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function sortBlocks(orders)
|
|
{
|
|
var oldOrder = new Array();
|
|
var newOrder = new Array();
|
|
for(i in orders)
|
|
{
|
|
oldOrder.push(i.replace('block', ''));
|
|
newOrder.push(orders[i]);
|
|
}
|
|
|
|
$.getJSON(createLink('block', 'sort', 'oldOrder=' + oldOrder.join(',') + '&newOrder=' + newOrder.join(',')), function(data)
|
|
{
|
|
if(data.result != 'success') return false;
|
|
|
|
$('#home .panels-container .panel:not(.panel-dragging-holder)').each(function()
|
|
{
|
|
var $this = $(this);
|
|
var index = $this.data('order');
|
|
var url = createLink('entry', 'printBlock', 'index=' + index);
|
|
/* Update new index for block id edit and delete. */
|
|
$this.attr('id', 'block' + index).data('id', index).attr('data-url', url).data('url', url);
|
|
$this.find('.panel-actions .edit-block').attr('href', createLink('block', 'admin', 'index=' + index));
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Resize block
|
|
* @param object $event
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function resizeBlock(event)
|
|
{
|
|
var blockID = event.element.find('.panel').data('blockid');
|
|
var data = event.type == 'vertical' ? event.height : event.grid;
|
|
$.getJSON(createLink('block', 'resize', 'id=' + blockID + '&type=' + event.type + '&data=' + data), function(data)
|
|
{
|
|
if(data.result !== 'success') event.revert();
|
|
});
|
|
}
|