137 lines
5.3 KiB
JavaScript
137 lines
5.3 KiB
JavaScript
$('.ui.search').search({
|
|
type: 'message',
|
|
searchDelay: 500,
|
|
silent: true,
|
|
apiSettings: {
|
|
silent: true,
|
|
cache: false,
|
|
url: urls.search,
|
|
onResponse: function (casResp) {
|
|
var response = {
|
|
results: {}
|
|
};
|
|
|
|
for (var key in casResp) {
|
|
if (casResp.hasOwnProperty(key)) {
|
|
var prop = casResp[key];
|
|
var group = prop.group;
|
|
|
|
if (response.results[group] === undefined) {
|
|
response.results[group] = {
|
|
name: group,
|
|
results: []
|
|
};
|
|
}
|
|
response.results[group].results.push({
|
|
title: prop.id,
|
|
description: prop.description,
|
|
defaultValue: prop.defaultValue,
|
|
type: prop.type,
|
|
deprecated: prop.deprecated,
|
|
requiredProperty: prop.requiredProperty,
|
|
requiredModule: prop.requiredModule,
|
|
requiredModuleAutomated: prop.requiredModuleAutomated
|
|
});
|
|
}
|
|
}
|
|
|
|
return response;
|
|
},
|
|
},
|
|
minCharacters: 3,
|
|
templates: {
|
|
message: function (response, type) {
|
|
var html = '';
|
|
$('#accordion').empty();
|
|
|
|
if (type === 'empty') {
|
|
html += '<h3><i class=\'fa fa-search\' /> <strong>No Results</strong></h3>';
|
|
html += '<div class=\'alert alert-warning\'>';
|
|
html += '<i class=\'fa fa-exclamation-circle\'/> ';
|
|
html += 'No search results could be found based on the provided query.';
|
|
html += '</div>';
|
|
}
|
|
|
|
for (var group in response.results) {
|
|
var modules = new Set();
|
|
|
|
html += '<h2><i class=\'fa fa-users\' /> <strong>Group: </strong>' + group + '</h2>';
|
|
var props = response.results[group].results;
|
|
|
|
html += '<div>';
|
|
|
|
for (var i = 0; i < props.length; i++) {
|
|
html += '<p>';
|
|
var prop = props[i];
|
|
html += '<i class=\'fa fa-cogs\'/> ';
|
|
html += 'Property: <code>' + prop.title + '=' + prop.defaultValue + '</code><br/>';
|
|
if (prop.deprecated) {
|
|
html += '<p/><div class=\'alert alert-warning\'>';
|
|
html += '<i class=\'fa fa-exclamation-circle\'/> ';
|
|
html += 'This property is deprecated and will be removed in future CAS versions.';
|
|
html += '</div>';
|
|
}
|
|
if (prop.requiredProperty) {
|
|
html += '<p/><div class=\'alert alert-success\'>';
|
|
html += '<i class=\'fa fa-check-square\'/> ';
|
|
html += 'This property is required.';
|
|
html += '</div>';
|
|
}
|
|
|
|
html += '<i class=\'fab fa-codepen\' /> Type: <code>' + prop.type + '</code><br/>';
|
|
if (prop.description != null) {
|
|
html += '<p>' + prop.description + '</p>';
|
|
}
|
|
|
|
if (prop.requiredModule != null) {
|
|
modules.add(prop.requiredModule);
|
|
}
|
|
html += '<hr>';
|
|
}
|
|
|
|
if (modules.size > 0) {
|
|
html += '<div>';
|
|
html += '<p><i class=\'fa fa-gear\' /> Required Modules</p>';
|
|
html += '<ul class=\'nav nav-pills\'>';
|
|
html += '<li class=\'active\'><a href=\'#1\' data-toggle=\'tab\'>Maven</a></li>';
|
|
html += '<li><a href=\'#2\' data-toggle=\'tab\'>Gradle</a></li>';
|
|
html += '</ul>';
|
|
|
|
for (let moduleString of modules) {
|
|
html += '<div class=\'tab-content\'>';
|
|
|
|
var moduleArr = moduleString.split('|');
|
|
var module = moduleArr[0];
|
|
|
|
var maven = '<dependency>\n';
|
|
maven += '\t<groupId>org.apereo.cas</groupId>\n';
|
|
maven += '\t<artifactId>' + module + '</artifactId>\n';
|
|
maven += '\t<cas.version>${cas.version}</cas.version>\n';
|
|
maven += '</dependency>\n';
|
|
html += '<div class=\'tab-pane active\' id=\'1\'><pre>' + maven + '</pre></div>';
|
|
|
|
var gradle = 'compile \'org.apereo.cas:' + module + ':${project.\'cas.version\'}\'\n';
|
|
html += '<div class=\'tab-pane\' id=\'2\'><pre>' + gradle + '</pre></div>';
|
|
|
|
html += '</div>';
|
|
}
|
|
|
|
html += '</div>';
|
|
}
|
|
|
|
html += '</div>';
|
|
}
|
|
|
|
html += '</div>';
|
|
|
|
|
|
$('#accordion').html(html);
|
|
$('#accordion').accordion({
|
|
heightStyle: 'content'
|
|
});
|
|
$('#accordion').accordion('refresh');
|
|
return '';
|
|
}
|
|
}
|
|
});
|