added auto approve and users can delete the entries
This commit is contained in:
parent
610f824628
commit
849cf2e680
|
@ -14,6 +14,11 @@ class Admin::PropertyHiresController < OrbitAdminController
|
||||||
@properties = search_data(@properties,[:title]).page(params[:page]).per(10)
|
@properties = search_data(@properties,[:title]).page(params[:page]).per(10)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def my_bookings
|
||||||
|
@table_fields = ["property_hire.hiring_person_name", "property_hire.reason_for_hire", "property_hire.hiring_person_number", "property_hire.period", "property_hire.passed", :actions]
|
||||||
|
@bookings = PHire.where(:hiring_person_id => current_user.member_profile.id.to_s).desc(:created_at).page(params[:page]).per(10)
|
||||||
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@property = Property.new
|
@property = Property.new
|
||||||
@locations = PropertyLocation.all.desc(:created_at).collect{|loc| [loc.title, loc.id.to_s]}
|
@locations = PropertyLocation.all.desc(:created_at).collect{|loc| [loc.title, loc.id.to_s]}
|
||||||
|
@ -64,11 +69,30 @@ class Admin::PropertyHiresController < OrbitAdminController
|
||||||
@booking = PHire.find(params[:id]) rescue nil
|
@booking = PHire.find(params[:id]) rescue nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def settings
|
||||||
|
if PropertyHireSetting.count == 0
|
||||||
|
@settings = PropertyHireSetting.create
|
||||||
|
else
|
||||||
|
@settings = PropertyHireSetting.first
|
||||||
|
end
|
||||||
|
if request.request_method == "PATCH"
|
||||||
|
@settings.update_attributes(settings_params)
|
||||||
|
@settings.save
|
||||||
|
@saved = true
|
||||||
|
else
|
||||||
|
@saved = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def delete_booking_details
|
def delete_booking_details
|
||||||
booking = PHire.find(params[:id])
|
booking = PHire.find(params[:id])
|
||||||
property = booking.property
|
property = booking.property
|
||||||
booking.destroy
|
booking.destroy
|
||||||
redirect_to admin_property_hire_path(property)
|
if request.referrer.split("/").last == "my_bookings"
|
||||||
|
redirect_to my_bookings_admin_property_hires_path
|
||||||
|
else
|
||||||
|
redirect_to admin_property_hire_path(property)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def pass_booking
|
def pass_booking
|
||||||
|
@ -141,6 +165,10 @@ class Admin::PropertyHiresController < OrbitAdminController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def settings_params
|
||||||
|
params.require(:property_hire_setting).permit!
|
||||||
|
end
|
||||||
|
|
||||||
def location_params
|
def location_params
|
||||||
params.require(:property_location).permit!
|
params.require(:property_location).permit!
|
||||||
end
|
end
|
||||||
|
|
|
@ -149,6 +149,7 @@ class PropertyHiresController < ApplicationController
|
||||||
property = Property.find(booking_p[:property_id]) rescue nil
|
property = Property.find(booking_p[:property_id]) rescue nil
|
||||||
if data["success"] == true
|
if data["success"] == true
|
||||||
hire = PHire.new(booking_p)
|
hire = PHire.new(booking_p)
|
||||||
|
hire.passed = true if PropertyHireSetting.auto_approve_enabled?
|
||||||
hire.save
|
hire.save
|
||||||
redirect_to params[:url]
|
redirect_to params[:url]
|
||||||
else
|
else
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
class PropertyHireSetting
|
||||||
|
include Mongoid::Document
|
||||||
|
include Mongoid::Timestamps
|
||||||
|
|
||||||
|
field :auto_approve, type: Boolean, :default => false
|
||||||
|
|
||||||
|
def self.auto_approve_enabled?
|
||||||
|
self.first.auto_approve
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,42 @@
|
||||||
|
<%= csrf_meta_tag %>
|
||||||
|
<table class="table main-list">
|
||||||
|
<thead>
|
||||||
|
<tr class="sort-header">
|
||||||
|
<% @table_fields.each do |f| %>
|
||||||
|
<%= thead(f) %>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @bookings.each do |p_hire| %>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<%= p_hire.hirer_name %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= p_hire.reason_for_hire %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= p_hire.hiring_person_number %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= p_hire.period %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<% if p_hire.passed %>
|
||||||
|
<span class="badge badge-success">Yes</span>
|
||||||
|
<% else %>
|
||||||
|
<span class="badge badge-important">No</span>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="<%= show_booking_details_admin_property_hire_path(p_hire, :page => params[:page]) %>" class="btn btn-info">View</a>
|
||||||
|
<a href="<%= delete_booking_details_admin_property_hire_path(p_hire, :page => params[:page]) %>" class="btn btn-danger" data-method="delete" data-confirm="Are you sure?">Delete</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="bottomnav clearfix">
|
||||||
|
<%= content_tag(:div, paginate(@bookings), class: "pagination pagination-centered") %>
|
||||||
|
</div>
|
|
@ -0,0 +1,40 @@
|
||||||
|
<% content_for :page_specific_css do %>
|
||||||
|
<%= stylesheet_link_tag "lib/main-forms" %>
|
||||||
|
<%= stylesheet_link_tag "lib/fileupload" %>
|
||||||
|
<%= stylesheet_link_tag "lib/main-list" %>
|
||||||
|
<% end %>
|
||||||
|
<% content_for :page_specific_javascript do %>
|
||||||
|
<%= javascript_include_tag "lib/module-area" %>
|
||||||
|
<% end %>
|
||||||
|
<%= form_for @settings , :url => settings_admin_property_hires_path, html: {class: "form-horizontal main-forms"} do |f| %>
|
||||||
|
<fieldset>
|
||||||
|
<% if @saved %>
|
||||||
|
<div class="alert alert-success">Settings saved.</div>
|
||||||
|
<% end %>
|
||||||
|
<!-- Input Area -->
|
||||||
|
<div class="input-area">
|
||||||
|
|
||||||
|
<!-- Module Tabs -->
|
||||||
|
<div class="nav-name"><strong><%= t(:module) %></strong></div>
|
||||||
|
<ul class="nav nav-pills module-nav">
|
||||||
|
<li class="active"><a href="#basic" data-toggle="tab"><%= t(:basic) %></a></li>
|
||||||
|
</ul>
|
||||||
|
<!-- Module -->
|
||||||
|
<div class="tab-content module-area">
|
||||||
|
<!-- Basic Module -->
|
||||||
|
<div class="tab-pane fade in active" id="basic">
|
||||||
|
<div class="control-group">
|
||||||
|
<%= f.label :auto_approve, t("property_hire.auto_approve"), :class => "control-label muted" %>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.check_box :auto_approve %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Form Actions -->
|
||||||
|
<div class="form-actions">
|
||||||
|
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<% end %>
|
|
@ -38,7 +38,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<a href="<%= admin_property_hire_path(@booking.property, :page => params[:page]) %>" class="btn btn-warning">Back</a>
|
<a href="" onclick="window.history.back();return false;" class="btn btn-warning">Back</a>
|
||||||
<% if can_edit_or_delete?(@booking.property) %>
|
<% if can_edit_or_delete?(@booking.property) %>
|
||||||
<% if @booking.passed %>
|
<% if @booking.passed %>
|
||||||
<a href="<%= pass_booking_admin_property_hire_path(@booking, :status => "reject") %>" class="btn btn-warning">Reject</a>
|
<a href="<%= pass_booking_admin_property_hire_path(@booking, :status => "reject") %>" class="btn btn-warning">Reject</a>
|
||||||
|
|
|
@ -8,6 +8,9 @@ en:
|
||||||
recurring_end_date: Recurring End Date
|
recurring_end_date: Recurring End Date
|
||||||
save: Save
|
save: Save
|
||||||
property_hire: Property
|
property_hire: Property
|
||||||
|
my_bookings: My Bookings
|
||||||
|
settings: Settings
|
||||||
|
auto_approve: Auto approve
|
||||||
manage_locations: Manage Locations
|
manage_locations: Manage Locations
|
||||||
location: Location
|
location: Location
|
||||||
property_count: Property Count
|
property_count: Property Count
|
||||||
|
|
|
@ -7,9 +7,12 @@ zh_tw:
|
||||||
week: Week
|
week: Week
|
||||||
recurring_end_date: Recurring End Date
|
recurring_end_date: Recurring End Date
|
||||||
save: Save
|
save: Save
|
||||||
|
my_bookings: My Bookings
|
||||||
|
settings: Settings
|
||||||
property_hire: Property
|
property_hire: Property
|
||||||
manage_locations: Manage Locations
|
manage_locations: Manage Locations
|
||||||
location: Location
|
location: Location
|
||||||
|
auto_approve: Auto approve
|
||||||
property_count: Property Count
|
property_count: Property Count
|
||||||
edit_location: Edit Location
|
edit_location: Edit Location
|
||||||
add_location: Add Location
|
add_location: Add Location
|
||||||
|
|
|
@ -16,6 +16,9 @@ Rails.application.routes.draw do
|
||||||
delete "delete_booking_details"
|
delete "delete_booking_details"
|
||||||
end
|
end
|
||||||
collection do
|
collection do
|
||||||
|
get "my_bookings"
|
||||||
|
get "settings"
|
||||||
|
patch "settings"
|
||||||
get "manage_locations"
|
get "manage_locations"
|
||||||
get "add_location"
|
get "add_location"
|
||||||
post "create_location"
|
post "create_location"
|
||||||
|
|
|
@ -13,32 +13,38 @@ module PropertyHire
|
||||||
data_count 1..30
|
data_count 1..30
|
||||||
side_bar do
|
side_bar do
|
||||||
head_label_i18n 'property_hire.property_hire', icon_class: "icons-map"
|
head_label_i18n 'property_hire.property_hire', icon_class: "icons-map"
|
||||||
available_for "managers"
|
available_for "users"
|
||||||
active_for_controllers (['admin/property_hires'])
|
active_for_controllers (['admin/property_hires'])
|
||||||
head_link_path "admin_property_hires_path"
|
head_link_path "my_bookings_admin_property_hires_path"
|
||||||
|
|
||||||
|
context_link 'property_hire.my_bookings',
|
||||||
|
:link_path=>"my_bookings_admin_property_hires_path" ,
|
||||||
|
:priority=>1,
|
||||||
|
:active_for_action=>{'admin/property_hires'=>"my_bookings"},
|
||||||
|
:available_for => 'users'
|
||||||
|
|
||||||
context_link 'all',
|
context_link 'all',
|
||||||
:link_path=>"admin_property_hires_path" ,
|
:link_path=>"admin_property_hires_path" ,
|
||||||
:priority=>1,
|
:priority=>2,
|
||||||
:active_for_action=>{'admin/property_hires'=>"index"},
|
:active_for_action=>{'admin/property_hires'=>"index"},
|
||||||
:available_for => 'users'
|
:available_for => 'sub_managers'
|
||||||
|
|
||||||
context_link 'new_',
|
context_link 'new_',
|
||||||
:link_path=>"new_admin_property_hire_path" ,
|
:link_path=>"new_admin_property_hire_path" ,
|
||||||
:priority=>2,
|
:priority=>3,
|
||||||
:active_for_action=>{'admin/property_hires'=>"new"},
|
:active_for_action=>{'admin/property_hires'=>"new"},
|
||||||
:available_for => 'sub_managers'
|
:available_for => 'sub_managers'
|
||||||
|
|
||||||
context_link 'property_hire.manage_locations',
|
context_link 'property_hire.manage_locations',
|
||||||
:link_path=>"manage_locations_admin_property_hires_path" ,
|
:link_path=>"manage_locations_admin_property_hires_path" ,
|
||||||
:priority=>2,
|
:priority=>4,
|
||||||
:active_for_action=>{'admin/property_hires'=>"manage_locations"},
|
:active_for_action=>{'admin/property_hires'=>"manage_locations"},
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
|
|
||||||
context_link 'categories',
|
context_link 'categories',
|
||||||
:link_path=>"admin_module_app_categories_path" ,
|
:link_path=>"admin_module_app_categories_path" ,
|
||||||
:link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'property_hire').id}",
|
:link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'property_hire').id}",
|
||||||
:priority=>3,
|
:priority=>5,
|
||||||
:active_for_action=>{'admin/property_hires'=>'categories'},
|
:active_for_action=>{'admin/property_hires'=>'categories'},
|
||||||
:active_for_category => 'PropertyHire',
|
:active_for_category => 'PropertyHire',
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
|
@ -46,10 +52,16 @@ module PropertyHire
|
||||||
context_link 'tags',
|
context_link 'tags',
|
||||||
:link_path=>"admin_module_app_tags_path" ,
|
:link_path=>"admin_module_app_tags_path" ,
|
||||||
:link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'property_hire').id}",
|
:link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'property_hire').id}",
|
||||||
:priority=>5,
|
:priority=>6,
|
||||||
:active_for_action=>{'admin/property_hires'=>'tags'},
|
:active_for_action=>{'admin/property_hires'=>'tags'},
|
||||||
:active_for_tag => 'PropertyHire',
|
:active_for_tag => 'PropertyHire',
|
||||||
:available_for => 'managers'
|
:available_for => 'managers'
|
||||||
|
|
||||||
|
context_link 'property_hire.settings',
|
||||||
|
:link_path=>"settings_admin_property_hires_path" ,
|
||||||
|
:priority=>7,
|
||||||
|
:active_for_action=>{'admin/property_hires'=>'settings'},
|
||||||
|
:available_for => 'managers'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue