ianheggie/cruisecontrol.rb

View on GitHub
public/javascripts/jquery-ui/development-bundle/ui/jquery.ui.datepicker.js

Summary

Maintainability
F
5 mos
Test Coverage

File jquery.ui.datepicker.js has 1503 lines of code (exceeds 250 allowed). Consider refactoring.
Open

/*!
 * jQuery UI Datepicker 1.8.21
 *
 * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.

    Function _generateHTML has 167 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        _generateHTML: function(inst) {
            var today = new Date();
            today = this._daylightSavingAdjust(
                new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
            var isRTL = this._get(inst, 'isRTL');

      Function parseDate has 131 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          parseDate: function (format, value, settings) {
              if (format == null || value == null)
                  throw 'Invalid arguments';
              value = (typeof value == 'object' ? value.toString() : value + '');
              if (value == '')

        Function Datepicker has 75 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        function Datepicker() {
            this.debug = false; // Change this to true to start debugging
            this._curInst = null; // The current instance in use
            this._keyEvent = false; // If the last event was a key event
            this._disabledInputs = []; // List of date picker inputs that have been disabled

          Function formatDate has 70 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              formatDate: function (format, date, settings) {
                  if (!date)
                      return '';
                  var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
                  var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;

            Function _showDatepicker has 68 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                _showDatepicker: function(input) {
                    input = input.target || input;
                    if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
                        input = $('input', input.parentNode)[0];
                    if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here

              Function _doKeyDown has 67 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  _doKeyDown: function(event) {
                      var inst = $.datepicker._getInst(event.target);
                      var handled = true;
                      var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
                      inst._keyEvent = true;

                Function _generateMonthYearHeader has 57 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                    _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
                            secondary, monthNames, monthNamesShort) {
                        var changeMonth = this._get(inst, 'changeMonth');
                        var changeYear = this._get(inst, 'changeYear');
                        var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');

                  Function _determineDate has 48 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                      _determineDate: function(inst, date, defaultDate) {
                          var offsetNumeric = function(offset) {
                              var date = new Date();
                              date.setDate(date.getDate() + offset);
                              return date;

                    Consider simplifying this complex logical expression.
                    Open

                            if ( ( ( $target[0].id != $.datepicker._mainDivId &&
                                    $target.parents('#' + $.datepicker._mainDivId).length == 0 &&
                                    !$target.hasClass($.datepicker.markerClassName) &&
                                    !$target.closest("." + $.datepicker._triggerClass).length &&
                                    $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) ||

                      Function _attachments has 35 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                          _attachments: function(input, inst) {
                              var appendText = this._get(inst, 'appendText');
                              var isRTL = this._get(inst, 'isRTL');
                              if (inst.append)
                                  inst.append.remove();

                        Function _dialogDatepicker has 33 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                            _dialogDatepicker: function(input, date, onSelect, settings, pos) {
                                var inst = this._dialogInst; // internal instance
                                if (!inst) {
                                    this.uuid += 1;
                                    var id = 'dp' + this.uuid;

                          Function _updateDatepicker has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                              _updateDatepicker: function(inst) {
                                  var self = this;
                                  self.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
                                  var borders = $.datepicker._getBorders(inst.dpDiv);
                                  instActive = inst; // for delegate hover events

                            Function _hideDatepicker has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                                _hideDatepicker: function(input) {
                                    var inst = this._curInst;
                                    if (!inst || (input && inst != $.data(input, PROP_NAME)))
                                        return;
                                    if (this._datepickerShowing) {

                              Function offsetString has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                              Open

                                      var offsetString = function(offset) {
                                          try {
                                              return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
                                                  offset, $.datepicker._getFormatConfig(inst));
                                          }

                                Function _possibleChars has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                                Open

                                    _possibleChars: function (format) {
                                        var chars = '';
                                        var literal = false;
                                        // Check whether a format character is doubled
                                        var lookAhead = function(match) {

                                  Function _optionDatepicker has 29 lines of code (exceeds 25 allowed). Consider refactoring.
                                  Open

                                      _optionDatepicker: function(target, name, value) {
                                          var inst = this._getInst(target);
                                          if (arguments.length == 2 && typeof name == 'string') {
                                              return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
                                                  (inst ? (name == 'all' ? $.extend({}, inst.settings) :

                                    Function _generateMonthYearHeader has 8 arguments (exceeds 4 allowed). Consider refactoring.
                                    Open

                                        _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
                                                secondary, monthNames, monthNamesShort) {

                                      Consider simplifying this complex logical expression.
                                      Open

                                              if ($.datepicker._datepickerShowing)
                                                  switch (event.keyCode) {
                                                      case 9: $.datepicker._hideDatepicker();
                                                              handled = false;
                                                              break; // hide on tab out

                                        Avoid deeply nested control flow statements.
                                        Open

                                                                    if (lookAhead("'"))
                                                                        output += "'";
                                                                    else
                                                                        literal = true;

                                          Avoid deeply nested control flow statements.
                                          Open

                                                                  switch (col) {
                                                                      case 0: calender += ' ui-datepicker-group-first';
                                                                          cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
                                                                      case numMonths[1]-1: calender += ' ui-datepicker-group-last';
                                                                          cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;

                                            Consider simplifying this complex logical expression.
                                            Open

                                                    if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
                                                            // #6694 - don't focus the input if it's already focused
                                                            // this breaks the change event in IE
                                                            inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
                                                        inst.input.focus();

                                              Function _dialogDatepicker has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                              Open

                                                  _dialogDatepicker: function(input, date, onSelect, settings, pos) {

                                                Similar blocks of code found in 2 locations. Consider refactoring.
                                                Open

                                                (function( $, undefined ) {
                                                
                                                $.extend($.ui, { datepicker: { version: "1.8.21" } });
                                                
                                                var PROP_NAME = 'datepicker';
                                                public/javascripts/jquery-ui/development-bundle/ui/jquery-ui-1.8.21.custom.js on lines 8310..10121

                                                Duplicated Code

                                                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                Tuning

                                                This issue has a mass of 21032.

                                                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                Refactorings

                                                Further Reading

                                                There are no issues that match your filters.

                                                Category
                                                Status