]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Add Gist & Customizer URLs to customized files & config.json
authorChris Rebert <code@rebertia.com>
Fri, 28 Mar 2014 05:07:20 +0000 (22:07 -0700)
committerChris Rebert <code@rebertia.com>
Fri, 28 Mar 2014 17:58:32 +0000 (10:58 -0700)
Fixes #9951
Fixes #12865

Gruntfile.js
docs/assets/js/_src/customizer.js

index 78f77a763ea6dffd51c73d403fedccafb0c4c977..925368e527ffa8995f40b272227d932a9d9d7398 100644 (file)
@@ -78,6 +78,9 @@ module.exports = function (grunt) {
         src: '<%= jshint.test.src %>'
       },
       assets: {
+        options: {
+          requireCamelCaseOrUpperCaseIdentifiers: null
+        },
         src: '<%= jshint.assets.src %>'
       }
     },
index cee3c5766dd59f189a816da55da785cf74a52436..ea7cf7f6f5a94b80e86c170832224576eff687ac 100644 (file)
@@ -43,7 +43,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
     return match && decodeURIComponent(match[1].replace(/\+/g, ' '))
   }
 
-  function createGist(configJson) {
+  function createGist(configJson, callback) {
     var data = {
       description: 'Bootstrap Customizer Config',
       'public': true,
@@ -61,10 +61,13 @@ window.onload = function () { // wait for load in a dumb way because B-0
     })
     .success(function (result) {
       var origin = window.location.protocol + '//' + window.location.host
-      history.replaceState(false, document.title, origin + window.location.pathname + '?id=' + result.id)
+      var newUrl = origin + window.location.pathname + '?id=' + result.id
+      history.replaceState(false, document.title, newUrl)
+      callback(result.html_url, newUrl)
     })
     .error(function (err) {
       showError('<strong>Ruh roh!</strong> Could not save gist file, configuration not saved.', err)
+      callback('<none>', '<none>')
     })
   }
 
@@ -221,7 +224,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
     })
   }
 
-  function generateCSS() {
+  function generateCSS(preamble) {
     var oneChecked = false
     var lessFileIncludes = {}
     $('#less-section input').each(function() {
@@ -242,8 +245,8 @@ window.onload = function () { // wait for load in a dumb way because B-0
         $(this).val() && (vars[$(this).prev().text()] = $(this).val())
       })
 
-    var bsLessSource    = generateLESS('bootstrap.less', lessFileIncludes, vars)
-    var themeLessSource = generateLESS('theme.less',     lessFileIncludes, vars)
+    var bsLessSource    = preamble + generateLESS('bootstrap.less', lessFileIncludes, vars)
+    var themeLessSource = preamble + generateLESS('theme.less',     lessFileIncludes, vars)
 
     try {
       compileLESS(bsLessSource, 'bootstrap', result)
@@ -255,7 +258,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
     return result
   }
 
-  function generateJavascript() {
+  function generateJavascript(preamble) {
     var $checked = $('#plugin-section input:checked')
     if (!$checked.length) return false
 
@@ -265,8 +268,8 @@ window.onload = function () { // wait for load in a dumb way because B-0
       .join('\n')
 
     return {
-      'bootstrap.js': js,
-      'bootstrap.min.js': cw + uglify(js)
+      'bootstrap.js': preamble + js,
+      'bootstrap.min.js': preamble + cw + uglify(js)
     }
   }
 
@@ -322,10 +325,19 @@ window.onload = function () { // wait for load in a dumb way because B-0
 
     $compileBtn.attr('disabled', 'disabled')
 
-    generateZip(generateCSS(), generateJavascript(), generateFonts(), configJson, function (blob) {
-      $compileBtn.removeAttr('disabled')
-      saveAs(blob, 'bootstrap.zip')
-      createGist(configJson)
+    createGist(configJson, function (gistUrl, customizerUrl) {
+      configData.customizerUrl = customizerUrl
+      configJson = JSON.stringify(configData, null, 2)
+
+      var preamble = '/*!\n' +
+        ' * Generated using the Bootstrap Customizer (' + customizerUrl + ')\n' +
+        ' * Config saved to config.json and ' + gistUrl + '\n' +
+        ' */\n'
+
+      generateZip(generateCSS(preamble), generateJavascript(preamble), generateFonts(), configJson, function (blob) {
+        $compileBtn.removeAttr('disabled')
+        saveAs(blob, 'bootstrap.zip')
+      })
     })
   });