Commit d4a3f0fd2ebb4aba4e68e8e76c6af9b309a9ed58
1 parent
ebabc712
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
virtuoso: added custom query model
Showing
10 changed files
with
185 additions
and
0 deletions
Show diff stats
plugins/virtuoso/controllers/admin/virtuoso_plugin_custom_queries_controller.rb
0 → 100644
| ... | ... | @@ -0,0 +1,45 @@ |
| 1 | +class VirtuosoPluginCustomQueriesController < AdminController | |
| 2 | + | |
| 3 | + def index | |
| 4 | + @custom_queries = environment.virtuoso_plugin_custom_queries.all | |
| 5 | + end | |
| 6 | + | |
| 7 | + def new | |
| 8 | + @custom_query = VirtuosoPlugin::CustomQuery.new | |
| 9 | + end | |
| 10 | + | |
| 11 | + def edit | |
| 12 | + @custom_query = VirtuosoPlugin::CustomQuery.find(params[:id]) | |
| 13 | + end | |
| 14 | + | |
| 15 | + def create | |
| 16 | + @custom_query = VirtuosoPlugin::CustomQuery.new(params[:custom_query]) | |
| 17 | + @custom_query.environment = environment | |
| 18 | + | |
| 19 | + if @custom_query.save | |
| 20 | + session[:notice] = _('Custom query was successfully created.') | |
| 21 | + redirect_to :action => :index | |
| 22 | + else | |
| 23 | + render action: "new" | |
| 24 | + end | |
| 25 | + end | |
| 26 | + | |
| 27 | + def update | |
| 28 | + @custom_query = VirtuosoPlugin::CustomQuery.find(params[:id]) | |
| 29 | + | |
| 30 | + if @custom_query.update_attributes(params[:custom_query]) | |
| 31 | + session[:notice] = 'Custom query was successfully updated.' | |
| 32 | + redirect_to :action => :index | |
| 33 | + else | |
| 34 | + render action: "edit" | |
| 35 | + end | |
| 36 | + end | |
| 37 | + | |
| 38 | + def destroy | |
| 39 | + @custom_query = VirtuosoPlugin::CustomQuery.find(params[:id]) | |
| 40 | + @custom_query.destroy | |
| 41 | + | |
| 42 | + redirect_to :action => :index | |
| 43 | + end | |
| 44 | + | |
| 45 | +end | ... | ... |
plugins/virtuoso/db/migrate/20141113131439_create_custom_queries.rb
0 → 100644
| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | +class CreateCustomQueries < ActiveRecord::Migration | |
| 2 | + | |
| 3 | + def change | |
| 4 | + create_table :virtuoso_plugin_custom_queries do |t| | |
| 5 | + t.integer "environment_id", :null => false | |
| 6 | + t.string :name | |
| 7 | + t.text :query | |
| 8 | + t.text :template | |
| 9 | + t.boolean :enabled, :default => true | |
| 10 | + t.timestamps | |
| 11 | + end | |
| 12 | + end | |
| 13 | + | |
| 14 | +end | ... | ... |
plugins/virtuoso/test/functional/virtuoso_plugin_custom_queries_controller_test.rb
0 → 100644
| ... | ... | @@ -0,0 +1,45 @@ |
| 1 | +require 'test_helper' | |
| 2 | + | |
| 3 | +class VirtuosoPluginCustomQueriesControllerTest < ActionController::TestCase | |
| 4 | + setup do | |
| 5 | + @custom_query = VirtuosoPlugin::CustomQuery.create!(:name => 'name', :query => 'query', :template => 'template', :environment => Environment.default) | |
| 6 | + login_as(create_admin_user(Environment.default)) | |
| 7 | + end | |
| 8 | + | |
| 9 | + should "get index" do | |
| 10 | + get :index | |
| 11 | + assert_response :success | |
| 12 | + assert_not_nil assigns(:custom_queries) | |
| 13 | + end | |
| 14 | + | |
| 15 | + should "get new" do | |
| 16 | + get :new | |
| 17 | + assert_response :success | |
| 18 | + end | |
| 19 | + | |
| 20 | + should "create custom_query" do | |
| 21 | + assert_difference('VirtuosoPlugin::CustomQuery.count') do | |
| 22 | + post :create, custom_query: { name: @custom_query.name, enabled: @custom_query.enabled, query: @custom_query.query, template: @custom_query.template } | |
| 23 | + end | |
| 24 | + | |
| 25 | + assert_redirected_to :action => :index | |
| 26 | + end | |
| 27 | + | |
| 28 | + should "get edit" do | |
| 29 | + get :edit, id: @custom_query | |
| 30 | + assert_response :success | |
| 31 | + end | |
| 32 | + | |
| 33 | + should "update custom_query" do | |
| 34 | + put :update, id: @custom_query, custom_query: { name: @custom_query.name, enabled: @custom_query.enabled, query: @custom_query.query, template: @custom_query.template } | |
| 35 | + assert_redirected_to :action => :index | |
| 36 | + end | |
| 37 | + | |
| 38 | + should "destroy custom_query" do | |
| 39 | + assert_difference('VirtuosoPlugin::CustomQuery.count', -1) do | |
| 40 | + delete :destroy, id: @custom_query | |
| 41 | + end | |
| 42 | + | |
| 43 | + assert_redirected_to :action => :index | |
| 44 | + end | |
| 45 | +end | ... | ... |
plugins/virtuoso/views/virtuoso_plugin_admin/index.html.erb
| ... | ... | @@ -40,5 +40,6 @@ |
| 40 | 40 | <div class="triple-management"> |
| 41 | 41 | <div class="actions"> |
| 42 | 42 | <%= button :edit, _('Triple management'), :action => :triple_management %> |
| 43 | + <%= button :edit, _('Custom Queries'), :action => :index, :controller => 'virtuoso_plugin_custom_queries' %> | |
| 43 | 44 | </div> |
| 44 | 45 | </div> | ... | ... |
plugins/virtuoso/views/virtuoso_plugin_custom_queries/_form.html.erb
0 → 100644
| ... | ... | @@ -0,0 +1,33 @@ |
| 1 | +<%= form_for(:custom_query, :url => {:action => @custom_query.persisted? ? :update : :create, :id => @custom_query.id}) do |f| %> | |
| 2 | + <% if @custom_query.errors.any? %> | |
| 3 | + <div id="error_explanation"> | |
| 4 | + <h2><%= pluralize(@custom_query.errors.count, "error") %>:</h2> | |
| 5 | + | |
| 6 | + <ul> | |
| 7 | + <% @custom_query.errors.full_messages.each do |msg| %> | |
| 8 | + <li><%= msg %></li> | |
| 9 | + <% end %> | |
| 10 | + </ul> | |
| 11 | + </div> | |
| 12 | + <% end %> | |
| 13 | + | |
| 14 | + <div class="field"> | |
| 15 | + <%= f.label :name %><br /> | |
| 16 | + <%= f.text_field :name %> | |
| 17 | + </div> | |
| 18 | + <div class="field"> | |
| 19 | + <%= f.label :query %><br /> | |
| 20 | + <%= f.text_area :query %> | |
| 21 | + </div> | |
| 22 | + <div class="field"> | |
| 23 | + <%= f.label :template %><br /> | |
| 24 | + <%= f.text_area :template %> | |
| 25 | + </div> | |
| 26 | + <div class="field"> | |
| 27 | + <%= f.label :enabled %><br /> | |
| 28 | + <%= f.check_box :enabled %> | |
| 29 | + </div> | |
| 30 | + <div class="actions"> | |
| 31 | + <%= f.submit %> | |
| 32 | + </div> | |
| 33 | +<% end %> | ... | ... |
plugins/virtuoso/views/virtuoso_plugin_custom_queries/edit.html.erb
0 → 100644
plugins/virtuoso/views/virtuoso_plugin_custom_queries/index.html.erb
0 → 100644
| ... | ... | @@ -0,0 +1,23 @@ |
| 1 | +<h1><%= _('Manage Custom Queries') %></h1> | |
| 2 | + | |
| 3 | +<table> | |
| 4 | + <tr> | |
| 5 | + <th>Name</th> | |
| 6 | + <th>Enabled</th> | |
| 7 | + <th></th> | |
| 8 | + <th></th> | |
| 9 | + </tr> | |
| 10 | + | |
| 11 | +<% @custom_queries.each do |custom_query| %> | |
| 12 | + <tr> | |
| 13 | + <td><%= custom_query.name %></td> | |
| 14 | + <td><%= custom_query.enabled %></td> | |
| 15 | + <td><%= link_to 'Edit', :action => :edit, :id => custom_query.id %></td> | |
| 16 | + <td><%= link_to 'Destroy', :action => :destroy, :id => custom_query.id, method: :delete, data: { confirm: 'Are you sure?' } %></td> | |
| 17 | + </tr> | |
| 18 | +<% end %> | |
| 19 | +</table> | |
| 20 | + | |
| 21 | +<br /> | |
| 22 | + | |
| 23 | +<%= button :new, _('New'), :action => :new %> | ... | ... |
plugins/virtuoso/views/virtuoso_plugin_custom_queries/new.html.erb
0 → 100644