| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 5ee21f1 commit 5760b5d
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -44,6 +44,7 @@ jQuery(function($) { | |||
| 44 | 44 | ||
| 45 | 45 | JS.Modules.Console.init(); | |
| 46 | 46 | JS.Modules.LoadStories.init(); | |
| 47 | + JS.Modules.SaveProgress.init(); | ||
| 47 | 48 | JS.Modules.Video.init(); | |
| 48 | 49 | ||
| 49 | 50 | JS.Modules.Counter.init({ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,105 @@ | |||
| 1 | + // ************************************* | ||
| 2 | + // | ||
| 3 | + // Save Progress | ||
| 4 | + // -> Save input text in Local Storage | ||
| 5 | + // | ||
| 6 | + // ************************************* | ||
| 7 | + // | ||
| 8 | + // @param $element { jQuery object } | ||
| 9 | + // @param $container { jQuery object } | ||
| 10 | + // @param dataAttribute { string } | ||
| 11 | + // | ||
| 12 | + // ************************************* | ||
| 13 | + | ||
| 14 | + JS.Modules.SaveProgress = (function() { | ||
| 15 | + | ||
| 16 | + // ------------------------------------- | ||
| 17 | + // Private Variables | ||
| 18 | + // ------------------------------------- | ||
| 19 | + | ||
| 20 | + var _settings = {}; | ||
| 21 | + | ||
| 22 | + // ------------------------------------- | ||
| 23 | + // Initialize | ||
| 24 | + // ------------------------------------- | ||
| 25 | + | ||
| 26 | + var init = function(options) { | ||
| 27 | + _settings = $.extend({ | ||
| 28 | + $element : $('.js-saveProgress'), | ||
| 29 | + $container : $('.js-saveProgress-container'), | ||
| 30 | + dataAttribute : 'saveprogress' | ||
| 31 | + }, options); | ||
| 32 | + | ||
| 33 | + _restoreProgress(); | ||
| 34 | + _setEventHandlers(); | ||
| 35 | + }; | ||
| 36 | + | ||
| 37 | + // ------------------------------------- | ||
| 38 | + // Erase Progress | ||
| 39 | + // ------------------------------------- | ||
| 40 | + | ||
| 41 | + var _eraseProgress = function(container) { | ||
| 42 | + container.find(_settings.$element).each(function() { | ||
| 43 | + var key = $(this).data(_settings.dataAttribute); | ||
| 44 | + | ||
| 45 | + localStorage.removeItem(key); | ||
| 46 | + }); | ||
| 47 | + }; | ||
| 48 | + | ||
| 49 | + // ------------------------------------- | ||
| 50 | + // Restore Progress | ||
| 51 | + // ------------------------------------- | ||
| 52 | + | ||
| 53 | + var _restoreProgress = function() { | ||
| 54 | + _settings.$element.each(function() { | ||
| 55 | + var $element = $(this), | ||
| 56 | + key = $element.data(_settings.dataAttribute), | ||
| 57 | + value = localStorage.getItem(key); | ||
| 58 | + | ||
| 59 | + $element.val(value); | ||
| 60 | + }); | ||
| 61 | + }; | ||
| 62 | + | ||
| 63 | + // ------------------------------------- | ||
| 64 | + // Set Event Handlers | ||
| 65 | + // ------------------------------------- | ||
| 66 | + | ||
| 67 | + var _setEventHandlers = function() { | ||
| 68 | + _settings.$element.on('input', function() { | ||
| 69 | + var $element, key, value; | ||
| 70 | + var $element = $(this), | ||
| 71 | + key = $element.data(_settings.dataAttribute), | ||
| 72 | + value = $element.val(); | ||
| 73 | + | ||
| 74 | + _storeProgress(key, value); | ||
| 75 | + }); | ||
| 76 | + | ||
| 77 | + _settings.$container.on('submit', function(event) { | ||
| 78 | + _eraseProgress($(this)); | ||
| 79 | + }); | ||
| 80 | + }; | ||
| 81 | + | ||
| 82 | + // ------------------------------------- | ||
| 83 | + // Store Progress | ||
| 84 | + // ------------------------------------- | ||
| 85 | + | ||
| 86 | + var _storeProgress = function(key, value) { | ||
| 87 | + localStorage.setItem(key, value); | ||
| 88 | + }; | ||
| 89 | + | ||
| 90 | + // ------------------------------------- | ||
| 91 | + // Public Methods | ||
| 92 | + // ------------------------------------- | ||
| 93 | + | ||
| 94 | + return { | ||
| 95 | + init: init | ||
| 96 | + }; | ||
| 97 | + | ||
| 98 | + })(); | ||
| 99 | + | ||
| 100 | + // ------------------------------------- | ||
| 101 | + // Usage | ||
| 102 | + // ------------------------------------- | ||
| 103 | + // | ||
| 104 | + // JS.Modules.SaveProgress.init() | ||
| 105 | + // | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -21,10 +21,10 @@ block content | |||
| 21 | 21 | | . | |
| 22 | 22 | p For any other site feedback or assistance, please submit your request below. | |
| 23 | 23 | ||
| 24 | - form.form.js-formValidator(id='form70' name='form70' accept-charset='UTF-8' autocomplete='off' enctype='multipart/form-data' method='post' action='https://codeschool.wufoo.com/forms/p14727kn1c9coto/#public') | ||
| 24 | + form.form.js-formValidator.js-saveProgress-container(id='form70' name='form70' accept-charset='UTF-8' autocomplete='off' enctype='multipart/form-data' method='post' action='https://codeschool.wufoo.com/forms/p14727kn1c9coto/#public') | ||
| 25 | 25 | fieldset.form-field | |
| 26 | 26 | label.form-label(for='email' id='Field4') Email | |
| 27 | - input.form-input.js-formValidator-input(name='Field4' id='Field4' type='email' required='true' data-validate='required') | ||
| 27 | + input.form-input.js-formValidator-input.js-saveProgress(name='Field4' id='Field4' type='email' required='true' data-validate='required' data-saveprogress='feedback_email') | ||
| 28 | 28 | ||
| 29 | 29 | fieldset.form-field | |
| 30 | 30 | label.form-label(for='type' id='Field5') Type of Feedback | |
@@ -37,7 +37,7 @@ block content | |||
| 37 | 37 | ||
| 38 | 38 | fieldset.form-field | |
| 39 | 39 | label.form-label(for='comment' id='Field1') Give us your feedback to help us improve the site. | |
| 40 | - textarea.form-input.js-formValidator-input(name='Field1' id='Field1' rows='10' required='true' data-validate='required') | ||
| 40 | + textarea.form-input.js-formValidator-input.js-saveProgress(name='Field1' id='Field1' rows='10' required='true' data-validate='required' data-saveprogress='feedback_content') | ||
| 41 | 41 | ||
| 42 | 42 | input.btn.js-formValidator-submit(id='saveForm' name='saveForm' type='submit' value='Submit') | |
| 43 | 43 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -60,13 +60,13 @@ block content | |||
| 60 | 60 | ||
| 61 | 61 | if user.authenticated | |
| 62 | 62 | ||
| 63 | - form.form.js-formValidator(action='/news/'+flow.slug+'/comment' method='POST') | ||
| 63 | + form.form.js-formValidator.js-saveProgress-container(action='/news/'+flow.slug+'/comment' method='POST') | ||
| 64 | 64 | .bucket | |
| 65 | 65 | .bucket-media | |
| 66 | 66 | img.thumb(src=user.avatar_url width=50) | |
| 67 | 67 | .bucket-content | |
| 68 | 68 | fieldset.form-field | |
| 69 | - textarea.form-input.form-textatrea.js-formValidator-input(name='body' data-validate='required' required='true') | ||
| 69 | + textarea.form-input.form-textatrea.js-formValidator-input.js-saveProgress(name='body' data-saveprogress='comment' data-validate='required' required='true') | ||
| 70 | 70 | ||
| 71 | 71 | input(type='hidden' name='_csrf' value=token) | |
| 72 | 72 | input.btn.btn--a.form-btn.js-formValidator-submit(type='submit' value='Submit') | |
| Back | FazBrowse Home | New Git URL |
0 commit comments