diff --git a/app/controllers/customers_controller.rb b/app/controllers/customers_controller.rb index 3aef8bb..0a79838 100644 --- a/app/controllers/customers_controller.rb +++ b/app/controllers/customers_controller.rb @@ -26,13 +26,13 @@ class CustomersController < ApplicationController include SortHelper helper :timelog - before_action :add_customer, :only => :new - before_action :view_customer, :except => [:new, :view] - skip_before_action :verify_authenticity_token, :check_if_login_required, :only => [:view] + before_action :add_customer, only: :new + before_action :view_customer, except: [:new, :view] + skip_before_action :verify_authenticity_token, :check_if_login_required, only: [:view] default_search_scope :names - autocomplete :customer, :name, :full => true, :extra_data => [:id] + autocomplete :customer, :name, full: true, extra_data: [:id] def allowed_params params.require(:customer).permit(:name, :email, :primary_phone, :mobile_phone, :phone_number, :notes) @@ -53,7 +53,7 @@ class CustomersController < ApplicationController # display a list of all customers def index if params[:search] - @customers = Customer.search(params[:search]).paginate(:page => params[:page]) + @customers = Customer.search(params[:search]).paginate(page: params[:page]) if only_one_non_zero?(@customers) redirect_to @customers.first end @@ -161,7 +161,7 @@ class CustomersController < ApplicationController @issue = Issue.find @token.issue_id @journals = @issue.journals. preload(:details). - preload(:user => :email_address). + preload(user: :email_address). reorder(:created_on, :id).to_a @journals.each_with_index {|j,i| j.indice = i+1} @journals.reject!(&:private_notes?) unless User.current.allowed_to?(:view_private_notes, @issue.project) @@ -175,7 +175,7 @@ class CustomersController < ApplicationController @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? } @allowed_statuses = @issue.new_statuses_allowed_to(User.current) @priorities = IssuePriority.active - @time_entry = TimeEntry.new(:issue => @issue, :project => @issue.project) + @time_entry = TimeEntry.new(issue: @issue, project: @issue.project) @relation = IssueRelation.new rescue render_403 diff --git a/app/controllers/estimate_controller.rb b/app/controllers/estimate_controller.rb index 8190c24..8464dd6 100644 --- a/app/controllers/estimate_controller.rb +++ b/app/controllers/estimate_controller.rb @@ -11,8 +11,8 @@ class EstimateController < ApplicationController include AuthHelper - before_action :require_user, :unless => proc {|c| session[:token].nil? } - skip_before_action :verify_authenticity_token, :check_if_login_required, :unless => proc {|c| session[:token].nil? } + before_action :require_user, unless: proc {|c| session[:token].nil? } + skip_before_action :verify_authenticity_token, :check_if_login_required, unless: proc {|c| session[:token].nil? } def get_estimate # Force sync for estimate by doc number if not found @@ -36,9 +36,9 @@ class EstimateController < ApplicationController estimate = get_estimate begin - send_data estimate.pdf, filename: "estimate #{estimate.doc_number}.pdf", :disposition => 'inline', :type => "application/pdf" + send_data estimate.pdf, filename: "estimate #{estimate.doc_number}.pdf", disposition: 'inline', type: "application/pdf" rescue - redirect_to :back, :flash => { :error => "Estimate not found" } + redirect_to :back, flash: { error: "Estimate not found" } end end @@ -49,9 +49,9 @@ class EstimateController < ApplicationController estimate = get_estimate begin - send_data estimate.pdf, filename: "estimate #{estimate.doc_number}.pdf", :disposition => 'inline', :type => "application/pdf" + send_data estimate.pdf, filename: "estimate #{estimate.doc_number}.pdf", disposition: 'inline', type: "application/pdf" rescue - redirect_to :back, :flash => { :error => "Estimate not found" } + redirect_to :back, flash: { error: "Estimate not found" } end end diff --git a/app/controllers/invoice_controller.rb b/app/controllers/invoice_controller.rb index a86666c..4c06e18 100644 --- a/app/controllers/invoice_controller.rb +++ b/app/controllers/invoice_controller.rb @@ -12,8 +12,8 @@ class InvoiceController < ApplicationController include AuthHelper require 'combine_pdf' - before_action :require_user, :unless => proc {|c| session[:token].nil? } - skip_before_action :verify_authenticity_token, :check_if_login_required, :unless => proc {|c| session[:token].nil? } + before_action :require_user, unless: proc {|c| session[:token].nil? } + skip_before_action :verify_authenticity_token, :check_if_login_required, unless: proc {|c| session[:token].nil? } # # Downloads and forwards the invoice pdf @@ -23,7 +23,7 @@ class InvoiceController < ApplicationController begin qbo = Qbo.first qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Invoice.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Invoice.new(company_id: qbo.realm_id, access_token: access_token) # If multiple id's then pull each pdf & combine them if params[:invoice_ids] @@ -45,10 +45,10 @@ class InvoiceController < ApplicationController ref = invoice.doc_number end - send_data @pdf, filename: "invoice #{ref}.pdf", :disposition => 'inline', :type => "application/pdf" + send_data @pdf, filename: "invoice #{ref}.pdf", disposition: 'inline', type: "application/pdf" end rescue - redirect_to :back, :flash => { :error => "Invoice not found" } + redirect_to :back, flash: { error: "Invoice not found" } end end end diff --git a/app/controllers/qbo_controller.rb b/app/controllers/qbo_controller.rb index 1acd248..8cd4026 100644 --- a/app/controllers/qbo_controller.rb +++ b/app/controllers/qbo_controller.rb @@ -14,8 +14,8 @@ class QboController < ApplicationController include AuthHelper - before_action :require_user, :except => :webhook - skip_before_action :verify_authenticity_token, :check_if_login_required, :only => [:webhook] + before_action :require_user, except: :webhook + skip_before_action :verify_authenticity_token, :check_if_login_required, only: [:webhook] def allowed_params params.permit(:code, :state, :realmId, :id) @@ -51,9 +51,9 @@ class QboController < ApplicationController qbo.refresh_token! if qbo.save! - redirect_to qbo_sync_path, :flash => { :notice => I18n.t(:label_connected) } + redirect_to qbo_sync_path, flash: { notice: I18n.t(:label_connected) } else - redirect_to plugin_settings_path(:redmine_qbo), :flash => { :error => I18n.t(:label_error) } + redirect_to plugin_settings_path(:redmine_qbo), flash: { error: I18n.t(:label_error) } end end @@ -65,9 +65,9 @@ class QboController < ApplicationController i = Issue.find_by_id params[:id] if i.customer i.bill_time - redirect_to i, :flash => { :notice => I18n.t(:label_billed_success) + i.customer.name } + redirect_to i, flash: { notice: I18n.t(:label_billed_success) + i.customer.name } else - redirect_to i, :flash => { :error => I18n.t(:label_billing_error) } + redirect_to i, flash: { error: I18n.t(:label_billing_error) } end end @@ -125,7 +125,7 @@ class QboController < ApplicationController ActiveRecord::Base.connection.close end # The webhook doesn't require a response but let's make sure we don't send anything - render :nothing => true, status: 200 + render nothing: true, status: 200 else render nothing: true, status: 400 end @@ -152,6 +152,6 @@ class QboController < ApplicationController ActiveRecord::Base.connection.close end - redirect_to :home, :flash => { :notice => I18n.t(:label_syncing) } + redirect_to :home, flash: { notice: I18n.t(:label_syncing) } end end diff --git a/app/models/customer.rb b/app/models/customer.rb index f579e5e..f5cfe15 100644 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -142,7 +142,7 @@ class Customer < ActiveRecord::Base # Sync ALL customers if the database is empty qbo = Qbo.first customers = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Customer.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Customer.new(company_id: qbo.realm_id, access_token: access_token) service.all end @@ -178,7 +178,7 @@ class Customer < ActiveRecord::Base def self.sync_by_id(id) qbo = Qbo.first c = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Customer.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Customer.new(company_id: qbo.realm_id, access_token: access_token) service.fetch_by_id(id) end @@ -205,7 +205,7 @@ class Customer < ActiveRecord::Base begin qbo = Qbo.first @details = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Customer.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Customer.new(company_id: qbo.realm_id, access_token: access_token) service.update(@details) end #raise "QBO Fault" if @details.fault? @@ -227,7 +227,7 @@ class Customer < ActiveRecord::Base raise Exception unless self.id qbo = Qbo.first @details = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Customer.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Customer.new(company_id: qbo.realm_id, access_token: access_token) service.fetch_by_id(self.id) end rescue Exception => e diff --git a/app/models/customer_token.rb b/app/models/customer_token.rb index 96e9d48..049a385 100644 --- a/app/models/customer_token.rb +++ b/app/models/customer_token.rb @@ -55,7 +55,7 @@ class CustomerToken < ActiveRecord::Base end # only create new token if we have an issue to attach it to - return create(:issue_id => issue.id) if User.current.logged? + return create(issue_id: issue.id) if User.current.logged? end end diff --git a/app/models/employee.rb b/app/models/employee.rb index 8bde654..87cace8 100644 --- a/app/models/employee.rb +++ b/app/models/employee.rb @@ -16,7 +16,7 @@ class Employee < ActiveRecord::Base def self.sync qbo = Qbo.first employees = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Employee.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Employee.new(company_id: qbo.realm_id, access_token: access_token) service.all end @@ -36,7 +36,7 @@ class Employee < ActiveRecord::Base def self.sync_by_id(id) qbo = Qbo.first employee = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Employee.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Employee.new(company_id: qbo.realm_id, access_token: access_token) service.fetch_by_id(id) end diff --git a/app/models/estimate.rb b/app/models/estimate.rb index c93212a..5eab766 100644 --- a/app/models/estimate.rb +++ b/app/models/estimate.rb @@ -25,7 +25,7 @@ class Estimate < ActiveRecord::Base logger.info "Syncing ALL estimates" qbo = Qbo.first estimates = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Estimate.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Estimate.new(company_id: qbo.realm_id, access_token: access_token) service.all end @@ -44,7 +44,7 @@ class Estimate < ActiveRecord::Base logger.info "Syncing estimate #{id}" qbo = Qbo.first qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Estimate.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Estimate.new(company_id: qbo.realm_id, access_token: access_token) process_estimate(service.fetch_by_id(id)) end end @@ -54,7 +54,7 @@ class Estimate < ActiveRecord::Base logger.info "Syncing estimate by doc number #{number}" qbo = Qbo.first qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Estimate.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Estimate.new(company_id: qbo.realm_id, access_token: access_token) process_estimate(service.find_by( :doc_number, number).first) end end @@ -63,7 +63,7 @@ class Estimate < ActiveRecord::Base def self.update(id) qbo = Qbo.first estimate = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Estimate.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Estimate.new(company_id: qbo.realm_id, access_token: access_token) service.fetch_by_id(id) end @@ -90,7 +90,7 @@ class Estimate < ActiveRecord::Base def pdf qbo = Qbo.first qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Estimate.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Estimate.new(company_id: qbo.realm_id, access_token: access_token) estimate = service.fetch_by_id(id) service.pdf(estimate) end @@ -122,7 +122,7 @@ class Estimate < ActiveRecord::Base raise Exception unless self.id qbo = Qbo.first @details = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Estimate.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Estimate.new(company_id: qbo.realm_id, access_token: access_token) service(:estimate).fetch_by_id(self.id) end rescue Exception => e diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 47b1460..3119ab6 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -32,7 +32,7 @@ class Invoice < ActiveRecord::Base # .all() is never called since count is never initialized qbo = Qbo.first invoices = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Invoice.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Invoice.new(company_id: qbo.realm_id, access_token: access_token) service.all end @@ -48,7 +48,7 @@ class Invoice < ActiveRecord::Base logger.info "Syncing invoice #{id}" qbo = Qbo.first qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Invoice.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Invoice.new(company_id: qbo.realm_id, access_token: access_token) invoice = service.fetch_by_id(id) process_invoice invoice end @@ -151,7 +151,7 @@ class Invoice < ActiveRecord::Base logger.info "Invoice.push_updates" qbo = Qbo.first qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Invoice.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Invoice.new(company_id: qbo.realm_id, access_token: access_token) service.update invoice end rescue @@ -167,7 +167,7 @@ class Invoice < ActiveRecord::Base def pdf qbo = Qbo.first qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Invoice.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Invoice.new(company_id: qbo.realm_id, access_token: access_token) invoice = service.fetch_by_id(id) return service.pdf(invoice) end @@ -197,7 +197,7 @@ class Invoice < ActiveRecord::Base raise Exception unless self.id qbo = Qbo.first @details = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Invoice.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Invoice.new(company_id: qbo.realm_id, access_token: access_token) service.fetch_by_id(self.id) end rescue Exception => e diff --git a/app/views/customers/_form.html.erb b/app/views/customers/_form.html.erb index 3314742..dbc4cf9 100644 --- a/app/views/customers/_form.html.erb +++ b/app/views/customers/_form.html.erb @@ -7,28 +7,28 @@
<%=t(:label_display_name)%>
- <%= f.text_field :name, :required => true, :autocomplete => "off" %> + <%= f.text_field :name, required: true, autocomplete: "off" %>
<%=t(:label_primary_phone)%>
- <%= f.telephone_field :primary_phone, :autocomplete => "off" %> + <%= f.telephone_field :primary_phone, autocomplete: "off" %>
<%=t(:label_mobile_phone)%>:
- <%= f.telephone_field :mobile_phone, :autocomplete => "off" %> + <%= f.telephone_field :mobile_phone, autocomplete: "off" %>
<%=t(:label_email)%>:
- <%= f.email_field :email, :autocomplete => "off" %> + <%= f.email_field :email, autocomplete: "off" %>
@@ -36,13 +36,13 @@ <%=t(:field_notes)%>:

- <%= content_tag 'span', :id => "issue_description_and_toolbar" do %> + <%= content_tag 'span', id: "issue_description_and_toolbar" do %> <%= f.text_area :notes, - :cols => 60, - :rows => 10, - :accesskey => accesskey(:edit), - :class => 'wiki-edit', - :no_label => true %> + cols: 60, + rows: 10, + accesskey: accesskey(:edit), + class: 'wiki-edit', + no_label: true %> <% end %>

<%= wikitoolbar_for 'issue_description' %> diff --git a/app/views/customers/_search.html.erb b/app/views/customers/_search.html.erb index 954cdff..3c86485 100644 --- a/app/views/customers/_search.html.erb +++ b/app/views/customers/_search.html.erb @@ -1,5 +1,5 @@ -<%= form_tag(customers_path, :method => "get", id: "search-form") do %> - <%= text_field_tag :search, params[:search], placeholder: t(:label_search_customers), :autocomplete => "off" %> +<%= form_tag(customers_path, method: "get", id: "search-form") do %> + <%= text_field_tag :search, params[:search], placeholder: t(:label_search_customers), autocomplete: "off" %> <%= submit_tag t(:label_search) %> <% end %> <%= button_to t(:label_new_customer), new_customer_path, method: :get%> diff --git a/app/views/customers/_sidebar.html.erb b/app/views/customers/_sidebar.html.erb index e22a3e7..be2754e 100644 --- a/app/views/customers/_sidebar.html.erb +++ b/app/views/customers/_sidebar.html.erb @@ -1,2 +1,2 @@

<%=t(:label_customers)%>

-<%= render :partial => 'customers/search' %> +<%= render partial: 'customers/search' %> diff --git a/app/views/customers/edit.html.erb b/app/views/customers/edit.html.erb index deb9096..c6eef66 100644 --- a/app/views/customers/edit.html.erb +++ b/app/views/customers/edit.html.erb @@ -1,3 +1,3 @@

<%=t(:label_edit_customer)%>


-<%= render :partial => 'customers/form' %> +<%= render partial: 'customers/form' %> diff --git a/app/views/customers/filter_estimates_by_customer.js.erb b/app/views/customers/filter_estimates_by_customer.js.erb index bbabde0..f6d25b8 100644 --- a/app/views/customers/filter_estimates_by_customer.js.erb +++ b/app/views/customers/filter_estimates_by_customer.js.erb @@ -1 +1 @@ -$('select#issue_estimate_id').html('<%= j content_tag(:option,'',:value=>"")+options_from_collection_for_select(@filtered_estimates, :id, :doc_number) %>'); +$('select#issue_estimate_id').html('<%= j content_tag(:option,'',value:"")+options_from_collection_for_select(@filtered_estimates, :id, :doc_number) %>'); diff --git a/app/views/customers/index.html.erb b/app/views/customers/index.html.erb index d1f8e53..651756c 100644 --- a/app/views/customers/index.html.erb +++ b/app/views/customers/index.html.erb @@ -1,4 +1,4 @@ -

<%=t(:field_customers)%> <%= render :partial => 'customers/search' %>

+

<%=t(:field_customers)%> <%= render partial: 'customers/search' %>

<% if @customers.present? %>
<% @customers.each do |c| %> @@ -20,5 +20,5 @@ <% end %>
- <%= render :partial => 'qbo/stats' %> + <%= render partial: 'qbo/stats' %>
diff --git a/app/views/customers/new.html.erb b/app/views/customers/new.html.erb index ae24589..00fa084 100644 --- a/app/views/customers/new.html.erb +++ b/app/views/customers/new.html.erb @@ -1,3 +1,3 @@

<%=t(:label_new_customer)%>


-<%= render :partial => 'customers/form' %> +<%= render partial: 'customers/form' %> diff --git a/app/views/customers/show.html.erb b/app/views/customers/show.html.erb index 71529d1..25f9bf3 100644 --- a/app/views/customers/show.html.erb +++ b/app/views/customers/show.html.erb @@ -12,12 +12,12 @@

<%=t(:field_customer)%>:

- <%= render :partial => 'customers/details', locals: {customer: @customer} %> + <%= render partial: 'customers/details', locals: {customer: @customer} %>

<%=t(:label_actions)%>:

- <%= render :partial => 'customers/actions', locals: {customer: @customer} %> + <%= render partial: 'customers/actions', locals: {customer: @customer} %>
@@ -27,12 +27,12 @@

<%=t(:estimates)%>:

- <%= render :partial => 'estimates/list', locals: {customer: @customer} %> + <%= render partial: 'estimates/list', locals: {customer: @customer} %>

<%=t(:label_invoices)%>:

- <%= render :partial => 'invoices/list', locals: {customer: @customer} %> + <%= render partial: 'invoices/list', locals: {customer: @customer} %>
@@ -47,7 +47,7 @@

<%=@issues.open.count%> <%=t(:label_open_issues)%> - <%=@hours.round(1)%> <%=t(:label_hours)%>

-<%= render :partial => 'issues/list_simple', locals: {issues: @issues.open} %> +<%= render partial: 'issues/list_simple', locals: {issues: @issues.open} %>

<%=@closed_issues.count%> <%=t(:label_closed_issues)%> - <%= @closed_hours.round(1)%> <%=t(:label_hours)%>

-<%= render :partial => 'issues/list_simple', locals: {issues: @closed_issues} %> +<%= render partial: 'issues/list_simple', locals: {issues: @closed_issues} %> diff --git a/app/views/customers/view.html.erb b/app/views/customers/view.html.erb index 2824c0e..ab33982 100644 --- a/app/views/customers/view.html.erb +++ b/app/views/customers/view.html.erb @@ -4,7 +4,7 @@
-<%= avatar(@issue.author, :size => "50") %> +<%= avatar(@issue.author, size: "50") %>
<%= render_issue_subject_with_tree(@issue) %> @@ -19,39 +19,39 @@
<%= issue_fields_rows do |rows| - rows.left l(:field_status), @issue.status.name, :class => 'status' - rows.left l(:field_priority), @issue.priority.name, :class => 'priority' + rows.left l(:field_status), @issue.status.name, class: 'status' + rows.left l(:field_priority), @issue.priority.name, class: 'priority' # unless @issue.disabled_core_fields.include?('assigned_to_id') - # rows.left l(:field_assigned_to), avatar(@issue.assigned_to, :size => "14").to_s.html_safe + (@issue.assigned_to ? @issue.assigned_to : "-"), :class => 'assigned-to' + # rows.left l(:field_assigned_to), avatar(@issue.assigned_to, size: "14").to_s.html_safe + (@issue.assigned_to ? @issue.assigned_to : "-"), class: 'assigned-to' # end unless @issue.disabled_core_fields.include?('category_id') || (@issue.category.nil? && @issue.project.issue_categories.none?) - rows.left l(:field_category), (@issue.category ? @issue.category.name : "-"), :class => 'category' + rows.left l(:field_category), (@issue.category ? @issue.category.name : "-"), class: 'category' end unless @issue.disabled_core_fields.include?('fixed_version_id') || (@issue.fixed_version.nil? && @issue.assignable_versions.none?) - rows.left l(:field_fixed_version), (@issue.fixed_version ? @issue.fixed_version : "-"), :class => 'fixed-version' + rows.left l(:field_fixed_version), (@issue.fixed_version ? @issue.fixed_version : "-"), class: 'fixed-version' end unless @issue.disabled_core_fields.include?('start_date') - rows.right l(:field_start_date), format_date(@issue.start_date), :class => 'start-date' + rows.right l(:field_start_date), format_date(@issue.start_date), class: 'start-date' end unless @issue.disabled_core_fields.include?('due_date') - rows.right l(:field_due_date), format_date(@issue.due_date), :class => 'due-date' + rows.right l(:field_due_date), format_date(@issue.due_date), class: 'due-date' end unless @issue.disabled_core_fields.include?('done_ratio') - rows.right l(:field_done_ratio), progress_bar(@issue.done_ratio, :legend => "#{@issue.done_ratio}%"), :class => 'progress' + rows.right l(:field_done_ratio), progress_bar(@issue.done_ratio, legend: "#{@issue.done_ratio}%"), class: 'progress' end unless @issue.disabled_core_fields.include?('estimated_hours') if @issue.estimated_hours.present? || @issue.total_estimated_hours.to_f > 0 - rows.right l(:field_estimated_hours), issue_estimated_hours_details(@issue), :class => 'estimated-hours' + rows.right l(:field_estimated_hours), issue_estimated_hours_details(@issue), class: 'estimated-hours' end end #if User.current.allowed_to_view_all_time_entries?(@project) if @issue.total_spent_hours > 0 - rows.right l(:label_spent_time), issue_spent_hours_details(@issue), :class => 'spent-time' + rows.right l(:label_spent_time), issue_spent_hours_details(@issue), class: 'spent-time' end #end end %> <%= render_full_width_custom_fields_rows(@issue) %> -<%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %> +<%= call_hook(:view_issues_show_details_bottom, issue: @issue) %>
<% if @issue.description? || @issue.attachments.any? -%> @@ -59,19 +59,19 @@ end %> <% if @issue.description? %>
- <%= link_to l(:button_quote), quoted_issue_path(@issue), :remote => true, :method => 'post', :class => 'icon icon-comment' if @issue.notes_addable? %> + <%= link_to l(:button_quote), quoted_issue_path(@issue), remote: true, method: 'post', class: 'icon icon-comment' if @issue.notes_addable? %>

<%=l(:field_description)%>

- <%= textilizable @issue, :description, :attachments => @issue.attachments %> + <%= textilizable @issue, :description, attachments: @issue.attachments %>
<% end %> -<%= link_to_attachments @issue, :thumbnails => true %> +<%= link_to_attachments @issue, thumbnails: true %> <% end -%> -<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %> +<%= call_hook(:view_issues_show_description_bottom, issue: @issue) %> <% if !@issue.leaf? || User.current.allowed_to?(:manage_subtasks, @project) %>
@@ -87,7 +87,7 @@ end %> <% if @relations.present? || User.current.allowed_to?(:manage_issue_relations, @project) %>
-<%= render :partial => 'issues/relations' %> +<%= render partial: 'issues/relations' %>
<% end %> @@ -96,14 +96,14 @@ end %> <% if @changesets.present? %>

<%=l(:label_associated_revisions)%>

-<%= render :partial => 'issues/changesets', :locals => { :changesets => @changesets} %> +<%= render partial: 'issues/changesets', locals: { changesets: @changesets} %>
<% end %> <% if @journals.present? %>

<%=l(:label_history)%>

-<%= render :partial => 'issues/history', :locals => { :issue => @issue, :journals => @journals } %> +<%= render partial: 'issues/history', locals: { issue: @issue, journals: @journals } %>
<% end %> diff --git a/app/views/estimates/_search.html.erb b/app/views/estimates/_search.html.erb index 7a1a418..a1529fb 100644 --- a/app/views/estimates/_search.html.erb +++ b/app/views/estimates/_search.html.erb @@ -1,4 +1,4 @@ -<%= form_tag(estimate_doc_path, :method => "get") do %> - <%= text_field_tag :search, params[:search], placeholder: t(:label_search_estimates), :autocomplete => "off" %> - <%= submit_tag t(:label_search), :formtarget => "_blank" %> +<%= form_tag(estimate_doc_path, method: "get") do %> + <%= text_field_tag :search, params[:search], placeholder: t(:label_search_estimates), autocomplete: "off" %> + <%= submit_tag t(:label_search), formtarget: "_blank" %> <% end %> diff --git a/app/views/estimates/_sidebar.html.erb b/app/views/estimates/_sidebar.html.erb index 10eefe5..37d6da9 100644 --- a/app/views/estimates/_sidebar.html.erb +++ b/app/views/estimates/_sidebar.html.erb @@ -1,2 +1,2 @@

<%=t(:label_estimates) %>

-<%= render :partial => 'estimates/search' %> +<%= render partial: 'estimates/search' %> diff --git a/app/views/issues/_history.html.erb b/app/views/issues/_history.html.erb index aa8ecbf..bf71b48 100644 --- a/app/views/issues/_history.html.erb +++ b/app/views/issues/_history.html.erb @@ -3,12 +3,12 @@
- <%= render_journal_actions(issue, journal, :reply_links => reply_links) %> + <%= render_journal_actions(issue, journal, reply_links: reply_links) %> #<%= journal.indice %>

- <%= avatar(journal.user, :size => "24") %> - <%= authoring journal.created_on, journal.user, :label => :label_updated_time_by %> + <%= avatar(journal.user, size: "24") %> + <%= authoring journal.created_on, journal.user, label: :label_updated_time_by %> <%= render_private_notes_indicator(journal) %>

@@ -26,10 +26,10 @@
<% end %> <% end %> - <%= render_notes(issue, journal, :reply_links => reply_links) unless journal.notes.blank? %> + <%= render_notes(issue, journal, reply_links: reply_links) unless journal.notes.blank? %>
- <%= call_hook(:view_issues_history_journal_bottom, { :journal => journal }) %> + <%= call_hook(:view_issues_history_journal_bottom, { journal: journal }) %> <% end %> <% heads_for_wiki_formatter if User.current.allowed_to?(:edit_issue_notes, issue.project) || User.current.allowed_to?(:edit_own_issue_notes, issue.project) %> diff --git a/app/views/issues/_list_simple.html.erb b/app/views/issues/_list_simple.html.erb index 9885ef0..c7c2cc2 100644 --- a/app/views/issues/_list_simple.html.erb +++ b/app/views/issues/_list_simple.html.erb @@ -11,7 +11,7 @@ <% for issue in issues %> - <%= check_box_tag("ids[]", issue.id, false, :style => 'display:none;', :id => nil) %> + <%= check_box_tag("ids[]", issue.id, false, style: 'display:none;', id: nil) %> <%= link_to(issue.id, issue_path(issue)) %> <%= link_to_project(issue.project) %> diff --git a/app/views/qbo/_sidebar.html.erb b/app/views/qbo/_sidebar.html.erb index c08e695..f8f2749 100644 --- a/app/views/qbo/_sidebar.html.erb +++ b/app/views/qbo/_sidebar.html.erb @@ -1,6 +1,6 @@ <% if User.current.logged? %> - <%= render :partial => 'customers/sidebar' %> - <%= render :partial => 'estimates/sidebar' %> + <%= render partial: 'customers/sidebar' %> + <%= render partial: 'estimates/sidebar' %> <% end %> diff --git a/app/views/qbo/_stats.html.erb b/app/views/qbo/_stats.html.erb index b0f8907..9e87f44 100644 --- a/app/views/qbo/_stats.html.erb +++ b/app/views/qbo/_stats.html.erb @@ -1 +1 @@ -<%= Customer.count %> <%=t(:field_customers)%> - <%= render :partial => 'qbo/last_sync' %> +<%= Customer.count %> <%=t(:field_customers)%> - <%= render partial: 'qbo/last_sync' %> diff --git a/config/routes.rb b/config/routes.rb index 3bc7968..1849608 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -9,31 +9,31 @@ #THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #authentication -get 'qbo/authenticate', :to => 'qbo#authenticate' -get 'qbo/oauth_callback', :to => 'qbo#oauth_callback' +get 'qbo/authenticate', to: 'qbo#authenticate' +get 'qbo/oauth_callback', to: 'qbo#oauth_callback' #manual sync -get 'qbo/sync', :to => 'qbo#sync' +get 'qbo/sync', to: 'qbo#sync' #webhook -post 'qbo/webhook', :to => 'qbo#webhook' +post 'qbo/webhook', to: 'qbo#webhook' # Estimate & Invoice PDF -get 'estimates/:id', :to => 'estimate#show', as: :estimate -get 'estimates/doc/', :to => 'estimate#doc', as: :estimate_doc -get 'invoices/:id', :to => 'invoice#show', as: :invoice +get 'estimates/:id', to: 'estimate#show', as: :estimate +get 'estimates/doc/', to: 'estimate#doc', as: :estimate_doc +get 'invoices/:id', to: 'invoice#show', as: :invoice #manual billing -get 'bill/:id', :to => 'qbo#bill', as: :bill +get 'bill/:id', to: 'qbo#bill', as: :bill #customer issue view -get 'customers/view/:token', :to => 'customers#view', as: :view -get 'customers/share/:id', :to => 'customers#share', as: :share +get 'customers/view/:token', to: 'customers#view', as: :view +get 'customers/share/:id', to: 'customers#share', as: :share #java script routes get 'filter_estimates_by_customer' => 'customers#filter_estimates_by_customer' get 'filter_invoices_by_customer' => 'customers#filter_invoices_by_customer' resources :customers do - get :autocomplete_customer_name, :on => :collection + get :autocomplete_customer_name, on: :collection end diff --git a/db/migrate/002_create_qbo_customers.rb b/db/migrate/002_create_qbo_customers.rb index 438ca25..ccbd1f5 100644 --- a/db/migrate/002_create_qbo_customers.rb +++ b/db/migrate/002_create_qbo_customers.rb @@ -11,7 +11,7 @@ class CreateQboCustomers < ActiveRecord::Migration[5.1] def change create_table :qbo_customers, id: false do |t| - t.integer :id, :options => 'PRIMARY KEY' + t.integer :id, options: 'PRIMARY KEY' t.string :name end end diff --git a/db/migrate/004_create_qbo_items.rb b/db/migrate/004_create_qbo_items.rb index 3365497..accd99d 100644 --- a/db/migrate/004_create_qbo_items.rb +++ b/db/migrate/004_create_qbo_items.rb @@ -11,7 +11,7 @@ class CreateQboItems < ActiveRecord::Migration[5.1] def change create_table :qbo_items, id: false do |t| - t.integer :id, :options => 'PRIMARY KEY' + t.integer :id, options: 'PRIMARY KEY' t.string :name end end diff --git a/db/migrate/005_create_qbo_employees.rb b/db/migrate/005_create_qbo_employees.rb index 6c4fc34..235960e 100644 --- a/db/migrate/005_create_qbo_employees.rb +++ b/db/migrate/005_create_qbo_employees.rb @@ -11,7 +11,7 @@ class CreateQboEmployees < ActiveRecord::Migration[5.1] def change create_table :qbo_employees, id: false do |t| - t.integer :id, :options => 'PRIMARY KEY' + t.integer :id, options: 'PRIMARY KEY' t.string :name end end diff --git a/db/migrate/007_update_time_entries.rb b/db/migrate/007_update_time_entries.rb index c9e3eec..0b42cda 100644 --- a/db/migrate/007_update_time_entries.rb +++ b/db/migrate/007_update_time_entries.rb @@ -10,6 +10,6 @@ class UpdateTimeEntries < ActiveRecord::Migration[5.1] def change - add_column :time_entries, :qbo_billed, :boolean, :default => false + add_column :time_entries, :qbo_billed, :boolean, default: false end end diff --git a/db/migrate/008_create_qbo_estimates.rb b/db/migrate/008_create_qbo_estimates.rb index 734b2f1..a0a0685 100644 --- a/db/migrate/008_create_qbo_estimates.rb +++ b/db/migrate/008_create_qbo_estimates.rb @@ -11,7 +11,7 @@ class CreateQboEstimates < ActiveRecord::Migration[5.1] def change create_table :qbo_estimates, id: false do |t| - t.integer :id, :options => 'PRIMARY KEY' + t.integer :id, options: 'PRIMARY KEY' t.string :doc_number end end diff --git a/db/migrate/011_create_qbo_invoices.rb b/db/migrate/011_create_qbo_invoices.rb index 5da0b27..a763917 100644 --- a/db/migrate/011_create_qbo_invoices.rb +++ b/db/migrate/011_create_qbo_invoices.rb @@ -11,7 +11,7 @@ class CreateQboInvoices < ActiveRecord::Migration[5.1] def change create_table :qbo_invoices, id: false do |t| - t.integer :id, :options => 'PRIMARY KEY' + t.integer :id, options: 'PRIMARY KEY' t.string :doc_number end end diff --git a/db/migrate/013_create_qbo_purchases.rb b/db/migrate/013_create_qbo_purchases.rb index 163bc61..77c0f86 100644 --- a/db/migrate/013_create_qbo_purchases.rb +++ b/db/migrate/013_create_qbo_purchases.rb @@ -11,7 +11,7 @@ class CreateQboPurchases< ActiveRecord::Migration[5.1] def change create_table :qbo_purchases, id: false do |t| - t.integer :id, :options => 'PRIMARY KEY' + t.integer :id, options: 'PRIMARY KEY' t.integer :line_id t.string :description t.integer :customer_id diff --git a/db/migrate/021_add_issues_qbo_invoices.rb b/db/migrate/021_add_issues_qbo_invoices.rb index aa4ca82..c55a6e9 100644 --- a/db/migrate/021_add_issues_qbo_invoices.rb +++ b/db/migrate/021_add_issues_qbo_invoices.rb @@ -10,12 +10,12 @@ class AddIssuesQboInvoices < ActiveRecord::Migration[5.1] def self.up - create_table :issues_qbo_invoices, :id => false do |t| + create_table :issues_qbo_invoices, id: false do |t| t.references :issue t.references :qbo_invoice end - add_index :issues_qbo_invoices, [:issue_id, :qbo_invoice_id], :unique => true + add_index :issues_qbo_invoices, [:issue_id, :qbo_invoice_id], unique: true # Now populate it with a SQL one-liner! execute "insert into issues_qbo_invoices(issue_id, qbo_invoice_id) select id, qbo_invoice_id from issues" diff --git a/db/migrate/032_add_txn_dates.rb b/db/migrate/032_add_txn_dates.rb index b119c4a..cce4eb3 100644 --- a/db/migrate/032_add_txn_dates.rb +++ b/db/migrate/032_add_txn_dates.rb @@ -30,7 +30,7 @@ class AddTxnDates < ActiveRecord::Migration[5.1] qbo = Qbo.first invoices = qbo.perform_authenticated_request do |access_token| - service = Quickbooks::Service::Invoice.new(:company_id => qbo.realm_id, :access_token => access_token) + service = Quickbooks::Service::Invoice.new(company_id: qbo.realm_id, access_token: access_token) service.all end diff --git a/init.rb b/init.rb index efbdec4..97734af 100644 --- a/init.rb +++ b/init.rb @@ -17,8 +17,8 @@ Redmine::Plugin.register :redmine_qbo do version '2026.1.4' url 'https://github.com/rickbarrette/redmine_qbo' author_url 'https://barrettefabrication.com' - settings :default => {'empty' => true}, :partial => 'qbo/settings' - requires_redmine :version_or_higher => '6.1.0' + settings default: {'empty' => true}, partial: 'qbo/settings' + requires_redmine version_or_higher: '6.1.0' # Add safe attributes for core models Issue.safe_attributes 'customer_id' @@ -31,11 +31,11 @@ Redmine::Plugin.register :redmine_qbo do WillPaginate.per_page = 20 # Permissions for security - permission :view_customers, :customers => :index, :public => false - permission :add_customers, :customers => :new, :public => false + permission :view_customers, customers: :index, public: false + permission :add_customers, customers: :new, public: false # Register top menu items - menu :top_menu, :customers, { :controller => :customers, :action => :index }, :caption => 'Customers', :if => Proc.new {User.current.logged?} + menu :top_menu, :customers, { controller: :customers, action: :index }, caption: 'Customers', if: Proc.new {User.current.logged?} end diff --git a/lib/hooks/issues_form_hook_listener.rb b/lib/hooks/issues_form_hook_listener.rb index 272c83c..40bcc31 100644 --- a/lib/hooks/issues_form_hook_listener.rb +++ b/lib/hooks/issues_form_hook_listener.rb @@ -24,27 +24,27 @@ module Hooks # onchange event will update the hidden customer_id field search_customer = f.autocomplete_field :customer, autocomplete_customer_name_customers_path, - :selected => issue.customer, - :update_elements => { - :id => '#issue_customer_id', - :value => '#issue_customer' + selected: issue.customer, + update_elements: { + id: '#issue_customer_id', + value: '#issue_customer' } # This hidden field is used for the customer ID for the issue # the onchange event will reload the issue form via ajax to update the available estimates customer_id = f.hidden_field :customer_id, - :id => "issue_customer_id", - :onchange => "updateIssueFrom('#{escape_javascript update_issue_form_path(issue.project, issue)}', this)".html_safe + id: "issue_customer_id", + onchange: "updateIssueFrom('#{escape_javascript update_issue_form_path(issue.project, issue)}', this)".html_safe # Generate the drop down list of quickbooks estimates owned by the selected customer select_estimate = f.select :estimate_id, issue.customer ? issue.customer.estimates.pluck(:doc_number, :id).sort! {|x, y| y <=> x} : [], - :selected => issue.estimate, + selected: issue.estimate, include_blank: true # Pass all prebuilt form components to our partial context[:controller].send(:render_to_string, { - :partial => 'issues/form_hook', + partial: 'issues/form_hook', locals: { search_customer: search_customer, customer_id: customer_id, diff --git a/lib/hooks/issues_show_hook_listener.rb b/lib/hooks/issues_show_hook_listener.rb index 0237c6d..8bf9bc7 100644 --- a/lib/hooks/issues_show_hook_listener.rb +++ b/lib/hooks/issues_show_hook_listener.rb @@ -26,7 +26,7 @@ module Hooks end context[:controller].send(:render_to_string, { - :partial => 'issues/show_details', + partial: 'issues/show_details', locals: { customer: issue.customer ? link_to(issue.customer): nill, estimate_link: issue.estimate ? link_to(issue.estimate, issue.estimate, target: :_blank) : nil, diff --git a/lib/hooks/users_show_hook_listener.rb b/lib/hooks/users_show_hook_listener.rb index 93ea2f4..53a5ac8 100644 --- a/lib/hooks/users_show_hook_listener.rb +++ b/lib/hooks/users_show_hook_listener.rb @@ -22,7 +22,7 @@ module Hooks @selected = context[:user].employee.id if context[:user].employee # Generate the drop down list of quickbooks contacts - return "

#{context[:form].select :employee_id, Employee.all.pluck(:name, :id), :selected => @selected, include_blank: true}

" + return "

#{context[:form].select :employee_id, Employee.all.pluck(:name, :id), selected: @selected, include_blank: true}

" end end diff --git a/lib/hooks/view_hook_listener.rb b/lib/hooks/view_hook_listener.rb index c36c9c1..e204d9f 100644 --- a/lib/hooks/view_hook_listener.rb +++ b/lib/hooks/view_hook_listener.rb @@ -12,7 +12,7 @@ module Hooks class ViewHookListener < Redmine::Hook::ViewListener - render_on :view_layouts_base_sidebar, :partial => "qbo/sidebar" + render_on :view_layouts_base_sidebar, partial: "qbo/sidebar" end diff --git a/lib/hooks/view_layouts_hook_listener.rb b/lib/hooks/view_layouts_hook_listener.rb index 9ffbc50..34023d9 100644 --- a/lib/hooks/view_layouts_hook_listener.rb +++ b/lib/hooks/view_layouts_hook_listener.rb @@ -14,9 +14,9 @@ module Hooks # Load the javascript to support the autocomplete forms def view_layouts_base_html_head(context = {}) - js = javascript_include_tag 'application.js', :plugin => 'redmine_qbo' - js += javascript_include_tag 'autocomplete-rails.js', :plugin => 'redmine_qbo' - js += javascript_include_tag 'checkbox_controller.js', :plugin => 'redmine_qbo' + js = javascript_include_tag 'application.js', plugin: 'redmine_qbo' + js += javascript_include_tag 'autocomplete-rails.js', plugin: 'redmine_qbo' + js += javascript_include_tag 'checkbox_controller.js', plugin: 'redmine_qbo' return js end diff --git a/lib/patches/issue_patch.rb b/lib/patches/issue_patch.rb index 1487d78..c3a6661 100644 --- a/lib/patches/issue_patch.rb +++ b/lib/patches/issue_patch.rb @@ -55,8 +55,8 @@ module Patches # Prepare to create a new Time Activity qbo = Qbo.first qbo.perform_authenticated_request do |access_token| - time_service = Quickbooks::Service::TimeActivity.new(:company_id => qbo.realm_id, :access_token => access_token) - item_service = Quickbooks::Service::Item.new(:company_id => qbo.realm_id, :access_token => access_token) + time_service = Quickbooks::Service::TimeActivity.new(company_id: qbo.realm_id, access_token: access_token) + item_service = Quickbooks::Service::Item.new(company_id: qbo.realm_id, access_token: access_token) time_entry = Quickbooks::Model::TimeActivity.new # Lets total up each activity before billing. diff --git a/lib/patches/pdf_patch.rb b/lib/patches/pdf_patch.rb index b76147b..80976bb 100644 --- a/lib/patches/pdf_patch.rb +++ b/lib/patches/pdf_patch.rb @@ -143,10 +143,10 @@ module Patches # Set resize image scale pdf.set_image_scale(1.6) text = textilizable(issue, :description, - :only_path => false, - :edit_section_links => false, - :headings => false, - :inline_attachments => false + only_path: false, + edit_section_links: false, + headings: false, + inline_attachments: false ) pdf.RDMwriteFormattedCell(35+155, 5, '', '', text, issue.attachments, "LRB") @@ -233,10 +233,10 @@ module Patches pdf.ln unless journal.details.empty? pdf.SetFontStyle('',8) text = textilizable(journal, :notes, - :only_path => false, - :edit_section_links => false, - :headings => false, - :inline_attachments => false + only_path: false, + edit_section_links: false, + headings: false, + inline_attachments: false ) pdf.RDMwriteFormattedCell(190,5,'','', text, issue.attachments, "") end diff --git a/lib/patches/query_patch.rb b/lib/patches/query_patch.rb index a6f663d..6d19b9e 100644 --- a/lib/patches/query_patch.rb +++ b/lib/patches/query_patch.rb @@ -18,15 +18,15 @@ module Patches def available_columns unless @available_columns @available_columns = self.class.available_columns.dup - @available_columns << QueryColumn.new(:customer, :sortable => "#{Issue.table_name}.customer_id", :groupable => true, :caption => :field_customer) - @available_columns << QueryColumn.new(:billed, :sortable => "#{TimeEntry.table_name}.billed", :groupable => true, :caption => :field_billed) + @available_columns << QueryColumn.new(:customer, sortable: "#{Issue.table_name}.customer_id", groupable: true, caption: :field_customer) + @available_columns << QueryColumn.new(:billed, sortable: "#{TimeEntry.table_name}.billed", groupable: true, caption: :field_billed) end super end # Add customers to filters def initialize_available_filters - #add_available_filter "customer", :type => :text + #add_available_filter "customer", type: :text super end diff --git a/lib/patches/time_entry_query_patch.rb b/lib/patches/time_entry_query_patch.rb index a66ec76..7946104 100644 --- a/lib/patches/time_entry_query_patch.rb +++ b/lib/patches/time_entry_query_patch.rb @@ -18,14 +18,14 @@ module Patches def available_columns unless @available_columns @available_columns = self.class.available_columns.dup - @available_columns << QueryColumn.new(:billed, :sortable => "#{TimeEntry.table_name}.name", :groupable => true, :caption => :field_billed) + @available_columns << QueryColumn.new(:billed, sortable: "#{TimeEntry.table_name}.name", groupable: true, caption: :field_billed) end super end # Add QBO options to the filter def initialize_available_filters - add_available_filter "billed", :type => :boolean + add_available_filter "billed", type: :boolean super end