Skip to content
Commits on Source (5)
......@@ -17,6 +17,10 @@
depends.
* Add a package for cockpit-389-ds.
* rules: Clean up cruft left after build.
* control: Drop dh_systemd from build-depends, bump debhelper to 11.
* Add varions libjs packages to cockpit-389-ds Depends, add the rest
to d/missing-sources.
* copyright: Updated. (Closes: #904760)
-- Timo Aaltonen <tjaalton@debian.org> Sat, 02 Jun 2018 09:34:05 +0300
......
......@@ -6,10 +6,8 @@ Uploaders:
Timo Aaltonen <tjaalton@debian.org>,
Build-Depends:
libcmocka-dev,
debhelper (>= 9),
dh-autoreconf,
debhelper (>= 11),
dh-python,
dh-systemd,
doxygen,
libbz2-dev,
libdb-dev,
......@@ -142,6 +140,13 @@ Package: cockpit-389-ds
Architecture: any
Depends: ${misc:Depends},
cockpit,
libjs-bootstrap,
libjs-c3,
libjs-d3,
libjs-jquery-datatables,
libjs-jquery-datatables-extensions,
libjs-jquery-jstree,
libjs-moment,
python3,
python3-lib389,
Description: Cockpit user interface for 389 Directory Server
......
......@@ -5,7 +5,7 @@ Source: http://directory.fedoraproject.org/wiki/Source
Files: *
Copyright: 2001 Sun Microsystems, Inc.
2005 Red Hat, Inc.
License: GPL-2 and Other
License: GPL-3+ and Other
Files: ldap/libraries/libavl/*.[ch] ldap/servers/slapd/abandon.c
ldap/servers/slapd/add.c ldap/servers/slapd/abandon.c
......@@ -18,7 +18,7 @@ Files: ldap/libraries/libavl/*.[ch] ldap/servers/slapd/abandon.c
Copyright: 1993 Regents of the University of Michigan
2001 Sun Microsystems, Inc.
2005 Red Hat, Inc.
License: GPL-2 and Other
License: GPL-3+ and Other
Files: ldap/servers/slapd/tools/ldaptool.h
Copyright: 1998 Netscape Communication Corporation
......@@ -30,14 +30,84 @@ Copyright: 2005 Sun Microsystems, Inc.
License: GPL-2+ or LGPL-2.1 or MPL-1.1
Files: m4/*
Copyright: 2006, 2007 Red Hat, Inc.
License: GPL-2+
Copyright: 2006-2017 Red Hat, Inc.
2016 William Brown <william at blackhats dot net dot au>
License: GPL-3+
Files: src/svrcore/*
Copyright: 2016 Red Hat, Inc.
License: MPL-2.0
Files: src/cockpit/389-console/static/bootpopup.min.js
debian/missing-sources/bootpopup.js
Copyright: 2016 rigon<ricardompgoncalves@gmail.com>
License: GPL-3+
Files: src/cockpit/389-console/static/bootstrap.min.js
debian/missing-sources/bootstrap.js
Copyright: 2011-2016 Twitter, Inc.
License: MIT
Files: src/cockpit/389-console/static/c3.min.js
debian/missing-sources/c3.js
Copyright: 2013 Masayuki Tanaka
License: MIT
Files: src/cockpit/389-console/static/d3.min.js
debian/missing-sources/d3.js
Copyright: 2018 Mike Bostock
License: BSD-3-clause
Files: src/cockpit/389-console/static/d3.min.js
debian/missing-sources/d3.js
Copyright: 2018 Mike Bostock
License: BSD-3-clause
Files: src/cockpit/389-console/static/jquery-3.3.1.min.js
src/cockpit/389-console/static/jquery.min.js
src/cockpit/389-console/static/jquery-ui.min.js
src/cockpit/389-console/static/moment.min.js
debian/missing-sources/jquery-1.12.4.js
debian/missing-sources/jquery-3.3.1.js
debian/missing-sources/jquery-ui.js
debian/missing-sources/moment.js
Copyright: 2015-2018 JS Foundation and other contributors
License: MIT
Files: src/cockpit/389-console/static/jquery.dataTables*.min.js
debian/missing-sources/jquery.dataTables*.js
Copyright: 2008-2017 SpryMedia Ltd
License: MIT
Files: src/cockpit/389-console/static/jquery.dropdown.min.js
debian/missing-sources/jquery.dropdown.js
Copyright: 2018 A Beautiful Site, LLC
License: MIT
Files: src/cockpit/389-console/static/jquery.timepicker.min.js
debian/missing-sources/jquery.timepicker.js
Copyright: 2015 Jon Thornton
License: MIT
Files: src/cockpit/389-console/static/jstree.min.js
debian/missing-sources/jstree.js
Copyright: 2014 Ivan Bozhanov
License: MIT
Files: src/cockpit/389-console/static/patternfly.min.js
debian/missing-sources/patternfly.js
Copyright: 2013 Red Hat, Inc.
License: Apache-2.0
Files: debian/*
Copyright: 2008 Michele Baldessari <michele@acksyn.org>
2012 Timo Aaltonen <tjaalton@ubuntu.com>
License: GPL-2+ or LGPL-2.1 or MPL-1.1
License: Apache-2.0
On Debian machines the full text of the Apache License 2.0 can be found in the
file /usr/share/common-licenses/Apache-2.0.
License: Other
In addition, as a special exception, Red Hat, Inc. gives You the additional
right to link the code of this Program with code not covered under the GNU
......@@ -58,6 +128,31 @@ License: Other
statement from your version and license this file solely under the GPL without
exception.
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
.
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the Dojo Foundation nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: GPL-2 or GPL-2+
On Debian machines the full text of the GNU General Public License
can be found in the file /usr/share/common-licenses/GPL-2.
......@@ -66,6 +161,22 @@ License: LGPL-2.1
On Debian machines the full text of the GNU General Public License
can be found in the file /usr/share/common-licenses/LGPL-2.1.
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
following conditions:
.
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License: MPL-1.1
MOZILLA PUBLIC LICENSE
......@@ -537,3 +648,7 @@ License: MPL-1.1
the notices in the Source Code files of the Original Code. You should
use the text of this Exhibit A rather than the text found in the
Original Code Source Code for Your Modifications.]
License: MPL-2.0
On Debian machines the full text of the Mozilla Public License version 2.0
can be found in the file /usr/share/common-licenses/MPL-2.0.
/**************************************************************************
* Popup dialog boxes for Bootstrap - http://www.bootpopup.tk
* Copyright (C) 2016 rigon<ricardompgoncalves@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*************************************************************************/
/* // List of input types
case "button": case "checkbox": case "color": case "date": case "datetime-local":
case "email": case "file": case "hidden": case "image": case "month": case "number":
case "password": case "radio": case "range": case "reset": case "search":
case "submit": case "tel": case "text": case "time": case "url": case "week": */
var INPUT_SHORTCUT_TYPES = [ "button", "text", "submit", "color", "url", "password",
"hidden", "file", "number", "email", "reset", "date", "checkbox", "select", "radio" ];
function bootpopup(options) {
// Create a new instance if this is not
if(!(this instanceof bootpopup))
return new bootpopup(options);
var self = this;
// Create a global random ID for the form
this.formid = "bootpopup-form" + String(Math.random()).substr(2);
this.options = {
title: document.title,
showclose: true,
size: "normal",
size_labels: "col-sm-4",
size_inputs: "col-sm-8",
content: [],
onsubmit: "close",
buttons: ["close"],
before: function() {},
dismiss: function() {},
close: function() {},
ok: function() {},
cancel: function() {},
yes: function() {},
no: function() {},
complete: function() {},
submit: function(e) {
self.callback(self.options.onsubmit, e);
return false; // Cancel form submision
}
};
this.addOptions = function(options) {
var buttons = [];
for(var key in options) {
if(key in this.options)
this.options[key] = options[key];
// If an event for a button is given, show the respective button
if(["close", "ok", "cancel", "yes", "no"].indexOf(key) >= 0)
buttons.push(key);
}
// Copy news buttons to this.options.buttons
if(buttons.length > 0) {
// Clear default buttons if new are not given
if(!("buttons" in options)) this.options.buttons = [];
buttons.forEach(function(item) {
if(self.options.buttons.indexOf(item) < 0)
self.options.buttons.push(item);
});
}
// Determine what is the best action if none is given
if(typeof options.onsubmit !== "string") {
if(this.options.buttons.indexOf("close") > 0) this.options.onsubmit = "close";
else if(this.options.buttons.indexOf("ok") > 0) this.options.onsubmit = "ok";
else if(this.options.buttons.indexOf("yes") > 0) this.options.onsubmit = "yes";
}
return this.options;
};
this.setOptions = function(options) {
this.options = options;
return this.options;
};
this.create = function() {
// Option for modal dialog size
var classModalDialog = "modal-dialog";
if(this.options.size == "large") classModalDialog += " modal-lg";
if(this.options.size == "small") classModalDialog += " modal-sm";
// Create HTML elements for modal dialog
this.modal = $('<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="bootpopup-title"></div>');
this.dialog = $('<div></div>', { class: classModalDialog, role: "document" });
this.content = $('<div class="modal-content"></div>');
this.dialog.append(this.content);
this.modal.append(this.dialog);
// Header
this.header = $('<div class="modal-header"></div>');
if(this.options.showclose) // Close button
this.header.append('<button type="button" class="bootpopup-button close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>');
this.header.append('<h4 class="modal-title" id="bootpopup-title">' + this.options.title + '</h4>');
this.content.append(this.header);
// Body
this.body = $('<div class="modal-body"></div>');
this.form = $("<form></form>", { id: this.formid, class: "form-horizontal", submit: function(e) { return self.options.submit(e); } });
this.body.append(this.form);
this.content.append(this.body);
// Iterate over entries
for(var i in this.options.content) {
var entry = this.options.content[i];
switch(typeof entry) {
case "string": // HTML string
this.form.append(entry);
break;
case "object":
for(var type in entry) {
var attrs = entry[type];
// Convert functions to string to be used as callback
for(var attribute in attrs)
if(typeof attrs[attribute] === "function")
attrs[attribute] = "(" + attrs[attribute] + ")(this)";
// Check if type is a shortcut for input
if(INPUT_SHORTCUT_TYPES.indexOf(type) >= 0) {
attrs.type = type; // Add attribute for type
type = "input"; // Continue to input
}
if(type == "input") {
// To avoid adding "form-control" class
if(attrs.type === "checkbox" && typeof attrs.class === "undefined")
attrs.class = "";
// Create a random id for the input if none provided
attrs.id = (typeof attrs.id === "undefined" ? "bootpopup-input" + String(Math.random()).substr(2) : attrs.id);
attrs.class = (typeof attrs.class === "undefined" ? "form-control" : attrs.class);
attrs.type = (typeof attrs.type === "undefined" ? "text" : attrs.type);
// Create input
var input;
switch(attrs.type) {
case "checkbox":
// Special case for checkbox
input = $('<div class="checkbox"></div>')
.append($('<label></label>')
.append($("<input />", attrs))
.append(attrs.label));
// Clear label to not be added as header
attrs.label = "";
break;
case "select":
// Special case for select
input = $("<select></select>", attrs);
for(var option in attrs.options)
input.append($("<option></option>", { value: option })
.append(attrs.options[option]));
break;
case "radio":
// Special case for radios
input = [];
for(var option in attrs.options)
input.push($('<div class="radio"></div>', attrs)
.append($('<label></label>')
.append($("<input />", { type: "radio", name: attrs.name, value: option }))
.append(attrs.options[option])));
break;
default:
input = $("<input />", attrs);
}
// Form Group
var formGroup = $('<div class="form-group"></div>').appendTo(this.form);
// Label
$("<label></label>", { for: attrs.id, class: "control-label " + this.options.size_labels, text: attrs.label }).appendTo(formGroup);
// Input and div to control width
var divInput = $('<div></div>', { class: this.options.size_inputs });
divInput.append(input);
formGroup.append(divInput);
}
else // Anything else besides input
this.form.append($("<" + type + "></" + type + ">", attrs)); // Add directly
}
break;
default:
throw "Invalid entry type";
}
}
// Footer
this.footer = $('<div class="modal-footer"></div>');
this.content.append(this.footer);
for(var key in this.options.buttons) {
var item = this.options.buttons[key];
var btnClass = "";
var btnText = "";
switch(item) {
case "close": btnClass = "btn-primary"; btnText = "Close"; break;
case "ok": btnClass = "btn-primary"; btnText = "OK"; break;
case "cancel": btnClass = "btn-default"; btnText = "Cancel"; break;
case "yes": btnClass = "btn-primary"; btnText = "Yes"; break;
case "no": btnClass = "btn-default"; btnText = "No"; break;
}
var button = $("<button></button>", {
type: "button",
text: btnText,
class: "btn " + btnClass,
"data-dismiss": "modal",
"data-callback": item,
"data-form": this.formid,
click: function(event) {
var name = $(event.target).data("callback");
self.callback(name, event);
}
});
this.footer.append(button);
// Reference for buttons
switch(item) {
case "close": this.btnClose = button; break;
case "ok": this.btnOk = button; break;
case "cancel": this.btnCancel = button; break;
case "yes": this.btnYes = button; break;
case "no": this.btnNo = button; break;
}
}
// Setup events for dismiss and complete
this.modal.on('hide.bs.modal', this.options.dismiss);
this.modal.on('hidden.bs.modal', function(e) {
self.options.complete(e);
self.modal.remove(); // Delete window after complete
});
// Don't close on backdrop click
if(this.options.showclose === false)
this.modal.attr('data-backdrop', 'static');
// Add window to body
$(document.body).append(this.modal);
};
this.show = function() {
// Call before event
this.options.before(this);
// Fire the modal window
this.modal.modal();
};
this.data = function() {
var keyval = {};
var array = this.form.serializeArray();
for(var i in array) {
var name = array[i].name, val = array[i].value;
if(typeof keyval[name] === "undefined")
keyval[name] = val;
else {
if(!Array.isArray(keyval[name]))
keyval[name] = [keyval[name]];
keyval[name].push(val);
}
}
return keyval;
};
this.callback = function(name, event) {
var func = this.options[name]; // Get function to call
if(typeof func !== "function") return;
// Perform callback
var array = this.form.serializeArray();
var ret = func(this.data(), array, event);
// Hide window
this.modal.modal("hide");
return ret;
};
this.dismiss = function() { this.callback("dismiss"); };
this.submit = function() { this.callback("submit"); };
this.close = function() { this.callback("close"); };
this.ok = function() { this.callback("ok"); };
this.cancel = function() { this.callback("cancel"); };
this.yes = function() { this.callback("yes"); };
this.no = function() { this.callback("no"); };
this.addOptions(options);
this.create();
this.show();
}
bootpopup.alert = function(message, title, callback) {
if(typeof title === "function")
callback = title;
if(typeof title !== "string")
title = document.title;
if(typeof callback !== "function")
callback = function() {};
return bootpopup({
title: title,
content: [{ p: { text: message } }],
dismiss: function() { callback(); }
});
};
bootpopup.confirm = function(message, title, callback) {
if(typeof title === "function")
callback = title;
if(typeof title !== "string")
title = document.title;
if(typeof callback !== "function")
callback = function() {};
var answer = false;
return bootpopup({
title: title,
showclose: false,
content: [{ p: { text: message } }],
buttons: ["no", "yes"],
yes: function() { answer = true; },
dismiss: function() { callback(answer); }
});
};
bootpopup.prompt = function(label, type, message, title, callback) {
// Callback can be in any position, except label
var callback_function = function() {};
if(typeof type === "function")
callback_function = type;
if(typeof message === "function")
callback_function = message;
if(typeof title === "function")
callback_function = title;
if(typeof callback === "function")
callback_function = callback;
// If a list of values is provided, then the parameters are shifted
// because type should be ignored
if(typeof label === "object") {
title = message;
message = type;
type = null;
}
// Sanitize message and title
if(typeof message !== "string")
message = "Please, provide values for:";
if(typeof title !== "string")
title = document.title;
// Add message to the window
var content = [{ p: { text: message } }];
// If label is a list of values to be asked to input
if(typeof label === "object") {
label.forEach(function(entry) {
var obj = null;
// HTML
if (typeof entry === "string")
obj = entry;
// Input
if ( entry !== null && typeof entry === "object" && typeof entry.label === "string") {
if(typeof entry.name !== "string") // Name in lower case and dashes instead spaces
entry.name = entry.label.toLowerCase().replace(/\s+/g, "-");
if(typeof entry.type !== "string")
entry.type = "text";
obj = { input: entry };
}
if(obj !== null)
content.push(obj);
});
}
else {
if(typeof type !== "string") type = "text";
content.push({ input: { type: type, name: "value", label: label } });
var callback_tmp = callback_function; // Overload callback function to return "data.value"
callback_function = function(data) { callback_tmp(data.value); };
}
return bootpopup({
title: title,
content: content,
buttons: ["cancel", "ok"],
ok: function(data) {
callback_function(data);
}
});
};
/**
* AMD support: require.js
*/
if(typeof define === "function") {
define(["jquery", "bootstrap"], function() {
return bootpopup;
});
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*! DataTables 1.10.16
* ©2008-2017 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary DataTables
* @description Paginate, search and order HTML tables
* @version 1.10.16
* @file jquery.dataTables.js
* @author SpryMedia Ltd
* @contact www.datatables.net
* @copyright Copyright 2008-2017 SpryMedia Ltd.
*
* This source file is free software, available under the following license:
* MIT license - http://datatables.net/license
*
* This source file is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
*
* For details please refer to: http://www.datatables.net
*/
/*jslint evil: true, undef: true, browser: true */
/*globals $,require,jQuery,define,_selector_run,_selector_opts,_selector_first,_selector_row_indexes,_ext,_Api,_api_register,_api_registerPlural,_re_new_lines,_re_html,_re_formatted_numeric,_re_escape_regex,_empty,_intVal,_numToDecimal,_isNumber,_isHtml,_htmlNumeric,_pluck,_pluck_order,_range,_stripHtml,_unique,_fnBuildAjax,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnAjaxDataSrc,_fnAddColumn,_fnColumnOptions,_fnAdjustColumnSizing,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnVisbleColumns,_fnGetColumns,_fnColumnTypes,_fnApplyColumnDefs,_fnHungarianMap,_fnCamelToHungarian,_fnLanguageCompat,_fnBrowserDetect,_fnAddData,_fnAddTr,_fnNodeToDataIndex,_fnNodeToColumnIndex,_fnGetCellData,_fnSetCellData,_fnSplitObjNotation,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnGetDataMaster,_fnClearTable,_fnDeleteIndex,_fnInvalidate,_fnGetRowElements,_fnCreateTr,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAddOptionsHtml,_fnDetectHeader,_fnGetUniqueThs,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnFilterCreateSearch,_fnEscapeRegex,_fnFilterData,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnInfoMacros,_fnInitialise,_fnInitComplete,_fnLengthChange,_fnFeatureHtmlLength,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnFeatureHtmlTable,_fnScrollDraw,_fnApplyToChildren,_fnCalculateColumnWidths,_fnThrottle,_fnConvertToWidth,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnSortFlatten,_fnSort,_fnSortAria,_fnSortListener,_fnSortAttachListener,_fnSortingClasses,_fnSortData,_fnSaveState,_fnLoadState,_fnSettingsFromNode,_fnLog,_fnMap,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnLengthOverflow,_fnRenderer,_fnDataSource,_fnRowAttributes*/
(function( factory ) {
"use strict";
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
// CommonJS environments without a window global must pass a
// root. This will give an error otherwise
root = window;
}
if ( ! $ ) {
$ = typeof window !== 'undefined' ? // jQuery's factory checks for a global window
require('jquery') :
require('jquery')( root );
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}
(function( $, window, document, undefined ) {
"use strict";
/**
* DataTables is a plug-in for the jQuery Javascript library. It is a highly
* flexible tool, based upon the foundations of progressive enhancement,
* which will add advanced interaction controls to any HTML table. For a
* full list of features please refer to
* [DataTables.net](href="http://datatables.net).
*
* Note that the `DataTable` object is not a global variable but is aliased
* to `jQuery.fn.DataTable` and `jQuery.fn.dataTable` through which it may
* be accessed.
*
* @class
* @param {object} [init={}] Configuration object for DataTables. Options
* are defined by {@link DataTable.defaults}
* @requires jQuery 1.7+
*
* @example
* // Basic initialisation
* $(document).ready( function {
* $('#example').dataTable();
* } );
*
* @example
* // Initialisation with configuration options - in this case, disable
* // pagination and sorting.
* $(document).ready( function {
* $('#example').dataTable( {
* "paginate": false,
* "sort": false
* } );
* } );
*/
var DataTable = function ( options )
{
_buildInclude('api.legacy.js');
var _that = this;
var emptyInit = options === undefined;
var len = this.length;
if ( emptyInit ) {
options = {};
}
this.oApi = this.internal = _ext.internal;
// Extend with old style plug-in API methods
for ( var fn in DataTable.ext.internal ) {
if ( fn ) {
this[fn] = _fnExternApiFunc(fn);
}
}
this.each(function() {
// For each initialisation we want to give it a clean initialisation
// object that can be bashed around
var o = {};
var oInit = len > 1 ? // optimisation for single table case
_fnExtend( o, options, true ) :
options;
_buildInclude('core.constructor.js');
} );
_that = null;
return this;
};
_buildInclude('core.internal.js');
_buildInclude('api.util.js');
_buildInclude('core.compat.js');
_buildInclude('core.columns.js');
_buildInclude('core.data.js');
_buildInclude('core.draw.js');
_buildInclude('core.ajax.js');
_buildInclude('core.filter.js');
_buildInclude('core.info.js');
_buildInclude('core.init.js');
_buildInclude('core.length.js');
_buildInclude('core.page.js');
_buildInclude('core.processing.js');
_buildInclude('core.scrolling.js');
_buildInclude('core.sizing.js');
_buildInclude('core.sort.js');
_buildInclude('core.state.js');
_buildInclude('core.support.js');
_buildInclude('api.base.js');
_buildInclude('api.table.js');
_buildInclude('api.draw.js');
_buildInclude('api.page.js');
_buildInclude('api.ajax.js');
_buildInclude('api.selectors.js');
_buildInclude('api.rows.js');
_buildInclude('api.row.details.js');
_buildInclude('api.columns.js');
_buildInclude('api.cells.js');
_buildInclude('api.order.js');
_buildInclude('api.search.js');
_buildInclude('api.state.js');
_buildInclude('api.static.js');
_buildInclude('api.core.js');
/**
* Version string for plug-ins to check compatibility. Allowed format is
* `a.b.c-d` where: a:int, b:int, c:int, d:string(dev|beta|alpha). `d` is used
* only for non-release builds. See http://semver.org/ for more information.
* @member
* @type string
* @default Version number
*/
DataTable.version = "1.10.16";
/**
* Private data store, containing all of the settings objects that are
* created for the tables on a given page.
*
* Note that the `DataTable.settings` object is aliased to
* `jQuery.fn.dataTableExt` through which it may be accessed and
* manipulated, or `jQuery.fn.dataTable.settings`.
* @member
* @type array
* @default []
* @private
*/
DataTable.settings = [];
/**
* Object models container, for the various models that DataTables has
* available to it. These models define the objects that are used to hold
* the active state and configuration of the table.
* @namespace
*/
DataTable.models = {};
_buildInclude('model.search.js');
_buildInclude('model.row.js');
_buildInclude('model.column.js');
_buildInclude('model.defaults.js');
_buildInclude('model.defaults.columns.js');
_buildInclude('model.settings.js');
/**
* Extension object for DataTables that is used to provide all extension
* options.
*
* Note that the `DataTable.ext` object is available through
* `jQuery.fn.dataTable.ext` where it may be accessed and manipulated. It is
* also aliased to `jQuery.fn.dataTableExt` for historic reasons.
* @namespace
* @extends DataTable.models.ext
*/
_buildInclude('ext.js');
_buildInclude('ext.classes.js');
_buildInclude('ext.paging.js');
_buildInclude('ext.types.js');
_buildInclude('ext.filter.js');
_buildInclude('ext.sorting.js');
_buildInclude('ext.renderer.js');
_buildInclude('ext.helpers.js');
_buildInclude('api.internal.js');
// jQuery access
$.fn.dataTable = DataTable;
// Provide access to the host jQuery object (circular reference)
DataTable.$ = $;
// Legacy aliases
$.fn.dataTableSettings = DataTable.settings;
$.fn.dataTableExt = DataTable.ext;
// With a capital `D` we return a DataTables API instance rather than a
// jQuery object
$.fn.DataTable = function ( opts ) {
return $(this).dataTable( opts ).api();
};
// All properties that are available to $.fn.dataTable should also be
// available on $.fn.DataTable
$.each( DataTable, function ( prop, val ) {
$.fn.DataTable[ prop ] = val;
} );
// Information about events fired by DataTables - for documentation.
/**
* Draw event, fired whenever the table is redrawn on the page, at the same
* point as fnDrawCallback. This may be useful for binding events or
* performing calculations when the table is altered at all.
* @name DataTable#draw.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
*/
/**
* Search event, fired when the searching applied to the table (using the
* built-in global search, or column filters) is altered.
* @name DataTable#search.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
*/
/**
* Page change event, fired when the paging of the table is altered.
* @name DataTable#page.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
*/
/**
* Order event, fired when the ordering applied to the table is altered.
* @name DataTable#order.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
*/
/**
* DataTables initialisation complete event, fired when the table is fully
* drawn, including Ajax data loaded, if Ajax data is required.
* @name DataTable#init.dt
* @event
* @param {event} e jQuery event object
* @param {object} oSettings DataTables settings object
* @param {object} json The JSON object request from the server - only
* present if client-side Ajax sourced data is used</li></ol>
*/
/**
* State save event, fired when the table has changed state a new state save
* is required. This event allows modification of the state saving object
* prior to actually doing the save, including addition or other state
* properties (for plug-ins) or modification of a DataTables core property.
* @name DataTable#stateSaveParams.dt
* @event
* @param {event} e jQuery event object
* @param {object} oSettings DataTables settings object
* @param {object} json The state information to be saved
*/
/**
* State load event, fired when the table is loading state from the stored
* data, but prior to the settings object being modified by the saved state
* - allowing modification of the saved state is required or loading of
* state for a plug-in.
* @name DataTable#stateLoadParams.dt
* @event
* @param {event} e jQuery event object
* @param {object} oSettings DataTables settings object
* @param {object} json The saved state information
*/
/**
* State loaded event, fired when state has been loaded from stored data and
* the settings object has been modified by the loaded data.
* @name DataTable#stateLoaded.dt
* @event
* @param {event} e jQuery event object
* @param {object} oSettings DataTables settings object
* @param {object} json The saved state information
*/
/**
* Processing event, fired when DataTables is doing some kind of processing
* (be it, order, searcg or anything else). It can be used to indicate to
* the end user that there is something happening, or that something has
* finished.
* @name DataTable#processing.dt
* @event
* @param {event} e jQuery event object
* @param {object} oSettings DataTables settings object
* @param {boolean} bShow Flag for if DataTables is doing processing or not
*/
/**
* Ajax (XHR) event, fired whenever an Ajax request is completed from a
* request to made to the server for new data. This event is called before
* DataTables processed the returned data, so it can also be used to pre-
* process the data returned from the server, if needed.
*
* Note that this trigger is called in `fnServerData`, if you override
* `fnServerData` and which to use this event, you need to trigger it in you
* success function.
* @name DataTable#xhr.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
* @param {object} json JSON returned from the server
*
* @example
* // Use a custom property returned from the server in another DOM element
* $('#table').dataTable().on('xhr.dt', function (e, settings, json) {
* $('#status').html( json.status );
* } );
*
* @example
* // Pre-process the data returned from the server
* $('#table').dataTable().on('xhr.dt', function (e, settings, json) {
* for ( var i=0, ien=json.aaData.length ; i<ien ; i++ ) {
* json.aaData[i].sum = json.aaData[i].one + json.aaData[i].two;
* }
* // Note no return - manipulate the data directly in the JSON object.
* } );
*/
/**
* Destroy event, fired when the DataTable is destroyed by calling fnDestroy
* or passing the bDestroy:true parameter in the initialisation object. This
* can be used to remove bound events, added DOM nodes, etc.
* @name DataTable#destroy.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
*/
/**
* Page length change event, fired when number of records to show on each
* page (the length) is changed.
* @name DataTable#length.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
* @param {integer} len New length
*/
/**
* Column sizing has changed.
* @name DataTable#column-sizing.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
*/
/**
* Column visibility has changed.
* @name DataTable#column-visibility.dt
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
* @param {int} column Column index
* @param {bool} vis `false` if column now hidden, or `true` if visible
*/
return $.fn.dataTable;
}));
This diff is collapsed.
/*
* jQuery Dropdown: A simple dropdown plugin
*
* Contribute: https://github.com/claviska/jquery-dropdown
*
* @license: MIT license: http://opensource.org/licenses/MIT
*
*/
if (jQuery) (function ($) {
$.extend($.fn, {
jqDropdown: function (method, data) {
switch (method) {
case 'show':
show(null, $(this));
return $(this);
case 'hide':
hide();
return $(this);
case 'attach':
return $(this).attr('data-jq-dropdown', data);
case 'detach':
hide();
return $(this).removeAttr('data-jq-dropdown');
case 'disable':
return $(this).addClass('jq-dropdown-disabled');
case 'enable':
hide();
return $(this).removeClass('jq-dropdown-disabled');
}
}
});
function show(event, object) {
var trigger = event ? $(this) : object,
jqDropdown = $(trigger.attr('data-jq-dropdown')),
isOpen = trigger.hasClass('jq-dropdown-open');
// In some cases we don't want to show it
if (event) {
if ($(event.target).hasClass('jq-dropdown-ignore')) return;
event.preventDefault();
event.stopPropagation();
} else {
if (trigger !== object.target && $(object.target).hasClass('jq-dropdown-ignore')) return;
}
hide();
if (isOpen || trigger.hasClass('jq-dropdown-disabled')) return;
// Show it
trigger.addClass('jq-dropdown-open');
jqDropdown
.data('jq-dropdown-trigger', trigger)
.show();
// Position it
position();
// Trigger the show callback
jqDropdown
.trigger('show', {
jqDropdown: jqDropdown,
trigger: trigger
});
}
function hide(event) {
// In some cases we don't hide them
var targetGroup = event ? $(event.target).parents().addBack() : null;
// Are we clicking anywhere in a jq-dropdown?
if (targetGroup && targetGroup.is('.jq-dropdown')) {
// Is it a jq-dropdown menu?
if (targetGroup.is('.jq-dropdown-menu')) {
// Did we click on an option? If so close it.
if (!targetGroup.is('A')) return;
} else {
// Nope, it's a panel. Leave it open.
return;
}
}
// Trigger the event early, so that it might be prevented on the visible popups
var hideEvent = jQuery.Event("hide");
$(document).find('.jq-dropdown:visible').each(function () {
var jqDropdown = $(this);
jqDropdown
.hide()
.removeData('jq-dropdown-trigger')
.trigger('hide', { jqDropdown: jqDropdown });
});
if(!hideEvent.isDefaultPrevented()) {
// Hide any jq-dropdown that may be showing
$(document).find('.jq-dropdown:visible').each(function () {
var jqDropdown = $(this);
jqDropdown
.hide()
.removeData('jq-dropdown-trigger')
.trigger('hide', { jqDropdown: jqDropdown });
});
// Remove all jq-dropdown-open classes
$(document).find('.jq-dropdown-open').removeClass('jq-dropdown-open');
}
}
function position() {
var jqDropdown = $('.jq-dropdown:visible').eq(0),
trigger = jqDropdown.data('jq-dropdown-trigger'),
hOffset = trigger ? parseInt(trigger.attr('data-horizontal-offset') || 0, 10) : null,
vOffset = trigger ? parseInt(trigger.attr('data-vertical-offset') || 0, 10) : null;
if (jqDropdown.length === 0 || !trigger) return;
// Position the jq-dropdown relative-to-parent...
if (jqDropdown.hasClass('jq-dropdown-relative')) {
jqDropdown.css({
left: jqDropdown.hasClass('jq-dropdown-anchor-right') ?
trigger.position().left - (jqDropdown.outerWidth(true) - trigger.outerWidth(true)) - parseInt(trigger.css('margin-right'), 10) + hOffset :
trigger.position().left + parseInt(trigger.css('margin-left'), 10) + hOffset,
top: trigger.position().top + trigger.outerHeight(true) - parseInt(trigger.css('margin-top'), 10) + vOffset
});
} else {
// ...or relative to document
jqDropdown.css({
left: jqDropdown.hasClass('jq-dropdown-anchor-right') ?
trigger.offset().left - (jqDropdown.outerWidth() - trigger.outerWidth()) + hOffset : trigger.offset().left + hOffset,
top: trigger.offset().top + trigger.outerHeight() + vOffset
});
}
}
$(document).on('click.jq-dropdown', '[data-jq-dropdown]', show);
$(document).on('click.jq-dropdown', hide);
$(window).on('resize', position);
})(jQuery);
\ No newline at end of file
jquery-3.3.1.js
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// PatternFly Namespace
var PatternFly = PatternFly || {};
// Util: PatternFly Sidebar
// Set height of sidebar-pf to height of document minus height of navbar-pf if not mobile
(function($) {
sidebar = function() {
var documentHeight = 0;
var navbarpfHeight = 0;
var colHeight = 0;
if ( $('.navbar-pf .navbar-toggle').is(':hidden') ) {
documentHeight = $(document).height();
navbarpfHeight = $('.navbar-pf').outerHeight();
colHeight = documentHeight - navbarpfHeight;
}
$('.sidebar-pf').parent('.row').children('[class*="col-"]').css({ "min-height":colHeight});
}
$(document).ready(function() {
// Call sidebar() on ready if .sidebar-pf exists and .datatable does not exist
if ($('.sidebar-pf').length > 0 && $('.datatable').length == 0) {
sidebar();
}
});
$(window).resize(function() {
// Call sidebar() on resize if .sidebar-pf exists
if ($('.sidebar-pf').length > 0) {
sidebar();
}
});
})(jQuery);
// Util: PatternFly Popovers
// Add data-close="true" to insert close X icon
(function($) {
PatternFly.popovers = function( selector ) {
var allpopovers = $(selector);
// Initialize
allpopovers.popover();
// Add close icons
allpopovers.filter('[data-close=true]').each(function(index, element) {
var $this = $(element),
title = $this.attr('data-original-title') + '<button type="button" class="close" aria-hidden="true"><span class="pficon pficon-close"></span></button>';
$this.attr('data-original-title', title);
});
// Bind Close Icon to Toggle Display
allpopovers.on('click', function(e) {
var $this = $(this);
$title = $this.next('.popover').find('.popover-title');
// Only if data-close is true add class "x" to title for right padding
$title.find('.close').parent('.popover-title').addClass('closable');
// Bind x icon to close popover
$title.find('.close').on('click', function() {
$this.popover('toggle');
});
// Prevent href="#" page scroll to top
e.preventDefault();
});
};
})(jQuery);
// Util: DataTables Settings
(function($) {
if ($.fn.dataTableExt) {
/* Set the defaults for DataTables initialisation */
$.extend( true, $.fn.dataTable.defaults, {
"bDestroy": true,
"bAutoWidth": false,
"iDisplayLength": 20,
"sDom":
"<'dataTables_header' f i r >" +
"<'table-responsive' t >" +
"<'dataTables_footer' p >",
"oLanguage": {
"sInfo": "Showing <b>_START_</b> to <b>_END_</b> of <b>_TOTAL_</b> Items",
"sInfoFiltered" : "(of <b>_MAX_</b>)",
"sInfoEmpty" : "Showing <b>0</b> Results",
"sZeroRecords":
"<p>Suggestions</p>" +
"<ul>" +
"<li>Check the syntax of the search term.</li>" +
"<li>Check that the correct menu option is chosen (token ID vs. user ID).</li>" +
"<li>Use wildcards (* to match zero or more characters or ? to match a single character).</li>" +
"<li>Clear the search field, then click Search to return to the 20 most recent records.</li>" +
"</ul>",
"sSearch": ""
},
"sPaginationType": "bootstrap_input"
});
/* Default class modification */
$.extend( $.fn.dataTableExt.oStdClasses, {
"sWrapper": "dataTables_wrapper"
});
/* API method to get paging information */
$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) {
return {
"iStart": oSettings._iDisplayStart,
"iEnd": oSettings.fnDisplayEnd(),
"iLength": oSettings._iDisplayLength,
"iTotal": oSettings.fnRecordsTotal(),
"iFilteredTotal": oSettings.fnRecordsDisplay(),
"iPage": oSettings._iDisplayLength === -1 ?
0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
"iTotalPages": oSettings._iDisplayLength === -1 ?
0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
};
};
/* Combination of Bootstrap + Input Text style pagination control */
$.extend( $.fn.dataTableExt.oPagination, {
"bootstrap_input": {
"fnInit": function( oSettings, nPaging, fnDraw ) {
var oLang = oSettings.oLanguage.oPaginate;
var fnClickHandler = function ( e ) {
e.preventDefault();
if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {
fnDraw( oSettings );
}
};
$(nPaging).append(
'<ul class="pagination">'+
'<li class="first disabled"><span class="i fa fa-angle-double-left"></span></li>' +
'<li class="prev disabled"><span class="i fa fa-angle-left"></span></li>' +
'</ul>' +
'<div class="pagination-input">' +
'<input type="text" class="paginate_input">' +
'<span class="paginate_of">of <b>3</b></span>' +
'</div>' +
'<ul class="pagination">'+
'<li class="next disabled"><span class="i fa fa-angle-right"></span></li>' +
'<li class="last disabled"><span class="i fa fa-angle-double-right"></span></li>' +
'</ul>'
);
var els = $('li', nPaging);
$(els[0]).bind( 'click.DT', { action: "first" }, fnClickHandler );
$(els[1]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
$(els[2]).bind( 'click.DT', { action: "next" }, fnClickHandler );
$(els[3]).bind( 'click.DT', { action: "last" }, fnClickHandler );
var nInput = $('input', nPaging);
$(nInput).keyup( function (e) {
if ( e.which == 38 || e.which == 39 ) {
this.value++;
}
else if ( (e.which == 37 || e.which == 40) && this.value > 1 ) {
this.value--;
}
if ( this.value == "" || this.value.match(/[^0-9]/) ) {
/* Nothing entered or non-numeric character */
return;
}
var iNewStart = oSettings._iDisplayLength * (this.value - 1);
if ( iNewStart > oSettings.fnRecordsDisplay() ) {
/* Display overrun */
oSettings._iDisplayStart = (Math.ceil((oSettings.fnRecordsDisplay()-1) /
oSettings._iDisplayLength)-1) * oSettings._iDisplayLength;
fnDraw( oSettings );
return;
}
oSettings._iDisplayStart = iNewStart;
fnDraw( oSettings );
});
},
"fnUpdate": function ( oSettings, fnDraw ) {
var oPaging = oSettings.oInstance.fnPagingInfo(),
an = oSettings.aanFeatures.p,
i,
ien,
iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength),
iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;
for ( i=0, ien=an.length ; i<ien ; i++ ) {
$('.paginate_input').val(iCurrentPage);
$('.paginate_of b').html(iPages);
// Add / remove disabled classes from the static elements
if ( oPaging.iPage === 0 ) {
$('li.first', an[i]).addClass('disabled');
$('li.prev', an[i]).addClass('disabled');
} else {
$('li.first', an[i]).removeClass('disabled');
$('li.prev', an[i]).removeClass('disabled');
}
if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {
$('li.next', an[i]).addClass('disabled');
$('li.last', an[i]).addClass('disabled');
} else {
$('li.next', an[i]).removeClass('disabled');
$('li.last', an[i]).removeClass('disabled');
}
}
}
}
});
}
})(jQuery);
......@@ -5,3 +5,4 @@ fix-saslpath.diff
fix-systemctl-path.diff
CVE-2017-15135.patch
fix-linking.diff
use-packaged-js.diff