From c133e8557f55f96830c0fd8736f871455a0963b9 Mon Sep 17 00:00:00 2001 From: Jose Ramon Camacho Date: Fri, 5 Oct 2018 12:47:25 -0500 Subject: [PATCH] add form_with support #41 --- snippets/views_html_erb.cson | 110 +++++++++++++++++++++------------- snippets/views_html_haml.cson | 101 ++++++++++++++++++------------- 2 files changed, 128 insertions(+), 83 deletions(-) diff --git a/snippets/views_html_erb.cson b/snippets/views_html_erb.cson index 2df5524..45c018c 100644 --- a/snippets/views_html_erb.cson +++ b/snippets/views_html_erb.cson @@ -203,7 +203,7 @@ 'body': '<%= I18n.l(${1:${2:DateTime.now}, format: ${3:short}}}) %>$0' ########################## - # Form and inputs + # form_for and f.inputs (Pre rails 5.1 and f) ########################## 'form_for': 'prefix': 'form_for' @@ -228,35 +228,35 @@ <% end %> """ - 'label_field': + 'f_label_field': 'prefix': 'fl' 'body': '<%= f.label :${1:field}${2:, class: "${3:control-label}"} %>$0' - 'text_field': + 'f_text_field': 'prefix': 'ftf' 'body': '<%= f.text_field :${1:field}${2:, class: "${3:form-control}"} %>' - 'password_field': + 'f_password_field': 'prefix': 'fpf' 'body': '<%= f.password_field :${1:field}${2:, class: "${3:form-control}"} %>' - 'email_field': + 'f_email_field': 'prefix': 'fes' 'body': '<%= f.email_field :${1:field}${2:, class: "${3:form-control}"} %>' - 'hidden_field': + 'f_hidden_field': 'prefix': 'fhf' 'body': '<%= f.hidden_field :${1:field}, value: "${2:true}" %>' - 'number_field': + 'f_number_field': 'prefix': 'fnf' 'body': '<%= f.number_field :${1:field}${2:, class: "${3:form-control}"}, step: "0.01" %>' - 'text_area': + 'f_text_area': 'prefix': 'fta' 'body': '<%= f.text_area :${1:field}${2:, class: "${3:form-control}"} %>' - 'collection_select': + 'f_collection_select': 'prefix': 'fcs' 'body': """ <%= f.collection_select( @@ -269,7 +269,7 @@ ) %> """ - 'select_field': + 'f_select_field': 'prefix': 'fsf' 'body': """ <%= f.select( @@ -285,7 +285,7 @@ ) %>$0 """ - 'select_enum_field': + 'f_select_enum_field': 'prefix': 'fef' 'body': """ <%= f.select( @@ -301,50 +301,74 @@ ) %>$0 """ - 'select_tag': - 'prefix': 'st' + 'f_checkbox': + 'prefix': 'fcb' + 'body': '<%= f.check_box :${1:method}, ${2:options}, ${3:true}, ${4:false} %>' + + 'f_file_field': + 'prefix': 'fff' + 'body': '<%= f.file_field :${1:file}, accept: "${2:video/mp4}", class: "form-control" %>' + + 'f_submit_field': + 'prefix': 'fs' + 'body': '<%= f.submit "${1:Save / Update}"${2:, class: "${3:btn btn-primary"}} %>$0' + + 'f_input': + 'prefix': 'f.' + 'body': '<%= f.${1:text}_field :${2:field}${3:, class: "${4:form-control}"} %>$0' + + ########################## + # form_with and form.inputs + ########################## + 'form_with': + 'prefix': 'form_with' 'body': """ - <%= select_tag( - :${1:color_id}, - options_from_collection_for_select( - @${2:colors}, - :${3:id}, - :${4:name}, - params[:${1:color_id}] - ), - { ${5:include_blank: "${6:Please select one}"} }, - { ${7:class: "${8:form-control}"} } - ) %> $0 + <%= form_with model: ${1} do |form| %> + ${2:<%= render "shared/errors", object: ${1} %>} + ${0} + <% end %> """ - 'options_from_collection_for_select': + 'form_label_field': + 'prefix': 'forml' + 'body': '<%= form.label :${1:field}${2:, class: "${3:control-label}"} %>$0' + + 'form_text_field': + 'prefix': 'formtf' + 'body': '<%= form.text_field :${1:field}${2:, class: "${3:form-control}"} %>' + + 'form_hidden_field': + 'prefix': 'formhf' + 'body': '<%= form.hidden_field :${1:field}, value: "${2:true}" %>' + + 'form_number_field': + 'prefix': 'formnf' + 'body': '<%= form.number_field :${1:field}${2:, class: "${3:form-control}"}, step: "0.01" %>' + + 'form_file_field': + 'prefix': 'formff' + 'body': '<%= form.file_field :${1:file}, accept: "${2:video/mp4}", class: "form-control" %>' + + 'form_submit_field': + 'prefix': 'forms' + 'body': '<%= form.submit "${1:Save / Update}"${2:, class: "${3:btn btn-primary"}} %>$0' + + ########################## + # form utilities + ########################## + + 'form_options_from_collection_for_select': 'prefix': 'ofcfs' 'description': 'options_from_collection_for_select(collection, value_method, text_method, selected = nil)' 'descriptionMoreUrl': 'http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select' - 'body': 'options_from_collection_for_select(@${1:products}, :${2:id}, :${3:name}, ${4:f.object.${5:product_id}})$0' + 'body': 'options_from_collection_for_select(@${1:products}, :${2:id}, :${3:name}, ${4:form.object.${5:product_id}})$0' - 'options_for_select': + 'form_options_for_select': 'prefix': 'ofs' 'description': 'options_for_select(container, selected = nil)' 'descriptionMoreUrl': 'http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select' 'body': 'options_for_select' - 'checkbox': - 'prefix': 'fcb' - 'body': '<%= f.check_box :${1:method}, ${2:options}, ${3:true}, ${4:false} %>' - - 'file_field': - 'prefix': 'fff' - 'body': '<%= f.file_field :${1:file}, accept: "${2:video/mp4}", class: "form-control" %>' - - 'submit_field': - 'prefix': 'fs' - 'body': '<%= f.submit "${1:Save / Update}"${2:, class: "${3:btn btn-primary"}} %>$0' - 'submit_tag': 'prefix': 'sut' 'body': '<%= submit_tag "${1:Search!}"${2:, class: "${4:btn btn-${3:primary}}"} %>$0' - - 'input': - 'prefix': 'f.' - 'body': '<%= f.${1:text}_field :${2:field}${3:, class: "${4:form-control}"} %>$0' diff --git a/snippets/views_html_haml.cson b/snippets/views_html_haml.cson index d1189bf..53f7b7d 100644 --- a/snippets/views_html_haml.cson +++ b/snippets/views_html_haml.cson @@ -171,7 +171,7 @@ 'current_user': 'prefix': 'cur' 'description': 'current_user' - 'body': '<%= current_user$0 %>' + 'body': '= current_user$0' 'link_to fa_icon("icon", text: "text"), url': 'prefix': 'ltf' @@ -200,7 +200,7 @@ 'body': '= I18n.l(${1:${2:DateTime.now}, format: ${3:short}}})$0' ########################## - # Form and inputs + # form_for and f.inputs (Pre rails 5.1 and f) ########################## 'form_for': 'prefix': 'form_for' @@ -209,6 +209,7 @@ ${2:= render "shared/errors", object: ${1}} ${3:= f.text_field :${4:field}} ${0} + end """ 'form_tag': @@ -219,38 +220,40 @@ :${4:search}, params[:${4:search}], placeholder: "Search", - class: "form-control") + class: "form-control" + ) + end """ - 'label_field': + 'f_label_field': 'prefix': 'fl' 'body': '= f.label :${1:field}${2:, class: "${3:control-label}"}$0' - 'text_field': + 'f_text_field': 'prefix': 'ftf' 'body': '= f.text_field :${1:field}${2:, class: "${3:form-control}"}' - 'password_field': + 'f_password_field': 'prefix': 'fpf' 'body': '= f.password_field :${1:field}${2:, class: "${3:form-control}"}' - 'email_field': + 'f_email_field': 'prefix': 'fes' 'body': '= f.email_field :${1:field}${2:, class: "${3:form-control}"}' - 'hidden_field': + 'f_hidden_field': 'prefix': 'fhf' 'body': '= f.hidden_field :${1:field}, value: "${2:true}"' - 'number_field': + 'f_number_field': 'prefix': 'fnf' 'body': '= f.number_field :${1:field}${2:, class: "${3:form-control}"}, step: "0.01"' - 'text_area': + 'f_text_area': 'prefix': 'fta' 'body': '= f.text_area :${1:field}${2:, class: "${3:form-control}"}' - 'collection_select': + 'f_collection_select': 'prefix': 'fcs' 'body': """ = f.collection_select( @@ -259,10 +262,11 @@ :${3:id}, :${4:name}, { ${5:include_blank: "${6:Please select one}"} }, - { ${7:class: "${8:form-control}"} }) + { ${7:class: "${8:form-control}"} } + ) """ - 'select_field': + 'f_select_field': 'prefix': 'fsf' 'body': """ = f.select( @@ -274,10 +278,11 @@ f.object.${1:resource_id} ), { ${5:include_blank: "${6:Please select one}"} }, - { ${7:class: "${8:form-control}"} })$0 + { ${7:class: "${8:form-control}"} } + )$0 """ - 'select_enum_field': + 'f_select_enum_field': 'prefix': 'fef' 'body': """ = f.select( @@ -289,41 +294,57 @@ ] }, { }, - { })$0 + { } + )$0 """ - 'select_tag': - 'prefix': 'st' - 'body': """ - = select_tag( - :${1:color_id}, - options_from_collection_for_select( - @${2:colors}, - :${3:id}, - :${4:name}, - params[:${1:color_id}] - ), - { ${5:include_blank: "${6:Please select one}"} }, - { ${7:class: "${8:form-control}"} } - ) $0 - """ - - 'checkbox': + 'f_checkbox': 'prefix': 'fcb' 'body': '= f.check_box :${1:method}, ${2:options}, ${3:true}, ${4:false}' - 'file_field': + 'f_file_field': 'prefix': 'fff' 'body': '= f.file_field :${1:file}, accept: "${2:video/mp4}", class: "form-control"' - 'submit_field': + 'f_submit_field': 'prefix': 'fs' 'body': '= f.submit "${1:Save / Update}"${2:, class: "${3:btn btn-primary"}}$0' - 'submit_tag': - 'prefix': 'sut' - 'body': '= submit_tag "${1:Search!}"${2:, class: "${4:btn btn-${3:primary}}"}$0' - - 'input': + 'f_input': 'prefix': 'f.' 'body': '= f.${1:text}_field :${2:field}${3:, class: "${4:form-control}"}$0' + + ########################## + # form_with and form.inputs + ########################## + 'form_with': + 'prefix': 'form_with' + 'body': """ + = form_with model: ${1} do |form| + ${2:= render "shared/errors", object: ${1}} + ${0} + """ + + 'form_label_field': + 'prefix': 'forml' + 'body': '= form.label :${1:field}${2:, class: "${3:control-label}"}$0' + + 'form_text_field': + 'prefix': 'formtf' + 'body': '= form.text_field :${1:field}${2:, class: "${3:form-control}"}' + + 'form_hidden_field': + 'prefix': 'formhf' + 'body': '= form.hidden_field :${1:field}, value: "${2:true}"' + + 'form_number_field': + 'prefix': 'formnf' + 'body': '= form.number_field :${1:field}${2:, class: "${3:form-control}"}, step: "0.01"' + + 'form_file_field': + 'prefix': 'formff' + 'body': '= form.file_field :${1:file}, accept: "${2:video/mp4}", class: "form-control"' + + 'form_submit_field': + 'prefix': 'forms' + 'body': '= form.submit "${1:Save / Update}"${2:, class: "${3:btn btn-primary"}}$0'