spurs 0.0.6.rc1 → 0.0.6.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc ADDED
@@ -0,0 +1,27 @@
1
+ == Spurs
2
+
3
+
4
+ Rails is a web-application framework that includes everything needed to create
5
+ database-backed web applications according to the Model-View-Control pattern.
6
+
7
+ This pattern splits the view (also called the presentation) into "dumb"
8
+ templates that are primarily responsible for inserting pre-built data in between
9
+ HTML tags. The model contains the "smart" domain objects (such as Account,
10
+ Product, Person, Post) that holds all the business logic and knows how to
11
+ persist themselves to a database. The controller handles the incoming requests
12
+ (such as Save New Account, Update Product, Show Post) by manipulating the model
13
+ and directing data to the view.
14
+
15
+ In Rails, the model is handled by what's called an object-relational mapping
16
+ layer entitled Active Record. This layer allows you to present the data from
17
+ database rows as objects and embellish these data objects with business logic
18
+ methods. You can read more about Active Record in
19
+ link:files/vendor/rails/activerecord/README.html.
20
+
21
+ The controller and view are handled by the Action Pack, which handles both
22
+ layers by its two parts: Action View and Action Controller. These two layers
23
+ are bundled in a single package due to their heavy interdependence. This is
24
+ unlike the relationship between the Active Record and Action Pack that is much
25
+ more separate. Each of these packages can be used independently outside of
26
+ Rails. You can read more about Action Pack in
27
+ link:files/vendor/rails/actionpack/README.html.
@@ -1,2 +1,2 @@
1
1
  //= require ./responsive-tables
2
- //= require ./sticky-subnav
2
+ //= require ./bootstrap-collapsible-section
@@ -0,0 +1,72 @@
1
+ /**
2
+ * jQuery Collapsible Section
3
+ * (c) 2012 Michael North
4
+ */
5
+ (function( $ ){
6
+
7
+ $.fn.collapsibleSection = function( options ) {
8
+
9
+ // Create some defaults, extending them with any options that were provided
10
+ var settings = $.extend({
11
+ collapseText :'collapse',
12
+ expandText :'click to expand',
13
+ headerClass :'section-header',
14
+ bodyClass :'section-body',
15
+ footerClass :'section-footer',
16
+ endClass :'collapsible-section-end',
17
+ sectionComponentClass:'collapsible-section-component'
18
+
19
+ }, options);
20
+
21
+ var private_methods = {
22
+ expandSection: function() {
23
+ $(this).removeClass('collapsed');
24
+ $(this).addClass('expanded');
25
+ },
26
+ collapseSection: function() {
27
+ $(this).addClass('collapsed');
28
+ $(this).removeClass('expanded');
29
+ }
30
+ };
31
+
32
+ return this.each(function(idx,item) {
33
+ //if no collapsed or expanded class is present, collapse it
34
+ if(!$(item).hasClass('collapsed') && !$(item).hasClass('expanded')) {
35
+ $(item).addClass('collapsed');
36
+ }
37
+
38
+ //create end
39
+ var end_element = document.createElement("div");
40
+ $(end_element).addClass(settings.endClass);
41
+
42
+ var end_element_message = document.createElement('div');
43
+ $(end_element_message).addClass("message").append(settings.expandText);
44
+ var fadestripe = document.createElement("div");
45
+ $(fadestripe).addClass('fadestripe');
46
+ $(fadestripe).append(" ");
47
+ end_element.appendChild(end_element_message);
48
+ end_element.appendChild(fadestripe);
49
+
50
+ $(item).append(end_element);
51
+
52
+ //add section-component class to header, body and end
53
+ $(item).find('.' + settings.bodyClass).addClass(settings.sectionComponentClass);
54
+ $(item).find('.' + settings.footerClass).addClass(settings.sectionComponentClass);
55
+ $(item).find('.' + settings.endClass).addClass(settings.sectionComponentClass);
56
+
57
+ //add collapse button
58
+ var collapse_button = document.createElement('a');
59
+ $(collapse_button).addClass('collapse-trigger');
60
+ $(collapse_button).click(function(){
61
+ private_methods.collapseSection.apply(item);
62
+ });
63
+ $(collapse_button).append(settings.collapseText);
64
+ $(item).find('.' + settings.headerClass)[0].appendChild(collapse_button);
65
+
66
+ $(item).find('.'+settings.sectionComponentClass).click(function(){
67
+ private_methods.expandSection.apply(item);
68
+ });
69
+ });
70
+
71
+ };
72
+ })( jQuery );
@@ -15,24 +15,24 @@ $(document).ready(function() {
15
15
  });
16
16
  }
17
17
  };
18
-
18
+
19
19
  $(window).load(updateTables);
20
20
  $(window).bind("resize", updateTables);
21
-
22
-
21
+
22
+
23
23
  function splitTable(original)
24
24
  {
25
25
  original.wrap("<div class='table-wrapper' />");
26
-
26
+
27
27
  var copy = original.clone();
28
28
  copy.find("td:not(.pin_for_mobile), th:not(.pin_for_mobile)").css("display", "none");
29
29
  copy.removeClass("responsive");
30
-
30
+
31
31
  original.closest(".table-wrapper").append(copy);
32
32
  copy.wrap("<div class='pinned' />");
33
33
  original.wrap("<div class='scrollable' />");
34
34
  }
35
-
35
+
36
36
  function unsplitTable(original) {
37
37
  original.closest(".table-wrapper").find(".pinned").remove();
38
38
  original.unwrap();
@@ -11,5 +11,7 @@
11
11
  // GO AFTER THE REQUIRES BELOW.
12
12
  //
13
13
  //= require ./beyond_bootstrap/all
14
- //= require wysihtml5
15
- //= require bootstrap-wysihtml5
14
+
15
+ $().ready(function(){
16
+ $('table.table').addClass('responsive');
17
+ });
@@ -2,5 +2,5 @@
2
2
  *= require ./forms
3
3
  *= require ./responsive-tables
4
4
  *= require ./mobile_modal
5
- *= require ./button_column
5
+ *= require ./bootstrap-collapsible-section
6
6
  */
@@ -0,0 +1,71 @@
1
+ .mn-section {
2
+ margin: 10px 0px;
3
+ display: block;
4
+ .section-header {
5
+ font-size: 24px;
6
+ line-height: 30px;
7
+ padding-left: 10px;
8
+ border-bottom: 1px solid #ddd;
9
+
10
+ a.collapse-trigger {
11
+ display: none;
12
+ float: right;
13
+ font-size: 12px;
14
+ font-weight: 300;
15
+ margin-right: 10px;
16
+ }
17
+ }
18
+
19
+
20
+ .section-body {
21
+ font-size: 16px;
22
+ padding-left: 10px;
23
+ font-weight: 300;
24
+ line-height: 20px;
25
+ color: #666;
26
+ overflow: hidden;
27
+ }
28
+
29
+ .collapsible-section-end {
30
+ height: 0px;
31
+ .message {
32
+ height: 0px;
33
+ padding-top: 8px;
34
+ float: right;
35
+ z-index: 1001;
36
+ color: #999;
37
+ position: relative;
38
+ }
39
+ .fadestripe {
40
+ z-index: 1000;
41
+ height: 30px;
42
+ /* IE9 SVG, needs conditional override of 'filter' to 'none' */
43
+ background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjIiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);
44
+ background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */
45
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.2)), color-stop(100%,rgba(255,255,255,1))); /* Chrome,Safari4+ */
46
+ background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */
47
+ background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%,rgba(255,255,255,1) 100%); /* Opera 11.10+ */
48
+ background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%,rgba(255,255,255,1) 100%); /* IE10+ */
49
+ background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%,rgba(255,255,255,1) 100%); /* W3C */
50
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#33ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-8 */
51
+
52
+ position:relative;
53
+ top: -30px;
54
+ }
55
+ }
56
+ &.collapsed {
57
+ .section-body {
58
+ height: 60px;
59
+ }
60
+ }
61
+ &.expanded {
62
+ a.collapse-trigger {
63
+ display: inline;
64
+ }
65
+ .collapsible-section-end {
66
+ .fadestripe, .message {
67
+ display:none;
68
+ }
69
+ }
70
+ }
71
+ }
@@ -1,23 +1,9 @@
1
1
  @media (max-width: 560px)
2
2
  .modal
3
+ position: fixed
3
4
  width: 100%
4
- top: 50px
5
5
  margin-left: 0px
6
6
  margin-right: 0px
7
- box-shadow: none
8
- right: 0px
9
- border: none
10
7
  left: 0px
11
- .modal-header
12
- background: #fff
13
- width: auto
14
- padding-top: 5px
15
- padding-bottom: 5px
16
- h1
17
- font-size: 30px
18
- line-height: 30px
19
- padding-top: 0px
20
- padding-bottom: 0px
21
- .modal-body
22
-
23
- padding-top: 50px
8
+ right: 0px
9
+ top: 50px
@@ -6,32 +6,31 @@ table
6
6
  @media only screen and (max-width: 767px)
7
7
  table.responsive
8
8
  margin-bottom: 0
9
- .table-wrapper
10
- .scrollable, .pinned
11
- table
12
- td, th
13
- line-height: 21px
14
- .pinned
15
- position: absolute
16
- left: 0
17
- top: 0
18
- background: #fff
19
- width: 200px
9
+ .scrollable, .pinned
10
+ table
11
+ td, th
12
+ line-height: 21px
13
+ .pinned
14
+ position: absolute
15
+ left: 0
16
+ top: 0
17
+ background: #fff
18
+ width: 200px
20
19
 
21
- overflow: hidden
22
- overflow-x: scroll
23
- //border-right: 1px solid #ccc
24
- //border-left: 1px solid #ccc
25
- table
26
- border-right: none
27
- border-left: none
28
- width: 100%
29
- .show_for_pinned
30
- display: table-cell
31
- .hide_for_pinned
32
- display: none
33
- th, td
34
- white-space: nowrap
20
+ overflow: hidden
21
+ overflow-x: scroll
22
+ //border-right: 1px solid #ccc
23
+ //border-left: 1px solid #ccc
24
+ table
25
+ border-right: none
26
+ border-left: none
27
+ width: 100%
28
+ .show_for_pinned
29
+ display: table-cell
30
+ .hide_for_pinned
31
+ display: none
32
+ th, td
33
+ white-space: nowrap
35
34
 
36
35
  div.table-wrapper
37
36
  position: relative
@@ -1,12 +1,3 @@
1
1
  /*
2
2
  *= require ./beyond_bootsrap/all
3
- *= require bootstrap-wysihtml5
4
- */
5
-
6
- .dropdown-menu {
7
- max-height: 500px;
8
- overflow-y: auto;
9
- overflow-x: hidden;
10
- }
11
-
12
-
3
+ */
@@ -15,36 +15,3 @@
15
15
  .section_body
16
16
  display: block
17
17
 
18
-
19
- $section_bg_color: rgb(250,250,250)
20
-
21
- .spurs_section
22
- margin-bottom: 10px
23
- .section_header
24
- font-size: 20px
25
- color: #333
26
- border-bottom: 1px solid #E5E5E5
27
- margin-bottom: 2px
28
- line-height: 36px
29
- .section_body
30
- background: $section_bg_color
31
- border: 1px solid #eee
32
- padding: 10px
33
- border-bottom-right-radius: 5px
34
- border-bottom-left-radius: 5px
35
- ul.nav.nav-tabs
36
- li
37
- a
38
- background-color: #fff
39
- border: 1px solid #ddd
40
- &:hover
41
- background-color: #666
42
- color: $section_bg_color
43
- &.active
44
- a
45
- background-color: $section_bg_color
46
- border-bottom-color: transparent
47
- &:hover
48
- background-color: $section_bg_color
49
- border-bottom-color: transparent
50
- color: #333
@@ -17,47 +17,6 @@ $('body')[0].appendChild(modal_container);
17
17
  %>
18
18
  modal_container.innerHTML = "<%= modal_container_content %>";
19
19
 
20
- if ($(modal_container.children[0]).find('.javascript-hooks').size() > 0) {
21
- var js_hooks = $(modal_container.children[0]).find('.javascript-hooks');
22
- var modal = $(modal_container.children[0]);
23
-
24
- modal.on('hidden', function () {
25
- js_hooks.each(function (idx, item) {
26
- if ($(item).attr('onhidden')) {
27
- eval($(item).attr('onhidden'));
28
- }
29
- });
30
- });
31
-
32
- modal.on('hide', function () {
33
- js_hooks.each(function (idx, item) {
34
- if ($(item).attr('onhide')) {
35
- eval($(item).attr('onhide'));
36
- }
37
- });
38
- });
39
-
40
- modal.on('show', function () {
41
- js_hooks.each(function (idx, item) {
42
- if ($(item).attr('onShow')) {
43
- eval($(item).attr('onShow'));
44
- }
45
- });
46
- });
47
-
48
- modal.on('shown', function () {
49
- js_hooks.each(function (idx, item) {
50
- if ($(item).attr('onshown')) {
51
- console.log($(item));
52
- eval($(item).attr('onshown'));
53
- }
54
- });
55
- });
56
- }
57
-
58
20
  //activate the modal
59
21
  $(modal_container.children[0]).modal();
60
-
61
- if(window._asd != undefined) {
62
- window._asd();
63
- }
22
+ window._asd();
@@ -33,11 +33,7 @@ module Spurs
33
33
  extra_class = options[:type] ? "alert-#{options[:type]}" : ""
34
34
  alert_content = String.new
35
35
  if options[:title]
36
- titl = options[:title]
37
- if options[:title_icon]
38
- titl = "<i class='icon-#{options[:title_icon]}' style='margin-right: 6px'></i>".concat(titl)
39
- end
40
- alert_content.concat(content_tag(:h4, titl.html_safe, :class => 'alert-heading'))
36
+ alert_content.concat(content_tag(:h4, options[:title], :class => 'alert-heading'))
41
37
  end
42
38
  if block
43
39
  block_content = capture(nil, &block)
@@ -72,7 +68,7 @@ module Spurs
72
68
  end
73
69
  flash.clear
74
70
 
75
- #logger.debug("MESSAGE HASH >>#{message_hash.to_json}")
71
+ logger.debug("MESSAGE HASH >>#{message_hash.to_json}")
76
72
 
77
73
 
78
74
  #process the message hash now
@@ -108,9 +108,6 @@ module Spurs
108
108
  if opts[:method] then
109
109
  a_opts[:method] = opts[:method]
110
110
  end
111
- if opts[:target] then
112
- a_opts[:target] = opts[:target]
113
- end
114
111
  end
115
112
  if opts[:onclick]
116
113
  a_opts[:onclick] = opts[:onclick]
@@ -1,6 +1,10 @@
1
- require "spurs/section/builder_base"
1
+ class Spurs::Section::CollapsibleSectionBuilder
2
+ include ActionView::Helpers::TagHelper
2
3
 
3
- class Spurs::Section::CollapsibleSectionBuilder < Spurs::Section::BuilderBase
4
+ @options_from_helper
5
+ def initialize(args={})
6
+ @options_from_helper = args.clone
7
+ end
4
8
 
5
9
  def build_collapsible_section(title,content)
6
10
  r = SecureRandom::hex(5)
@@ -15,18 +15,6 @@ module Spurs
15
15
  builder.build_collapsible_section(title.html_safe,section_content.html_safe)
16
16
  end
17
17
 
18
- def spurs_section(title,options={},&block)
19
- opts = Spurs::Section::section_default_options.merge(options)
20
- if !opts[:builder]
21
- raise "Null builder"
22
- end
23
-
24
- options_to_pass_to_builder = {}
25
- builder = opts[:builder].new(options_to_pass_to_builder)
26
- section_content = capture(nil,&block)
27
- builder.build_section(title.html_safe,section_content.html_safe)
28
- end
29
-
30
18
  def spurs_vcenter(options={}, &block)
31
19
  opts = options.clone
32
20
  if !opts[:class]
data/lib/spurs/section.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require "spurs/section/helper"
2
2
  require "spurs/section/collapsible_section_builder"
3
- require "spurs/section/section_builder"
4
3
  module Spurs
5
4
  module Section
6
5
  @@collapsible_section_default_options = {
@@ -11,13 +10,6 @@ module Spurs
11
10
  def self.collapsible_section_default_options
12
11
  @@collapsible_section_default_options
13
12
  end
14
-
15
- @@section_default_options = {
16
- :builder => Spurs::Section::SectionBuilder
17
- }
18
- def self.section_default_options
19
- @@section_default_options
20
- end
21
13
  end
22
14
  end
23
15
 
data/lib/spurs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Spurs
2
- VERSION = "0.0.6.rc1"
2
+ VERSION = "0.0.6.rc2"
3
3
  end
data/lib/spurs.rb CHANGED
@@ -18,8 +18,6 @@ require "spurs/section"
18
18
  require "spurs/engine"
19
19
  require "spurs/badge"
20
20
 
21
- require "bootstrap-wysihtml5-rails/engine"
22
-
23
21
  ActionView::Base.send :include, Spurs::Flash::Helper
24
22
  ActionView::Base.send :include, Spurs::Nav::Helper
25
23
  ActionView::Base.send :include, Spurs::Section::Helper
data/test/spurs_test.rb CHANGED
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class SpursTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, Spurs
6
+ end
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spurs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6.rc1
4
+ version: 0.0.6.rc2
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,40 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-21 00:00:00.000000000 Z
12
+ date: 2012-08-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '3.1'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '3.1'
30
- - !ruby/object:Gem::Dependency
31
- name: actionpack
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
19
+ - - ~>
36
20
  - !ruby/object:Gem::Version
37
- version: '3.1'
21
+ version: 3.2.1
38
22
  type: :runtime
39
23
  prerelease: false
40
24
  version_requirements: !ruby/object:Gem::Requirement
41
25
  none: false
42
26
  requirements:
43
- - - ! '>='
27
+ - - ~>
44
28
  - !ruby/object:Gem::Version
45
- version: '3.1'
29
+ version: 3.2.1
46
30
  - !ruby/object:Gem::Dependency
47
31
  name: twitter-bootstrap-rails
48
32
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +50,7 @@ dependencies:
66
50
  requirements:
67
51
  - - ! '>='
68
52
  - !ruby/object:Gem::Version
69
- version: '3.1'
53
+ version: 3.1.4
70
54
  type: :runtime
71
55
  prerelease: false
72
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,55 +58,7 @@ dependencies:
74
58
  requirements:
75
59
  - - ! '>='
76
60
  - !ruby/object:Gem::Version
77
- version: '3.1'
78
- - !ruby/object:Gem::Dependency
79
- name: bootstrap-wysihtml5-rails
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: 0.2.12
86
- type: :runtime
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ~>
92
- - !ruby/object:Gem::Version
93
- version: 0.2.12
94
- - !ruby/object:Gem::Dependency
95
- name: therubyracer
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: 0.10.1
102
- type: :runtime
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: 0.10.1
110
- - !ruby/object:Gem::Dependency
111
- name: rails
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ~>
116
- - !ruby/object:Gem::Version
117
- version: '3.1'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ~>
124
- - !ruby/object:Gem::Version
125
- version: '3.1'
61
+ version: 3.1.4
126
62
  description: Helpers and extensions for the Twitter Bootstrap user interface
127
63
  email:
128
64
  - michael.north@truenorthapps.com
@@ -149,8 +85,8 @@ files:
149
85
  - app/assets/images/spurs/jquery_ui_theme/images/ui-icons_cd0a0a_256x240.png
150
86
  - app/assets/images/spurs/jquery_ui_theme/images/ui-icons_f6cf3b_256x240.png
151
87
  - app/assets/javascripts/spurs/beyond_bootstrap/all.js
88
+ - app/assets/javascripts/spurs/beyond_bootstrap/bootstrap-collapsible-section.js
152
89
  - app/assets/javascripts/spurs/beyond_bootstrap/responsive-tables.js
153
- - app/assets/javascripts/spurs/beyond_bootstrap/sticky-subnav.js.coffee
154
90
  - app/assets/javascripts/spurs/beyond_bootstrap.js
155
91
  - app/assets/javascripts/spurs/flashes.js.coffee
156
92
  - app/assets/javascripts/spurs/flashes.js.erb
@@ -159,7 +95,7 @@ files:
159
95
  - app/assets/javascripts/spurs/vars.js.erb
160
96
  - app/assets/javascripts/spurs.js
161
97
  - app/assets/stylesheets/spurs/beyond_bootsrap/all.css
162
- - app/assets/stylesheets/spurs/beyond_bootsrap/button_column.css.sass
98
+ - app/assets/stylesheets/spurs/beyond_bootsrap/bootstrap-collapsible-section.css.scss
163
99
  - app/assets/stylesheets/spurs/beyond_bootsrap/forms.css.sass
164
100
  - app/assets/stylesheets/spurs/beyond_bootsrap/mobile_modal.css.sass
165
101
  - app/assets/stylesheets/spurs/beyond_bootsrap/responsive-tables.css.sass
@@ -196,17 +132,15 @@ files:
196
132
  - lib/spurs/popover/builder.rb
197
133
  - lib/spurs/popover/helper.rb
198
134
  - lib/spurs/popover.rb
199
- - lib/spurs/section/builder_base.rb
200
135
  - lib/spurs/section/collapsible_section_builder.rb
201
136
  - lib/spurs/section/helper.rb
202
- - lib/spurs/section/section_builder.rb
203
137
  - lib/spurs/section.rb
204
138
  - lib/spurs/version.rb
205
139
  - lib/spurs.rb
206
140
  - lib/tasks/spurs_tasks.rake
207
141
  - MIT-LICENSE
208
142
  - Rakefile
209
- - README.markdown
143
+ - README.rdoc
210
144
  - test/dummy/app/assets/javascripts/application.js
211
145
  - test/dummy/app/assets/stylesheets/application.css
212
146
  - test/dummy/app/controllers/application_controller.rb
@@ -228,7 +162,6 @@ files:
228
162
  - test/dummy/config/locales/en.yml
229
163
  - test/dummy/config/routes.rb
230
164
  - test/dummy/config.ru
231
- - test/dummy/log/test.log
232
165
  - test/dummy/public/404.html
233
166
  - test/dummy/public/422.html
234
167
  - test/dummy/public/500.html
@@ -255,7 +188,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
255
188
  version: '0'
256
189
  segments:
257
190
  - 0
258
- hash: -286962116275508797
191
+ hash: 3755465715902946807
259
192
  required_rubygems_version: !ruby/object:Gem::Requirement
260
193
  none: false
261
194
  requirements:
@@ -290,7 +223,6 @@ test_files:
290
223
  - test/dummy/config/locales/en.yml
291
224
  - test/dummy/config/routes.rb
292
225
  - test/dummy/config.ru
293
- - test/dummy/log/test.log
294
226
  - test/dummy/public/404.html
295
227
  - test/dummy/public/422.html
296
228
  - test/dummy/public/500.html
data/README.markdown DELETED
@@ -1,87 +0,0 @@
1
- # Spurs
2
-
3
- Spurs is a library that adds some bells and whistles to the Twitter Bootstrap GUI framework.
4
-
5
- ## Installation
6
- There are many independent components of spurs, and some require more set up than others.
7
-
8
- To get started, in your gemfile, add
9
-
10
- ```ruby
11
- gem 'spurs'
12
- ```
13
-
14
- and then run
15
-
16
- ```ruby
17
- bundle install
18
- ```
19
-
20
- ## Flash Messages
21
-
22
- From the rails side, you can create four types of messages: `:notice`, `:warning`, `:info` and `:error`
23
-
24
- ```ruby
25
- flash_addItem(:notices,"A message about something successfully happening!")
26
- ```
27
- It's especially easy to add model errors as flash messages. Here's a typical use
28
- ```ruby
29
- m = Message.new(:title => "hello", :body => "world!")
30
- if !m.save
31
- flash_addModelErrors(m)
32
- end
33
- ```
34
-
35
-
36
- You can also use JavaScript to generate matching messages
37
- ```javascript
38
- spurs.flash.alert("Something has gone wrong!","error");
39
- ```
40
- [More...](https://github.com/TrueNorth/spurs/wiki/Flash-Messages)
41
-
42
- ## Navigation
43
-
44
- Spurs makes creation of bootstrap navigation easy!.
45
- ```haml
46
- = spurs_nav :type => :pills do |nav|
47
- = nav.tab :user, :icon => :user, :href => "#user"
48
- = nav.tab :settings, :icon => :cog, :onclick => "alert('hello');"
49
- ```
50
- [More...](https://github.com/TrueNorth/spurs/wiki/Navigation)
51
-
52
- ## Alerts
53
- Alerts are styled to match flash messages. Creating an in-place alert is done as follows
54
- ```haml
55
- = spurs_alert_box do
56
- This is a basic alert
57
- ```
58
- [More...](https://github.com/TrueNorth/spurs/wiki/Alerts)
59
-
60
- ## Asynchronous Modals
61
- Spurs can present a modal as a response to an asynchronous request.
62
-
63
- For example, if your request is
64
- ```javascript
65
- $.get({url: '/blogs/MY_BLOG/posts/new.js'});
66
- ```
67
- Your controller response might look like
68
- ```ruby
69
- @blog = Blog.find(params[:blog_id])
70
- respond_to do |format|
71
- format.js {
72
- spawn_modal("Create a new blog post", #Title of the modal
73
- "blogs/posts/new", # Path to a partial to render in the modal body.
74
- @blog, # Object that the partial is rendering. Can be nil if the previous argument is not a partial
75
- :title_icon => '/assets/new_blog_post_icon.png' # Path to an icon shown in the title bar of the modal
76
- :modal_options => {} # A hash passed to the partial as local variables
77
- )
78
- }
79
- end
80
- ```
81
- You can also use a method
82
- ```ruby
83
- spawn_form_modal(...) #same arguments as spawn_modal
84
- ```
85
- which will show a modal with an "OK" button in the footer. Pressing this button will submit any form in the .modal-body div.
86
-
87
-
@@ -1,24 +0,0 @@
1
- not ($) ->
2
- $ ->
3
- processScroll = ->
4
- i = undefined
5
- scrollTop = $win.scrollTop()
6
- if scrollTop >= navTop and not isFixed
7
- isFixed = 1
8
- $nav.addClass "subnav-fixed"
9
- else if scrollTop <= navTop and isFixed
10
- isFixed = 0
11
- $nav.removeClass "subnav-fixed"
12
- $win = $(window)
13
- $nav = $(".subnav")
14
- navTop = $(".subnav").length and $(".subnav").offset().top - 40
15
- isFixed = 0
16
- processScroll()
17
- $nav.on "click", ->
18
- unless isFixed
19
- setTimeout (->
20
- $win.scrollTop $win.scrollTop() - 47
21
- ), 10
22
-
23
- $win.on "scroll", processScroll
24
- (window.jQuery)
@@ -1,20 +0,0 @@
1
- .button-column
2
- width: 100%
3
- button.btn, a.btn
4
- width: 100%
5
- border-radius: 0px
6
- border-top-width: 0px
7
- &:first-child
8
- border-top-width: 0px
9
- border-top-left-radius: 4px
10
- border-top-right-radius: 4px
11
- &:last-child
12
- border-bottom-left-radius: 4px
13
- border-bottom-right-radius: 4px
14
- &.btn-large
15
- &:first-child
16
- border-top-left-radius: 6px
17
- border-top-right-radius: 6px
18
- &:last-child
19
- border-bottom-left-radius: 6px
20
- border-bottom-right-radius: 6px
@@ -1,9 +0,0 @@
1
- class Spurs::Section::BuilderBase
2
- include ActionView::Helpers::TagHelper
3
-
4
- @options_from_helper
5
- def initialize(args={})
6
- @options_from_helper = args.clone
7
- end
8
-
9
- end
@@ -1,22 +0,0 @@
1
- require "spurs/section/builder_base"
2
- class Spurs::Section::SectionBuilder < Spurs::Section::BuilderBase
3
-
4
- def build_section(title,content)
5
- r = SecureRandom::hex(5)
6
- section_id = "section_#{r}"
7
-
8
-
9
- header_output = build_header(title)
10
- body_output = build_body(content)
11
- content_tag(:div,header_output.concat(body_output), :class => "spurs_section #{section_id}")
12
- end
13
-
14
- private
15
- def build_header(title)
16
- content_tag(:div,title, :class => "section_header")
17
- end
18
-
19
- def build_body(content)
20
- content_tag(:div, content.html_safe, :class => "section_body")
21
- end
22
- end
File without changes