]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Add jQuery version check to existing jQuery presence check 14852/head
authorHeinrich Fenkart <hnrch02@gmail.com>
Wed, 22 Oct 2014 18:52:15 +0000 (20:52 +0200)
committerHeinrich Fenkart <hnrch02@gmail.com>
Thu, 23 Oct 2014 03:57:15 +0000 (05:57 +0200)
Fixes #14809.
Closes #14825.

Gruntfile.js
bower.json
docs/assets/js/src/customizer.js

index e945b9d4805b7e8eb3a72f3fc9229f643bea9061..0e5627d9ec63815ba392680b3d56aad42e78e3b7 100644 (file)
@@ -37,8 +37,21 @@ module.exports = function (grunt) {
             ' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
             ' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' +
             ' */\n',
-    // NOTE: This jqueryCheck code is duplicated in customizer.js; if making changes here, be sure to update the other copy too.
-    jqueryCheck: 'if (typeof jQuery === \'undefined\') { throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\') }\n\n',
+    // NOTE: This jqueryCheck/jqueryVersionCheck code is duplicated in customizer.js;
+    //       if making changes here, be sure to update the other copy too.
+    jqueryCheck: [
+      'if (typeof jQuery === \'undefined\') {',
+      '  throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\')',
+      '}\n'
+    ].join('\n'),
+    jqueryVersionCheck: [
+      '+function ($) {',
+      '  var version = $.fn.jquery.split(\' \')[0].split(\'.\')',
+      '  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {',
+      '    throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery version 1.9.1 or higher\')',
+      '  }',
+      '}(jQuery);\n\n'
+    ].join('\n'),
 
     // Task configuration.
     clean: {
@@ -93,7 +106,7 @@ module.exports = function (grunt) {
 
     concat: {
       options: {
-        banner: '<%= banner %>\n<%= jqueryCheck %>',
+        banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>',
         stripBanners: false
       },
       bootstrap: {
index 24603e6b699947fdbe86ce12a9cdcc7b8158fe85..8ede2492598ba5705c7c2e928128bd100b575085 100644 (file)
@@ -33,6 +33,6 @@
     "test-infra"
   ],
   "dependencies": {
-    "jquery": ">= 1.9.0"
+    "jquery": ">= 1.9.1"
   }
 }
index 3af093c9ae0b956703a8ded43849cfaf6b71fd62..c1c7d7971e5f0d4811f3ef45e79e5d300c46afc3 100644 (file)
@@ -319,7 +319,19 @@ window.onload = function () { // wait for load in a dumb way because B-0
 
   function generateJS(preamble) {
     var $checked = $('#plugin-section input:checked')
-    var jqueryCheck = 'if (typeof jQuery === "undefined") { throw new Error("Bootstrap\'s JavaScript requires jQuery") }\n\n'
+    var jqueryCheck = [
+      'if (typeof jQuery === \'undefined\') {',
+      '  throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\')',
+      '}\n'
+    ].join('\n')
+    var jqueryVersionCheck = [
+      '+function ($) {',
+      '  var version = $.fn.jquery.split(\' \')[0].split(\'.\')',
+      '  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {',
+      '    throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery version 1.9.1 or higher\')',
+      '  }',
+      '}(jQuery);\n\n'
+    ].join('\n')
 
     if (!$checked.length) return false
 
@@ -329,7 +341,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
       .join('\n')
 
     preamble = cw + preamble
-    js = jqueryCheck + js
+    js = jqueryCheck + jqueryVersionCheck + js
 
     return {
       'bootstrap.js': preamble + js,