mods of category optional module and backend

This commit is contained in:
Harry Bomrah 2017-03-08 14:10:32 +08:00
parent 085b9c937a
commit 3591a4c810
8 changed files with 192 additions and 3 deletions

View File

@ -9,4 +9,21 @@ class Admin::ClientManagementsController < OrbitAdminController
@user = @site_request.c_panel_user
end
def make_contract
@site_request = SiteRequest.find(params[:id])
@user = @site_request.c_panel_user
@new_contract = RequestContract.new
end
def create_contract
RequestContract.create(contract_params)
redirect_to admin_client_managements_path
end
private
def contract_params
params.require(:request_contract).permit!
end
end

View File

@ -2,5 +2,14 @@ class RequestContract
include Mongoid::Document
include Mongoid::Timestamps
field :new_site_cost, type: Integer, :default => 0
field :hosting_with_rulingdigital_cost, type: Integer, :default => 0
field :service_cost, type: Integer, :default => 0
field :option_module_cost, type: Integer, :default => 0
field :customized_module_cost, type: Integer, :default => 0
field :template_cost, type: Integer, :default => 0
field :customized_template_cost, type: Integer, :default => 0
field :rwd_cost, type: Integer, :default => 0
has_one :site_request
end

View File

@ -0,0 +1,98 @@
<% if @site_request.type == "existing" %>
<div class="control-group">
<label class="control-label">Site Title :</label>
<div class="controls">
<%= @site_request.get_site.title %>
</div>
</div>
<div class="control-group">
<label class="control-label">Site Domain :</label>
<div class="controls">
<a href="<%= @site_request.get_site.site_domain %>" target="_blank"><%= @site_request.get_site.site_domain %></a>
</div>
</div>
<% else %>
<div class="control-group">
<%= f.label :new_site_cost, "New Site Cost:", :class => "control-label" %>
<div class="controls">
<%= f.number_field :new_site_cost, :min => "0" %>
</div>
</div>
<% if @site_request.host_with_rulingdigital %>
<div class="control-group">
<%= f.label :hosting_with_rulingdigital_cost, "Host with RulingDigital:", :class => "control-label" %>
<div class="controls">
<%= f.number_field :hosting_with_rulingdigital_cost, :min => "0" %>
</div>
</div>
<% end %>
<% end %>
<div class="control-group">
<%= f.label :service_cost, "Maintainance Cost:", :class => "control-label" %>
<div class="controls">
<%= f.number_field :service_cost, :min => "0" %>
</div>
</div>
<% if !@site_request.optional_modules.blank? %>
<div class="control-group">
<%= f.label :option_module_cost, "Optional Modules Cost:", :class => "control-label" %>
<% rsm = RegisteredModule.find(@site_request.optional_modules) %>
<div class="controls">
<ul>
<% rsm.each do |mod| %>
<li><span class="label label-info"><%= mod.name %></span></li>
<% end %>
</ul>
<%= f.number_field :option_module_cost, :min => "0" %>
</div>
</div>
<% end %>
<% if @site_request.custom_module %>
<div class="control-group">
<%= f.label :customized_module_cost, "Optional Module Cost:", :class => "control-label" %>
<div class="controls">
<%= f.number_field :customized_module_cost, :min => "0" %>
</div>
</div>
<% end %>
<% if !@site_request.template_number.empty? %>
<div class="control-group">
<%= f.label :template_cost, "Template Cost:", :class => "control-label" %>
<div class="controls">
<%= f.number_field :template_cost, :min => "0" %>
</div>
</div>
<% end %>
<% if @site_request.custom_template %>
<div class="control-group">
<%= f.label :customized_template_cost, "Customized Template Cost:", :class => "control-label" %>
<div class="controls">
<%= f.number_field :customized_template_cost, :min => "0" %>
</div>
</div>
<% end %>
<% if @site_request.rwd %>
<div class="control-group">
<%= f.label :rwd_cost, "RWD Cost:", :class => "control-label" %>
<div class="controls">
<%= f.number_field :rwd_cost, :min => "0" %>
</div>
</div>
<% end %>
<div>
<h3>Total Amount : <span id="total-amount">0</span> NTD.</h3>
</div>
<%= f.hidden_field :site_request, :value => @site_request.id.to_s %>
<%= f.submit "Submit", :class => "btn btn-primary" %>
<script type="text/javascript">
var costFields = $("form.contract-form input[type=number]"),
totalAmountDom = $("#total-amount");
costFields.on("change",function(){
var totalAmount = 0;
$.each(costFields,function(){
var amt = ($(this).val() == "" ? 0 : $(this).val());
totalAmount += parseInt(amt);
})
totalAmountDom.text(totalAmount);
})
</script>

View File

@ -25,6 +25,9 @@
<td><%= request.created_at.strftime("%y-%m-%d %H:%M") %></td>
<td>
<a href="<%= admin_client_management_path(request.id) %>" class="btn btn-info">Details</a>
<% if request.request_contract != nil %>
<a href="#" class="btn btn-warning">Contract</a>
<% end %>
</td>
</tr>
<% end %>

View File

@ -0,0 +1,48 @@
<style type="text/css">
table th{
text-align: right;
padding-right: 15px;
}
</style>
<h2>Site Id : <%= @site_request.uid %></h2>
<h2>Site type : <%= @site_request.get_site_type %></h2>
<table width="100%">
<caption><h3>User Details</h3></caption>
<% if !@user.fullname.nil? %>
<tr>
<th>Name :</th>
<td><%= @user.fullname %></td>
</tr>
<% end %>
<tr>
<th>Email :</th>
<td><%= @site_request.c_panel_user.email %></td>
</tr>
<% if !@user.phone_number.nil? %>
<tr>
<th>Phone Number :</th>
<td><%= @user.phone_number %></td>
</tr>
<% end %>
<% if !@user.address.nil? %>
<tr>
<th>Address :</th>
<td><%= @user.address %></td>
</tr>
<% end %>
<% if !@user.registered_site_ids.empty? %>
<tr>
<th>Registered Sites :</th>
<td>
<% @user.registered_sites.each do |rs| %>
<span class="label label-default"><a style="color:#fff;" href="http://<%= rs.site_domain %>" target="_blank"><%= rs.title %></a></span>
<% end %>
</td>
</tr>
<% end %>
</table>
<hr>
<%= form_for @new_contract, :url => {:action => :create_contract}, :html => {:class => "form-horizontal contract-form"} do |f| %>
<h3>Request Specifications</h3>
<%= render :partial => "site_spec_form", :locals => {:f => f} %>
<% end %>

View File

@ -53,3 +53,12 @@
<%= render :partial => "add_site_spec" %>
<% end %>
</table>
<% case @site_request.type %>
<% when "newsite" %>
<a class="btn btn-primary" href="<%= make_contract_admin_client_management_path(@site_request.id) %>">Make Contract</a>
<% when "existing" %>
<a class="btn btn-primary" href="<%= make_contract_admin_client_management_path(@site_request.id) %>">Make Contract</a>
<% when "addsites" %>
<%= render :partial => "add_site_spec" %>
<% end %>

View File

@ -3,7 +3,12 @@ Rails.application.routes.draw do
locales = Site.find_by(site_active: true).in_use_locales rescue I18n.available_locales
scope "(:locale)", locale: Regexp.new(locales.join("|")) do
namespace :admin do
resources :client_managements
resources :client_managements do
member do
get "make_contract"
post "create_contract"
end
end
end
scope :cpanel do