scrivito_tabbed_content_widget 0.0.60 → 0.0.65

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +5 -28
  4. data/app/assets/javascripts/scrivito_tabbed_content_widget.js +21 -0
  5. data/app/assets/stylesheets/scrivito_tabbed_content_widget.css +35 -0
  6. data/app/models/tabbed_content_tab_widget.rb +13 -9
  7. data/app/models/tabbed_content_widget.rb +9 -39
  8. data/app/views/tabbed_content_tab_widget/details.html.erb +10 -0
  9. data/app/views/tabbed_content_widget/details.html.erb +3 -0
  10. data/app/views/tabbed_content_widget/show.html.erb +14 -0
  11. data/app/views/tabbed_content_widget/thumbnail.html.erb +3 -0
  12. data/lib/scrivito_tabbed_content_widget/version.rb +1 -1
  13. metadata +9 -16
  14. data/app/assets/javascripts/scrivito_tabbed_content_widget/application.js +0 -13
  15. data/app/assets/javascripts/scrivito_tabbed_content_widget/editing.js +0 -8
  16. data/app/assets/stylesheets/scrivito_tabbed_content_widget/application.css +0 -15
  17. data/app/assets/stylesheets/scrivito_tabbed_content_widget/editing.css +0 -2
  18. data/app/controllers/scrivito_tabbed_content_widget/tabbed_content_widget_controller.rb +0 -16
  19. data/app/views/layouts/scrivito_tabbed_content_widget/application.html.erb +0 -14
  20. data/app/views/tabbed_content_tab_widget/details.html.haml +0 -5
  21. data/app/views/tabbed_content_tab_widget/show.html.haml +0 -2
  22. data/app/views/tabbed_content_tab_widget/thumbnail.html.haml +0 -10
  23. data/app/views/tabbed_content_widget/add_new_tab.html.haml +0 -1
  24. data/app/views/tabbed_content_widget/details.html.haml +0 -5
  25. data/app/views/tabbed_content_widget/show.html.haml +0 -27
  26. data/app/views/tabbed_content_widget/thumbnail.html.haml +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 296e757fdf2a39cbe03305920dd0dff632ff06c8
4
- data.tar.gz: 5a6763e676bb3991d1ebefc95818767a5d97d7da
3
+ metadata.gz: 0f8d256e378c379cc6fe5937a27b970435edfccc
4
+ data.tar.gz: 06f491fbb0bd7e26e25075375ffca976dd9526f7
5
5
  SHA512:
6
- metadata.gz: 81773c3f0d760dd671974e543c4835b9bb07b2ce3d28edc2d139ed2093868a3d7178b644fa4e630dc313d72180cb58dbe3eb5df11a0808a3a91d7970f6d79303
7
- data.tar.gz: f32cfd11e7cb070e25cbd61887d36a5026ab56fb7d93cdee88c88fa871ef9b7ad7792dab0820f9fa69f180a713df2044844e1aaf0e1b9cffc089409421927a8a
6
+ metadata.gz: 584db0f18f4566444de634e8f1cce96d4f8293efe0f02b4ea1016c04ecc7063b08e1ab7ec1b6cb6b16c548e341b6044d5dfa3fe0ae87e5066f3f6dbeb3cdb8ba
7
+ data.tar.gz: 052609d6d2fb26f65047c9ff503549e69314a5f017e67a14f8f624bddc9fa76a4d54276247c0111fb9f1272158a47a017ef3efa7e9a9f374a344a6a8494e9f94
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 - 2014 Infopark AG (http://www.infopark.com)
1
+ Copyright (c) 2009 - 2015 Infopark AG (http://www.infopark.com)
2
2
 
3
3
  This software can be used and modified under the LGPL-3.0. Please refer to
4
4
  http://www.gnu.org/licenses/lgpl-3.0.html for the license text.
data/README.md CHANGED
@@ -2,45 +2,22 @@
2
2
 
3
3
  This Gem adds Tabbed Contents to your app. Fill the Gem with Tabs and fill each tab with a widget.
4
4
 
5
-
6
- ## Prerequisites
7
-
8
- Use Bootstrap in your Rails App. (Tested with Bootstrap 3.2)
9
- Use Haml in your Rails App.
10
-
11
-
12
5
  ## Installation
13
6
 
14
7
  Add the gem to your Gemfile:
15
8
 
16
9
  gem 'scrivito_tabbed_content_widget'
17
10
 
18
- Run bundle:
19
-
20
- $ bundle
21
-
22
- Add this line to your application's editing.js
23
-
24
- //= require scrivito_tabbed_content_widget/editing
25
-
26
- Run
27
-
28
- $ rake scrivito:migrate:install
29
- $ rake scrivito:migrate
30
-
31
- Switch to your Workspace 'rtc' and follow below Steps for Usage. If you are happy with the outcome run
32
-
33
- $ rake scrivito:migrate:publish
11
+ Add this line to your applications stylesheet manifest
34
12
 
13
+ *= require scrivito_tabbed_content_widget
35
14
 
36
- ## Steps for Usage
15
+ Add this line to your applications javascript manifest
37
16
 
38
- - Insert the Widget 'Tabbed Content' somewhere in your content.
39
- - Put some 'Tabbed Content Tab' widgets into it.
40
- - For each of the Tabbed Content Tabs: set a headline and fill the content with any widget (text, images, whatever).
17
+ //= require scrivito_tabbed_content_widget
41
18
 
42
19
  ## License
43
20
 
44
- Copyright (c) 2009 - 2014 Infopark AG (http://www.infopark.com)
21
+ Copyright (c) 2009 - 2015 Infopark AG (http://www.infopark.com)
45
22
 
46
23
  This software can be used and modified under the LGPL-3.0. Please refer to http://www.gnu.org/licenses/lgpl-3.0.html for the license text.
@@ -0,0 +1,21 @@
1
+ (function($, App) {
2
+ 'use strict';
3
+
4
+ $(function() {
5
+ scrivito.on('content', function(content) {
6
+ $(content).find('.scrivito-tab-group').each(function(i, tab_group) {
7
+ tab_group = $(tab_group);
8
+ tab_group.find('.scrivito-tab-title').each(function(i, tab_title) {
9
+ tab_title = $(tab_title);
10
+ tab_title.click(function() {
11
+ tab_group.find('.scrivito-tab-title').removeClass('scrivito-tab-active');
12
+ tab_title.addClass('scrivito-tab-active');
13
+ tab_group.find('.scrivito-tab-content').removeClass('scrivito-tab-active');
14
+ tab_group.find('.scrivito-tab-content').eq(tab_title.index())
15
+ .addClass('scrivito-tab-active');
16
+ });
17
+ });
18
+ });
19
+ });
20
+ });
21
+ })(jQuery, this);
@@ -0,0 +1,35 @@
1
+ .scrivito-tab-group .scrivito-tab-titles {
2
+ overflow: hidden;
3
+ }
4
+
5
+ .scrivito-tab-group .scrivito-tab-titles .scrivito-tab-title {
6
+ float: left;
7
+ padding: 10px 50px;
8
+ background: #eee;
9
+ cursor: pointer;
10
+ }
11
+
12
+ .scrivito-tab-group .scrivito-tab-titles .scrivito-tab-title:hover {
13
+ background: #ccc;
14
+ }
15
+
16
+ .scrivito-tab-group .scrivito-tab-titles .scrivito-tab-title.scrivito-tab-active {
17
+ background: #ddd;
18
+ }
19
+
20
+ .scrivito-tab-group .scrivito-tab-contents .scrivito-tab-content {
21
+ display: none;
22
+ min-height: 100px!important;
23
+ padding: 10px;
24
+ width: 100%;
25
+ }
26
+
27
+ .scrivito-tab-group .scrivito-tab-contents .scrivito-tab-content.scrivito-tab-active {
28
+ display: block;
29
+ }
30
+
31
+ @media (max-width: 600px) {
32
+ .scrivito-tab-group .scrivito-tab-titles .scrivito-tab-title {
33
+ width: 100%;
34
+ }
35
+ }
@@ -1,17 +1,21 @@
1
1
  class TabbedContentTabWidget < Widget
2
+ attribute :title, :string, default: 'New Tab'
2
3
  attribute :content, :widgetlist
3
- attribute :headline, :string
4
4
 
5
- def additional_classes
6
- self.container.respond_to?("tabs") && self.container.tabs.first == self ? "active" : ""
7
- end
8
-
9
- def description_for_editor
10
- "Tab"
11
- end
5
+ attribute :background_color, :string
12
6
 
13
7
  def self.valid_container_classes
14
8
  [TabbedContentWidget]
15
9
  end
16
10
 
17
- end
11
+ def self.description_for_editor
12
+ 'Tab'
13
+ end
14
+
15
+ def classes(index)
16
+ css = ["scrivito-tab-title"]
17
+ css << "scrivito-tab-active" if index == 0
18
+ css << self.background_color
19
+ css.join(" ")
20
+ end
21
+ end
@@ -1,44 +1,14 @@
1
1
  class TabbedContentWidget < Widget
2
- attribute :tabs, :widgetlist
2
+ attribute :tabs, :widgetlist, default: [
3
+ TabbedContentTabWidget.new(title: 'First Tab'),
4
+ TabbedContentTabWidget.new(title: 'Second Tab')
5
+ ]
3
6
 
4
- DEFAULT_TABS = 2
5
-
6
- def self.valid_widget_classes_for(field_name)
7
- %w[TabbedContentTabWidget]
8
- end
9
-
10
- def description_for_editor
11
- "Tabbed Content"
7
+ def valid_widget_classes_for(field_name)
8
+ [TabbedContentTabWidget]
12
9
  end
13
10
 
14
- def tabs_with_default
15
- _tabs = tabs.clone
16
- missing_tabs.times do
17
- _tabs << PlaceholderTabWidgetElement.new
18
- end
19
- _tabs
11
+ def self.description_for_editor
12
+ 'Tab Group'
20
13
  end
21
-
22
- private
23
-
24
- def missing_tabs
25
- DEFAULT_TABS - tabs.size
26
- end
27
-
28
- class PlaceholderTabWidgetElement
29
-
30
- def id
31
- @id ||= SecureRandom.hex(2)
32
- end
33
-
34
- def headline
35
- 'Widget Placeholder'
36
- end
37
-
38
- def content
39
- []
40
- end
41
-
42
- end
43
-
44
- end
14
+ end
@@ -0,0 +1,10 @@
1
+ <div class="scrivito-tab-title-details">
2
+ <%= scrivito_tag :h4, widget, :title %>
3
+ <%= link_to '(details)', '#', 'data-scrivito-tab-toggle-details' => widget.id %>
4
+ <div class="scrivito-tab-details-<%= widget.id %>">
5
+ <div>
6
+ <b>Background Color</b>
7
+ <%= render 'scrivito_advanced_editors/color_picker', widget: widget, attribute: :background_color %>
8
+ </div>
9
+ </div>
10
+ </div>
@@ -0,0 +1,3 @@
1
+ <%= scrivito_details_for do %>
2
+ <%= scrivito_tag :div, widget, :tabs, 'data-scrivito-modal-size' => 'large' %>
3
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <div class="scrivito-tab-group">
2
+ <div class="scrivito-tab-titles">
3
+ <% widget.tabs.each_with_index do |tab, i| %>
4
+ <div class="<%= tab.classes(i) %>">
5
+ <%= scrivito_value tab.title %>
6
+ </div>
7
+ <% end %>
8
+ </div>
9
+ <div class="scrivito-tab-contents">
10
+ <% widget.tabs.each_with_index do |tab, i| %>
11
+ <%= scrivito_tag :div, tab, :content, class: "scrivito-tab-content #{'scrivito-tab-active' if i == 0}" %>
12
+ <% end %>
13
+ </div>
14
+ </div>
@@ -0,0 +1,3 @@
1
+ <%= scrivito_thumbnail 'Tabbed Content', image_tag("scrivito_tabbed_content_widget/widget_preview_tabbed.png") do %>
2
+ Content Tabs
3
+ <% end %>
@@ -1,3 +1,3 @@
1
1
  module ScrivitoTabbedContentWidget
2
- VERSION = "0.0.60"
2
+ VERSION = "0.0.65"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scrivito_tabbed_content_widget
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.60
4
+ version: 0.0.65
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scrivito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-20 00:00:00.000000000 Z
11
+ date: 2015-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: scrivito
@@ -63,21 +63,14 @@ files:
63
63
  - README.md
64
64
  - Rakefile
65
65
  - app/assets/images/scrivito_tabbed_content_widget/widget_preview_tabbed.png
66
- - app/assets/javascripts/scrivito_tabbed_content_widget/application.js
67
- - app/assets/javascripts/scrivito_tabbed_content_widget/editing.js
68
- - app/assets/stylesheets/scrivito_tabbed_content_widget/application.css
69
- - app/assets/stylesheets/scrivito_tabbed_content_widget/editing.css
70
- - app/controllers/scrivito_tabbed_content_widget/tabbed_content_widget_controller.rb
66
+ - app/assets/javascripts/scrivito_tabbed_content_widget.js
67
+ - app/assets/stylesheets/scrivito_tabbed_content_widget.css
71
68
  - app/models/tabbed_content_tab_widget.rb
72
69
  - app/models/tabbed_content_widget.rb
73
- - app/views/layouts/scrivito_tabbed_content_widget/application.html.erb
74
- - app/views/tabbed_content_tab_widget/details.html.haml
75
- - app/views/tabbed_content_tab_widget/show.html.haml
76
- - app/views/tabbed_content_tab_widget/thumbnail.html.haml
77
- - app/views/tabbed_content_widget/add_new_tab.html.haml
78
- - app/views/tabbed_content_widget/details.html.haml
79
- - app/views/tabbed_content_widget/show.html.haml
80
- - app/views/tabbed_content_widget/thumbnail.html.haml
70
+ - app/views/tabbed_content_tab_widget/details.html.erb
71
+ - app/views/tabbed_content_widget/details.html.erb
72
+ - app/views/tabbed_content_widget/show.html.erb
73
+ - app/views/tabbed_content_widget/thumbnail.html.erb
81
74
  - config/routes.rb
82
75
  - lib/scrivito_tabbed_content_widget.rb
83
76
  - lib/scrivito_tabbed_content_widget/engine.rb
@@ -104,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
97
  version: '0'
105
98
  requirements: []
106
99
  rubyforge_project:
107
- rubygems_version: 2.4.2
100
+ rubygems_version: 2.4.5
108
101
  signing_key:
109
102
  specification_version: 4
110
103
  summary: A Scrivito Widget for tabbed content.
@@ -1,13 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file.
9
- //
10
- // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- //= require_tree .
@@ -1,8 +0,0 @@
1
- $("#add_new_tab").bind("click", function(e) {
2
- e.preventDefault();
3
- $.get("/scrivito_tabbed_content_widget/add_new_tab?obj=" + $(this).attr("pageid") + "&widget=" + $(this).attr("widgetid"), function(data) {
4
- // TBD: do not reload full page, only tabbed content widget and activate newly created tab
5
- location.reload();
6
- });
7
-
8
- });
@@ -1,15 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any styles
10
- * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
- * file per style scope.
12
- *
13
- *= require_tree .
14
- *= require_self
15
- */
@@ -1,2 +0,0 @@
1
- div.tabs-wrapper {padding-top: 30px;}
2
- div.tab-content > div > div {margin-top: 0;}
@@ -1,16 +0,0 @@
1
- module ScrivitoTabbedContentWidget
2
-
3
- class TabbedContentWidgetController < CmsController
4
-
5
- layout false
6
-
7
- def add_new_tab
8
- widget = Obj.find(params[:obj]).widget_from_pool(params[:widget])
9
- widget.update(tabs: widget.tabs << TabbedContentTabWidget.new())
10
- #TODO: check for success and return appropriate result
11
- render "tabbed_content_widget/add_new_tab"
12
- end
13
-
14
- end
15
-
16
- end
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>ScrivitoTabbedContentWidget</title>
5
- <%= stylesheet_link_tag "scrivito_tabbed_content_widget/application", media: "all" %>
6
- <%= javascript_include_tag "scrivito_tabbed_content_widget/application" %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>
@@ -1,5 +0,0 @@
1
- .details-view
2
- %h4
3
- Tab Headline
4
-
5
- = scrivito_tag(:p, widget, :headline)
@@ -1,2 +0,0 @@
1
- = scrivito_tag(:div, widget, :content)
2
-
@@ -1,10 +0,0 @@
1
- .editing-dialog-thumbnail
2
- .visualization
3
- %span.icon.editing-icon-text
4
-
5
- .title
6
- Tabbed Content Tab
7
-
8
- .description
9
- A single tab in Tabbed Content
10
-
@@ -1,5 +0,0 @@
1
- %h4
2
- Headlines
3
-
4
- - widget.tabs.each do |tab|
5
- = scrivito_tag(:div, tab, :headline)
@@ -1,27 +0,0 @@
1
- .tabs-wrapper
2
- = scrivito_tag(:div, widget, :tabs, style: 'display:none')
3
-
4
- %ul.nav.nav-tabs
5
- - widget.tabs.each_with_index do |tab, index|
6
- - active_class = index == 0 ? 'active' : nil
7
- %li{class: active_class}
8
- = scrivito_tag(:a, tab, :headline, href: "##{tab.id}", 'data-toggle' => 'tab')
9
-
10
- - if scrivito_in_editable_view?
11
- %li.new_tab
12
- %a{id: "add_new_tab", pageid: @obj.id, widgetid: widget.id, href: "#", style: "background-color: #439439; color: white;"}
13
- New Tab
14
-
15
- .tab-content
16
- - widget.tabs.each_with_index do |tab, index|
17
- - active_class = index == 0 ? 'active' : nil
18
- -# still toying around with this a bit:
19
- - if false
20
- = scrivito_tag(:div, widget, tabs[index], class: "tab-pane fade in #{active_class}", id: tab.id)
21
-
22
- .tab-pane.fade.in{id: tab.id, class: active_class}
23
- = scrivito_tag(:div, tab, :content)
24
-
25
- - if widget.tabs.blank?
26
- = scrivito_tag(:div, widget, :tabs)
27
-
@@ -1,2 +0,0 @@
1
- = scrivito_thumbnail 'Tabbed Content', image_tag("scrivito_tabbed_content_widget/widget_preview_tabbed.png") do
2
- Content Tabs