pax_global_header00006660000000000000000000000064134127641100014511gustar00rootroot0000000000000052 comment=60219409b6161b4f45bcd271f2253117b06fb2b0 ruby-rails-assets-jquery.are-you-sure-1.9.0/000077500000000000000000000000001341276411000207625ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/Gemfile000066400000000000000000000001111341276411000222460ustar00rootroot00000000000000source 'https://rubygems.org' source 'https://rails-assets.org' gemspec ruby-rails-assets-jquery.are-you-sure-1.9.0/README.md000066400000000000000000000007061341276411000222440ustar00rootroot00000000000000# rails-assets-jquery.are-you-sure > The Bower package inside a gem This gem was automatically generated. You can visit [rails-assets.org](https://rails-assets.org) for more information. ## Usage Add rails-assets source block to your `Gemfile`: ```ruby source "https://rails-assets.org" do gem "rails-assets-jquery.are-you-sure" end ``` Then, import the asset using Sprockets’ `require` directive: ```js //= require "jquery.are-you-sure" ``` ruby-rails-assets-jquery.are-you-sure-1.9.0/Rakefile000066400000000000000000000000341341276411000224240ustar00rootroot00000000000000require "bundler/gem_tasks" ruby-rails-assets-jquery.are-you-sure-1.9.0/app/000077500000000000000000000000001341276411000215425ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/000077500000000000000000000000001341276411000230445ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/documents/000077500000000000000000000000001341276411000250455ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/documents/jquery.are-you-sure/000077500000000000000000000000001341276411000307205ustar00rootroot00000000000000are-you-sure.jquery.json000066400000000000000000000026561341276411000354200ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/documents/jquery.are-you-sure{ "name": "are-you-sure", "title": "Are You Sure? - a dirty forms check plugin", "description": "Are-you-sure is simple light-weight dirty forms JQuery Plugin for modern browsers. It helps prevent users from loosing unsaved form changes by prompting the user to save/submit. It's dependency free and designed for modern browsers... just the features you need and nothing more! See the project page and demo for usage and examples.", "keywords": [ "form", "dirty", "field", "change", "save", "save-check", "save-warning" ], "version": "1.9.0", "author": { "name": "Chris Dance (codedance) at PaperCut Software", "url": "https://github.com/codedance" }, "maintainers": [ { "name": "Chris Dance", "email": "chris.dance@papercut.com", "url": "http://www.papercut.com/" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/codedance/jquery.AreYouSure/blob/master/README.md" } ], "bugs": "https://github.com/codedance/jquery.AreYouSure/issues", "homepage": "https://github.com/codedance/jquery.AreYouSure", "docs": "https://github.com/codedance/jquery.AreYouSure", "demo": "http://www.papercut.com/products/free_software/are-you-sure/demo/are-you-sure-demo.html", "dependencies": { "jquery": ">=1.4.2" } } ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/000077500000000000000000000000001341276411000253755ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/jquery.are-you-sure.js000066400000000000000000000000671341276411000316110ustar00rootroot00000000000000//= require jquery.are-you-sure/jquery.are-you-sure.js ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/jquery.are-you-sure/000077500000000000000000000000001341276411000312505ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/jquery.are-you-sure/Gruntfile.js000066400000000000000000000014061341276411000335460ustar00rootroot00000000000000module.exports = function(grunt) { grunt.config.init({ karma: { options: { browsers: [ 'Chrome', 'Firefox', 'Safari', 'IE' ], frameworks: [ 'jasmine' ], reportSlowerThan: 500, singleRun: true }, unit: { files: [ { pattern: 'bower_components/jquery/dist/jquery.min.js' }, { pattern: 'bower_components/jasmine-jquery/lib/jasmine-jquery.js' }, { pattern: 'jquery.are-you-sure.js' }, { pattern: 'spec/javascripts/*.js' }, { pattern: 'spec/javascripts/fixtures/**/*.html', included: false } ] } } }); grunt.registerTask('test', 'Run tests.', [ 'karma' ]); grunt.registerTask('default', [ 'test' ]); grunt.loadNpmTasks('grunt-karma'); }; ays-beforeunload-shim.js000066400000000000000000000017601341276411000357300ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/jquery.are-you-sure/*! * An experimental shim to partially emulate onBeforeUnload on iOS. * Part of https://github.com/codedance/jquery.AreYouSure/ * * Copyright (c) 2012-2014, Chris Dance and PaperCut Software http://www.papercut.com/ * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Author: chris.dance@papercut.com * Date: 19th May 2014 */ $(function() { if (!navigator.userAgent.toLowerCase().match(/iphone|ipad|ipod|opera/)) { return; } $('a').bind('click', function(evt) { var href = $(evt.target).closest('a').attr('href'); if (href !== undefined && !(href.match(/^#/) || href.trim() == '')) { var response = $(window).triggerHandler('beforeunload', response); if (response && response != "") { var msg = response + "\n\n" + "Press OK to leave this page or Cancel to stay."; if (!confirm(msg)) { return false; } } window.location.href = href; return false; } }); }); jquery.are-you-sure.js000066400000000000000000000126631341276411000354120ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/jquery.are-you-sure/*! * jQuery Plugin: Are-You-Sure (Dirty Form Detection) * https://github.com/codedance/jquery.AreYouSure/ * * Copyright (c) 2012-2014, Chris Dance and PaperCut Software http://www.papercut.com/ * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Author: chris.dance@papercut.com * Version: 1.9.0 * Date: 13th August 2014 */ (function($) { $.fn.areYouSure = function(options) { var settings = $.extend( { 'message' : 'You have unsaved changes!', 'dirtyClass' : 'dirty', 'change' : null, 'silent' : false, 'addRemoveFieldsMarksDirty' : false, 'fieldEvents' : 'change keyup propertychange input', 'fieldSelector': ":input:not(input[type=submit]):not(input[type=button])" }, options); var getValue = function($field) { if ($field.hasClass('ays-ignore') || $field.hasClass('aysIgnore') || $field.attr('data-ays-ignore') || $field.attr('name') === undefined) { return null; } if ($field.is(':disabled')) { return 'ays-disabled'; } var val; var type = $field.attr('type'); if ($field.is('select')) { type = 'select'; } switch (type) { case 'checkbox': case 'radio': val = $field.is(':checked'); break; case 'select': val = ''; $field.find('option').each(function(o) { var $option = $(this); if ($option.is(':selected')) { val += $option.val(); } }); break; default: val = $field.val(); } return val; }; var storeOrigValue = function($field) { $field.data('ays-orig', getValue($field)); }; var checkForm = function(evt) { var isFieldDirty = function($field) { var origValue = $field.data('ays-orig'); if (undefined === origValue) { return false; } return (getValue($field) != origValue); }; var $form = ($(this).is('form')) ? $(this) : $(this).parents('form'); // Test on the target first as it's the most likely to be dirty if (isFieldDirty($(evt.target))) { setDirtyStatus($form, true); return; } $fields = $form.find(settings.fieldSelector); if (settings.addRemoveFieldsMarksDirty) { // Check if field count has changed var origCount = $form.data("ays-orig-field-count"); if (origCount != $fields.length) { setDirtyStatus($form, true); return; } } // Brute force - check each field var isDirty = false; $fields.each(function() { $field = $(this); if (isFieldDirty($field)) { isDirty = true; return false; // break } }); setDirtyStatus($form, isDirty); }; var initForm = function($form) { var fields = $form.find(settings.fieldSelector); $(fields).each(function() { storeOrigValue($(this)); }); $(fields).unbind(settings.fieldEvents, checkForm); $(fields).bind(settings.fieldEvents, checkForm); $form.data("ays-orig-field-count", $(fields).length); setDirtyStatus($form, false); }; var setDirtyStatus = function($form, isDirty) { var changed = isDirty != $form.hasClass(settings.dirtyClass); $form.toggleClass(settings.dirtyClass, isDirty); // Fire change event if required if (changed) { if (settings.change) settings.change.call($form, $form); if (isDirty) $form.trigger('dirty.areYouSure', [$form]); if (!isDirty) $form.trigger('clean.areYouSure', [$form]); $form.trigger('change.areYouSure', [$form]); } }; var rescan = function() { var $form = $(this); var fields = $form.find(settings.fieldSelector); $(fields).each(function() { var $field = $(this); if (!$field.data('ays-orig')) { storeOrigValue($field); $field.bind(settings.fieldEvents, checkForm); } }); // Check for changes while we're here $form.trigger('checkform.areYouSure'); }; var reinitialize = function() { initForm($(this)); } if (!settings.silent && !window.aysUnloadSet) { window.aysUnloadSet = true; $(window).bind('beforeunload', function() { $dirtyForms = $("form").filter('.' + settings.dirtyClass); if ($dirtyForms.length == 0) { return; } // Prevent multiple prompts - seen on Chrome and IE if (navigator.userAgent.toLowerCase().match(/msie|chrome/)) { if (window.aysHasPrompted) { return; } window.aysHasPrompted = true; window.setTimeout(function() {window.aysHasPrompted = false;}, 900); } return settings.message; }); } return this.each(function(elem) { if (!$(this).is('form')) { return; } var $form = $(this); $form.submit(function() { $form.removeClass(settings.dirtyClass); }); $form.bind('reset', function() { setDirtyStatus($form, false); }); // Add a custom events $form.bind('rescan.areYouSure', rescan); $form.bind('reinitialize.areYouSure', reinitialize); $form.bind('checkform.areYouSure', checkForm); initForm($form); }); }; })(jQuery); ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/jquery.are-you-sure/spec/000077500000000000000000000000001341276411000322025ustar00rootroot00000000000000javascripts/000077500000000000000000000000001341276411000344545ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/jquery.are-you-sure/specjquery.are-you-sure_spec.js000066400000000000000000000013211341276411000416740ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/javascripts/jquery.are-you-sure/spec/javascripts'use strict'; // Karma adds 'base/' to the default path jasmine.getFixtures().fixturesPath = 'base/spec/javascripts/fixtures'; describe("A form's", function() { var $form = undefined; describe('text input', function() { var $textInput = undefined; beforeEach(function() { loadFixtures('input-text.html'); $form = $('form'); $textInput = $('input[type=text]'); $form.areYouSure(); }); it('should cause dirtyness after its value changes', function(done) { expect($form.hasClass('dirty')).toBe(false); $textInput.val('new').change(); setTimeout(function() { expect($form.hasClass('dirty')).toBe(true); done(); }, 0); }); }); }); ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/templates/000077500000000000000000000000001341276411000250425ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/templates/jquery.are-you-sure/000077500000000000000000000000001341276411000307155ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/templates/jquery.are-you-sure/spec/000077500000000000000000000000001341276411000316475ustar00rootroot00000000000000javascripts/000077500000000000000000000000001341276411000341215ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/templates/jquery.are-you-sure/specfixtures/000077500000000000000000000000001341276411000357725ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/templates/jquery.are-you-sure/spec/javascriptsinput-text.html000066400000000000000000000001061341276411000407760ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/app/assets/templates/jquery.are-you-sure/spec/javascripts/fixtures
ruby-rails-assets-jquery.are-you-sure-1.9.0/lib/000077500000000000000000000000001341276411000215305ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/lib/rails-assets-jquery.are-you-sure.rb000066400000000000000000000014541341276411000303440ustar00rootroot00000000000000require "rails-assets-jquery.are-you-sure/version" require "rails-assets-jquery" module RailsAssetsJqueryAreYouSure def self.gem_path Pathname(File.realpath(__FILE__)).join('../..') end def self.gem_spec Gem::Specification::load( gem_path.join("rails-assets-jquery.are-you-sure.gemspec").to_s ) end def self.load_paths gem_path.join('app/assets').each_child.to_a end def self.dependencies [ RailsAssetsJquery ] end if defined?(Rails) class Engine < ::Rails::Engine # Rails -> use app/assets directory. end end end class RailsAssets @components ||= [] class << self attr_accessor :components def load_paths components.flat_map(&:load_paths) end end end RailsAssets.components << RailsAssetsJqueryAreYouSure ruby-rails-assets-jquery.are-you-sure-1.9.0/lib/rails-assets-jquery.are-you-sure/000077500000000000000000000000001341276411000300135ustar00rootroot00000000000000ruby-rails-assets-jquery.are-you-sure-1.9.0/lib/rails-assets-jquery.are-you-sure/version.rb000066400000000000000000000000731341276411000320250ustar00rootroot00000000000000module RailsAssetsJqueryAreYouSure VERSION = "1.9.0" end ruby-rails-assets-jquery.are-you-sure-1.9.0/rails-assets-jquery.are-you-sure.gemspec000066400000000000000000000021751341276411000306170ustar00rootroot00000000000000# coding: utf-8 lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'rails-assets-jquery.are-you-sure/version' Gem::Specification.new do |spec| spec.name = "rails-assets-jquery.are-you-sure" spec.version = RailsAssetsJqueryAreYouSure::VERSION spec.authors = ["rails-assets.org"] spec.description = "A light-weight jQuery 'dirty forms' Plugin - it monitors html forms and alerts users to unsaved changes if they attempt to close the browser or navigate away from the page. (Are you sure?)" spec.summary = "A light-weight jQuery 'dirty forms' Plugin - it monitors html forms and alerts users to unsaved changes if they attempt to close the browser or navigate away from the page. (Are you sure?)" spec.homepage = "https://github.com/codedance/jquery.AreYouSure" spec.license = "MIT/GPLv2" spec.files = `find ./* -type f | cut -b 3-`.split($/) spec.require_paths = ["lib"] spec.add_dependency "rails-assets-jquery", ">= 1.4.2" spec.add_development_dependency "bundler", "~> 1.3" spec.add_development_dependency "rake" end