Aggiunti nuovi task per mail server Creato metodo in guihandler per aprire le pagine con richiesta post Aggiunta possibilità di passare callback ai backend delle datatables Modificati alcuni url Modificato HTMLInclusion per non utilizzare i path assoluti in fase di creazione ma solo in fase di stampa degli header (per evitare problemi sugli script) Creato mailserver e mail template Creata interfaccia mail per salvataggio mail in database, gestione coda. Creata interfaccia grafica per la gestione delle mail e delle code Incluse librerie PHP_Mailer Inserite pagine di creazione e cancellazione manuale utenti Bugfix su alcune pagine di edit
142 lines
3.2 KiB
JavaScript
142 lines
3.2 KiB
JavaScript
var dp = {
|
|
SyntaxHighlighter : {}
|
|
};
|
|
|
|
dp.SyntaxHighlighter = {
|
|
parseParams: function(
|
|
input,
|
|
showGutter,
|
|
showControls,
|
|
collapseAll,
|
|
firstLine,
|
|
showColumns
|
|
)
|
|
{
|
|
function getValue(list, name)
|
|
{
|
|
var regex = new XRegExp('^' + name + '\\[(?<value>\\w+)\\]$', 'gi'),
|
|
match = null
|
|
;
|
|
|
|
for (var i = 0; i < list.length; i++)
|
|
if ((match = regex.exec(list[i])) != null)
|
|
return match.value;
|
|
|
|
return null;
|
|
};
|
|
|
|
function defaultValue(value, def)
|
|
{
|
|
return value != null ? value : def;
|
|
};
|
|
|
|
function asString(value)
|
|
{
|
|
return value != null ? value.toString() : null;
|
|
};
|
|
|
|
var parts = input.split(':'),
|
|
brushName = parts[0],
|
|
options = {},
|
|
straight = { 'true' : true }
|
|
reverse = { 'true' : false },
|
|
result = null,
|
|
defaults = SyntaxHighlighter.defaults
|
|
;
|
|
|
|
for (var i in parts)
|
|
options[parts[i]] = 'true';
|
|
|
|
showGutter = asString(defaultValue(showGutter, defaults.gutter));
|
|
showControls = asString(defaultValue(showControls, defaults.toolbar));
|
|
collapseAll = asString(defaultValue(collapseAll, defaults.collapse));
|
|
showColumns = asString(defaultValue(showColumns, defaults.ruler));
|
|
firstLine = asString(defaultValue(firstLine, defaults['first-line']));
|
|
|
|
return {
|
|
brush : brushName,
|
|
gutter : defaultValue(reverse[options.nogutter], showGutter),
|
|
toolbar : defaultValue(reverse[options.nocontrols], showControls),
|
|
collapse : defaultValue(straight[options.collapse], collapseAll),
|
|
// ruler : defaultValue(straight[options.showcolumns], showColumns),
|
|
'first-line' : defaultValue(getValue(parts, 'firstline'), firstLine)
|
|
};
|
|
},
|
|
|
|
HighlightAll: function(
|
|
name,
|
|
showGutter /* optional */,
|
|
showControls /* optional */,
|
|
collapseAll /* optional */,
|
|
firstLine /* optional */,
|
|
showColumns /* optional */
|
|
)
|
|
{
|
|
function findValue()
|
|
{
|
|
var a = arguments;
|
|
|
|
for (var i = 0; i < a.length; i++)
|
|
{
|
|
if (a[i] === null)
|
|
continue;
|
|
|
|
if (typeof(a[i]) == 'string' && a[i] != '')
|
|
return a[i] + '';
|
|
|
|
if (typeof(a[i]) == 'object' && a[i].value != '')
|
|
return a[i].value + '';
|
|
}
|
|
|
|
return null;
|
|
};
|
|
|
|
function findTagsByName(list, name, tagName)
|
|
{
|
|
var tags = document.getElementsByTagName(tagName);
|
|
|
|
for (var i = 0; i < tags.length; i++)
|
|
if (tags[i].getAttribute('name') == name)
|
|
list.push(tags[i]);
|
|
}
|
|
|
|
var elements = [],
|
|
highlighter = null,
|
|
registered = {},
|
|
propertyName = 'innerHTML'
|
|
;
|
|
|
|
// for some reason IE doesn't find <pre/> by name, however it does see them just fine by tag name...
|
|
findTagsByName(elements, name, 'pre');
|
|
findTagsByName(elements, name, 'textarea');
|
|
|
|
if (elements.length === 0)
|
|
return;
|
|
|
|
for (var i = 0; i < elements.length; i++)
|
|
{
|
|
var element = elements[i],
|
|
params = findValue(
|
|
element.attributes['class'], element.className,
|
|
element.attributes['language'], element.language
|
|
),
|
|
language = ''
|
|
;
|
|
|
|
if (params === null)
|
|
continue;
|
|
|
|
params = dp.SyntaxHighlighter.parseParams(
|
|
params,
|
|
showGutter,
|
|
showControls,
|
|
collapseAll,
|
|
firstLine,
|
|
showColumns
|
|
);
|
|
|
|
SyntaxHighlighter.highlight(params, element);
|
|
}
|
|
}
|
|
};
|