{"action":"created","comment":{"url":"https://api.github.com/repos/jquery/jquery-ui/pulls/comments/26932313","id":26932313,"diff_hunk":"@@ -30,389 +30,317 @@\n \t\t// Browser globals\n \t\tfactory( jQuery );\n \t}\n-}(function( $ ) {\n+}( function( $ ) {\n \n-var lastActive,\n-\tbaseClasses = \"ui-button ui-widget ui-state-default ui-corner-all\",\n-\ttypeClasses = \"ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only\",\n-\tformResetHandler = function() {\n+var formResetHandler = function() {\n \t\tvar form = $( this );\n-\t\tsetTimeout(function() {\n-\t\t\tform.find( \":ui-button\" ).button( \"refresh\" );\n-\t\t}, 1 );\n+\n+\t\t// Wait for the form reset to actually happen before refreshing\n+\t\tsetTimeout( function() {\n+\n+\t\t\t// We find .ui-button first then filter by :ui-button because doing a\n+\t\t\t// widget pseudo selectors are very very slow but we need to filter out\n+\t\t\t// css only buttons\n+\t\t\tform.find( \".ui-button\" ).filter( \":ui-button\" ).button( \"refresh\" );\n+\t\t} );\n \t},\n-\tradioGroup = function( radio ) {\n-\t\tvar name = radio.name,\n-\t\t\tform = radio.form,\n-\t\t\tradios = $( [] );\n-\t\tif ( name ) {\n-\t\t\tname = name.replace( /'/g, \"\\\\'\" );\n-\t\t\tif ( form ) {\n-\t\t\t\tradios = $( form ).find( \"[name='\" + name + \"'][type=radio]\" );\n-\t\t\t} else {\n-\t\t\t\tradios = $( \"[name='\" + name + \"'][type=radio]\", radio.ownerDocument )\n-\t\t\t\t\t.filter(function() {\n-\t\t\t\t\t\treturn !this.form;\n-\t\t\t\t\t});\n-\t\t\t}\n-\t\t}\n-\t\treturn radios;\n-\t};\n+\tbuttonCount = 0;\n \n $.widget( \"ui.button\", {\n \tversion: \"@VERSION\",\n \tdefaultElement: \"<button>\",\n \toptions: {\n \t\tdisabled: null,\n-\t\ttext: true,\n+\t\tshowLabel: true,\n \t\tlabel: null,\n-\t\ticons: {\n-\t\t\tprimary: null,\n-\t\t\tsecondary: null\n+\t\ticon: null,\n+\t\ticonPosition: \"beginning\",\n+\t\tclasses: {\n+\t\t\t\"ui-button\": \"ui-corner-all\"\n \t\t}\n \t},\n-\t_create: function() {\n-\t\tthis.element.closest( \"form\" )\n-\t\t\t.unbind( \"reset\" + this.eventNamespace )\n-\t\t\t.bind( \"reset\" + this.eventNamespace, formResetHandler );\n \n-\t\tif ( typeof this.options.disabled !== \"boolean\" ) {\n-\t\t\tthis.options.disabled = !!this.element.prop( \"disabled\" );\n-\t\t} else {\n-\t\t\tthis.element.prop( \"disabled\", this.options.disabled );\n-\t\t}\n+\t_getCreateOptions: function() {\n+\t\tvar disabled,\n+\t\t\toptions = this._super() || {};\n \n-\t\tthis._determineButtonType();\n-\t\tthis.hasTitle = !!this.buttonElement.attr( \"title\" );\n+\t\tthis.isInput = this.element.is( \"input\" );\n \n-\t\tvar that = this,\n-\t\t\toptions = this.options,\n-\t\t\ttoggleButton = this.type === \"checkbox\" || this.type === \"radio\",\n-\t\t\tactiveClass = !toggleButton ? \"ui-state-active\" : \"\";\n-\n-\t\tif ( options.label === null ) {\n-\t\t\toptions.label = (this.type === \"input\" ? this.buttonElement.val() : this.buttonElement.html());\n+\t\tdisabled = this.element[ 0 ].disabled;\n+\t\tif ( disabled != null ) {\n+\t\t\toptions.disabled = disabled;\n \t\t}\n \n-\t\tthis._hoverable( this.buttonElement );\n+\t\tthis.originalLabel = this.isInput ? this.element.val() : this.element.html();\n+\t\tif ( this.originalLabel ) {\n+\t\t\toptions.label = this.originalLabel;\n+\t\t}\n \n-\t\tthis.buttonElement\n-\t\t\t.addClass( baseClasses )\n-\t\t\t.attr( \"role\", \"button\" )\n-\t\t\t.bind( \"mouseenter\" + this.eventNamespace, function() {\n-\t\t\t\tif ( options.disabled ) {\n-\t\t\t\t\treturn;\n-\t\t\t\t}\n-\t\t\t\tif ( this === lastActive ) {\n-\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\n-\t\t\t\t}\n-\t\t\t})\n-\t\t\t.bind( \"mouseleave\" + this.eventNamespace, function() {\n-\t\t\t\tif ( options.disabled ) {\n-\t\t\t\t\treturn;\n-\t\t\t\t}\n-\t\t\t\t$( this ).removeClass( activeClass );\n-\t\t\t})\n-\t\t\t.bind( \"click\" + this.eventNamespace, function( event ) {\n-\t\t\t\tif ( options.disabled ) {\n-\t\t\t\t\tevent.preventDefault();\n-\t\t\t\t\tevent.stopImmediatePropagation();\n-\t\t\t\t}\n-\t\t\t});\n-\n-\t\t// Can't use _focusable() because the element that receives focus\n-\t\t// and the element that gets the ui-state-focus class are different\n-\t\tthis._on({\n-\t\t\tfocus: function() {\n-\t\t\t\tthis.buttonElement.addClass( \"ui-state-focus\" );\n-\t\t\t},\n-\t\t\tblur: function() {\n-\t\t\t\tthis.buttonElement.removeClass( \"ui-state-focus\" );\n-\t\t\t}\n-\t\t});\n+\t\treturn options;\n+\t},\n \n-\t\tif ( toggleButton ) {\n-\t\t\tthis.element.bind( \"change\" + this.eventNamespace, function() {\n-\t\t\t\tthat.refresh();\n-\t\t\t});\n+\t_create: function() {\n+\t\tthis.formElement = $( this.element[ 0 ].form );\n+\n+\t\t// We don't use _on and _off here because we want all the buttons in the same form to use\n+\t\t// single handler which handles all the button widgets in the form\n+\t\tthis.formElement.off( \"reset.\" + this.widgetFullName, formResetHandler );\n+\t\tthis.formElement.on( \"reset.\" + this.widgetFullName, formResetHandler );\n+\t\tbuttonCount++;\n+\n+\t\t// We have to check the option again here even though we did in _getCreateOptions\n+\t\t// because null may have been passed on init which would override what was set in\n+\t\t// _getCreateOptions\n+\t\tif ( this.options.disabled == null ) {\n+\t\t\tthis.options.disabled = this.element[ 0 ].disabled || false;\n \t\t}\n \n-\t\tif ( this.type === \"checkbox\" ) {\n-\t\t\tthis.buttonElement.bind( \"click\" + this.eventNamespace, function() {\n-\t\t\t\tif ( options.disabled ) {\n-\t\t\t\t\treturn false;\n-\t\t\t\t}\n-\t\t\t});\n-\t\t} else if ( this.type === \"radio\" ) {\n-\t\t\tthis.buttonElement.bind( \"click\" + this.eventNamespace, function() {\n-\t\t\t\tif ( options.disabled ) {\n-\t\t\t\t\treturn false;\n-\t\t\t\t}\n-\t\t\t\t$( this ).addClass( \"ui-state-active\" );\n-\t\t\t\tthat.buttonElement.attr( \"aria-pressed\", \"true\" );\n-\n-\t\t\t\tvar radio = that.element[ 0 ];\n-\t\t\t\tradioGroup( radio )\n-\t\t\t\t\t.not( radio )\n-\t\t\t\t\t.map(function() {\n-\t\t\t\t\t\treturn $( this ).button( \"widget\" )[ 0 ];\n-\t\t\t\t\t})\n-\t\t\t\t\t.removeClass( \"ui-state-active\" )\n-\t\t\t\t\t.attr( \"aria-pressed\", \"false\" );\n-\t\t\t});\n-\t\t} else {\n-\t\t\tthis.buttonElement\n-\t\t\t\t.bind( \"mousedown\" + this.eventNamespace, function() {\n-\t\t\t\t\tif ( options.disabled ) {\n-\t\t\t\t\t\treturn false;\n-\t\t\t\t\t}\n-\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\n-\t\t\t\t\tlastActive = this;\n-\t\t\t\t\tthat.document.one( \"mouseup\", function() {\n-\t\t\t\t\t\tlastActive = null;\n-\t\t\t\t\t});\n-\t\t\t\t})\n-\t\t\t\t.bind( \"mouseup\" + this.eventNamespace, function() {\n-\t\t\t\t\tif ( options.disabled ) {\n-\t\t\t\t\t\treturn false;\n-\t\t\t\t\t}\n-\t\t\t\t\t$( this ).removeClass( \"ui-state-active\" );\n-\t\t\t\t})\n-\t\t\t\t.bind( \"keydown\" + this.eventNamespace, function(event) {\n-\t\t\t\t\tif ( options.disabled ) {\n-\t\t\t\t\t\treturn false;\n-\t\t\t\t\t}\n-\t\t\t\t\tif ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) {\n-\t\t\t\t\t\t$( this ).addClass( \"ui-state-active\" );\n-\t\t\t\t\t}\n-\t\t\t\t})\n-\t\t\t\t// see #8559, we bind to blur here in case the button element loses\n-\t\t\t\t// focus between keydown and keyup, it would be left in an \"active\" state\n-\t\t\t\t.bind( \"keyup\" + this.eventNamespace + \" blur\" + this.eventNamespace, function() {\n-\t\t\t\t\t$( this ).removeClass( \"ui-state-active\" );\n-\t\t\t\t});\n-\n-\t\t\tif ( this.buttonElement.is(\"a\") ) {\n-\t\t\t\tthis.buttonElement.keyup(function(event) {\n+\t\tthis.hasTitle = this.element.attr( \"title\" );\n+\t\tthis._enhance();\n+\n+\t\tif ( this.element.is( \"a\" ) ) {\n+\t\t\tthis._on( {\n+\t\t\t\t\"keyup\": function( event ) {\n \t\t\t\t\tif ( event.keyCode === $.ui.keyCode.SPACE ) {\n-\t\t\t\t\t\t// TODO pass through original event correctly (just as 2nd argument doesn't work)\n-\t\t\t\t\t\t$( this ).click();\n+\t\t\t\t\t\tevent.preventDefault();\n+\t\t\t\t\t\tthis.element[ 0 ].click();\n \t\t\t\t\t}\n-\t\t\t\t});\n-\t\t\t}\n+\t\t\t\t}\n+\t\t\t} );\n \t\t}\n+\t},\n+\n+\t_enhance: function() {\n+\t\tthis._setOption( \"disabled\", this.options.disabled );\n \n-\t\tthis._setOption( \"disabled\", options.disabled );\n-\t\tthis._resetButton();\n+\t\tthis._addClass( \"ui-button\", \" ui-widget\" );\n+\t\tthis.element.attr( \"role\", \"button\" );\n+\n+\t\t// Check to see if the label needs to be set or if its already correct\n+\t\tif ( this.options.label && this.options.label !== this.originalLabel ) {\n+\t\t\tif ( this.isInput ) {\n+\t\t\t\tthis.element.val( this.options.label );\n+\t\t\t} else {\n+\t\t\t\tthis.element.html( this.options.label );\n+\t\t\t}\n+\t\t}\n+\t\tif ( this.options.icon ) {\n+\t\t\tthis._updateIcon( this.options.icon )._updateTooltip();\n+\t\t}\n \t},\n \n-\t_determineButtonType: function() {\n-\t\tvar ancestor, labelSelector, checked;\n+\t_updateTooltip: function() {\n+\t\tthis.title = this.element.attr( \"title\" );\n \n-\t\tif ( this.element.is(\"[type=checkbox]\") ) {\n-\t\t\tthis.type = \"checkbox\";\n-\t\t} else if ( this.element.is(\"[type=radio]\") ) {\n-\t\t\tthis.type = \"radio\";\n-\t\t} else if ( this.element.is(\"input\") ) {\n-\t\t\tthis.type = \"input\";\n-\t\t} else {\n-\t\t\tthis.type = \"button\";\n+\t\tif ( !this.options.showLabel && !this.title ) {\n+\t\t\tthis.element.attr( \"title\", this.options.label );\n \t\t}\n+\t},\n \n-\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n-\t\t\t// we don't search against the document in case the element\n-\t\t\t// is disconnected from the DOM\n-\t\t\tancestor = this.element.parents().last();\n-\t\t\tlabelSelector = \"label[for='\" + this.element.attr(\"id\") + \"']\";\n-\t\t\tthis.buttonElement = ancestor.find( labelSelector );\n-\t\t\tif ( !this.buttonElement.length ) {\n-\t\t\t\tancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();\n-\t\t\t\tthis.buttonElement = ancestor.filter( labelSelector );\n-\t\t\t\tif ( !this.buttonElement.length ) {\n-\t\t\t\t\tthis.buttonElement = ancestor.find( labelSelector );\n-\t\t\t\t}\n-\t\t\t}\n-\t\t\tthis.element.addClass( \"ui-helper-hidden-accessible\" );\n+\t_updateIcon: function( icon ) {\n+\t\tvar prepend = ( this.options.iconPosition === \"top\" || this.options.iconPosition === \"beginning\" ),\n+\t\t\tdisplayBlock = ( this.options.iconPosition === \"top\" ||\n+\t\t\t\tthis.options.iconPosition === \"bottom\" );\n+\t\tif ( !this.icon ) {\n+\t\t\tthis.icon = $( \"<span>\" );\n+\t\t\tthis.iconSpace = $( \"<span> </span>\" );\n+\n+\t\t\tthis._addClass( this.icon, \"ui-button-icon\", \" ui-icon\" );\n \n-\t\t\tchecked = this.element.is( \":checked\" );\n-\t\t\tif ( checked ) {\n-\t\t\t\tthis.buttonElement.addClass( \"ui-state-active\" );\n+\t\t\tif ( !this.options.showLabel ) {\n+\t\t\t\tthis._addClass( \"ui-button-icon-only\" );\n+\t\t\t} else if ( displayBlock ) {\n+\t\t\t\tthis._addClass( this.icon, null, \"ui-icon-display-block\" );\n \t\t\t}\n-\t\t\tthis.buttonElement.prop( \"aria-pressed\", checked );\n \t\t} else {\n-\t\t\tthis.buttonElement = this.element;\n+\t\t\tthis._removeClass( this.icon, null, this.options.icon );\n \t\t}\n-\t},\n-\n-\twidget: function() {\n-\t\treturn this.buttonElement;\n+\t\tthis._addClass( this.icon, null, icon );\n+\t\tthis.icon[ prepend ? \"prependTo\" : \"appendTo\" ]( this.element );\n+\t\tif ( !displayBlock ) {\n+\t\t\tthis.icon[ prepend ? \"after\" : \"before\" ]( this.iconSpace );\n+\t\t}\n+\t\treturn this;\n \t},\n \n \t_destroy: function() {\n-\t\tthis.element\n-\t\t\t.removeClass( \"ui-helper-hidden-accessible\" );\n-\t\tthis.buttonElement\n-\t\t\t.removeClass( baseClasses + \" ui-state-active \" + typeClasses )\n-\t\t\t.removeAttr( \"role aria-pressed\" )\n-\t\t\t.html( this.buttonElement.find(\".ui-button-text\").html() );\n+\t\tthis.element.removeAttr( \"role\" );\n \n+\t\tif ( this.icon ) {\n+\t\t\tthis.icon.remove();\n+\t\t\tthis.iconSpace.remove();\n+\t\t}\n \t\tif ( !this.hasTitle ) {\n-\t\t\tthis.buttonElement.removeAttr( \"title\" );\n+\t\t\tthis.element.removeAttr( \"title\" );\n+\t\t}\n+\t\tbuttonCount--;\n+\t\tif ( buttonCount === 0 ) {\n+\t\t\tthis.formElement.off( \"reset.\" + this.widgetFullName, formResetHandler );\n \t\t}\n \t},\n \n \t_setOption: function( key, value ) {\n+\t\tvar iconGroup,\n+\t\t\tprepend = ( this.options.iconPosition === \"top\" || this.options.iconPosition === \"beginning\" );","path":"ui/button.js","position":358,"original_position":358,"commit_id":"31a34bdcddf7a9a072e5f1aa08cdb5a7a7ea9828","original_commit_id":"31a34bdcddf7a9a072e5f1aa08cdb5a7a7ea9828","user":{"login":"jzaefferer","id":52585,"avatar_url":"https://avatars.githubusercontent.com/u/52585?v=3","gravatar_id":"","url":"https://api.github.com/users/jzaefferer","html_url":"https://github.com/jzaefferer","followers_url":"https://api.github.com/users/jzaefferer/followers","following_url":"https://api.github.com/users/jzaefferer/following{/other_user}","gists_url":"https://api.github.com/users/jzaefferer/gists{/gist_id}","starred_url":"https://api.github.com/users/jzaefferer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jzaefferer/subscriptions","organizations_url":"https://api.github.com/users/jzaefferer/orgs","repos_url":"https://api.github.com/users/jzaefferer/repos","events_url":"https://api.github.com/users/jzaefferer/events{/privacy}","received_events_url":"https://api.github.com/users/jzaefferer/received_events","type":"User","site_admin":false},"body":"Line to long, let's fix by extracting a helper method and reuse it elsewhere.","created_at":"2015-03-23T12:35:01Z","updated_at":"2015-03-23T12:35:01Z","html_url":"https://github.com/jquery/jquery-ui/pull/1513#discussion_r26932313","pull_request_url":"https://api.github.com/repos/jquery/jquery-ui/pulls/1513","_links":{"self":{"href":"https://api.github.com/repos/jquery/jquery-ui/pulls/comments/26932313"},"html":{"href":"https://github.com/jquery/jquery-ui/pull/1513#discussion_r26932313"},"pull_request":{"href":"https://api.github.com/repos/jquery/jquery-ui/pulls/1513"}}},"pull_request":{"url":"https://api.github.com/repos/jquery/jquery-ui/pulls/1513","id":31532936,"html_url":"https://github.com/jquery/jquery-ui/pull/1513","diff_url":"https://github.com/jquery/jquery-ui/pull/1513.diff","patch_url":"https://github.com/jquery/jquery-ui/pull/1513.patch","issue_url":"https://api.github.com/repos/jquery/jquery-ui/issues/1513","number":1513,"state":"open","locked":false,"title":"Button Re-write","user":{"login":"arschmitz","id":462993,"avatar_url":"https://avatars.githubusercontent.com/u/462993?v=3","gravatar_id":"","url":"https://api.github.com/users/arschmitz","html_url":"https://github.com/arschmitz","followers_url":"https://api.github.com/users/arschmitz/followers","following_url":"https://api.github.com/users/arschmitz/following{/other_user}","gists_url":"https://api.github.com/users/arschmitz/gists{/gist_id}","starred_url":"https://api.github.com/users/arschmitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arschmitz/subscriptions","organizations_url":"https://api.github.com/users/arschmitz/orgs","repos_url":"https://api.github.com/users/arschmitz/repos","events_url":"https://api.github.com/users/arschmitz/events{/privacy}","received_events_url":"https://api.github.com/users/arschmitz/received_events","type":"User","site_admin":false},"body":"Replaces #1415","created_at":"2015-03-19T15:16:16Z","updated_at":"2015-03-23T12:35:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a0bd655d69caa1021196712fe3db17f6ee7d2e46","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jquery/jquery-ui/pulls/1513/commits","review_comments_url":"https://api.github.com/repos/jquery/jquery-ui/pulls/1513/comments","review_comment_url":"https://api.github.com/repos/jquery/jquery-ui/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jquery/jquery-ui/issues/1513/comments","statuses_url":"https://api.github.com/repos/jquery/jquery-ui/statuses/31a34bdcddf7a9a072e5f1aa08cdb5a7a7ea9828","head":{"label":"arschmitz:button-fixup","ref":"button-fixup","sha":"31a34bdcddf7a9a072e5f1aa08cdb5a7a7ea9828","user":{"login":"arschmitz","id":462993,"avatar_url":"https://avatars.githubusercontent.com/u/462993?v=3","gravatar_id":"","url":"https://api.github.com/users/arschmitz","html_url":"https://github.com/arschmitz","followers_url":"https://api.github.com/users/arschmitz/followers","following_url":"https://api.github.com/users/arschmitz/following{/other_user}","gists_url":"https://api.github.com/users/arschmitz/gists{/gist_id}","starred_url":"https://api.github.com/users/arschmitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arschmitz/subscriptions","organizations_url":"https://api.github.com/users/arschmitz/orgs","repos_url":"https://api.github.com/users/arschmitz/repos","events_url":"https://api.github.com/users/arschmitz/events{/privacy}","received_events_url":"https://api.github.com/users/arschmitz/received_events","type":"User","site_admin":false},"repo":{"id":4218107,"name":"jquery-ui","full_name":"arschmitz/jquery-ui","owner":{"login":"arschmitz","id":462993,"avatar_url":"https://avatars.githubusercontent.com/u/462993?v=3","gravatar_id":"","url":"https://api.github.com/users/arschmitz","html_url":"https://github.com/arschmitz","followers_url":"https://api.github.com/users/arschmitz/followers","following_url":"https://api.github.com/users/arschmitz/following{/other_user}","gists_url":"https://api.github.com/users/arschmitz/gists{/gist_id}","starred_url":"https://api.github.com/users/arschmitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arschmitz/subscriptions","organizations_url":"https://api.github.com/users/arschmitz/orgs","repos_url":"https://api.github.com/users/arschmitz/repos","events_url":"https://api.github.com/users/arschmitz/events{/privacy}","received_events_url":"https://api.github.com/users/arschmitz/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/arschmitz/jquery-ui","description":"The official jQuery user interface library.","fork":true,"url":"https://api.github.com/repos/arschmitz/jquery-ui","forks_url":"https://api.github.com/repos/arschmitz/jquery-ui/forks","keys_url":"https://api.github.com/repos/arschmitz/jquery-ui/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arschmitz/jquery-ui/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arschmitz/jquery-ui/teams","hooks_url":"https://api.github.com/repos/arschmitz/jquery-ui/hooks","issue_events_url":"https://api.github.com/repos/arschmitz/jquery-ui/issues/events{/number}","events_url":"https://api.github.com/repos/arschmitz/jquery-ui/events","assignees_url":"https://api.github.com/repos/arschmitz/jquery-ui/assignees{/user}","branches_url":"https://api.github.com/repos/arschmitz/jquery-ui/branches{/branch}","tags_url":"https://api.github.com/repos/arschmitz/jquery-ui/tags","blobs_url":"https://api.github.com/repos/arschmitz/jquery-ui/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arschmitz/jquery-ui/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arschmitz/jquery-ui/git/refs{/sha}","trees_url":"https://api.github.com/repos/arschmitz/jquery-ui/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arschmitz/jquery-ui/statuses/{sha}","languages_url":"https://api.github.com/repos/arschmitz/jquery-ui/languages","stargazers_url":"https://api.github.com/repos/arschmitz/jquery-ui/stargazers","contributors_url":"https://api.github.com/repos/arschmitz/jquery-ui/contributors","subscribers_url":"https://api.github.com/repos/arschmitz/jquery-ui/subscribers","subscription_url":"https://api.github.com/repos/arschmitz/jquery-ui/subscription","commits_url":"https://api.github.com/repos/arschmitz/jquery-ui/commits{/sha}","git_commits_url":"https://api.github.com/repos/arschmitz/jquery-ui/git/commits{/sha}","comments_url":"https://api.github.com/repos/arschmitz/jquery-ui/comments{/number}","issue_comment_url":"https://api.github.com/repos/arschmitz/jquery-ui/issues/comments{/number}","contents_url":"https://api.github.com/repos/arschmitz/jquery-ui/contents/{+path}","compare_url":"https://api.github.com/repos/arschmitz/jquery-ui/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arschmitz/jquery-ui/merges","archive_url":"https://api.github.com/repos/arschmitz/jquery-ui/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arschmitz/jquery-ui/downloads","issues_url":"https://api.github.com/repos/arschmitz/jquery-ui/issues{/number}","pulls_url":"https://api.github.com/repos/arschmitz/jquery-ui/pulls{/number}","milestones_url":"https://api.github.com/repos/arschmitz/jquery-ui/milestones{/number}","notifications_url":"https://api.github.com/repos/arschmitz/jquery-ui/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arschmitz/jquery-ui/labels{/name}","releases_url":"https://api.github.com/repos/arschmitz/jquery-ui/releases{/id}","created_at":"2012-05-03T19:57:50Z","updated_at":"2015-01-15T14:40:40Z","pushed_at":"2015-03-19T19:29:18Z","git_url":"git://github.com/arschmitz/jquery-ui.git","ssh_url":"git@github.com:arschmitz/jquery-ui.git","clone_url":"https://github.com/arschmitz/jquery-ui.git","svn_url":"https://github.com/arschmitz/jquery-ui","homepage":"http://jqueryui.com/","size":25606,"stargazers_count":1,"watchers_count":1,"language":"JavaScript","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"jquery:master","ref":"master","sha":"1696405c09a4308ed2f17fff410907e3989b59c0","user":{"login":"jquery","id":70142,"avatar_url":"https://avatars.githubusercontent.com/u/70142?v=3","gravatar_id":"","url":"https://api.github.com/users/jquery","html_url":"https://github.com/jquery","followers_url":"https://api.github.com/users/jquery/followers","following_url":"https://api.github.com/users/jquery/following{/other_user}","gists_url":"https://api.github.com/users/jquery/gists{/gist_id}","starred_url":"https://api.github.com/users/jquery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jquery/subscriptions","organizations_url":"https://api.github.com/users/jquery/orgs","repos_url":"https://api.github.com/users/jquery/repos","events_url":"https://api.github.com/users/jquery/events{/privacy}","received_events_url":"https://api.github.com/users/jquery/received_events","type":"Organization","site_admin":false},"repo":{"id":478996,"name":"jquery-ui","full_name":"jquery/jquery-ui","owner":{"login":"jquery","id":70142,"avatar_url":"https://avatars.githubusercontent.com/u/70142?v=3","gravatar_id":"","url":"https://api.github.com/users/jquery","html_url":"https://github.com/jquery","followers_url":"https://api.github.com/users/jquery/followers","following_url":"https://api.github.com/users/jquery/following{/other_user}","gists_url":"https://api.github.com/users/jquery/gists{/gist_id}","starred_url":"https://api.github.com/users/jquery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jquery/subscriptions","organizations_url":"https://api.github.com/users/jquery/orgs","repos_url":"https://api.github.com/users/jquery/repos","events_url":"https://api.github.com/users/jquery/events{/privacy}","received_events_url":"https://api.github.com/users/jquery/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jquery/jquery-ui","description":"The official jQuery user interface library.","fork":false,"url":"https://api.github.com/repos/jquery/jquery-ui","forks_url":"https://api.github.com/repos/jquery/jquery-ui/forks","keys_url":"https://api.github.com/repos/jquery/jquery-ui/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jquery/jquery-ui/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jquery/jquery-ui/teams","hooks_url":"https://api.github.com/repos/jquery/jquery-ui/hooks","issue_events_url":"https://api.github.com/repos/jquery/jquery-ui/issues/events{/number}","events_url":"https://api.github.com/repos/jquery/jquery-ui/events","assignees_url":"https://api.github.com/repos/jquery/jquery-ui/assignees{/user}","branches_url":"https://api.github.com/repos/jquery/jquery-ui/branches{/branch}","tags_url":"https://api.github.com/repos/jquery/jquery-ui/tags","blobs_url":"https://api.github.com/repos/jquery/jquery-ui/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jquery/jquery-ui/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jquery/jquery-ui/git/refs{/sha}","trees_url":"https://api.github.com/repos/jquery/jquery-ui/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jquery/jquery-ui/statuses/{sha}","languages_url":"https://api.github.com/repos/jquery/jquery-ui/languages","stargazers_url":"https://api.github.com/repos/jquery/jquery-ui/stargazers","contributors_url":"https://api.github.com/repos/jquery/jquery-ui/contributors","subscribers_url":"https://api.github.com/repos/jquery/jquery-ui/subscribers","subscription_url":"https://api.github.com/repos/jquery/jquery-ui/subscription","commits_url":"https://api.github.com/repos/jquery/jquery-ui/commits{/sha}","git_commits_url":"https://api.github.com/repos/jquery/jquery-ui/git/commits{/sha}","comments_url":"https://api.github.com/repos/jquery/jquery-ui/comments{/number}","issue_comment_url":"https://api.github.com/repos/jquery/jquery-ui/issues/comments{/number}","contents_url":"https://api.github.com/repos/jquery/jquery-ui/contents/{+path}","compare_url":"https://api.github.com/repos/jquery/jquery-ui/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jquery/jquery-ui/merges","archive_url":"https://api.github.com/repos/jquery/jquery-ui/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jquery/jquery-ui/downloads","issues_url":"https://api.github.com/repos/jquery/jquery-ui/issues{/number}","pulls_url":"https://api.github.com/repos/jquery/jquery-ui/pulls{/number}","milestones_url":"https://api.github.com/repos/jquery/jquery-ui/milestones{/number}","notifications_url":"https://api.github.com/repos/jquery/jquery-ui/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jquery/jquery-ui/labels{/name}","releases_url":"https://api.github.com/repos/jquery/jquery-ui/releases{/id}","created_at":"2010-01-19T14:40:34Z","updated_at":"2015-03-23T09:04:23Z","pushed_at":"2015-03-23T05:39:39Z","git_url":"git://github.com/jquery/jquery-ui.git","ssh_url":"git@github.com:jquery/jquery-ui.git","clone_url":"https://github.com/jquery/jquery-ui.git","svn_url":"https://github.com/jquery/jquery-ui","homepage":"http://jqueryui.com/","size":47300,"stargazers_count":8798,"watchers_count":8798,"language":"JavaScript","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":3395,"mirror_url":null,"open_issues_count":19,"forks":3395,"open_issues":19,"watchers":8798,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jquery/jquery-ui/pulls/1513"},"html":{"href":"https://github.com/jquery/jquery-ui/pull/1513"},"issue":{"href":"https://api.github.com/repos/jquery/jquery-ui/issues/1513"},"comments":{"href":"https://api.github.com/repos/jquery/jquery-ui/issues/1513/comments"},"review_comments":{"href":"https://api.github.com/repos/jquery/jquery-ui/pulls/1513/comments"},"review_comment":{"href":"https://api.github.com/repos/jquery/jquery-ui/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jquery/jquery-ui/pulls/1513/commits"},"statuses":{"href":"https://api.github.com/repos/jquery/jquery-ui/statuses/31a34bdcddf7a9a072e5f1aa08cdb5a7a7ea9828"}}}}