{"action":"closed","number":7460,"pull_request":{"url":"https://api.github.com/repos/joomla/joomla-cms/pulls/7460","id":40291367,"html_url":"https://github.com/joomla/joomla-cms/pull/7460","diff_url":"https://github.com/joomla/joomla-cms/pull/7460.diff","patch_url":"https://github.com/joomla/joomla-cms/pull/7460.patch","issue_url":"https://api.github.com/repos/joomla/joomla-cms/issues/7460","number":7460,"state":"closed","locked":false,"title":"JavaScript validation performance (2)","user":{"login":"Fedik","id":1568198,"avatar_url":"https://avatars.githubusercontent.com/u/1568198?v=3","gravatar_id":"","url":"https://api.github.com/users/Fedik","html_url":"https://github.com/Fedik","followers_url":"https://api.github.com/users/Fedik/followers","following_url":"https://api.github.com/users/Fedik/following{/other_user}","gists_url":"https://api.github.com/users/Fedik/gists{/gist_id}","starred_url":"https://api.github.com/users/Fedik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fedik/subscriptions","organizations_url":"https://api.github.com/users/Fedik/orgs","repos_url":"https://api.github.com/users/Fedik/repos","events_url":"https://api.github.com/users/Fedik/events{/privacy}","received_events_url":"https://api.github.com/users/Fedik/received_events","type":"User","site_admin":false},"body":"This pull speed up the form validation by ignoring fields: `rules`, `filters`, `assigned` as they do not need to be validated anyway.\r\n\r\nResults on default test installation:\r\nBefore (in edit module form):\r\n![screen 2015-07-18 14 18 27 1064x359](https://cloud.githubusercontent.com/assets/1568198/8761537/d239225a-2d5e-11e5-9a8e-80b8344e5ea5.png)\r\nValidate take 4ms\r\n\r\nAfter (in edit module form):\r\n![screen 2015-07-18 14 18 46 1071x358](https://cloud.githubusercontent.com/assets/1568198/8761539/da5678d4-2d5e-11e5-932a-a1ed39ea3cd2.png)\r\nValidate take 2ms\r\n\r\nI count time between push Save button (validation start) and form submit (validation finished).\r\n\r\nIn result (on default test installation) I get 2 times faster validation, but main target is users who have hundreds of User groups.\r\n\r\n**Test**\r\nCreate 200 user groups and compare performance on save the Global Configuration and any Module form.\r\nAlso test other forms (on frontend also), whether they still work as expected\r\n\r\n**UPD**: Graph with the final result in that comment https://github.com/joomla/joomla-cms/pull/7460#issuecomment-122641687\r\n","created_at":"2015-07-18T12:18:21Z","updated_at":"2016-04-21T17:42:19Z","closed_at":"2016-04-21T17:42:19Z","merged_at":"2016-04-21T17:42:19Z","merge_commit_sha":"de453c18b41fc502f5738eb40bdcc4607191680f","assignee":null,"milestone":{"url":"https://api.github.com/repos/joomla/joomla-cms/milestones/14","html_url":"https://github.com/joomla/joomla-cms/milestones/Joomla%203.5.2","labels_url":"https://api.github.com/repos/joomla/joomla-cms/milestones/14/labels","id":1659748,"number":14,"title":"Joomla 3.5.2","description":"","creator":{"login":"brianteeman","id":1296369,"avatar_url":"https://avatars.githubusercontent.com/u/1296369?v=3","gravatar_id":"","url":"https://api.github.com/users/brianteeman","html_url":"https://github.com/brianteeman","followers_url":"https://api.github.com/users/brianteeman/followers","following_url":"https://api.github.com/users/brianteeman/following{/other_user}","gists_url":"https://api.github.com/users/brianteeman/gists{/gist_id}","starred_url":"https://api.github.com/users/brianteeman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianteeman/subscriptions","organizations_url":"https://api.github.com/users/brianteeman/orgs","repos_url":"https://api.github.com/users/brianteeman/repos","events_url":"https://api.github.com/users/brianteeman/events{/privacy}","received_events_url":"https://api.github.com/users/brianteeman/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":180,"state":"open","created_at":"2016-03-22T13:52:19Z","updated_at":"2016-04-21T17:42:19Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/joomla/joomla-cms/pulls/7460/commits","review_comments_url":"https://api.github.com/repos/joomla/joomla-cms/pulls/7460/comments","review_comment_url":"https://api.github.com/repos/joomla/joomla-cms/pulls/comments{/number}","comments_url":"https://api.github.com/repos/joomla/joomla-cms/issues/7460/comments","statuses_url":"https://api.github.com/repos/joomla/joomla-cms/statuses/8e5178c39b6b2c1ce0aa705978d2573db4df64a5","head":{"label":"Fedik:validation-performance2","ref":"validation-performance2","sha":"8e5178c39b6b2c1ce0aa705978d2573db4df64a5","user":{"login":"Fedik","id":1568198,"avatar_url":"https://avatars.githubusercontent.com/u/1568198?v=3","gravatar_id":"","url":"https://api.github.com/users/Fedik","html_url":"https://github.com/Fedik","followers_url":"https://api.github.com/users/Fedik/followers","following_url":"https://api.github.com/users/Fedik/following{/other_user}","gists_url":"https://api.github.com/users/Fedik/gists{/gist_id}","starred_url":"https://api.github.com/users/Fedik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fedik/subscriptions","organizations_url":"https://api.github.com/users/Fedik/orgs","repos_url":"https://api.github.com/users/Fedik/repos","events_url":"https://api.github.com/users/Fedik/events{/privacy}","received_events_url":"https://api.github.com/users/Fedik/received_events","type":"User","site_admin":false},"repo":{"id":7179494,"name":"joomla-cms","full_name":"Fedik/joomla-cms","owner":{"login":"Fedik","id":1568198,"avatar_url":"https://avatars.githubusercontent.com/u/1568198?v=3","gravatar_id":"","url":"https://api.github.com/users/Fedik","html_url":"https://github.com/Fedik","followers_url":"https://api.github.com/users/Fedik/followers","following_url":"https://api.github.com/users/Fedik/following{/other_user}","gists_url":"https://api.github.com/users/Fedik/gists{/gist_id}","starred_url":"https://api.github.com/users/Fedik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fedik/subscriptions","organizations_url":"https://api.github.com/users/Fedik/orgs","repos_url":"https://api.github.com/users/Fedik/repos","events_url":"https://api.github.com/users/Fedik/events{/privacy}","received_events_url":"https://api.github.com/users/Fedik/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Fedik/joomla-cms","description":"Home of the Joomla! Content Management System","fork":true,"url":"https://api.github.com/repos/Fedik/joomla-cms","forks_url":"https://api.github.com/repos/Fedik/joomla-cms/forks","keys_url":"https://api.github.com/repos/Fedik/joomla-cms/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Fedik/joomla-cms/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Fedik/joomla-cms/teams","hooks_url":"https://api.github.com/repos/Fedik/joomla-cms/hooks","issue_events_url":"https://api.github.com/repos/Fedik/joomla-cms/issues/events{/number}","events_url":"https://api.github.com/repos/Fedik/joomla-cms/events","assignees_url":"https://api.github.com/repos/Fedik/joomla-cms/assignees{/user}","branches_url":"https://api.github.com/repos/Fedik/joomla-cms/branches{/branch}","tags_url":"https://api.github.com/repos/Fedik/joomla-cms/tags","blobs_url":"https://api.github.com/repos/Fedik/joomla-cms/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Fedik/joomla-cms/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Fedik/joomla-cms/git/refs{/sha}","trees_url":"https://api.github.com/repos/Fedik/joomla-cms/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Fedik/joomla-cms/statuses/{sha}","languages_url":"https://api.github.com/repos/Fedik/joomla-cms/languages","stargazers_url":"https://api.github.com/repos/Fedik/joomla-cms/stargazers","contributors_url":"https://api.github.com/repos/Fedik/joomla-cms/contributors","subscribers_url":"https://api.github.com/repos/Fedik/joomla-cms/subscribers","subscription_url":"https://api.github.com/repos/Fedik/joomla-cms/subscription","commits_url":"https://api.github.com/repos/Fedik/joomla-cms/commits{/sha}","git_commits_url":"https://api.github.com/repos/Fedik/joomla-cms/git/commits{/sha}","comments_url":"https://api.github.com/repos/Fedik/joomla-cms/comments{/number}","issue_comment_url":"https://api.github.com/repos/Fedik/joomla-cms/issues/comments{/number}","contents_url":"https://api.github.com/repos/Fedik/joomla-cms/contents/{+path}","compare_url":"https://api.github.com/repos/Fedik/joomla-cms/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Fedik/joomla-cms/merges","archive_url":"https://api.github.com/repos/Fedik/joomla-cms/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Fedik/joomla-cms/downloads","issues_url":"https://api.github.com/repos/Fedik/joomla-cms/issues{/number}","pulls_url":"https://api.github.com/repos/Fedik/joomla-cms/pulls{/number}","milestones_url":"https://api.github.com/repos/Fedik/joomla-cms/milestones{/number}","notifications_url":"https://api.github.com/repos/Fedik/joomla-cms/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Fedik/joomla-cms/labels{/name}","releases_url":"https://api.github.com/repos/Fedik/joomla-cms/releases{/id}","deployments_url":"https://api.github.com/repos/Fedik/joomla-cms/deployments","created_at":"2012-12-15T13:09:18Z","updated_at":"2015-05-06T16:46:20Z","pushed_at":"2016-04-21T16:14:32Z","git_url":"git://github.com/Fedik/joomla-cms.git","ssh_url":"git@github.com:Fedik/joomla-cms.git","clone_url":"https://github.com/Fedik/joomla-cms.git","svn_url":"https://github.com/Fedik/joomla-cms","homepage":"http://joomla.org","size":145939,"stargazers_count":1,"watchers_count":1,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"joomla:staging","ref":"staging","sha":"730571610fdfba681900e0d4759f8d760bbb967e","user":{"login":"joomla","id":751633,"avatar_url":"https://avatars.githubusercontent.com/u/751633?v=3","gravatar_id":"","url":"https://api.github.com/users/joomla","html_url":"https://github.com/joomla","followers_url":"https://api.github.com/users/joomla/followers","following_url":"https://api.github.com/users/joomla/following{/other_user}","gists_url":"https://api.github.com/users/joomla/gists{/gist_id}","starred_url":"https://api.github.com/users/joomla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joomla/subscriptions","organizations_url":"https://api.github.com/users/joomla/orgs","repos_url":"https://api.github.com/users/joomla/repos","events_url":"https://api.github.com/users/joomla/events{/privacy}","received_events_url":"https://api.github.com/users/joomla/received_events","type":"Organization","site_admin":false},"repo":{"id":2464908,"name":"joomla-cms","full_name":"joomla/joomla-cms","owner":{"login":"joomla","id":751633,"avatar_url":"https://avatars.githubusercontent.com/u/751633?v=3","gravatar_id":"","url":"https://api.github.com/users/joomla","html_url":"https://github.com/joomla","followers_url":"https://api.github.com/users/joomla/followers","following_url":"https://api.github.com/users/joomla/following{/other_user}","gists_url":"https://api.github.com/users/joomla/gists{/gist_id}","starred_url":"https://api.github.com/users/joomla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joomla/subscriptions","organizations_url":"https://api.github.com/users/joomla/orgs","repos_url":"https://api.github.com/users/joomla/repos","events_url":"https://api.github.com/users/joomla/events{/privacy}","received_events_url":"https://api.github.com/users/joomla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/joomla/joomla-cms","description":"Home of the Joomla! Content Management System","fork":false,"url":"https://api.github.com/repos/joomla/joomla-cms","forks_url":"https://api.github.com/repos/joomla/joomla-cms/forks","keys_url":"https://api.github.com/repos/joomla/joomla-cms/keys{/key_id}","collaborators_url":"https://api.github.com/repos/joomla/joomla-cms/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/joomla/joomla-cms/teams","hooks_url":"https://api.github.com/repos/joomla/joomla-cms/hooks","issue_events_url":"https://api.github.com/repos/joomla/joomla-cms/issues/events{/number}","events_url":"https://api.github.com/repos/joomla/joomla-cms/events","assignees_url":"https://api.github.com/repos/joomla/joomla-cms/assignees{/user}","branches_url":"https://api.github.com/repos/joomla/joomla-cms/branches{/branch}","tags_url":"https://api.github.com/repos/joomla/joomla-cms/tags","blobs_url":"https://api.github.com/repos/joomla/joomla-cms/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/joomla/joomla-cms/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/joomla/joomla-cms/git/refs{/sha}","trees_url":"https://api.github.com/repos/joomla/joomla-cms/git/trees{/sha}","statuses_url":"https://api.github.com/repos/joomla/joomla-cms/statuses/{sha}","languages_url":"https://api.github.com/repos/joomla/joomla-cms/languages","stargazers_url":"https://api.github.com/repos/joomla/joomla-cms/stargazers","contributors_url":"https://api.github.com/repos/joomla/joomla-cms/contributors","subscribers_url":"https://api.github.com/repos/joomla/joomla-cms/subscribers","subscription_url":"https://api.github.com/repos/joomla/joomla-cms/subscription","commits_url":"https://api.github.com/repos/joomla/joomla-cms/commits{/sha}","git_commits_url":"https://api.github.com/repos/joomla/joomla-cms/git/commits{/sha}","comments_url":"https://api.github.com/repos/joomla/joomla-cms/comments{/number}","issue_comment_url":"https://api.github.com/repos/joomla/joomla-cms/issues/comments{/number}","contents_url":"https://api.github.com/repos/joomla/joomla-cms/contents/{+path}","compare_url":"https://api.github.com/repos/joomla/joomla-cms/compare/{base}...{head}","merges_url":"https://api.github.com/repos/joomla/joomla-cms/merges","archive_url":"https://api.github.com/repos/joomla/joomla-cms/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/joomla/joomla-cms/downloads","issues_url":"https://api.github.com/repos/joomla/joomla-cms/issues{/number}","pulls_url":"https://api.github.com/repos/joomla/joomla-cms/pulls{/number}","milestones_url":"https://api.github.com/repos/joomla/joomla-cms/milestones{/number}","notifications_url":"https://api.github.com/repos/joomla/joomla-cms/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/joomla/joomla-cms/labels{/name}","releases_url":"https://api.github.com/repos/joomla/joomla-cms/releases{/id}","deployments_url":"https://api.github.com/repos/joomla/joomla-cms/deployments","created_at":"2011-09-27T02:07:38Z","updated_at":"2016-04-21T13:27:51Z","pushed_at":"2016-04-21T17:42:19Z","git_url":"git://github.com/joomla/joomla-cms.git","ssh_url":"git@github.com:joomla/joomla-cms.git","clone_url":"https://github.com/joomla/joomla-cms.git","svn_url":"https://github.com/joomla/joomla-cms","homepage":"https://www.joomla.org","size":271798,"stargazers_count":1987,"watchers_count":1987,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2142,"mirror_url":null,"open_issues_count":608,"forks":2142,"open_issues":608,"watchers":1987,"default_branch":"staging"}},"_links":{"self":{"href":"https://api.github.com/repos/joomla/joomla-cms/pulls/7460"},"html":{"href":"https://github.com/joomla/joomla-cms/pull/7460"},"issue":{"href":"https://api.github.com/repos/joomla/joomla-cms/issues/7460"},"comments":{"href":"https://api.github.com/repos/joomla/joomla-cms/issues/7460/comments"},"review_comments":{"href":"https://api.github.com/repos/joomla/joomla-cms/pulls/7460/comments"},"review_comment":{"href":"https://api.github.com/repos/joomla/joomla-cms/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/joomla/joomla-cms/pulls/7460/commits"},"statuses":{"href":"https://api.github.com/repos/joomla/joomla-cms/statuses/8e5178c39b6b2c1ce0aa705978d2573db4df64a5"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"rdeutz","id":467356,"avatar_url":"https://avatars.githubusercontent.com/u/467356?v=3","gravatar_id":"","url":"https://api.github.com/users/rdeutz","html_url":"https://github.com/rdeutz","followers_url":"https://api.github.com/users/rdeutz/followers","following_url":"https://api.github.com/users/rdeutz/following{/other_user}","gists_url":"https://api.github.com/users/rdeutz/gists{/gist_id}","starred_url":"https://api.github.com/users/rdeutz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rdeutz/subscriptions","organizations_url":"https://api.github.com/users/rdeutz/orgs","repos_url":"https://api.github.com/users/rdeutz/repos","events_url":"https://api.github.com/users/rdeutz/events{/privacy}","received_events_url":"https://api.github.com/users/rdeutz/received_events","type":"User","site_admin":false},"comments":40,"review_comments":0,"commits":11,"additions":27,"deletions":12,"changed_files":11}}