mdwa_contato 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/app/controllers/a/mdwa_contato_configuracao_controller.rb +21 -0
- data/app/views/a/mdwa_contato_configuracao/index.html.erb +45 -0
- data/lib/generators/mdwa_contato/install/install_generator.rb +67 -0
- data/lib/generators/mdwa_contato/install/templates/config/initializers/mdwa_contato_config.rb +11 -0
- data/lib/generators/mdwa_contato/install/templates/config/initializers/mdwa_contato_inflections.rb +5 -0
- data/lib/generators/mdwa_contato/install/templates/config/locales/mdwa_contato.en.yml +63 -0
- data/lib/generators/mdwa_contato/install/templates/config/locales/mdwa_contato.pt-BR.yml +64 -0
- data/lib/generators/mdwa_contato/install/templates/entidades/contato_site.rb +18 -0
- data/lib/generators/mdwa_contato/install/templates/mailers/contatos_site_mailer.rb +19 -0
- data/lib/generators/mdwa_contato/install/templates/mailers/views/avisar_administrador.text.erb +14 -0
- data/lib/generators/mdwa_contato/install/templates/mailers/views/avisar_cliente.text.erb +14 -0
- data/lib/generators/mdwa_contato/install/templates/requisitos/gerenciar_contatos.rb +10 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/controller.erb +167 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/helper.erb +7 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/model.erb +58 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/_form.html.erb +26 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/_form_fields.html.erb +54 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/_list.html.erb +60 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/create.js.erb +11 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/destroy.js.erb +6 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/edit.html.erb +13 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/index.html.erb +65 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/index.js.erb +5 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/new.html.erb +13 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/show.html.erb +42 -0
- data/lib/generators/mdwa_contato/install/templates/templates/a/views/update.js.erb +16 -0
- data/lib/generators/mdwa_contato/install/templates/templates/frontend/controller.erb +24 -0
- data/lib/generators/mdwa_contato/install/templates/templates/frontend/views/new.html.erb +46 -0
- data/lib/generators/mdwa_contato/install/templates/templates/frontend/views/salvar.js.erb +5 -0
- data/lib/mdwa_contato/version.rb +4 -0
- data/lib/mdwa_contato.rb +9 -0
- data/mdwa_contato.gemspec +21 -0
- metadata +98 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Marcelo Theodoro
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# MdwaContato
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'mdwa_contato'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install mdwa_contato
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
TODO: Write usage instructions here
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork it
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class A::MdwaContatoConfiguracaoController < A::BackendController
|
2
|
+
|
3
|
+
skip_load_and_authorize_resource
|
4
|
+
skip_authorization_check
|
5
|
+
|
6
|
+
def index
|
7
|
+
end
|
8
|
+
|
9
|
+
def salvar
|
10
|
+
|
11
|
+
Settings['MDWA_CONTATO.email_administrador'] = params[:email_administrador]
|
12
|
+
Settings['MDWA_CONTATO.nome_site'] = params[:nome_site]
|
13
|
+
Settings['MDWA_CONTATO.url_site'] = params[:url_site]
|
14
|
+
Settings['MDWA_CONTATO.assinatura_email'] = params[:assinatura_email]
|
15
|
+
|
16
|
+
respond_to do |format|
|
17
|
+
format.html {redirect_to a_mdwa_contato_configuracao_index_path, notice: t('mdwa_contato.configuracao.salvar_notice')}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<div id"mdwa_contato_configuracao_index">
|
2
|
+
<div class="page_header">
|
3
|
+
<%= t 'mdwa_contato.configuracao.index_title' %>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<div class="inside">
|
7
|
+
|
8
|
+
<%= form_tag a_mdwa_contato_configuracao_salvar_path do %>
|
9
|
+
|
10
|
+
<div class="yui3-g">
|
11
|
+
|
12
|
+
<div class="yui3-u-1-2">
|
13
|
+
<div class="field">
|
14
|
+
<%= label_tag :email_administrador, t('mdwa_contato.configuracao.email_administrador') %>
|
15
|
+
<%= text_field_tag :email_administrador, Settings['MDWA_CONTATO.email_administrador'] %>
|
16
|
+
</div>
|
17
|
+
<div class="field">
|
18
|
+
<%= label_tag :nome_site, t('mdwa_contato.configuracao.nome_site') %>
|
19
|
+
<%= text_field_tag :nome_site, Settings['MDWA_CONTATO.nome_site'] %>
|
20
|
+
</div>
|
21
|
+
<div class="field">
|
22
|
+
<%= label_tag :url_site, t('mdwa_contato.configuracao.url_site') %>
|
23
|
+
<%= text_field_tag :url_site, Settings['MDWA_CONTATO.url_site'] %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<div class="yui3-u-1-2">
|
28
|
+
<div class="field">
|
29
|
+
<%= label_tag :assinatura_email, t('mdwa_contato.configuracao.assinatura_email') %>
|
30
|
+
<%= text_area_tag :assinatura_email, Settings['MDWA_CONTATO.assinatura_email'] %>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
</div>
|
35
|
+
|
36
|
+
<div class="actions">
|
37
|
+
<%= link_to t('system.cancel_button'), '#', :class => :cancel %>
|
38
|
+
<%= submit_tag t('system.save_button'), :class => :button %>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<% end %>
|
42
|
+
|
43
|
+
</div>
|
44
|
+
|
45
|
+
</div>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
require 'rails/generators'
|
4
|
+
require 'mdwa/dsl'
|
5
|
+
|
6
|
+
module MdwaContato
|
7
|
+
class InstallGenerator < Rails::Generators::Base
|
8
|
+
|
9
|
+
source_root File.expand_path("../templates", __FILE__)
|
10
|
+
|
11
|
+
def instalacao
|
12
|
+
|
13
|
+
# Inclui Rails Settings
|
14
|
+
gem 'rails-settings', :git => "git://github.com/100hz/rails-settings.git"
|
15
|
+
run 'bundle install'
|
16
|
+
generate 'settings Settings'
|
17
|
+
rake 'db:migrate'
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
def config
|
22
|
+
copy_file 'config/initializers/mdwa_contato_inflections.rb', 'config/initializers/mdwa_contato_inflections.rb'
|
23
|
+
copy_file 'config/initializers/mdwa_contato_config.rb', 'config/initializers/mdwa_contato_config.rb'
|
24
|
+
copy_file 'config/locales/mdwa_contato.pt-BR.yml', 'config/locales/mdwa_contato.pt-BR.yml'
|
25
|
+
copy_file 'config/locales/mdwa_contato.en.yml', 'config/locales/mdwa_contato.en.yml'
|
26
|
+
end
|
27
|
+
|
28
|
+
def mdwa
|
29
|
+
copy_file 'requisitos/gerenciar_contatos.rb', MDWA::DSL::REQUIREMENTS_PATH + 'gerenciar_contatos.rb'
|
30
|
+
copy_file 'entidades/contato_site.rb', MDWA::DSL::STRUCTURAL_PATH + 'contato_site.rb'
|
31
|
+
end
|
32
|
+
|
33
|
+
def geradores
|
34
|
+
generate 'mdwa:templates'
|
35
|
+
# copia os templates MDWA - admin e frontend
|
36
|
+
directory 'templates', MDWA::DSL::TEMPLATES_PATH + 'contato_site'
|
37
|
+
# roda a transformação
|
38
|
+
generate 'mdwa:transform ContatoSite --skip-locales'
|
39
|
+
end
|
40
|
+
|
41
|
+
def mailers
|
42
|
+
copy_file 'mailers/contatos_site_mailer.rb', 'app/mailers/contatos_site_mailer.rb'
|
43
|
+
copy_file 'mailers/views/avisar_administrador.text.erb', 'app/views/contatos_site_mailer/avisar_administrador.text.erb'
|
44
|
+
copy_file 'mailers/views/avisar_cliente.text.erb', 'app/views/contatos_site_mailer/avisar_cliente.text.erb'
|
45
|
+
end
|
46
|
+
|
47
|
+
def routes
|
48
|
+
route "
|
49
|
+
##########################################
|
50
|
+
# Rotas para a configuração mdwa_contato #
|
51
|
+
##########################################
|
52
|
+
namespace :a do
|
53
|
+
controller :mdwa_contato_configuracao do
|
54
|
+
get 'mdwa_contato_configuracao/index' => 'mdwa_contato_configuracao#index', :as => 'mdwa_contato_configuracao_index'
|
55
|
+
post 'mdwa_contato_configuracao/salvar' => 'mdwa_contato_configuracao#salvar', :as => 'mdwa_contato_configuracao_salvar'
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
controller :contatos_site do
|
60
|
+
get 'contato' => 'contatos_site#new', :as => 'contato'
|
61
|
+
post 'contatos_site/salvar' => 'contatos_site#salvar', :as => 'contatos_site_salvar'
|
62
|
+
end
|
63
|
+
"
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
ActionMailer::Base.delivery_method = :smtp
|
3
|
+
ActionMailer::Base.smtp_settings = {
|
4
|
+
:address => "smtp.gmail.com",
|
5
|
+
:port => 587,
|
6
|
+
:domain => "qw3.com.br",
|
7
|
+
:user_name => "no-reply@qw3.com.br",
|
8
|
+
:password => "",
|
9
|
+
:authentication => "plain",
|
10
|
+
:enable_starttls_auto => true
|
11
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
en:
|
2
|
+
mdwa_contato:
|
3
|
+
assunto_administrador: "[Contato - Site] %{assunto}"
|
4
|
+
assunto_cliente: "%{nome}, obrigado por entrar em contato."
|
5
|
+
configuracao:
|
6
|
+
salvar_notice: "Configurações salvas com sucesso."
|
7
|
+
index_title: "Configurações de contato"
|
8
|
+
email_administrador: "E-mails de administração (recebem os envios do site)"
|
9
|
+
nome_site: "Nome do site"
|
10
|
+
url_site: "URL do site"
|
11
|
+
assinatura_email: "Assinatura dos emails automáticos"
|
12
|
+
|
13
|
+
|
14
|
+
contatos_site:
|
15
|
+
notice:
|
16
|
+
create: "Contato enviado com sucesso."
|
17
|
+
update: "Contato salvo com sucesso."
|
18
|
+
destroy: "Contato removido."
|
19
|
+
title:
|
20
|
+
index: "Contatos"
|
21
|
+
show: "Contato"
|
22
|
+
new: "Novo Contato"
|
23
|
+
edit: "Editar Contato"
|
24
|
+
index:
|
25
|
+
add: 'Adicionar'
|
26
|
+
edit: 'Editar'
|
27
|
+
edit_label: 'Editar'
|
28
|
+
remove: 'Remover'
|
29
|
+
remove_label: 'Remover'
|
30
|
+
confirm_deletion: 'Você tem certeza?'
|
31
|
+
nome: "Nome"
|
32
|
+
email: "Email"
|
33
|
+
telefone: "Telefone"
|
34
|
+
assunto: "Assunto"
|
35
|
+
mensagem: "Mensagem"
|
36
|
+
id: "ID"
|
37
|
+
created_at: "Criado em"
|
38
|
+
updated_at: "Salvo em"
|
39
|
+
edit:
|
40
|
+
nome: "Nome"
|
41
|
+
email: "Email"
|
42
|
+
telefone: "Telefone"
|
43
|
+
assunto: "Assunto"
|
44
|
+
mensagem: "Mensagem"
|
45
|
+
id: "ID"
|
46
|
+
created_at: "Criado em"
|
47
|
+
updated_at: "Salvo em"
|
48
|
+
show:
|
49
|
+
nome: "Nome"
|
50
|
+
email: "Email"
|
51
|
+
telefone: "Telefone"
|
52
|
+
assunto: "Assunto"
|
53
|
+
mensagem: "Mensagem"
|
54
|
+
id: "ID"
|
55
|
+
created_at: "Criado em"
|
56
|
+
updated_at: "Salvo em"
|
57
|
+
frontend:
|
58
|
+
salvar_notice: "Contato enviado com sucesso."
|
59
|
+
nome: "Nome"
|
60
|
+
email: "Email"
|
61
|
+
telefone: "Telefone"
|
62
|
+
assunto: "Assunto"
|
63
|
+
mensagem: "Mensagem"
|
@@ -0,0 +1,64 @@
|
|
1
|
+
pt-BR:
|
2
|
+
|
3
|
+
mdwa_contato:
|
4
|
+
assunto_administrador: "[Contato - Site] %{assunto}"
|
5
|
+
assunto_cliente: "%{nome}, obrigado por entrar em contato."
|
6
|
+
configuracao:
|
7
|
+
salvar_notice: "Configurações salvas com sucesso."
|
8
|
+
index_title: "Configurações de contato"
|
9
|
+
email_administrador: "E-mails de administração (recebem os envios do site)"
|
10
|
+
nome_site: "Nome do site"
|
11
|
+
url_site: "URL do site"
|
12
|
+
assinatura_email: "Assinatura dos emails automáticos"
|
13
|
+
|
14
|
+
|
15
|
+
contatos_site:
|
16
|
+
notice:
|
17
|
+
create: "Contato enviado com sucesso."
|
18
|
+
update: "Contato salvo com sucesso."
|
19
|
+
destroy: "Contato removido."
|
20
|
+
title:
|
21
|
+
index: "Contatos"
|
22
|
+
show: "Contato"
|
23
|
+
new: "Novo Contato"
|
24
|
+
edit: "Editar Contato"
|
25
|
+
index:
|
26
|
+
add: 'Adicionar'
|
27
|
+
edit: 'Editar'
|
28
|
+
edit_label: 'Editar'
|
29
|
+
remove: 'Remover'
|
30
|
+
remove_label: 'Remover'
|
31
|
+
confirm_deletion: 'Você tem certeza?'
|
32
|
+
nome: "Nome"
|
33
|
+
email: "Email"
|
34
|
+
telefone: "Telefone"
|
35
|
+
assunto: "Assunto"
|
36
|
+
mensagem: "Mensagem"
|
37
|
+
id: "ID"
|
38
|
+
created_at: "Criado em"
|
39
|
+
updated_at: "Salvo em"
|
40
|
+
edit:
|
41
|
+
nome: "Nome"
|
42
|
+
email: "Email"
|
43
|
+
telefone: "Telefone"
|
44
|
+
assunto: "Assunto"
|
45
|
+
mensagem: "Mensagem"
|
46
|
+
id: "ID"
|
47
|
+
created_at: "Criado em"
|
48
|
+
updated_at: "Salvo em"
|
49
|
+
show:
|
50
|
+
nome: "Nome"
|
51
|
+
email: "Email"
|
52
|
+
telefone: "Telefone"
|
53
|
+
assunto: "Assunto"
|
54
|
+
mensagem: "Mensagem"
|
55
|
+
id: "ID"
|
56
|
+
created_at: "Criado em"
|
57
|
+
updated_at: "Salvo em"
|
58
|
+
frontend:
|
59
|
+
salvar_notice: "Contato enviado com sucesso."
|
60
|
+
nome: "Nome"
|
61
|
+
email: "Email"
|
62
|
+
telefone: "Telefone"
|
63
|
+
assunto: "Assunto"
|
64
|
+
mensagem: "Mensagem"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'mdwa/dsl'
|
3
|
+
MDWA::DSL.entities.register "ContatoSite" do |e|
|
4
|
+
|
5
|
+
e.resource = true
|
6
|
+
e.ajax = true
|
7
|
+
e.scaffold_name = 'a/contato_site'
|
8
|
+
e.model_name = 'a/contato_site'
|
9
|
+
|
10
|
+
e.attribute 'nome', 'string', {default: true, filtered: true}
|
11
|
+
e.attribute 'email', 'string', {filtered: true}
|
12
|
+
e.attribute 'telefone', 'string'
|
13
|
+
e.attribute 'assunto', 'string', {filtered: true}
|
14
|
+
e.attribute 'mensagem', 'text'
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
MDWA::DSL.entity('ContatoSite').in_requirements << 'gerenciar_contatos'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
class ContatosSiteMailer < ActionMailer::Base
|
4
|
+
|
5
|
+
def avisar_administrador( contato_site )
|
6
|
+
@contato_site = contato_site
|
7
|
+
mail( :to => Settings['MDWA_CONTATO.email_administrador'], :subject => I18n.t('mdwa_contato.assunto_administrador', :assunto => contato_site.assunto) ) do |format|
|
8
|
+
format.text
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def avisar_cliente( contato_site )
|
13
|
+
@contato_site = contato_site
|
14
|
+
mail( :to => contato_site.email, :subject => I18n.t('mdwa_contato.assunto_cliente', :nome => contato_site.nome) ) do |format|
|
15
|
+
format.text
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
data/lib/generators/mdwa_contato/install/templates/mailers/views/avisar_administrador.text.erb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
====================================================================
|
2
|
+
Consulta enviada pelo site: <%= Settings['MDWA_CONTATO.url_site'] %>
|
3
|
+
====================================================================
|
4
|
+
|
5
|
+
Nome: <%= @contato_site.nome %>
|
6
|
+
E-mail: <%= @contato_site.email %>
|
7
|
+
Telefone: <%= @contato_site.telefone %>
|
8
|
+
Assunto: <%= @contato_site.assunto %>
|
9
|
+
|
10
|
+
Mensagem:
|
11
|
+
<%= @contato_site.mensagem %>
|
12
|
+
|
13
|
+
|
14
|
+
<%= Settings['MDWA_CONTATO.assinatura_email'] %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
===============================================================
|
2
|
+
Essa é uma mensagem automática. Por favor, não responda.
|
3
|
+
===============================================================
|
4
|
+
|
5
|
+
<%= @contato_site.nome %>,
|
6
|
+
|
7
|
+
Agradecemos seu contato no <%= Settings['MDWA_CONTATO.url_site'] %>.
|
8
|
+
Responderemos o mais breve possível.
|
9
|
+
|
10
|
+
<%= Settings['MDWA_CONTATO.assinatura_email'] %>
|
11
|
+
|
12
|
+
===============================================================
|
13
|
+
Essa é uma mensagem automática. Por favor, não responda.
|
14
|
+
===============================================================
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'mdwa/dsl'
|
3
|
+
MDWA::DSL.requirements.register do |r|
|
4
|
+
|
5
|
+
r.summary = 'Gerenciar contatos.'
|
6
|
+
r.alias = 'gerenciar_contatos'
|
7
|
+
r.description = %q{Gerencia a entrada de novos contatos, armazenando em banco de dados e enviando um email.}
|
8
|
+
|
9
|
+
r.entities = ['ContatoSite']
|
10
|
+
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
<%-
|
3
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
4
|
+
@model = @entity.generator_model
|
5
|
+
-%>
|
6
|
+
class <%= @model.controller_name %>Controller < <%= (@model.space == 'a') ? 'A::BackendController' : 'ApplicationController' %>
|
7
|
+
|
8
|
+
<%- if @entity.resource? -%>
|
9
|
+
load_and_authorize_resource :class => "<%= @model.klass %>"
|
10
|
+
<%- end -%>
|
11
|
+
|
12
|
+
# Hook for code generations. Do not delete.
|
13
|
+
#===controller_init===
|
14
|
+
|
15
|
+
def index
|
16
|
+
conditions = []
|
17
|
+
<%-
|
18
|
+
atributos_com_filtro = @entity.attributes.values.select {|attr| attr.options[:filtered]}
|
19
|
+
associacoes_com_filtro = @entity.associations.values.select {|assoc| assoc.options[:filtered]}
|
20
|
+
-%>
|
21
|
+
<%- if !atributos_com_filtro.count.zero? -%>
|
22
|
+
<%- atributos_com_filtro.each do |atributo| -%>
|
23
|
+
<%- if [:integer, :float, :decimal, :boolean].include? atributo.type.to_sym -%>
|
24
|
+
conditions << "(<%= @model.plural_name %>.<%= atributo.name %> = '#{params[:<%= atributo.name %>]}')" unless params[:<%= atributo.name %>].blank?
|
25
|
+
<%- elsif [:string, :text].include? atributo.type.to_sym -%>
|
26
|
+
conditions << "(<%= @model.plural_name %>.<%= atributo.name %> LIKE '%#{params[:<%= atributo.name %>]}%')" unless params[:<%= atributo.name %>].blank?
|
27
|
+
<%- elsif [:date].include? atributo.type.to_sym -%>
|
28
|
+
conditions << "(<%= @model.plural_name %>.<%= atributo.name %> BETWEEN '#{params[:<%= atributo.name %>_0].to_date}' AND '#{params[:<%= atributo.name %>_1].to_date}')" if !params[:<%= atributo.name %>_0].blank? and !params[:<%= atributo.name %>_1].blank?
|
29
|
+
conditions << "(<%= @model.plural_name %>.<%= atributo.name %> >= '#{params[:<%= atributo.name %>_0].to_date}')" if !params[:<%= atributo.name %>_0].blank? and params[:<%= atributo.name %>_0].blank?
|
30
|
+
conditions << "(<%= @model.plural_name %>.<%= atributo.name %> <= '#{params[:<%= atributo.name %>_1].to_date}')" if params[:<%= atributo.name %>_0].blank? and !params[:<%= atributo.name %>_1].blank?
|
31
|
+
<%- elsif [:datetime, :timestamp].include? atributo.type.to_sym -%>
|
32
|
+
conditions << "(<%= @model.plural_name %>.<%= atributo.name %> BETWEEN '#{params[:<%= atributo.name %>_0].to_date.beginning_of_day}' AND '#{params[:<%= atributo.name %>_1].to_date.end_of_day}')" if !params[:<%= atributo.name %>_0].blank? and !params[:<%= atributo.name %>_1].blank?
|
33
|
+
conditions << "(<%= @model.plural_name %>.<%= atributo.name %> >= '#{params[:<%= atributo.name %>_0].to_date.beginning_of_day}')" if !params[:<%= atributo.name %>_0].blank? and params[:<%= atributo.name %>_0].blank?
|
34
|
+
conditions << "(<%= @model.plural_name %>.<%= atributo.name %> <= '#{params[:<%= atributo.name %>_1].to_date.end_of_day}')" if params[:<%= atributo.name %>_0].blank? and !params[:<%= atributo.name %>_1].blank?
|
35
|
+
<%- end -%>
|
36
|
+
<%- end -%>
|
37
|
+
<%- end -%>
|
38
|
+
|
39
|
+
<%- associacoes_com_filtro.each do |associacao| -%>
|
40
|
+
conditions << "(<%= @model.plural_name %>.<%= associacao.name %>_id = #{params[:<%= associacao.name %>_id]})" unless params[:<%= associacao.name %>_id].blank?
|
41
|
+
<%- end -%>
|
42
|
+
|
43
|
+
@<%= @model.plural_name %> = <%= @model.klass %>.paginate :page => params[:page], :per_page => params[:per_page], :conditions => conditions.join(' AND ')
|
44
|
+
|
45
|
+
respond_to do |format|
|
46
|
+
format.html
|
47
|
+
format.js
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
def show
|
53
|
+
@<%= @model.singular_name %> = <%= @model.klass %>.find(params[:id])
|
54
|
+
|
55
|
+
<%- if @entity.ajax? -%>
|
56
|
+
render :layout => false
|
57
|
+
<%- else -%>
|
58
|
+
respond_to do |format|
|
59
|
+
format.html
|
60
|
+
end
|
61
|
+
<%- end -%>
|
62
|
+
end
|
63
|
+
|
64
|
+
def new
|
65
|
+
@<%= @model.singular_name %> = <%= @model.klass %>.new
|
66
|
+
<%- @model.associations.select {|a| a.nested_one?}.each do |assoc| -%>
|
67
|
+
@<%= @model.singular_name %>.<%= assoc.model2.singular_name %> = <%= assoc.model2.klass %>.new
|
68
|
+
<%- end -%>
|
69
|
+
|
70
|
+
<%- if @entity.ajax? -%>
|
71
|
+
render :layout => false
|
72
|
+
<%- else -%>
|
73
|
+
respond_to do |format|
|
74
|
+
format.html
|
75
|
+
end
|
76
|
+
<%- end -%>
|
77
|
+
end
|
78
|
+
|
79
|
+
def edit
|
80
|
+
@<%= @model.singular_name %> = <%= @model.klass %>.find(params[:id])
|
81
|
+
|
82
|
+
<%- if @entity.ajax? -%>
|
83
|
+
render :layout => false
|
84
|
+
<%- else -%>
|
85
|
+
respond_to do |format|
|
86
|
+
format.html
|
87
|
+
end
|
88
|
+
<%- end -%>
|
89
|
+
end
|
90
|
+
|
91
|
+
def create
|
92
|
+
@<%= @model.singular_name %> = <%= @model.klass %>.new(params[:<%= @model.to_params %>])
|
93
|
+
saved_ok = @<%= @model.singular_name %>.save
|
94
|
+
@system_notice = t('<%= @model.plural_name %>.notice.create') if saved_ok
|
95
|
+
|
96
|
+
<%- @model.associations.select{|a| a.has_and_belongs_to_many? and a.composition?}.each do |association| -%>
|
97
|
+
unless params[:<%= association.model2.plural_name %>].nil?
|
98
|
+
@<%= @model.singular_name %>.<%= association.model2.plural_name %>.clear
|
99
|
+
params[:<%= association.model2.plural_name %>].each do |<%= association.model2.singular_name.foreign_key %>|
|
100
|
+
@<%= @model.singular_name %>.<%= association.model2.plural_name %>.push <%= association.model2.klass %>.find <%= association.model2.singular_name.foreign_key %>
|
101
|
+
end
|
102
|
+
end
|
103
|
+
<%- end -%>
|
104
|
+
|
105
|
+
respond_to do |format|
|
106
|
+
<%- if @entity.ajax? -%>
|
107
|
+
format.js
|
108
|
+
<%- else -%>
|
109
|
+
if saved_ok
|
110
|
+
format.html { redirect_to <%= @model.object_name.pluralize %>_path, notice: @system_notice }
|
111
|
+
else
|
112
|
+
format.html { render action: "new" }
|
113
|
+
end
|
114
|
+
<%- end -%>
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def update
|
119
|
+
@<%= @model.singular_name %> = <%= @model.klass %>.find(params[:id])
|
120
|
+
<%- if @entity.user? -%>
|
121
|
+
# if password is blank, delete from params
|
122
|
+
if params[:<%= @model.object_name %>][:password].blank?
|
123
|
+
params[:<%= @model.object_name %>].delete :password
|
124
|
+
params[:<%= @model.object_name %>].delete :password_confirmation
|
125
|
+
end
|
126
|
+
<%- end -%>
|
127
|
+
@<%= @model.singular_name %>.attributes = params[:<%= @model.to_params %>]
|
128
|
+
saved_ok = @<%= @model.singular_name %>.save
|
129
|
+
@system_notice = t('<%= @model.plural_name %>.notice.update') if saved_ok
|
130
|
+
|
131
|
+
<%- @model.associations.select{|a| a.has_and_belongs_to_many? and a.composition?}.each do |association| -%>
|
132
|
+
unless params[:<%= association.model2.plural_name %>].nil?
|
133
|
+
@<%= @model.singular_name %>.<%= association.model2.plural_name %>.clear
|
134
|
+
params[:<%= association.model2.plural_name %>].each do |<%= association.model2.singular_name.foreign_key %>|
|
135
|
+
@<%= @model.singular_name %>.<%= association.model2.plural_name %>.push <%= association.model2.klass %>.find <%= association.model2.singular_name.foreign_key %>
|
136
|
+
end
|
137
|
+
end
|
138
|
+
<%- end -%>
|
139
|
+
|
140
|
+
respond_to do |format|
|
141
|
+
<%- if @entity.ajax? -%>
|
142
|
+
format.js
|
143
|
+
<%- else -%>
|
144
|
+
if saved_ok
|
145
|
+
format.html { redirect_to <%= @model.object_name.pluralize %>_path, notice: @system_notice }
|
146
|
+
else
|
147
|
+
format.html { render action: "edit" }
|
148
|
+
end
|
149
|
+
<%- end -%>
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
def destroy
|
154
|
+
@<%= @model.singular_name %> = <%= @model.klass %>.find(params[:id])
|
155
|
+
@system_notice = t('<%= @model.plural_name %>.notice.destroy') if @<%= @model.singular_name %>.destroy
|
156
|
+
|
157
|
+
respond_to do |format|
|
158
|
+
<%- if @entity.ajax? -%>
|
159
|
+
format.js
|
160
|
+
<%- else -%>
|
161
|
+
format.html { redirect_to <%= @model.object_name.pluralize %>_path, notice: @system_notice }
|
162
|
+
<%- end -%>
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
|
167
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
<%-
|
3
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
4
|
+
@model = @entity.generator_model
|
5
|
+
-%>
|
6
|
+
|
7
|
+
class <%= @model.klass %> < <%= !@entity.user? ? 'ActiveRecord::Base' : 'User' %>
|
8
|
+
|
9
|
+
<%- # model attributes -%>
|
10
|
+
<%- unless @model.attributes.count.zero? -%>
|
11
|
+
attr_accessible <%= @model.attributes.select{|a| !['id', 'created_at', 'updated_at'].include?(a.name)}.collect {|a| ":" + a.name }.join(', ') %>
|
12
|
+
<%- end -%>
|
13
|
+
<%- # paperclip file uploads -%>
|
14
|
+
<%- unless @model.attributes.select{|attr| attr.type.to_sym == :file}.count.zero? -%>
|
15
|
+
has_attached_file <%= @model.attributes.select{|attr| attr.type.to_sym == :file}.collect {|a| ":" + a.name }.join(', ') %>
|
16
|
+
<%- end -%>
|
17
|
+
|
18
|
+
<%- if @entity.user? -%>
|
19
|
+
<%- require_all "#{MDWA::DSL::USERS_PATH}#{@entity.file_name}.rb" -%>
|
20
|
+
<%- @roles = MDWA::DSL.user(@entity.name).nil? ? @roles = [@model.name] : MDWA::DSL.user(@entity.name).user_roles -%>
|
21
|
+
<%- @roles.each do |role| -%>
|
22
|
+
after_create :create_<%= role.underscore %>_permission
|
23
|
+
def create_<%= role.underscore %>_permission
|
24
|
+
<%= role.underscore %>_permission = Permission.find_by_name('<%= role.underscore %>')
|
25
|
+
<%= role.underscore %>_permission = Permission.create(:name => '<%= role.underscore %>') if <%= role.underscore %>_permission.nil?
|
26
|
+
self.permissions.push <%= role.underscore %>_permission
|
27
|
+
end
|
28
|
+
<%- end -%>
|
29
|
+
<%- end -%>
|
30
|
+
|
31
|
+
<%- # model associations -%>
|
32
|
+
<%- @model.associations.each do |association| -%>
|
33
|
+
<%- if association.belongs_to? -%>
|
34
|
+
belongs_to :<%= association.model2.singular_name %>, :class_name => '<%= association.model2.klass %>'
|
35
|
+
attr_accessible :<%= association.model2.singular_name.foreign_key %>
|
36
|
+
<%- end -%>
|
37
|
+
<%- if association.has_one? -%>
|
38
|
+
has_one :<%= association.model2.singular_name %>, :class_name => '<%= association.model2.klass %>'
|
39
|
+
<%- end -%>
|
40
|
+
<%- if association.has_many? -%>
|
41
|
+
has_many :<%= association.model2.plural_name %>, :class_name => '<%= association.model2.klass %>'
|
42
|
+
<%- end -%>
|
43
|
+
<%- if association.has_and_belongs_to_many? -%>
|
44
|
+
has_and_belongs_to_many :<%= association.model2.plural_name %>, :join_table => :<%= association.ordered.first.plural_name %>_<%= association.ordered.last.plural_name %>
|
45
|
+
<%- end -%>
|
46
|
+
<%- if association.nested_one? -%>
|
47
|
+
belongs_to :<%= association.model2.singular_name %>, :class_name => '<%= association.model2.klass %>'
|
48
|
+
attr_accessible :<%= association.model2.singular_name %>_attributes, :<%= association.model2.singular_name.foreign_key %>
|
49
|
+
accepts_nested_attributes_for :<%= association.model2.singular_name %>, :allow_destroy => true
|
50
|
+
<%- end -%>
|
51
|
+
<%- if association.nested_many? -%>
|
52
|
+
has_many :<%= association.model2.plural_name %>, :class_name => '<%= association.model2.klass %>', :dependent => :destroy
|
53
|
+
attr_accessible :<%= association.model2.plural_name %>_attributes
|
54
|
+
accepts_nested_attributes_for :<%= association.model2.plural_name %>, :allow_destroy => true
|
55
|
+
<%- end -%>
|
56
|
+
<%- end -%>
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<%%= <%= 'nested_' if @model.nested_many? %>form_for(<%= @model.to_route_object('@') %><%= ", :remote => true, :html => {:class => :mdwa_ajax #{',:multipart => true' unless @model.attributes.select{|attr| attr.type.to_sym == :file}.count.zero?}}" if @entity.ajax %>) do |f| %>
|
6
|
+
|
7
|
+
<div id="mdwa_error">
|
8
|
+
<%%= render '/template/mdwa/crud_error', :object => @<%= @model.singular_name %> %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="yui3-g">
|
12
|
+
<div class="yui3-u">
|
13
|
+
<%%= render 'form_fields', :f => f %>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="actions">
|
18
|
+
<%- if !@entity.ajax -%>
|
19
|
+
<%%= link_to t('system.cancel_button'), <%= @model.object_name.pluralize %>_path, :class => :cancel %>
|
20
|
+
<%- else -%>
|
21
|
+
<%%= link_to t('system.cancel_button'), '#', :class => :cancel %>
|
22
|
+
<%- end -%>
|
23
|
+
<%%= f.submit t('system.save_button'), :class => :button %>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<%% end %>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<%- @model.attributes.select{|a| !['id', 'created_at', 'updated_at'].include?(a.name)}.each do |attr| -%>
|
6
|
+
<div class="field">
|
7
|
+
<%%= f.label :<%= attr.name %>, t('<%= @model.plural_name %>.edit.<%= attr.name %>') %>
|
8
|
+
<%- if attr.type.to_sym == :file -%>
|
9
|
+
<%% unless @<%= @model.singular_name %>.new_record? %>
|
10
|
+
<span><%%= link_to image_tag(file_icon_path(@<%= @model.singular_name %>.<%= attr.name %>_file_name)), @<%= @model.singular_name %>.<%= attr.name %>.url, :target => '_blank' %></span>
|
11
|
+
<%% end %>
|
12
|
+
<%- end -%>
|
13
|
+
<%%= f.<%= attr.form_field %> :<%= attr.name %> %>
|
14
|
+
</div>
|
15
|
+
<%- end # model.attributes.each -%>
|
16
|
+
|
17
|
+
<%- @model.associations.each do |assoc| -%>
|
18
|
+
<%- next if assoc.skip_views? %>
|
19
|
+
<%- if assoc.belongs_to? -%>
|
20
|
+
<div class="field">
|
21
|
+
<%%= f.label :<%= assoc.model2.singular_name.foreign_key %>, t('<%= @model.plural_name %>.edit.<%= assoc.model2.singular_name %>') %>
|
22
|
+
<%%= f.select :<%= assoc.model2.singular_name.foreign_key %>,
|
23
|
+
options_for_select( <%= assoc.model2.klass %>.order('<%= assoc.reference_field %> ASC').collect{ |c| [c.<%= assoc.reference_field %>, c.id] }, f.object.<%= assoc.model2.singular_name.foreign_key %> ),
|
24
|
+
:prompt => t('<%= @model.plural_name %>.edit.<%= assoc.model2.singular_name %>_select') %>
|
25
|
+
</div>
|
26
|
+
<%- end # if -%>
|
27
|
+
|
28
|
+
<%- if assoc.has_and_belongs_to_many? and assoc.composition? -%>
|
29
|
+
<div class="nested">
|
30
|
+
<%%- <%= assoc.model2.klass %>.order('<%= assoc.reference_field %> ASC').each do |<%= assoc.model2.singular_name %>| -%>
|
31
|
+
<div class="checkbox">
|
32
|
+
<%%= check_box_tag '<%= assoc.model2.plural_name %>[]', <%= assoc.model2.singular_name %>.id, (@<%= @model.singular_name %>.<%= assoc.model2.plural_name %>.include?(<%= assoc.model2.singular_name %>) ? true : false) %>
|
33
|
+
<span><%%= <%= assoc.model2.singular_name %>.<%= assoc.reference_field %> %></span>
|
34
|
+
</div>
|
35
|
+
<%%- end -%>
|
36
|
+
</div>
|
37
|
+
<%- end -%>
|
38
|
+
|
39
|
+
<%- if assoc.nested? -%>
|
40
|
+
<div class="nested">
|
41
|
+
<%%= f.fields_for :<%= (assoc.nested_many?) ? assoc.model2.plural_name : assoc.model2.singular_name %> do |ff| %>
|
42
|
+
<%%= render '<%= assoc.model2.space %>/<%= assoc.model2.plural_name %>/form_fields', :f => ff %>
|
43
|
+
<%- unless assoc.nested_one? -%>
|
44
|
+
<%%= ff.link_to_remove t('nested.remove') %>
|
45
|
+
<%- end -%>
|
46
|
+
|
47
|
+
<%% end %>
|
48
|
+
<%- unless assoc.nested_one? -%>
|
49
|
+
<%%= f.link_to_add t('nested.add', :name => '<%= assoc.model2.singular_name %>'), :<%= assoc.model2.plural_name %> %>
|
50
|
+
<%- end -%>
|
51
|
+
</div>
|
52
|
+
<%- end # if -%>
|
53
|
+
|
54
|
+
<%- end # associations loop -%>
|
@@ -0,0 +1,60 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<table class="list">
|
6
|
+
<thead>
|
7
|
+
<th class="list_show"><%%= t '<%= @model.plural_name %>.index.id' %></th>
|
8
|
+
<th class="list_edit"><%%= t '<%= @model.plural_name %>.index.edit' %></th>
|
9
|
+
<%- @model.attributes.select{|a| !['id', 'created_at', 'updated_at'].include?(a.name)}.each do |attr| -%>
|
10
|
+
<th><%%= t '<%= @model.plural_name %>.index.<%= attr.name %>' %></th>
|
11
|
+
<%- end -%>
|
12
|
+
<%- @model.associations.each do |assoc| -%>
|
13
|
+
<th><%%= t '<%= @model.plural_name %>.index.<%= assoc.model2.singular_name %>' %></th>
|
14
|
+
<%- end -%>
|
15
|
+
<th class="list_remove"><%%= t '<%= @model.plural_name %>.index.remove' %></th>
|
16
|
+
</thead>
|
17
|
+
|
18
|
+
<%% @<%= @model.plural_name %>.each do |<%= @model.singular_name %>| %>
|
19
|
+
<tr class="<%%= cycle 'odd_line', 'even_line' %>" >
|
20
|
+
<td class="list_show">
|
21
|
+
<%%= link_to <%= @model.singular_name %>.id, <%= @model.object_name %>_path(<%= @model.singular_name %>) <%= ", :class => 'lightbox various fancybox.ajax'" if @entity.ajax %> %>
|
22
|
+
</td>
|
23
|
+
<td class="list_edit">
|
24
|
+
<%%= link_to t('<%= @model.plural_name %>.index.edit_label'), edit_<%= @model.object_name %>_path(<%= @model.singular_name %>) <%= ", :class => 'lightbox various fancybox.ajax'" if @entity.ajax %> %>
|
25
|
+
</td>
|
26
|
+
<%- @model.attributes.select{|a| a.name != 'id' and a.name != 'created_at' and a.name != 'updated_at'}.each do |attr| -%>
|
27
|
+
<td>
|
28
|
+
<%- if attr.type.to_sym == :file -%>
|
29
|
+
<%% unless <%= @model.singular_name %>.<%= attr.name %>_file_name.blank? %>
|
30
|
+
<%%= link_to image_tag(file_icon_path(<%= @model.singular_name %>.<%= attr.name %>_file_name)), <%= @model.singular_name %>.<%= attr.name %>.url, :target => '_blank' %>
|
31
|
+
<%% else %>
|
32
|
+
<%%= t 'system.no_file' %>
|
33
|
+
<%% end %>
|
34
|
+
<%- else -%>
|
35
|
+
<%%= <%= @model.singular_name %>.<%= attr.name %> %>
|
36
|
+
<%- end -%>
|
37
|
+
</td>
|
38
|
+
<%- end -%>
|
39
|
+
|
40
|
+
<%- @model.associations.each do |assoc| -%>
|
41
|
+
<td>
|
42
|
+
<%- if assoc.belongs_to? || assoc.nested_one? || assoc.has_one? -%>
|
43
|
+
<%%= <%= @model.singular_name %>.<%= assoc.model2.singular_name %>.<%= assoc.reference_field %> unless <%= @model.singular_name %>.<%= assoc.model2.singular_name %>.nil? %>
|
44
|
+
<%- elsif assoc.has_many? or assoc.has_and_belongs_to_many? or assoc.nested_many? -%>
|
45
|
+
<ul>
|
46
|
+
<%% <%= @model.singular_name %>.<%= assoc.model2.plural_name %>.each do |<%= assoc.model2.singular_name %>| %>
|
47
|
+
<li><%%= <%= assoc.model2.singular_name %>.<%= assoc.reference_field %> %> </li>
|
48
|
+
<%% end %>
|
49
|
+
</ul>
|
50
|
+
<%- end -%>
|
51
|
+
</td>
|
52
|
+
<%- end -%>
|
53
|
+
<td class="list_remove">
|
54
|
+
<%%= link_to t('<%= @model.plural_name %>.index.remove_label'), <%= @model.to_route_object %>, :method => :delete, <%= ':remote => true,' if @entity.ajax %> :data => {:confirm => t('<%= @model.plural_name %>.index.confirm_deletion')} %>
|
55
|
+
</td>
|
56
|
+
</tr>
|
57
|
+
<%% end %>
|
58
|
+
</table>
|
59
|
+
|
60
|
+
<%%= pagination_footer @<%= @model.plural_name %> %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<%% if @<%= @model.singular_name %>.errors.any? %>
|
6
|
+
$("#mdwa_error").html("<%%= j( render '/template/mdwa/crud_error', :object => @<%= @model.singular_name %> )%>");
|
7
|
+
<%% else %>
|
8
|
+
$.fancybox.close(true);
|
9
|
+
$('#<%= @model.plural_name %>_filter_form').submit();
|
10
|
+
$('body').append("<%%= j( render '/template/mdwa/notice', :notice => @system_notice )%>");
|
11
|
+
<%% end %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<div id="<%= @model.plural_name %>_edit" class="mdwa_edit">
|
6
|
+
<div class="page_header">
|
7
|
+
<h1><%%= t('<%= @model.plural_name %>.title.edit') %></h1>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="inside">
|
11
|
+
<%%= render 'form' %>
|
12
|
+
</div>
|
13
|
+
</div>
|
@@ -0,0 +1,65 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<div id="<%= @model.plural_name %>_index" class="mdwa_index">
|
6
|
+
<div class="page_header">
|
7
|
+
<h1><%%= t '<%= @model.plural_name %>.title.index' %></h1>
|
8
|
+
<%- if @entity.ajax -%>
|
9
|
+
<div class="page_header_right_tab">
|
10
|
+
<%%= link_to t('<%= @model.plural_name %>.index.add'), new_<%= @model.object_name %>_path, :class => 'lightbox various fancybox.ajax' %>
|
11
|
+
</div>
|
12
|
+
<%- end -%>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="inside">
|
16
|
+
|
17
|
+
<div class="topo">
|
18
|
+
<div class="yui3-g">
|
19
|
+
<%%= form_tag <%= @model.object_name.pluralize %>_path, :method => :get, :remote => true, :id => '<%= @model.plural_name %>_filter_form' do %>
|
20
|
+
|
21
|
+
<%-
|
22
|
+
atributos_com_filtro = @entity.attributes.values.select {|attr| attr.options[:filtered]}
|
23
|
+
associacoes_com_filtro = @entity.associations.values.select {|assoc| assoc.options[:filtered]}
|
24
|
+
-%>
|
25
|
+
<%- if !atributos_com_filtro.count.zero? or !associacoes_com_filtro.count.zero? -%>
|
26
|
+
<%- atributos_com_filtro.each do |atributo| -%>
|
27
|
+
<div class="yui3-u-1-5">
|
28
|
+
<div class="field">
|
29
|
+
<%%= label_tag :<%= atributo.name %>, t('<%= @model.plural_name %>.filtros.<%= atributo.name %>') %>
|
30
|
+
<%- atributo.to_model_attribute.filter_input.each do |input| -%>
|
31
|
+
<%%= <%= input %> %>
|
32
|
+
<%- end -%>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
<%- end -%>
|
36
|
+
|
37
|
+
<%- associacoes_com_filtro.each do |associacao| -%>
|
38
|
+
<div class="yui3-u-1-5">
|
39
|
+
<div class="field">
|
40
|
+
<%%= label_tag :<%= associacao.name %>, t('<%= @model.plural_name %>.filtros.<%= associacao.name %>') %>
|
41
|
+
<%- associacao.to_model_association.filter_input(associacao.options[:filter_field]).each do |input| -%>
|
42
|
+
<%%= <%= input %> %>
|
43
|
+
<%- end -%>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
<%- end -%>
|
47
|
+
|
48
|
+
<!-- Botão buscar -->
|
49
|
+
<div class="yui3-u-1-5">
|
50
|
+
<div class="field">
|
51
|
+
<label> </label>
|
52
|
+
<%%= submit_tag t('system.search_button'), :class => :button %>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
<%- end -%>
|
56
|
+
|
57
|
+
<%% end %>
|
58
|
+
</div>
|
59
|
+
</div>
|
60
|
+
|
61
|
+
<div id="<%= @model.plural_name %>_list">
|
62
|
+
<%%= render 'list' %>
|
63
|
+
</div>
|
64
|
+
</div>
|
65
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<div id="<%= @model.plural_name %>_new" class="mdwa_new">
|
6
|
+
<div class="page_header">
|
7
|
+
<h1><%%= t('<%= @model.plural_name %>.title.new') %></h1>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="inside">
|
11
|
+
<%%= render 'form' %>
|
12
|
+
</div>
|
13
|
+
</div>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<div id="<%= @model.plural_name %>_show" class="mdwa_show">
|
6
|
+
<div class="page_header">
|
7
|
+
<h1><%%= t('<%= @model.plural_name %>.title.show') %></h1>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="inside">
|
11
|
+
<%- @model.attributes.each do |attr| -%>
|
12
|
+
<div class="field">
|
13
|
+
<label><%%= t '<%= @model.plural_name %>.show.<%= attr.name %>' %></label>
|
14
|
+
<%- if attr.type.to_sym == :file -%>
|
15
|
+
<%% unless @<%= @model.singular_name %>.<%= attr.name %>.nil? %>
|
16
|
+
<span><%%= link_to image_tag(file_icon_path(@<%= @model.singular_name %>.<%= attr.name %>_file_name)), @<%= @model.singular_name %>.<%= attr.name %>.url, :target => '_blank' %></span>
|
17
|
+
<%% else %>
|
18
|
+
<%%= t('system.no_file') %>
|
19
|
+
<%% end %>
|
20
|
+
<%- else -%>
|
21
|
+
<span><%%= @<%= @model.singular_name %>.<%= attr.name %> %></span>
|
22
|
+
<%- end -%>
|
23
|
+
</div>
|
24
|
+
<%- end -%>
|
25
|
+
<%- @model.associations.each do |assoc| -%>
|
26
|
+
<div class="field">
|
27
|
+
<label><%%= t '<%= @model.plural_name %>.show.<%= assoc.model2.singular_name %>' %></label>
|
28
|
+
<span>
|
29
|
+
<%- if assoc.belongs_to? || assoc.nested_one? -%>
|
30
|
+
<%%= @<%= @model.singular_name %>.<%= assoc.model2.singular_name %>.<%= assoc.reference_field %> unless @<%= @model.singular_name %>.<%= assoc.model2.singular_name %>.nil? %>
|
31
|
+
<%- elsif assoc.has_many? or assoc.nested_many? -%>
|
32
|
+
<ul>
|
33
|
+
<%% @<%= @model.singular_name %>.<%= assoc.model2.plural_name %>.each do |<%= assoc.model2.singular_name %>| %>
|
34
|
+
<li><%%= <%= assoc.model2.singular_name %>.<%= assoc.reference_field %> %> </li>
|
35
|
+
<%% end %>
|
36
|
+
</ul>
|
37
|
+
<%- end -%>
|
38
|
+
</span>
|
39
|
+
</div>
|
40
|
+
<%- end -%>
|
41
|
+
</div>
|
42
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%-
|
2
|
+
@entity = MDWA::DSL.entity('ContatoSite')
|
3
|
+
@model = @entity.generator_model
|
4
|
+
-%>
|
5
|
+
<%% if @<%= @model.singular_name %>.errors.any? %>
|
6
|
+
$("#mdwa_error").html("<%%= j( render '/template/mdwa/crud_error', :object => @<%= @model.singular_name %> )%>");
|
7
|
+
<%% else %>
|
8
|
+
if( $('#<%= @model.plural_name %>_list').length > 0 ) {
|
9
|
+
$.fancybox.close(true);
|
10
|
+
$('#<%= @model.plural_name %>_filter_form').submit();
|
11
|
+
}
|
12
|
+
else if( $("#edit_<%= @model.plural_name %>").length > 0 ) {
|
13
|
+
$("#edit_<%= @model.plural_name %> .inside").html("<%%= j( render 'form' )%>");
|
14
|
+
}
|
15
|
+
$('body').append("<%%= j( render '/template/mdwa/notice', :notice => @system_notice )%>");
|
16
|
+
<%% end %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class ContatosSiteController < ApplicationController
|
2
|
+
|
3
|
+
def new
|
4
|
+
@contato_site = A::ContatoSite.new
|
5
|
+
end
|
6
|
+
|
7
|
+
def salvar
|
8
|
+
@contato_site = A::ContatoSite.new( params[:a_contato_site] )
|
9
|
+
salvou = @contato_site.save
|
10
|
+
|
11
|
+
# se salvou, envia emails para o admin e o cliente
|
12
|
+
if salvou
|
13
|
+
@system_notice = t('contatos_site.frontend.salvar_notice')
|
14
|
+
ContatosSiteMailer.avisar_administrador(@contato_site).deliver
|
15
|
+
ContatosSiteMailer.avisar_cliente(@contato_site).deliver
|
16
|
+
end
|
17
|
+
|
18
|
+
respond_to do |format|
|
19
|
+
format.js
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<div id="mdwa_contato">
|
2
|
+
|
3
|
+
<%%= form_for(@contato_site, :url => '/contatos_site/salvar', :remote => true) do |f| %>
|
4
|
+
|
5
|
+
<div id="mdwa_error">
|
6
|
+
<%%= render '/template/mdwa/crud_error', :object => @contato_site %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="yui3-g">
|
10
|
+
<div class="yui3-u-2-3">
|
11
|
+
<div class="field">
|
12
|
+
<%%= f.label :nome, t('contatos_site.frontend.nome') %>
|
13
|
+
<%%= f.text_field :nome %>
|
14
|
+
</div>
|
15
|
+
<div class="field">
|
16
|
+
<%%= f.label :email, t('contatos_site.frontend.email') %>
|
17
|
+
<%%= f.text_field :email %>
|
18
|
+
</div>
|
19
|
+
<div class="field">
|
20
|
+
<%%= f.label :telefone, t('contatos_site.frontend.telefone') %>
|
21
|
+
<%%= f.text_field :telefone %>
|
22
|
+
</div>
|
23
|
+
<div class="field">
|
24
|
+
<%%= f.label :assunto, t('contatos_site.frontend.assunto') %>
|
25
|
+
<%%= f.text_field :assunto %>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div class="yui3-u-1-3">
|
30
|
+
<div class="field">
|
31
|
+
<%%= f.label :mensagem, t('contatos_site.frontend.mensagem') %>
|
32
|
+
<%%= f.text_area :mensagem %>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<div class="actions">
|
40
|
+
<%%= link_to t('system.cancel_button'), '#', :class => :cancel %>
|
41
|
+
<%%= f.submit t('system.save_button'), :class => :button %>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<%% end %>
|
45
|
+
|
46
|
+
</div>
|
data/lib/mdwa_contato.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'mdwa_contato/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "mdwa_contato"
|
8
|
+
gem.version = MdwaContato::VERSION
|
9
|
+
gem.authors = ["Marcelo Theodoro"]
|
10
|
+
gem.email = ["contato@qw3.com.br"]
|
11
|
+
gem.description = %q{Faz o gerenciamento de contatos que entram em um site.}
|
12
|
+
gem.summary = %q{Gerenciador de contatos MDWA}
|
13
|
+
gem.homepage = "https://github.com/qw3/mdwa_contato"
|
14
|
+
|
15
|
+
gem.add_dependency 'mdd', '>= 3.1.0'
|
16
|
+
|
17
|
+
gem.files = `git ls-files`.split($/)
|
18
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
19
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
20
|
+
gem.require_paths = ["lib"]
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mdwa_contato
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Marcelo Theodoro
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-02-27 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: mdd
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 3.1.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.1.0
|
30
|
+
description: Faz o gerenciamento de contatos que entram em um site.
|
31
|
+
email:
|
32
|
+
- contato@qw3.com.br
|
33
|
+
executables: []
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- .gitignore
|
38
|
+
- Gemfile
|
39
|
+
- LICENSE.txt
|
40
|
+
- README.md
|
41
|
+
- Rakefile
|
42
|
+
- app/controllers/a/mdwa_contato_configuracao_controller.rb
|
43
|
+
- app/views/a/mdwa_contato_configuracao/index.html.erb
|
44
|
+
- lib/generators/mdwa_contato/install/install_generator.rb
|
45
|
+
- lib/generators/mdwa_contato/install/templates/config/initializers/mdwa_contato_config.rb
|
46
|
+
- lib/generators/mdwa_contato/install/templates/config/initializers/mdwa_contato_inflections.rb
|
47
|
+
- lib/generators/mdwa_contato/install/templates/config/locales/mdwa_contato.en.yml
|
48
|
+
- lib/generators/mdwa_contato/install/templates/config/locales/mdwa_contato.pt-BR.yml
|
49
|
+
- lib/generators/mdwa_contato/install/templates/entidades/contato_site.rb
|
50
|
+
- lib/generators/mdwa_contato/install/templates/mailers/contatos_site_mailer.rb
|
51
|
+
- lib/generators/mdwa_contato/install/templates/mailers/views/avisar_administrador.text.erb
|
52
|
+
- lib/generators/mdwa_contato/install/templates/mailers/views/avisar_cliente.text.erb
|
53
|
+
- lib/generators/mdwa_contato/install/templates/requisitos/gerenciar_contatos.rb
|
54
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/controller.erb
|
55
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/helper.erb
|
56
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/model.erb
|
57
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/_form.html.erb
|
58
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/_form_fields.html.erb
|
59
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/_list.html.erb
|
60
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/create.js.erb
|
61
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/destroy.js.erb
|
62
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/edit.html.erb
|
63
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/index.html.erb
|
64
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/index.js.erb
|
65
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/new.html.erb
|
66
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/show.html.erb
|
67
|
+
- lib/generators/mdwa_contato/install/templates/templates/a/views/update.js.erb
|
68
|
+
- lib/generators/mdwa_contato/install/templates/templates/frontend/controller.erb
|
69
|
+
- lib/generators/mdwa_contato/install/templates/templates/frontend/views/new.html.erb
|
70
|
+
- lib/generators/mdwa_contato/install/templates/templates/frontend/views/salvar.js.erb
|
71
|
+
- lib/mdwa_contato.rb
|
72
|
+
- lib/mdwa_contato/version.rb
|
73
|
+
- mdwa_contato.gemspec
|
74
|
+
homepage: https://github.com/qw3/mdwa_contato
|
75
|
+
licenses: []
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
requirements: []
|
93
|
+
rubyforge_project:
|
94
|
+
rubygems_version: 1.8.24
|
95
|
+
signing_key:
|
96
|
+
specification_version: 3
|
97
|
+
summary: Gerenciador de contatos MDWA
|
98
|
+
test_files: []
|