You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
gzf/WebRoot/static/toastr-master/glimpse.toastr.js

113 lines
3.2 KiB

; (function ($, pubsub, tab, render, toastr) {
'use strict';
if (!toastr) {
pubsub.subscribe('action.panel.showed.toastr', function (args) {
render.engine.insert(args.panel, 'Toastr is not available on this screen. Plugin disabled.');
});
return;
}
var preexistingToasts = [];
var rendered = false;
var toastrPanel;
var headerRow = [
'Id',
'Type',
'State',
'Message',
'Start',
'End',
'LifeTime',
'This Toast\'s Options',
'All Toastr Options'
];
toastr.subscribe(receiveToasts);
function receiveToasts(args) {
var data = args;
!rendered ? preexistingToasts.push(data) : write(data);
}
function elapsedMs(start, end) {
return end && start ? end.getTime() - start.getTime() + ' ms' : '';
}
function formatDateTime(date) {
var sep = ':';
return !!(date && date.getMonth) ? date.getFullYear().toString() + sep +
padDigits(date.getMonth() + 1) + sep +
padDigits(date.getDate()) + sep +
padDigits(date.getHours()) + sep +
padDigits(date.getMinutes()) + sep +
padDigits(date.getSeconds()) + sep +
padDigits(date.getMilliseconds(), '0', 3) : '';
function padDigits(val, pad, count) {
var value = val.toString ? val.toString() : val;
count = count || 2;
var padding = Array(count + 1).join(pad || '0');
return (padding + (value)).slice(-count);
}
}
function write(data) {
if (data.length) {
for (var i = 0; i < data.length; i++) {
write(data[i]);
}
return;
}
var startTime = formatDateTime(data.startTime);
var endTime = formatDateTime(data.endTime);
var lifetime = elapsedMs(data.startTime, data.endTime);
// Must match sequence of headers
var pivotedData = [
data.toastId,
data.map.type,
data.state,
data.map.message,
startTime,
endTime,
lifetime,
data.map,
data.options,
getStateStyle(data)
];
render.engine.prepend(toastrPanel, [headerRow, pivotedData]);
}
function getStateStyle(data) {
return data.state === 'visible' ? 'info' : '';
}
pubsub.subscribe('action.panel.rendered.toastr', function (args) {
toastrPanel = args.panel;
rendered = true;
render.engine.insert(toastrPanel, [headerRow]);
if (preexistingToasts.length) {
for (var i = 0; i < preexistingToasts.length; i++) {
write(preexistingToasts[i]);
}
}
});
var config = {
key: 'toastr',
payload: {
name: 'toastr',
version: '0.2.0',
isPermanent: true,
data: 'Loading glimpse.toastr ...'
},
metadata: {
documentationUri: "http://jpapa.me/c7toastr"
}
};
tab.register(config);
})(jQueryGlimpse, glimpse.pubsub, glimpse.tab, glimpse.render, window.toastr);