diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/javascripts/admin/records.coffee | 2 | ||||
| -rw-r--r-- | app/assets/javascripts/application.js | 1 | ||||
| -rw-r--r-- | app/assets/stylesheets/admin.css.scss | 1 | ||||
| -rw-r--r-- | app/assets/stylesheets/admin/layout.scss | 8 | ||||
| -rw-r--r-- | app/assets/stylesheets/main/records.scss | 2 | ||||
| -rw-r--r-- | app/controllers/admin/blogs_controller.rb | 2 | ||||
| -rw-r--r-- | app/controllers/admin/streams_controller.rb | 2 | ||||
| -rw-r--r-- | app/models/blog.rb | 6 | ||||
| -rw-r--r-- | app/models/stream.rb | 6 | ||||
| -rw-r--r-- | app/models/update.rb | 4 | ||||
| -rw-r--r-- | app/views/admin/blogs/_form.html.haml | 4 | ||||
| -rw-r--r-- | app/views/admin/streams/_form.html.haml | 4 | ||||
| -rw-r--r-- | app/views/records/_record.html.haml | 7 | ||||
| -rw-r--r-- | app/views/records/index.html.haml | 8 |
14 files changed, 48 insertions, 9 deletions
| diff --git a/app/assets/javascripts/admin/records.coffee b/app/assets/javascripts/admin/records.coffee index 3a1ed51..7a11ce1 100644 --- a/app/assets/javascripts/admin/records.coffee +++ b/app/assets/javascripts/admin/records.coffee | |||
| @@ -23,3 +23,5 @@ $(document).on "turbolinks:load", -> | |||
| 23 | create_record_toggle($(this).prop("checked")) | 23 | create_record_toggle($(this).prop("checked")) |
| 24 | $(".published-field input[type=checkbox]").change -> | 24 | $(".published-field input[type=checkbox]").change -> |
| 25 | published_field_toggle($(this).prop("checked")) | 25 | published_field_toggle($(this).prop("checked")) |
| 26 | $("input[type=tags]").each -> | ||
| 27 | tagsInput(this) | ||
| diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index f902906..a81b3b2 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js | |||
| @@ -14,4 +14,5 @@ | |||
| 14 | //= require jquery_ujs | 14 | //= require jquery_ujs |
| 15 | //= require turbolinks | 15 | //= require turbolinks |
| 16 | //= require ckeditor/init | 16 | //= require ckeditor/init |
| 17 | //= require tags-input | ||
| 17 | //= require_tree ./admin | 18 | //= require_tree ./admin |
| diff --git a/app/assets/stylesheets/admin.css.scss b/app/assets/stylesheets/admin.css.scss index 5235c4b..95d1ed0 100644 --- a/app/assets/stylesheets/admin.css.scss +++ b/app/assets/stylesheets/admin.css.scss | |||
| @@ -1,4 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | *= require normalize-rails | 2 | *= require normalize-rails |
| 3 | *= require tags-input | ||
| 3 | *= require_tree ./admin | 4 | *= require_tree ./admin |
| 4 | */ | 5 | */ |
| diff --git a/app/assets/stylesheets/admin/layout.scss b/app/assets/stylesheets/admin/layout.scss index b825c25..220dcd5 100644 --- a/app/assets/stylesheets/admin/layout.scss +++ b/app/assets/stylesheets/admin/layout.scss | |||
| @@ -196,6 +196,14 @@ body { | |||
| 196 | } | 196 | } |
| 197 | } | 197 | } |
| 198 | 198 | ||
| 199 | .tags-field { | ||
| 200 | label { | ||
| 201 | font-size: .75em; | ||
| 202 | display: block; | ||
| 203 | margin-bottom: 0.5em; | ||
| 204 | } | ||
| 205 | } | ||
| 206 | |||
| 199 | .record-description-field { | 207 | .record-description-field { |
| 200 | display: none; | 208 | display: none; |
| 201 | margin-top: 1em; | 209 | margin-top: 1em; |
| diff --git a/app/assets/stylesheets/main/records.scss b/app/assets/stylesheets/main/records.scss index f57dded..350fb16 100644 --- a/app/assets/stylesheets/main/records.scss +++ b/app/assets/stylesheets/main/records.scss | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | .tags { | 31 | .tags { |
| 32 | margin: .25em; | 32 | margin: .25em; |
| 33 | display: flex; | 33 | display: flex; |
| 34 | flex-wrap: wrap; | ||
| 34 | padding-left: 0; | 35 | padding-left: 0; |
| 35 | 36 | ||
| 36 | li { | 37 | li { |
| @@ -58,6 +59,7 @@ | |||
| 58 | } | 59 | } |
| 59 | } | 60 | } |
| 60 | 61 | ||
| 62 | &.entry-tag { | ||
| 61 | & + li { | 63 | & + li { |
| 62 | margin-left: 1em; | 64 | margin-left: 1em; |
| 63 | } | 65 | } |
| diff --git a/app/controllers/admin/blogs_controller.rb b/app/controllers/admin/blogs_controller.rb index 1035c12..e79dd81 100644 --- a/app/controllers/admin/blogs_controller.rb +++ b/app/controllers/admin/blogs_controller.rb | |||
| @@ -56,7 +56,7 @@ class Admin::BlogsController < Admin::AdminController | |||
| 56 | private | 56 | private |
| 57 | 57 | ||
| 58 | def blog_params | 58 | def blog_params |
| 59 | params.require(:blog).permit(:title, :body, :slug, :published, records_attributes: [:description, :_destroy]) | 59 | params.require(:blog).permit(:title, :body, :slug, :published, :tag_list, records_attributes: [:description, :_destroy]) |
| 60 | end | 60 | end |
| 61 | 61 | ||
| 62 | def set_section | 62 | def set_section |
| diff --git a/app/controllers/admin/streams_controller.rb b/app/controllers/admin/streams_controller.rb index 86dec06..252ebfa 100644 --- a/app/controllers/admin/streams_controller.rb +++ b/app/controllers/admin/streams_controller.rb | |||
| @@ -42,7 +42,7 @@ class Admin::StreamsController < Admin::AdminController | |||
| 42 | private | 42 | private |
| 43 | 43 | ||
| 44 | def stream_params | 44 | def stream_params |
| 45 | params.require(:stream).permit(:title, :body, :slug, records_attributes: [:description, :_destroy]) | 45 | params.require(:stream).permit(:title, :body, :slug, :tag_list, records_attributes: [:description, :_destroy]) |
| 46 | end | 46 | end |
| 47 | 47 | ||
| 48 | def set_section | 48 | def set_section |
| diff --git a/app/models/blog.rb b/app/models/blog.rb index 5742879..18f63f1 100644 --- a/app/models/blog.rb +++ b/app/models/blog.rb | |||
| @@ -1,6 +1,8 @@ | |||
| 1 | class Blog < ApplicationRecord | 1 | class Blog < ApplicationRecord |
| 2 | include Recordable | 2 | include Recordable |
| 3 | 3 | ||
| 4 | acts_as_taggable | ||
| 5 | |||
| 4 | validates :title, presence: true | 6 | validates :title, presence: true |
| 5 | validates :body, presence: true, if: :published | 7 | validates :body, presence: true, if: :published |
| 6 | validates :slug, presence: true, format: /\A[-a-z0-9]+\z/, if: :published | 8 | validates :slug, presence: true, format: /\A[-a-z0-9]+\z/, if: :published |
| @@ -12,6 +14,10 @@ class Blog < ApplicationRecord | |||
| 12 | "/says/#{slug}" | 14 | "/says/#{slug}" |
| 13 | end | 15 | end |
| 14 | 16 | ||
| 17 | def taggable | ||
| 18 | self | ||
| 19 | end | ||
| 20 | |||
| 15 | private | 21 | private |
| 16 | def set_draft_title | 22 | def set_draft_title |
| 17 | if self.title.blank? and not self.published | 23 | if self.title.blank? and not self.published |
| diff --git a/app/models/stream.rb b/app/models/stream.rb index 1398b75..0773143 100644 --- a/app/models/stream.rb +++ b/app/models/stream.rb | |||
| @@ -1,6 +1,8 @@ | |||
| 1 | class Stream < ApplicationRecord | 1 | class Stream < ApplicationRecord |
| 2 | include Recordable | 2 | include Recordable |
| 3 | 3 | ||
| 4 | acts_as_taggable | ||
| 5 | |||
| 4 | has_many :updates | 6 | has_many :updates |
| 5 | 7 | ||
| 6 | validates :title, presence: true | 8 | validates :title, presence: true |
| @@ -9,4 +11,8 @@ class Stream < ApplicationRecord | |||
| 9 | def path | 11 | def path |
| 10 | "/thinks/#{slug}" | 12 | "/thinks/#{slug}" |
| 11 | end | 13 | end |
| 14 | |||
| 15 | def taggable | ||
| 16 | self | ||
| 17 | end | ||
| 12 | end | 18 | end |
| diff --git a/app/models/update.rb b/app/models/update.rb index 73c4911..01907d8 100644 --- a/app/models/update.rb +++ b/app/models/update.rb | |||
| @@ -8,4 +8,8 @@ class Update < ApplicationRecord | |||
| 8 | def path | 8 | def path |
| 9 | "/thinks/#{stream.slug}\#update-#{id}" | 9 | "/thinks/#{stream.slug}\#update-#{id}" |
| 10 | end | 10 | end |
| 11 | |||
| 12 | def taggable | ||
| 13 | stream | ||
| 14 | end | ||
| 11 | end | 15 | end |
| diff --git a/app/views/admin/blogs/_form.html.haml b/app/views/admin/blogs/_form.html.haml index 12f7a82..36925af 100644 --- a/app/views/admin/blogs/_form.html.haml +++ b/app/views/admin/blogs/_form.html.haml | |||
| @@ -22,6 +22,10 @@ | |||
| 22 | - else | 22 | - else |
| 23 | = link_to "Preview post", admin_blog_url(f.object), target: "entry-preview" | 23 | = link_to "Preview post", admin_blog_url(f.object), target: "entry-preview" |
| 24 | .details-module | 24 | .details-module |
| 25 | .tags-field | ||
| 26 | = f.label :tag_list, "Tags" | ||
| 27 | = f.text_field :tag_list, type: :tags, value: f.object.tag_list.join(",") | ||
| 28 | .details-module | ||
| 25 | .published-field | 29 | .published-field |
| 26 | = f.check_box :published | 30 | = f.check_box :published |
| 27 | = f.label :published | 31 | = f.label :published |
| diff --git a/app/views/admin/streams/_form.html.haml b/app/views/admin/streams/_form.html.haml index ce457cb..e04a3fb 100644 --- a/app/views/admin/streams/_form.html.haml +++ b/app/views/admin/streams/_form.html.haml | |||
| @@ -16,6 +16,10 @@ | |||
| 16 | - f.object.errors.full_messages.each do |error| | 16 | - f.object.errors.full_messages.each do |error| |
| 17 | %li= error | 17 | %li= error |
| 18 | .details-module | 18 | .details-module |
| 19 | .tags-field | ||
| 20 | = f.label :tag_list, "Tags" | ||
| 21 | = f.text_field :tag_list, type: :tags, value: f.object.tag_list.join(",") | ||
| 22 | .details-module | ||
| 19 | = f.fields_for :records, Record.new do |builder| | 23 | = f.fields_for :records, Record.new do |builder| |
| 20 | .should-create-record-field | 24 | .should-create-record-field |
| 21 | = builder.check_box :_destroy, {checked: false}, "0", "1" | 25 | = builder.check_box :_destroy, {checked: false}, "0", "1" |
| diff --git a/app/views/records/_record.html.haml b/app/views/records/_record.html.haml new file mode 100644 index 0000000..80a365c --- /dev/null +++ b/app/views/records/_record.html.haml | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | %li | ||
| 2 | %span.description= link_to record.description, record.recordable.path | ||
| 3 | %ul.tags | ||
| 4 | %li.record-date= record.created_at.strftime("%m.%d.%y") | ||
| 5 | %li.entry-type{ class: "entry-type-#{record.recordable_type.downcase}" }= record.recordable_type | ||
| 6 | - record.recordable.taggable.tag_list.each do |tag| | ||
| 7 | %li.entry-tag= tag | ||
| diff --git a/app/views/records/index.html.haml b/app/views/records/index.html.haml index 200321e..4ceed2c 100644 --- a/app/views/records/index.html.haml +++ b/app/views/records/index.html.haml | |||
| @@ -1,7 +1 @@ | |||
| 1 | %ul#records | %ul#records= render @records | |
| 2 | - @records.each do |record| | ||
| 3 | %li | ||
| 4 | %span.description= link_to record.description, record.recordable.path | ||
| 5 | %ul.tags | ||
| 6 | %li.record-date= record.created_at.strftime("%m.%d.%y") | ||
| 7 | %li.entry-type{ class: "entry-type-#{record.recordable_type.downcase}" }= record.recordable_type | ||
