403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/admin/includes/ckeditor/filemanager/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/admin/includes/ckeditor/filemanager/scripts//filemanager.liveSearch.js
//qs_score - Quicksilver Score
//
//A port of the Quicksilver string ranking algorithm
//
//"hello world".score("axl") //=> 0.0
//"hello world".score("ow") //=> 0.6
//"hello world".score("hello world") //=> 1.0
//
//Tested in Firefox 2 and Safari 3
//
//The Quicksilver code is available here
//http://code.google.com/p/blacktree-alchemy/
//http://blacktree-alchemy.googlecode.com/svn/trunk/Crucible/Code/NSString+BLTRRanking.m
//
//The MIT License
//
//Copyright (c) 2008 Lachie Cox
//
//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.


String.prototype.score = function (abbreviation, offset) {
    offset = offset || 0 // TODO: I think this is unused... remove

    if (abbreviation.length == 0) return 0.9
    if (abbreviation.length > this.length) return 0.0

    for (var i = abbreviation.length; i > 0; i--) {
        var sub_abbreviation = abbreviation.substring(0, i)
        var index = this.indexOf(sub_abbreviation)


        if (index < 0) continue;
        if (index + abbreviation.length > this.length + offset) continue;

        var next_string = this.substring(index + sub_abbreviation.length)
        var next_abbreviation = null

        if (i >= abbreviation.length)
            next_abbreviation = ''
        else
            next_abbreviation = abbreviation.substring(i)

        var remaining_score = next_string.score(next_abbreviation, offset + index)

        if (remaining_score > 0) {
            var score = this.length - next_string.length;

            if (index != 0) {
                var j = 0;

                var c = this.charCodeAt(index - 1)
                if (c == 32 || c == 9) {
                    for (var j = (index - 2); j >= 0; j--) {
                        c = this.charCodeAt(j)
                        score -= ((c == 32 || c == 9) ? 1 : 0.15)
                    }

                    // XXX maybe not port this heuristic
                    // 
                    //          } else if ([[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[self characterAtIndex:matchedRange.location]]) {
                    //            for (j = matchedRange.location-1; j >= (int) searchRange.location; j--) {
                    //              if ([[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[self characterAtIndex:j]])
                    //                score--;
                    //              else
                    //                score -= 0.15;
                    //            }
                } else {
                    score -= index
                }
            }

            score += remaining_score * next_string.length
            score /= this.length;
            return score
        }
    }
    return 0.0
}


// Live search function taken from John Resig
// http://ejohn.org/blog/jquery-livesearch/
jQuery.fn.liveUpdate = function (list) {
    list = jQuery(list);

    // console.log(list);

    if (list.length) {
        // console.log(this);
        var rows = list.find('li > a'),
            cache = rows.map(function () {
                // console.log(this.innerHTML.toLowerCase());
                return this.innerHTML.toLowerCase();
            });

        this
            .keyup(filter).keyup()
            .parents('form').submit(function () {
            return false;
        });

    }

    return this;

    function filter() {
        var term = jQuery.trim(jQuery(this).val().toLowerCase()), scores = [];

        // we replace  space char with nothing since the score understand it	
        term = term.split(' ').join('');
        // console.log(term);

        if (!term) {
            rows.show();
            // update main window
            jQuery('#fileinfo ul#contents li').show();
            jQuery('#fileinfo table#contents td').parent().show();
        } else {
            rows.hide();
            // update main window
            jQuery('#fileinfo ul#contents li').hide();
            jQuery('#fileinfo table#contents td').parent().hide();


            cache.each(function (i) {
                var score = this.score(term);
                if (score > 0) {
                    scores.push([score, i]);
                }
            });


            jQuery.each(scores.sort(function (a, b) {
                return b[0] - a[0];
            }), function () {
                jQuery(rows[this[1]]).show();

            });

            // update main window
            jQuery('#filetree ul').find('li > a').each(function () {

                var rel = $(this).attr('rel');
                // console.log(rel);

                if ($(this).css('display') != 'none') {
                    jQuery('#fileinfo ul#contents li[title="' + rel + '"]').show();
                    jQuery('#fileinfo table#contents td[title="' + rel + '"]').parent().show();
                }
            });
            // update main window
        }
    }
};

$(document).ready(function () {

    // remove default label on focus
    $("#q").focus(function () {
        $("#search span.q-inactive").css('display', 'none');
    });
    // if we click label we remove it and give focus to text field
    $("#search span.q-inactive").click(function () {
        $(this).css('display', 'none');
        $("#q").focus();
    });

    // display default label if val == ""
    // if not, display reset button
    $("#q").bind('blur keyup', function () {
        if ($(this).val() == "") {
            $("#search span.q-inactive").css('display', 'inline');
            $("#search a.q-reset").css('display', 'none');
        } else {
            $("#search a.q-reset").css('display', 'inline-table');
        }
    });


    // handle reset action
    $("#search a.q-reset").click(function () {
        $("#q").val('');
        $('#q').liveUpdate('#filetree ul').blur();
        return false;
    });

    // disable search form submit
    $('#search').submit(function () {
        return false;
    });

    // field init
    $('#q').blur();
});

Youez - 2016 - github.com/yon3zu
LinuXploit