- Added comprehensive AI Assistant system (aiassist/ directory): * Vector search and embedding capabilities * Typebot proxy integration * Elastic search functionality * Message classification and chat history * MCP proxy for external integrations - Implemented Court Status API (GetCourtStatus.php): * Real-time court document status checking * Integration with external court systems * Comprehensive error handling and logging - Enhanced S3 integration: * Improved file backup system with metadata * Batch processing capabilities * Enhanced error logging and recovery * Copy operations with URL fixing - Added Telegram contact creation API - Improved error logging across all modules - Enhanced callback system for AI responses - Extensive backup file storage with timestamps - Updated documentation and README files - File storage improvements: * Thousands of backup files with proper metadata * Fix operations for broken file references * Project-specific backup and recovery systems * Comprehensive file integrity checking Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
195 lines
6.3 KiB
JavaScript
195 lines
6.3 KiB
JavaScript
/* ============================================================
|
|
* bootstrap-dropdown.js v2.0.1
|
|
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
|
|
* ============================================================
|
|
* Copyright 2012 Twitter, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
* ============================================================ */
|
|
|
|
|
|
!function( $ ){
|
|
|
|
"use strict"
|
|
|
|
/* DROPDOWN CLASS DEFINITION
|
|
* ========================= */
|
|
|
|
var toggle = '[data-toggle="dropdown"]'
|
|
, Dropdown = function ( element ) {
|
|
var $el = $(element).on('click.dropdown.data-api', this.toggle)
|
|
$('html').on('click.dropdown.data-api', function () {
|
|
$el.parent().removeClass('open')
|
|
})
|
|
}
|
|
|
|
Dropdown.prototype = {
|
|
|
|
constructor: Dropdown
|
|
|
|
, toggle: function ( e ) {
|
|
var $this = $(this)
|
|
, selector = $this.attr('data-target')
|
|
, $parent
|
|
, isActive
|
|
|
|
if (!selector) {
|
|
selector = $this.attr('href')
|
|
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
}
|
|
|
|
$parent = $(selector)
|
|
$parent.length || ($parent = $this.parent())
|
|
|
|
isActive = $parent.hasClass('open')
|
|
|
|
clearMenus()
|
|
!isActive && $parent.toggleClass('open')
|
|
|
|
return false
|
|
}
|
|
|
|
}
|
|
|
|
function clearMenus() {
|
|
$(toggle).parent().removeClass('open')
|
|
}
|
|
|
|
|
|
/* DROPDOWN PLUGIN DEFINITION
|
|
* ========================== */
|
|
|
|
$.fn.dropdown = function ( option ) {
|
|
return this.each(function () {
|
|
var $this = $(this)
|
|
, data = $this.data('dropdown')
|
|
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
|
if (typeof option == 'string') data[option].call($this)
|
|
})
|
|
}
|
|
|
|
$.fn.dropdown.Constructor = Dropdown
|
|
|
|
|
|
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
|
* =================================== */
|
|
|
|
$(function () {
|
|
$('html').on('click.dropdown.data-api', clearMenus)
|
|
$('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
|
})
|
|
|
|
}( window.jQuery );
|
|
/**
|
|
* Project: Bootstrap Hover Dropdown
|
|
* Author: Cameron Spear
|
|
* Contributors: Mattia Larentis
|
|
*
|
|
* Dependencies: Bootstrap's Dropdown plugin, jQuery
|
|
*
|
|
* A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience.
|
|
*
|
|
* License: MIT
|
|
*
|
|
* http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/
|
|
*/
|
|
;(function ($, window, undefined) {
|
|
// outside the scope of the jQuery plugin to
|
|
// keep track of all dropdowns
|
|
var $allDropdowns = $();
|
|
|
|
// if instantlyCloseOthers is true, then it will instantly
|
|
// shut other nav items when a new one is hovered over
|
|
$.fn.dropdownHover = function (options) {
|
|
// don't do anything if touch is supported
|
|
// (plugin causes some issues on mobile)
|
|
if('ontouchstart' in document) return this; // don't want to affect chaining
|
|
|
|
// the element we really care about
|
|
// is the dropdown-toggle's parent
|
|
$allDropdowns = $allDropdowns.add(this.parent());
|
|
|
|
return this.each(function () {
|
|
var $this = $(this),
|
|
$parent = $this.parent(),
|
|
defaults = {
|
|
delay: 500,
|
|
instantlyCloseOthers: true
|
|
},
|
|
data = {
|
|
delay: $(this).data('delay'),
|
|
instantlyCloseOthers: $(this).data('close-others')
|
|
},
|
|
showEvent = 'show.bs.dropdown',
|
|
hideEvent = 'hide.bs.dropdown',
|
|
// shownEvent = 'shown.bs.dropdown',
|
|
// hiddenEvent = 'hidden.bs.dropdown',
|
|
settings = $.extend(true, {}, defaults, options, data),
|
|
timeout;
|
|
|
|
$parent.hover(function (event) {
|
|
// so a neighbor can't open the dropdown
|
|
if(!$parent.hasClass('open') && !$this.is(event.target)) {
|
|
// stop this event, stop executing any code
|
|
// in this callback but continue to propagate
|
|
return true;
|
|
}
|
|
|
|
if(settings.instantlyCloseOthers === true)
|
|
$allDropdowns.removeClass('open');
|
|
|
|
window.clearTimeout(timeout);
|
|
$parent.addClass('open');
|
|
$this.trigger(showEvent);
|
|
}, function () {
|
|
timeout = window.setTimeout(function () {
|
|
$parent.removeClass('open');
|
|
$this.trigger(hideEvent);
|
|
}, settings.delay);
|
|
});
|
|
|
|
// this helps with button groups!
|
|
$this.hover(function () {
|
|
if(settings.instantlyCloseOthers === true)
|
|
$allDropdowns.removeClass('open');
|
|
|
|
window.clearTimeout(timeout);
|
|
$parent.addClass('open');
|
|
$this.trigger(showEvent);
|
|
});
|
|
|
|
// handle submenus
|
|
$parent.find('.dropdown-submenu').each(function (){
|
|
var $this = $(this);
|
|
var subTimeout;
|
|
$this.hover(function () {
|
|
window.clearTimeout(subTimeout);
|
|
$this.children('.dropdown-menu').show();
|
|
// always close submenu siblings instantly
|
|
$this.siblings().children('.dropdown-menu').hide();
|
|
}, function () {
|
|
var $submenu = $this.children('.dropdown-menu');
|
|
subTimeout = window.setTimeout(function () {
|
|
$submenu.hide();
|
|
}, settings.delay);
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
$(document).ready(function () {
|
|
// apply dropdownHover to all elements with the data-hover="dropdown" attribute
|
|
$('[data-hover="dropdown"]').dropdownHover();
|
|
});
|
|
})(jQuery, this);
|