jquery-form-validator-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1 @@
1
+ (function($,window){$.formUtils.addValidator({name:"swesec",validatorFunction:function(securityNumber,$input){var year,month,day,ssnParts;if($input.valAttr("use-hyphen")){ssnParts=securityNumber.split("-");if(ssnParts.length!=2){return false}securityNumber=ssnParts.join("")}if(!securityNumber.match(/^(\d{4})(\d{2})(\d{2})(\d{4})$/)){return false}year=RegExp.$1;month=$.formUtils.parseDateInt(RegExp.$2);day=$.formUtils.parseDateInt(RegExp.$3);window.ssnGender=parseInt(RegExp.$4.substring(2,3))%2===0?"female":"male";var months=new Array(31,28,31,30,31,30,31,31,30,31,30,31);if(year%400===0||year%4===0&&year%100!==0){months[1]=29}if(month<1||month>12||day<1||day>months[month-1]){return false}securityNumber=securityNumber.substring(2,securityNumber.length);var check="";for(var i=0;i<securityNumber.length;i++){check+=((i+1)%2+1)*securityNumber.substring(i,i+1)}var checksum=0;for(i=0;i<check.length;i++){checksum+=parseInt(check.substring(i,i+1),10)}return checksum%10===0},errorMessage:"",errorMessageKey:"badSecurityNumber"});$.formUtils.addValidator({name:"swecounty",validatorFunction:function(str){str=str.toLowerCase();if($.inArray(str,this.counties)==-1){if(str.substr(-3).toLocaleLowerCase()!="län"){return $.inArray(str+"s län",this.counties)>-1}return false}else return true},errorMessage:"",errorMessageKey:"badCustomVal",counties:["stockholms län","uppsala län","södermanlands län","östergötlands län","jönköpings län","kronobergs län","kalmar län","gotlands län","blekinge län","skåne län","hallands län","västra götalands län","värmlands län","örebro län","västmanlands län","dalarnas län","gävleborgs län","västernorrlands län","jämtlands län","västerbottens län","norrbottens län"]});$.formUtils.addValidator({name:"swemunicipality",validatorFunction:function(str){str=str.toLowerCase();if($.inArray(str,this.municipalities)==-1){if(str.substr(-8)=="s kommun"){if($.inArray(str.substr(0,str.length-8),this.municipalities)>-1)return true}if(str.substr(-7)==" kommun"){return $.inArray(str.substr(0,str.length-7),this.municipalities)>-1}return false}else return true},errorMessage:"",errorMessageKey:"badCustomVal",municipalities:["ale","alingsås","alvesta","aneby","arboga","arjeplog","arvidsjaur","arvika","askersund","avesta","bengtsfors","berg","bjurholm","bjuv","boden","bollebygd","bollnäs","borgholm","borlänge","borås","botkyrka","boxholm","bromölla","bräcke","burlöv","båstad","dals-ed","danderyd","degerfors","dorotea","eda","ekerö","eksjö","emmaboda","enköpings","eskilstuna","eslövs","essunga","fagersta","falkenberg","falköping","falu","filipstad","finspång","flen","forshaga","färgelanda","gagnef","gislaved","gnesta","gnosjö","gotland","grum","grästorp","gullspång","gällivare","gävle","göteborg","götene","habo","hagfor","hallsberg","hallstahammar","halmstad","hammarö","haninge","haparanda","heby","hedemora","helsingborg","herrljunga","hjo","hofor","huddinge","hudiksvall","hultsfred","hylte","håbo","hällefor","härjedalen","härnösand","härryda","hässleholm","höganäs","högsby","hörby","höör","jokkmokk","järfälla","jönköping","kalix","kalmar","karlsborg","karlshamn","karlskoga","karlskrona","karlstad","katrineholm","kil","kinda","kiruna","klippan","knivsta","kramfors","kristianstad","kristinehamn","krokoms","kumla","kungsbacka","kungsör","kungälv","kävlinge","köping","laholm","landskrona","laxå","lekeberg","leksand","lerum","lessebo","lidingö","lidköping","lilla edets","lindesbergs","linköpings","ljungby","ljusdals","ljusnarsbergs","lomma","ludvika","luleå","lunds","lycksele","lysekil","malmö","malung-sälen","malå","mariestad","marks","markaryd","mellerud","mjölby","mora","motala","mullsjö","munkedal","munkfors","mölndal","mönsterås","mörbylånga","nacka","nora","norberg","nordanstig","nordmaling","norrköping","norrtälje","norsjö","nybro","nykvarn","nyköping","nynäshamn","nässjö","ockelbo","olofström","orsa","orust","osby","oskarshamn","ovanåker","oxelösund","pajala","partille","perstorp","piteå","ragunda","robertsfors","ronneby","rättvik","sala","salem","sandviken","sigtuna","simrishamn","sjöbo","skara","skellefteå","skinnskatteberg","skurup","skövde","smedjebacken","sollefteå","sollentuna","solna","sorsele","sotenäs","staffanstorp","stenungsund","stockholm","storfors","storuman","strängnäs","strömstad","strömsund","sundbyberg","sundsvall","sunne","surahammar","svalöv","svedala","svenljunga","säffle","säter","sävsjö","söderhamns","söderköping","södertälje","sölvesborg","tanum","tibro","tidaholm","tierp","timrå","tingsryd","tjörn","tomelilla","torsby","torså","tranemo","tranå","trelleborg","trollhättan","trosa","tyresö","täby","töreboda","uddevalla","ulricehamns","umeå","upplands väsby","upplands-bro","uppsala","uppvidinge","vadstena","vaggeryd","valdemarsvik","vallentuna","vansbro","vara","varberg","vaxholm","vellinge","vetlanda","vilhelmina","vimmerby","vindeln","vingåker","vårgårda","vänersborg","vännäs","värmdö","värnamo","västervik","västerås","växjö","ydre","ystad","åmål","ånge","åre","årjäng","åsele","åstorp","åtvidaberg","älmhult","älvdalen","älvkarleby","älvsbyn","ängelholm","öckerö","ödeshög","örebro","örkelljunga","örnsköldsvik","östersund","österåker","östhammar","östra göinge","överkalix","övertorneå"]});$.formUtils.addValidator({name:"swephone",validatorFunction:function(tele){var numPlus=tele.match(/\+/g);var numHifen=tele.match(/-/g);if(numPlus!==null&&numPlus.length>1||numHifen!==null&&numHifen.length>1){return false}if(numPlus!==null&&tele.indexOf("+")!==0){return false}tele=tele.replace(/([-|\+])/g,"");return tele.length>8&&tele.match(/[^0-9]/g)===null},errorMessage:"",errorMessageKey:"badTelephone"});$.formUtils.addValidator({name:"swemobile",validatorFunction:function(number){if(!$.formUtils.validators.validate_swephone.validatorFunction(number)){return false}number=number.replace(/[^0-9]/g,"");var begin=number.substring(0,3);if(number.length!=10&&begin!=="467"){return false}else if(number.length!=11&&begin==="467"){return false}return/07[0-9{1}]/.test(begin)||begin==="467"},errorMessage:"",errorMessageKey:"badTelephone"});var _makeSortedList=function(listItems){var newList=[];$.each(listItems,function(i,v){newList.push(v.substr(0,1).toUpperCase()+v.substr(1,v.length))});newList.sort();return newList};$.fn.suggestSwedishCounty=function(settings){var counties=_makeSortedList($.formUtils.validators.validate_swecounty.counties);return $.formUtils.suggest(this,counties,settings)};$.fn.suggestSwedishMunicipality=function(settings){var municipalities=_makeSortedList($.formUtils.validators.validate_swemunicipality.municipalities);return $.formUtils.suggest(this,municipalities,settings)}})(jQuery,window);
@@ -0,0 +1,85 @@
1
+ /**
2
+ * jQuery Form Validator Module: Security
3
+ * ------------------------------------------
4
+ * Created by Victor Jonsson <http://www.victorjonsson.se>
5
+ *
6
+ * This form validation module adds validators typically used on
7
+ * websites in the UK. This module adds the following validators:
8
+ * - ukvatnumber
9
+ *
10
+ * @website http://formvalidator.net/#uk-validators
11
+ * @license Dual licensed under the MIT or GPL Version 2 licenses
12
+ * @version 2.1.66
13
+ */
14
+ $.formUtils.addValidator({
15
+ name : 'ukvatnumber',
16
+ validatorFunction : function(number) {
17
+
18
+ // Code Adapted from http://www.codingforums.com/showthread.php?t=211967
19
+ // TODO: Extra Checking for other VAT Numbers (Other countries and UK Government/Health Authorities)
20
+
21
+ number = number.replace(/[^0-9]/g, '');
22
+
23
+ //Check Length
24
+ if(number.length < 9) {
25
+ return false;
26
+ }
27
+
28
+ var valid = false;
29
+
30
+ var VATsplit = [];
31
+ VATsplit = number.split("");
32
+
33
+ var checkDigits = Number(VATsplit[7] + VATsplit[8]); // two final digits as a number
34
+
35
+ var firstDigit = VATsplit[0];
36
+ var secondDigit = VATsplit[1];
37
+ if ((firstDigit == 0) && (secondDigit >0)) {
38
+ return false;
39
+ }
40
+
41
+ var total = 0;
42
+ for (var i=0; i<7; i++) { // first 7 digits
43
+ total += VATsplit[i]* (8-i); // sum weighted cumulative total
44
+ }
45
+
46
+ var c = 0;
47
+ var i = 0;
48
+
49
+ for (var m = 8; m>=2; m--) {
50
+ c += VATsplit[i]* m;
51
+ i++;
52
+ }
53
+
54
+ // Traditional Algorithm for VAT numbers issued before 2010
55
+
56
+ while (total > 0) {
57
+ total -= 97; // deduct 97 repeatedly until total is negative
58
+ }
59
+ total = Math.abs(total); // make positive
60
+
61
+ if (checkDigits == total) {
62
+ valid = true;
63
+ }
64
+
65
+ // If not valid try the new method (introduced November 2009) by subtracting 55 from the mod 97 check digit if we can - else add 42
66
+
67
+ if (!valid) {
68
+ total = total%97 // modulus 97
69
+
70
+ if (total >= 55) {
71
+ total = total - 55
72
+ } else {
73
+ total = total + 42
74
+ }
75
+
76
+ if (total == checkDigits) {
77
+ valid = true;
78
+ }
79
+ }
80
+
81
+ return valid;
82
+ },
83
+ errorMessage : '',
84
+ errorMessageKey: 'badUKVatAnswer'
85
+ });
@@ -0,0 +1 @@
1
+ $.formUtils.addValidator({name:"ukvatnumber",validatorFunction:function(number){number=number.replace(/[^0-9]/g,"");if(number.length<9){return false}var valid=false;var VATsplit=[];VATsplit=number.split("");var checkDigits=Number(VATsplit[7]+VATsplit[8]);var firstDigit=VATsplit[0];var secondDigit=VATsplit[1];if(firstDigit==0&&secondDigit>0){return false}var total=0;for(var i=0;i<7;i++){total+=VATsplit[i]*(8-i)}var c=0;var i=0;for(var m=8;m>=2;m--){c+=VATsplit[i]*m;i++}while(total>0){total-=97}total=Math.abs(total);if(checkDigits==total){valid=true}if(!valid){total=total%97;if(total>=55){total=total-55}else{total=total+42}if(total==checkDigits){valid=true}}return valid},errorMessage:"",errorMessageKey:"badUKVatAnswer"});
@@ -0,0 +1,28 @@
1
+ #encoding: utf-8
2
+ #encoding: utf-8
3
+
4
+ # -*- encoding: utf-8 -*-
5
+ lib = File.expand_path('../lib', __FILE__)
6
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
7
+ require 'jquery/form/validator/rails/version'
8
+
9
+ Gem::Specification.new do |gem|
10
+ gem.name = "jquery-form-validator-rails"
11
+ gem.version = Jquery::Form::Validator::Rails::VERSION
12
+ gem.authors = ["Gustaf Lindqvist"]
13
+ gem.email = ["gustaf.lindqvist@gmail.com"]
14
+ gem.description = %q{Integrate the jQuery Form Validator plugin into the Rails asset pipeline}
15
+ gem.summary = %q{jQuery Form Validator is a feature rich jQuery plugin that makes it easy to validate user input while keeping your HTML markup clean from javascript code. Even though this plugin has a wide range of validation functions it's designed to require as little jQuery bandwidth as possible. This is achieved by grouping together validation functions in "modules", making it possible for the programmer to load only
16
+ those functions that's needed to validate a particular form.}
17
+ gem.homepage = "https://github.com/gustaflindqvist/jquery-form-validator-rails"
18
+ gem.license = "MIT"
19
+ gem.files = `git ls-files`.split($/)
20
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
21
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
22
+ gem.require_paths = ["lib"]
23
+
24
+ gem.add_dependency "thor", "~> 0.14"
25
+ gem.add_dependency "railties", ">= 3.2", "< 5.0"
26
+
27
+ gem.add_development_dependency "bundler", "~> 1.0"
28
+ end
@@ -0,0 +1 @@
1
+ require "jquery/form/validator/rails"
@@ -0,0 +1,11 @@
1
+ require 'jquery/form/validator/rails/version'
2
+ require 'jquery/form/validator/rails/engine' if ::Rails.version >= "3.2"
3
+
4
+ module Jquery
5
+ module Form
6
+ module Validator
7
+ module Rails
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ module Jquery
2
+ module Form
3
+ module Validator
4
+ module Rails
5
+ class Engine < ::Rails::Engine
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module Jquery
2
+ module Form
3
+ module Validator
4
+ module Rails
5
+ VERSION = "0.0.1"
6
+ end
7
+ end
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jquery-form-validator-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Gustaf Lindqvist
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0.14'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: railties
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '3.2'
34
+ - - <
35
+ - !ruby/object:Gem::Version
36
+ version: '5.0'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '3.2'
44
+ - - <
45
+ - !ruby/object:Gem::Version
46
+ version: '5.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '1.0'
61
+ description: Integrate the jQuery Form Validator plugin into the Rails asset pipeline
62
+ email:
63
+ - gustaf.lindqvist@gmail.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - .gitignore
69
+ - CHANGELOG.md
70
+ - Gemfile
71
+ - LICENSE
72
+ - README.md
73
+ - Rakefile
74
+ - app/assets/javascripts/date.js
75
+ - app/assets/javascripts/file.js
76
+ - app/assets/javascripts/html5.js
77
+ - app/assets/javascripts/jquery.form-validator.js
78
+ - app/assets/javascripts/location.js
79
+ - app/assets/javascripts/security.dev.js
80
+ - app/assets/javascripts/security.js
81
+ - app/assets/javascripts/sweden.dev.js
82
+ - app/assets/javascripts/sweden.js
83
+ - app/assets/javascripts/uk.dev.js
84
+ - app/assets/javascripts/uk.js
85
+ - jquery-form-validator.gemspec
86
+ - lib/jquery-form-validator-rails.rb
87
+ - lib/jquery/form/validator/rails.rb
88
+ - lib/jquery/form/validator/rails/engine.rb
89
+ - lib/jquery/form/validator/rails/version.rb
90
+ homepage: https://github.com/gustaflindqvist/jquery-form-validator-rails
91
+ licenses:
92
+ - MIT
93
+ metadata: {}
94
+ post_install_message:
95
+ rdoc_options: []
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ requirements: []
109
+ rubyforge_project:
110
+ rubygems_version: 2.3.0
111
+ signing_key:
112
+ specification_version: 4
113
+ summary: jQuery Form Validator is a feature rich jQuery plugin that makes it easy
114
+ to validate user input while keeping your HTML markup clean from javascript code.
115
+ Even though this plugin has a wide range of validation functions it's designed to
116
+ require as little jQuery bandwidth as possible. This is achieved by grouping together
117
+ validation functions in "modules", making it possible for the programmer to load
118
+ only those functions that's needed to validate a particular form.
119
+ test_files: []