Skip to content

Commit fb5331f

Browse files
committed
feature/Update snippet from rails views
1 parent 653c46a commit fb5331f

File tree

2 files changed

+46
-9
lines changed

2 files changed

+46
-9
lines changed

app/controllers/snippets_controller.rb

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,7 @@ def create
155155
end
156156

157157
def edit
158-
@snippet = @snippet.serialize(current_user).to_json
159-
@folders = current_user.folders.to_json
158+
@folders = current_user.folders
160159
end
161160

162161
#TODO: Use a different controller action for moving a snippet between folders
@@ -171,10 +170,9 @@ def update
171170
SnippetFolder.create!(snippet_id: params[:id], folder_id: snippet_params[:folder_id])
172171
end
173172

174-
render json: { message: "Snippet moved to folder <strong>#{folder.name}<strong>" }
175-
173+
head :ok
176174
else
177-
render json: { message: "Failed to update snippet", errors: @snippet.errors.full_messages }, status: 400
175+
render partial: 'shared/errors', locals: { resource: snippet }, status: :bad_request
178176
end
179177
end
180178

app/views/snippets/edit.html.erb

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,43 @@
1-
<new-snippet
2-
:snippet="<%= @snippet %>"
3-
:folders="<%= @folders %>"/>
4-
</new-snippet>
1+
<div data-controller="tabs" class="card--container-padding card--container">
2+
<div class="tabs--headers-container">
3+
<div><h1></h1></div>
4+
<div class="tabs--headers-wrapper">
5+
<div data-target="tabs.tab" data-action="click->tabs#change" class="tabs--header tabs--header-active">
6+
<span>Write</span>
7+
</div>
8+
<div data-target="tabs.tab" data-action="click->tabs#change" class="tabs--header">
9+
<span>Preview</span>
10+
</div>
11+
</div>
12+
</div>
13+
14+
<div data-controller="highlight snippets">
15+
<div data-target="snippets.errors"></div>
16+
<%= form_for @snippet, remote: true, html: { data: { type: "html", action: "ajax:success->snippets#onCreateSuccess ajax:error->snippets#onCreateError" } } do |f| %>
17+
<div class="tabs-details">
18+
<div data-target="tabs.panel">
19+
<%= f.text_field :description, { class: "new-snippet--description", placeholder: "Snippet description..." } %>
20+
<%= f.text_area :body, { data: { action: "input->highlight#highlight" }, class: "new-snippet--body", placeholder: "Snippet body..." } %>
21+
<%= f.text_area :highlighted_body, { data: { target: "highlight.highlightedBody" }, class: "hidden" } %>
22+
</div>
23+
24+
<div data-target="tabs.panel" class="hidden">
25+
<pre class="code-highlight">
26+
<code data-target="highlight.code"></code>
27+
</pre>
28+
</div>
29+
</div>
30+
31+
<div class="create-snippet--options-wrapper">
32+
<%= f.select :folder_id, options_from_collection_for_select(@folders, :id, :name) %>
33+
<%= f.select :language, [], {}, { data: { target: "highlight.languages" } } %>
34+
<%# <select v-model="snippetParams.language">
35+
<option v-for="language in languages" :key="language" :value="language">{{ language }}</option>
36+
</select> %>
37+
38+
<%= f.submit 'UPDATE', class: "button--cta-new" %>
39+
</div>
40+
<% end %>
41+
42+
</div>
43+
</div>

0 commit comments

Comments
 (0)