Contact/Domain statuses admin interface refactored #2785

This commit is contained in:
Priit Tark 2015-08-11 13:53:04 +03:00
parent ac0ca8c6dc
commit e387ea4bb4
6 changed files with 58 additions and 54 deletions

View file

@ -5,7 +5,12 @@
.col-md-8
.tab-content{style:'margin-top: 20px;'}
#general-tab.tab-pane.active
= render 'admin/contacts/form_partials/statuses', f: f
= render 'admin/shared/form/statuses', f: f,
model: 'contact',
admin_statuses_map: Contact.admin_statuses_map,
disabled_statuses: Contact::STATUSES - Contact.admin_statuses,
not_deletable_statuses: [Contact::OK, Contact::LINKED]
.row
.col-md-8.text-right
= button_tag(t(:save), class: 'btn btn-primary')

View file

@ -1,5 +1,5 @@
- content_for :actions do
= link_to(t(:add_new_status), '#', class: 'btn btn-primary js-add-contact-status')
= link_to(t(:add_new_status), '#', class: 'btn btn-primary js-add-status')
= link_to(t(:back_to_contact), [:admin, @contact], class: 'btn btn-default')
= render 'shared/title', name: "#{t(:edit)}: #{@contact.name}"

View file

@ -1,41 +0,0 @@
#js-contact-statuses
- f.object.statuses.each do |s|
- disabled = !Contact.admin_statuses.include?(s)
- disabled_style = disabled ? 'display: none' : ''
- delete_style = [Contact::OK, Contact::LINKED].include?(s) ? 'display: none' : ''
.panel.panel-default
.panel-heading.clearfix
.pull-left= t(:status)
.pull-right
= link_to(t(:delete), '#', class: 'btn btn-danger btn-xs js-destroy-status', style: delete_style)
.panel-body
.form-group
= f.label 'status', class: 'col-md-2 control-label'
.col-md-10
.js-select{style: disabled_style}
= select_tag 'contact[statuses][]',
options_for_select(Contact::admin_statuses_map, s),
include_blank: true, class: "form-control"
- if disabled
.disabled-value.js-disabled-value
= s
= hidden_field_tag 'contact[statuses][]', s, readonly: true
.form-group
= label_tag t(:notes), nil, class: 'col-md-2 control-label'
.col-md-10
- value = f.object.new_record? ? '' : f.object.status_notes[s]
= text_field_tag 'contact[status_notes_array][]', value, class: 'form-control'
:coffee
$("#js-contact-statuses").nestedAttributes
bindAddTo: $(".js-add-contact-status")
afterAdd: (el) ->
if el.find('.js-disabled-value')
el.find('.js-disabled-value').remove()
el.find('.js-select').show()
el.find('.js-destroy-status').show()
$(document).on 'click', '.js-destroy-status', (e) ->
e.preventDefault()
$(this).parents('.panel').remove()