about summary refs log tree commit diff stats
path: root/app
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2018-08-12 07:10:16 -0400
committerKelly Rauchenberger <fefferburbia@gmail.com>2018-08-12 07:10:16 -0400
commitc650bee03937bd0e741e701f1fe0bfe5cf8e040e (patch)
treec0020572ceef21498da9b52851242b22dba7aafe /app
parent77e849b66719f5e86762eff4ae23340dab1b32fa (diff)
downloadthoughts-c650bee03937bd0e741e701f1fe0bfe5cf8e040e.tar.gz
thoughts-c650bee03937bd0e741e701f1fe0bfe5cf8e040e.tar.bz2
thoughts-c650bee03937bd0e741e701f1fe0bfe5cf8e040e.zip
Add link entry type
Diffstat (limited to 'app')
-rw-r--r--app/assets/stylesheets/admin/layout.scss10
-rw-r--r--app/assets/stylesheets/main/records.scss4
-rw-r--r--app/controllers/admin/links_controller.rb52
-rw-r--r--app/models/link.rb15
-rw-r--r--app/views/admin/links/_form.html.haml26
-rw-r--r--app/views/admin/links/edit.html.haml3
-rw-r--r--app/views/admin/links/index.html.haml14
-rw-r--r--app/views/admin/links/new.html.haml3
-rw-r--r--app/views/layouts/admin.html.haml4
9 files changed, 131 insertions, 0 deletions
diff --git a/app/assets/stylesheets/admin/layout.scss b/app/assets/stylesheets/admin/layout.scss index 220dcd5..b2c561b 100644 --- a/app/assets/stylesheets/admin/layout.scss +++ b/app/assets/stylesheets/admin/layout.scss
@@ -111,6 +111,16 @@ body {
111 } 111 }
112 } 112 }
113 113
114 .url-field {
115 label {
116 display: none;
117 }
118
119 input {
120 width: 100%;
121 }
122 }
123
114 .slug-field { 124 .slug-field {
115 display: flex; 125 display: flex;
116 font-size: 0.75em; 126 font-size: 0.75em;
diff --git a/app/assets/stylesheets/main/records.scss b/app/assets/stylesheets/main/records.scss index 47fdfa3..a8b7754 100644 --- a/app/assets/stylesheets/main/records.scss +++ b/app/assets/stylesheets/main/records.scss
@@ -57,6 +57,10 @@
57 &.entry-type-stream, &.entry-type-update { 57 &.entry-type-stream, &.entry-type-update {
58 background-color: #98FB98; 58 background-color: #98FB98;
59 } 59 }
60
61 &.entry-type-link {
62 background-color: #FFCC99;
63 }
60 } 64 }
61 65
62 &.entry-tag { 66 &.entry-tag {
diff --git a/app/controllers/admin/links_controller.rb b/app/controllers/admin/links_controller.rb new file mode 100644 index 0000000..bda0d49 --- /dev/null +++ b/app/controllers/admin/links_controller.rb
@@ -0,0 +1,52 @@
1class Admin::LinksController < Admin::AdminController
2 before_action :set_section
3
4 def index
5 @links = Link.order(created_at: :desc)
6 end
7
8 def new
9 @link = Link.new
10 end
11
12 def create
13 @link = Link.new(link_params)
14
15 if @link.save
16 flash.notice = "Link created successfully!"
17
18 render :edit
19 else
20 flash.alert = "Error creating link."
21
22 render :new
23 end
24 end
25
26 def edit
27 @link = Link.find(params[:id])
28 end
29
30 def update
31 @link = Link.find(params[:id])
32
33 if @link.update_attributes(link_params)
34 flash.notice = "Link updated successfully!"
35 else
36 flash.alert = "Error updating link."
37 end
38
39 render :edit
40 end
41
42 private
43
44 def link_params
45 params.require(:link).permit(:title, :url, :tag_list, records_attributes: [:description, :_destroy])
46 end
47
48 def set_section
49 @section = "links"
50 end
51
52end
diff --git a/app/models/link.rb b/app/models/link.rb new file mode 100644 index 0000000..81ffa2b --- /dev/null +++ b/app/models/link.rb
@@ -0,0 +1,15 @@
1class Link < ApplicationRecord
2 include Recordable
3
4 acts_as_taggable
5
6 validates :title, :url, presence: true
7
8 def path
9 url
10 end
11
12 def taggable
13 self
14 end
15end
diff --git a/app/views/admin/links/_form.html.haml b/app/views/admin/links/_form.html.haml new file mode 100644 index 0000000..c624a3d --- /dev/null +++ b/app/views/admin/links/_form.html.haml
@@ -0,0 +1,26 @@
1%fieldset#content
2 .title-field
3 = f.label :title
4 = f.text_field :title, placeholder: "Title"
5 .url-field
6 = f.label :url
7 = f.text_field :url, placeholder: "URL"
8%fieldset#details
9 - if f.object.errors.any?
10 #errors.details-module
11 %h3 Error!
12 %ul
13 - f.object.errors.full_messages.each do |error|
14 %li= error
15 .details-module
16 .tags-field
17 = f.label :tag_list, "Tags"
18 = f.text_field :tag_list, type: :tags, value: f.object.tag_list.join(",")
19 .details-module
20 = f.fields_for :records, Record.new do |builder|
21 .should-create-record-field
22 = builder.check_box :_destroy, {checked: false}, "0", "1"
23 = builder.label :_destroy, "Create record?"
24 .record-description-field
25 = builder.text_area :description, placeholder: "record text"
26 .details-module= f.submit
diff --git a/app/views/admin/links/edit.html.haml b/app/views/admin/links/edit.html.haml new file mode 100644 index 0000000..1c6c529 --- /dev/null +++ b/app/views/admin/links/edit.html.haml
@@ -0,0 +1,3 @@
1- title "Editing #{@link.title}"
2= form_for @link, url: admin_link_url(@link), html: { id: "entry-form" } do |f|
3 = render partial: "form", locals: { f: f }
diff --git a/app/views/admin/links/index.html.haml b/app/views/admin/links/index.html.haml new file mode 100644 index 0000000..e66d9b7 --- /dev/null +++ b/app/views/admin/links/index.html.haml
@@ -0,0 +1,14 @@
1- title "Links"
2%table#entries
3 %tr
4 %th Title
5 %th Date created
6 %th
7 - @links.each do |link|
8 %tr{ class: cycle("even", "odd") }
9 %td= link.title
10 %td= link.created_at.strftime("%B %d, %Y, %l:%M%P")
11 %td
12 %ul.admin-actions
13 %li= link_to "Edit", edit_admin_link_url(link)
14 %li= link_to "Show", link.url
diff --git a/app/views/admin/links/new.html.haml b/app/views/admin/links/new.html.haml new file mode 100644 index 0000000..accdfd9 --- /dev/null +++ b/app/views/admin/links/new.html.haml
@@ -0,0 +1,3 @@
1- title "New link"
2= form_for @link, url: admin_links_url, html: { id: "entry-form" } do |f|
3 = render partial: "form", locals: { f: f }
diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index bc07335..4bfe60a 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml
@@ -29,5 +29,9 @@
29 = link_to "Streams", admin_streams_url, class: "major-link" 29 = link_to "Streams", admin_streams_url, class: "major-link"
30 %ul.minors 30 %ul.minors
31 %li.minor= link_to "New stream", new_admin_stream_url 31 %li.minor= link_to "New stream", new_admin_stream_url
32 %li{major_sidebar_attrs("links")}
33 = link_to "Links", admin_links_url, class: "major-link"
34 %ul.minors
35 %li.minor= link_to "New link", new_admin_link_url
32 #main 36 #main
33 = yield 37 = yield