├── log
└── .gitkeep
├── lib
├── tasks
│ ├── .gitkeep
│ └── add_categories.rake
├── assets
│ └── .gitkeep
├── services
│ ├── quickbooks
│ │ └── quickbook.rb
│ └── freshbooks
│ │ └── freshbook.rb
└── const.rb
├── test
├── unit
│ ├── .gitkeep
│ ├── helpers
│ │ ├── items_helper_test.rb
│ │ ├── taxes_helper_test.rb
│ │ ├── users_helper_test.rb
│ │ ├── accounts_helper_test.rb
│ │ ├── clients_helper_test.rb
│ │ ├── invoices_helper_test.rb
│ │ ├── payments_helper_test.rb
│ │ ├── companies_helper_test.rb
│ │ ├── payment_terms_helper_test.rb
│ │ ├── client_contacts_helper_test.rb
│ │ ├── company_profiles_helper_test.rb
│ │ ├── email_templates_helper_test.rb
│ │ ├── invoice_line_items_helper_test.rb
│ │ ├── recurring_profiles_helper_test.rb
│ │ ├── client_additional_contacts_helper_test.rb
│ │ └── recurring_profile_line_items_helper_test.rb
│ ├── item_test.rb
│ ├── tax_test.rb
│ ├── user_test.rb
│ ├── client_test.rb
│ ├── account_test.rb
│ ├── category_test.rb
│ ├── company_test.rb
│ ├── currency_test.rb
│ ├── invoice_test.rb
│ ├── payment_test.rb
│ ├── payment_term_test.rb
│ ├── sent_email_test.rb
│ ├── account_users_test.rb
│ ├── client_contact_test.rb
│ ├── company_entity_test.rb
│ ├── credit_payment_test.rb
│ ├── email_template_test.rb
│ ├── invoice_line_item_test.rb
│ ├── recurring_profile_test.rb
│ ├── client_billing_info_test.rb
│ ├── company_email_template_test.rb
│ ├── client_additional_contact_test.rb
│ └── recurring_profile_line_item_test.rb
├── fixtures
│ ├── .gitkeep
│ ├── accounts.yml
│ ├── categories.yml
│ ├── account_users.yml
│ ├── taxes.yml
│ ├── payment_terms.yml
│ ├── credit_payments.yml
│ ├── currencies.yml
│ ├── company_email_templates.yml
│ ├── sent_emails.yml
│ ├── company_entities.yml
│ ├── email_templates.yml
│ ├── users.yml
│ ├── recurring_profiles.yml
│ ├── client_contacts.yml
│ ├── recurring_profile_line_items.yml
│ ├── items.yml
│ ├── invoice_line_items.yml
│ ├── payments.yml
│ ├── client_additional_contacts.yml
│ ├── invoices.yml
│ └── client_billing_infos.yml
├── functional
│ ├── .gitkeep
│ ├── invoice_mailer_test.rb
│ └── users_controller_test.rb
├── integration
│ └── .gitkeep
├── performance
│ └── browsing_test.rb
└── test_helper.rb
├── app
├── mailers
│ └── .gitkeep
├── models
│ ├── .gitkeep
│ ├── settings.rb
│ ├── invoice_task.rb
│ ├── expense_category.rb
│ ├── team_member.rb
│ ├── line_item_tax.rb
│ ├── company_entity.rb
│ ├── company_email_template.rb
│ ├── project_task.rb
│ ├── currency.rb
│ ├── log.rb
│ └── recurring_profile_line_item.rb
├── views
│ ├── tasks
│ │ ├── show.html.erb
│ │ ├── new.html.erb
│ │ ├── edit.html.erb
│ │ ├── _paging.html.erb
│ │ ├── _tasks_header.html.erb
│ │ ├── create.js.erb
│ │ └── undo_actions.js.erb
│ ├── invoices
│ │ ├── edit.js.erb
│ │ ├── invoice_pdf.html.erb
│ │ ├── selected_currency.js.erb
│ │ ├── _paging.html.slim
│ │ ├── dispute_invoice.js.erb
│ │ ├── invoice_deleted_message.erb
│ │ ├── new.js.erb
│ │ ├── pay_with_credit_card.js.erb
│ │ └── unpaid_invoices.js.erb
│ ├── sub_users
│ │ ├── destroy.js.erb
│ │ ├── create.html.erb
│ │ ├── update.html.erb
│ │ ├── new.html.erb
│ │ └── edit.html.erb
│ ├── devise
│ │ ├── inline_forms
│ │ │ └── inline_forms.html.erb
│ │ ├── mailer
│ │ │ ├── confirmation_instructions.html.erb
│ │ │ ├── unlock_instructions.html.erb
│ │ │ └── reset_password_instructions.html.erb
│ │ ├── unlocks
│ │ │ └── new.html.erb
│ │ └── confirmations
│ │ │ └── new.html.erb
│ ├── logs
│ │ ├── new.html.erb
│ │ ├── _basicWeek.html.erb
│ │ ├── index.js.erb
│ │ ├── _month.html.erb
│ │ ├── update_tasks.js.erb
│ │ ├── edit.js.erb
│ │ ├── load_view.js.erb
│ │ ├── events.json.jbuilder
│ │ ├── destroy.js.erb
│ │ ├── _tasks.html.erb
│ │ ├── _logs_header.html.erb
│ │ ├── create.js.erb
│ │ ├── timer.html.erb
│ │ ├── invoice_form.html.erb
│ │ └── _logs_table.html.erb
│ ├── calendar
│ │ └── index.html.erb
│ ├── reports
│ │ ├── _report_body.html.erb
│ │ ├── _criteria_controls.html.erb
│ │ └── reports.html.erb
│ ├── client_contacts
│ │ ├── new.html.erb
│ │ └── edit.html.erb
│ ├── estimates
│ │ ├── estimate_pdf.html.erb
│ │ ├── selected_currency.js.erb
│ │ └── undo_actions.js.erb
│ ├── payments
│ │ ├── enter_payment.js.erb
│ │ ├── new.html.erb
│ │ ├── _bulk_actions.erb
│ │ ├── update_individual_payment.html.erb
│ │ ├── edit.html.erb
│ │ ├── _form.html.erb
│ │ ├── delete_non_credit_payments.js.erb
│ │ ├── payments_history.js.erb
│ │ ├── invoice_payments_history.js.erb
│ │ ├── _paging.html.erb
│ │ ├── _payments_history_header.html.erb
│ │ ├── undo_actions.js.erb
│ │ ├── update_individual_payment.js.erb
│ │ ├── enter_payment.html.erb
│ │ └── index.js.erb
│ ├── projects
│ │ ├── show.html.erb
│ │ ├── _task_list.html.erb
│ │ ├── _project_header.html.erb
│ │ ├── edit.html.erb
│ │ └── undo_actions.js.erb
│ ├── doorkeeper
│ │ ├── applications
│ │ │ ├── edit.html.erb
│ │ │ ├── new.html.erb
│ │ │ └── _delete_form.html.erb
│ │ ├── authorizations
│ │ │ ├── show.html.erb
│ │ │ └── error.html.erb
│ │ └── authorized_applications
│ │ │ ├── _delete_form.html.erb
│ │ │ └── index.html.erb
│ ├── staffs
│ │ ├── new.html.erb
│ │ ├── edit.html.erb
│ │ ├── _paging.html.erb
│ │ ├── show.html.erb
│ │ ├── _staffs_header.html.erb
│ │ ├── create.js.erb
│ │ └── undo_actions.js.erb
│ ├── payment_terms
│ │ ├── new.html.erb
│ │ ├── edit.html.erb
│ │ ├── create.js.erb
│ │ └── show.html.erb
│ ├── recurring_profile_line_items
│ │ ├── new.html.erb
│ │ ├── show.html.erb
│ │ ├── edit.html.erb
│ │ ├── _form.html.erb
│ │ └── index.html.erb
│ ├── companies
│ │ ├── new.html.erb
│ │ ├── edit.html.erb
│ │ ├── _paging.html.erb
│ │ ├── undo_actions.js.erb
│ │ └── _companies_header.html.erb
│ ├── invoice_line_items
│ │ ├── new.html.erb
│ │ └── edit.html.erb
│ ├── clients
│ │ ├── new.html.erb
│ │ ├── create.js.erb
│ │ ├── edit.html.erb
│ │ └── undo_actions.js.erb
│ ├── email_templates
│ │ ├── index.js.erb
│ │ ├── edit.html.erb
│ │ ├── new.html.erb
│ │ ├── _paging.html.erb
│ │ └── _email_template_header.html.erb
│ ├── import_data
│ │ ├── _fb_connect.html.erb
│ │ ├── _qb_connect.html.erb
│ │ └── index.html.erb
│ ├── taxes
│ │ ├── edit.html.erb
│ │ ├── new.html.erb
│ │ ├── create.js.erb
│ │ ├── show.html.erb
│ │ ├── _tax_header.html.erb
│ │ └── undo_actions.js.erb
│ ├── invoice_mailer
│ │ ├── dispute_invoice_email.html.erb
│ │ ├── send_note_email.html.erb
│ │ ├── new_invoice_email.html.erb
│ │ ├── late_payment_reminder_email.html.erb
│ │ └── response_to_client.html.erb
│ ├── user_mailer
│ │ └── new_user_account.html.erb
│ ├── estimate_mailer
│ │ └── new_estimate_email.html.erb
│ ├── items
│ │ ├── new.html.erb
│ │ ├── edit.html.erb
│ │ ├── new.js.erb
│ │ ├── create.js.erb
│ │ └── undo_actions.js.erb
│ ├── payment_mailer
│ │ └── payment_notification_email.html.erb
│ ├── settings
│ │ └── create.js.erb
│ ├── accounts
│ │ ├── new.html.erb
│ │ └── edit.html.erb
│ ├── recurring_profiles
│ │ ├── selected_currency.js.erb
│ │ ├── _paging.html.erb
│ │ ├── new.js.erb
│ │ └── edit.js.erb
│ ├── dashboard
│ │ ├── _osb_reports.html.erb
│ │ ├── _getting_started.html.erb
│ │ └── _chart_container.html.erb
│ ├── sent_emails
│ │ ├── index.js.erb
│ │ ├── _sent_email_header.html.erb
│ │ ├── show.html.erb
│ │ └── _sent_emails.html.erb
│ ├── expenses
│ │ ├── edit.html.erb
│ │ ├── new.html.erb
│ │ └── undo_actions.js.erb
│ ├── help
│ │ └── index.html.erb
│ └── application_partials
│ │ └── _paging.html.erb
├── helpers
│ ├── settings_helper.rb
│ ├── devise_helper.rb~
│ ├── sub_users_helper.rb
│ ├── email_templates_helper.rb
│ ├── recurring_profile_line_items_helper.rb
│ └── calendar_helper.rb
├── assets
│ ├── images
│ │ ├── ad.png
│ │ ├── asc.png
│ │ ├── bg.png
│ │ ├── Thumbs.db
│ │ ├── btn_x.png
│ │ ├── bullet.png
│ │ ├── cross.png
│ │ ├── dd_02.png
│ │ ├── dd_top.png
│ │ ├── desc.png
│ │ ├── draft.png
│ │ ├── f_sep.png
│ │ ├── graff.png
│ │ ├── graph.png
│ │ ├── less.png
│ │ ├── logo.png
│ │ ├── more.png
│ │ ├── nav_bg.png
│ │ ├── paid.png
│ │ ├── rails.png
│ │ ├── scrl.png
│ │ ├── sent.png
│ │ ├── sterik.png
│ │ ├── sub_bg.png
│ │ ├── viewed.png
│ │ ├── body-bg.png
│ │ ├── btn_plus.png
│ │ ├── calendar.gif
│ │ ├── dispute.png
│ │ ├── disputed.png
│ │ ├── glow_bg.png
│ │ ├── grey_btm.png
│ │ ├── grey_top.png
│ │ ├── invalid.png
│ │ ├── links_dd.png
│ │ ├── paid_pmt.png
│ │ ├── partial.png
│ │ ├── sent_pmt.png
│ │ ├── success.png
│ │ ├── warning.png
│ │ ├── _viewed_pmt.png
│ │ ├── add_remove.png
│ │ ├── btn_close.png
│ │ ├── cross_btn.png
│ │ ├── draft_pmt.png
│ │ ├── footer_sep.png
│ │ ├── freshbooks.png
│ │ ├── grey_left.png
│ │ ├── nav_hover.png
│ │ ├── nsub_hover.png
│ │ ├── partial_pmt.png
│ │ ├── sort-arrow.gif
│ │ ├── sorting_dn.png
│ │ ├── sorting_up.png
│ │ ├── sub_hover.png
│ │ ├── top_arrow.png
│ │ ├── top_corner.png
│ │ ├── viewed_pmt.png
│ │ ├── bkp_nav_hover.png
│ │ ├── btn_close_bg.png
│ │ ├── btn_x_client.png
│ │ ├── calender_icon.png
│ │ ├── chosen-sprite.png
│ │ ├── dashboard_sep.png
│ │ ├── disputed_pmt.png
│ │ ├── draft_partial.png
│ │ ├── payment_logo.png
│ │ ├── preview_logo.png
│ │ ├── sterik_small.png
│ │ ├── sub_secondary.png
│ │ ├── del-move-icons.png
│ │ ├── graff_highlight.png
│ │ ├── grid_control_sep.png
│ │ ├── sub_secondary_02.png
│ │ ├── draft_partial_pmt.png
│ │ ├── grid_control_sep2.png
│ │ ├── intimation_bullet.png
│ │ ├── ui-icons_222222_256x240.png
│ │ ├── ui-icons_454545_256x240.png
│ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ ├── ui-bg_flat_75_ffffff_40x100.png
│ │ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ ├── ui-bg_glass_75_dadada_1x400.png
│ │ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ │ └── ad.png~f5884857e2fb28c182ceccd49be1205a1b282c0d
│ ├── stylesheets
│ │ ├── staffs.scss
│ │ ├── client_contacts.css.scss
│ │ ├── email_template_editor.css
│ │ ├── tasks.scss
│ │ ├── show_email.css.scss
│ │ ├── settings.scss
│ │ ├── logs.css.scss
│ │ ├── accounts.css.scss
│ │ ├── taxes.css.scss
│ │ ├── payment_terms.css.scss
│ │ ├── settings.css.scss
│ │ ├── sent_email.css.scss
│ │ ├── bootstrap_and_overrides.css
│ │ ├── revenue_by_client.css.scss
│ │ ├── recurring_profile_line_items.css.scss
│ │ ├── users.css.scss
│ │ ├── payments_collected.css.scss
│ │ ├── edit_payment.css.scss
│ │ ├── unpaid_invoices.css.scss
│ │ ├── new_item_form.css.scss
│ │ └── payment_history.css.scss
│ └── javascripts
│ │ ├── bootstrap.js.coffee
│ │ ├── client_contacts.js.coffee
│ │ ├── client_additional_contacts.js.coffee
│ │ ├── invoice_line_items.js.coffee
│ │ ├── recurring_profile_line_items.js.coffee
│ │ ├── jquery.ellipsis.min.js
│ │ ├── reports.js.coffee
│ │ ├── settings.coffee
│ │ └── users.js.coffee
└── controllers
│ ├── calendar_controller.rb
│ └── settings_controller.rb
├── vendor
├── plugins
│ └── .gitkeep
├── assets
│ ├── javascripts
│ │ └── .gitkeep
│ └── stylesheets
│ │ └── .gitkeep
└── engines
│ └── osb_api
│ ├── test
│ ├── dummy
│ │ ├── log
│ │ │ └── .keep
│ │ ├── app
│ │ │ ├── mailers
│ │ │ │ └── .keep
│ │ │ ├── models
│ │ │ │ ├── .keep
│ │ │ │ └── concerns
│ │ │ │ │ └── .keep
│ │ │ ├── assets
│ │ │ │ ├── images
│ │ │ │ │ └── .keep
│ │ │ │ └── javascripts
│ │ │ │ │ └── application.js
│ │ │ ├── controllers
│ │ │ │ ├── concerns
│ │ │ │ │ └── .keep
│ │ │ │ └── application_controller.rb
│ │ │ ├── helpers
│ │ │ │ └── application_helper.rb
│ │ │ └── views
│ │ │ │ └── layouts
│ │ │ │ └── application.html.erb
│ │ ├── lib
│ │ │ └── assets
│ │ │ │ └── .keep
│ │ ├── public
│ │ │ └── favicon.ico
│ │ ├── config
│ │ │ ├── routes.rb
│ │ │ ├── initializers
│ │ │ │ ├── cookies_serializer.rb
│ │ │ │ ├── session_store.rb
│ │ │ │ ├── mime_types.rb
│ │ │ │ ├── filter_parameter_logging.rb
│ │ │ │ ├── assets.rb
│ │ │ │ ├── backtrace_silencers.rb
│ │ │ │ ├── wrap_parameters.rb
│ │ │ │ └── inflections.rb
│ │ │ ├── environment.rb
│ │ │ ├── boot.rb
│ │ │ ├── database.yml
│ │ │ └── locales
│ │ │ │ └── en.yml
│ │ ├── bin
│ │ │ ├── rake
│ │ │ ├── bundle
│ │ │ └── rails
│ │ ├── config.ru
│ │ ├── Rakefile
│ │ └── README.rdoc
│ ├── osb_api_test.rb
│ ├── integration
│ │ └── navigation_test.rb
│ └── test_helper.rb
│ ├── app
│ ├── assets
│ │ ├── images
│ │ │ └── osb_api
│ │ │ │ └── .keep
│ │ └── javascripts
│ │ │ └── osb_api
│ │ │ └── application.js
│ ├── helpers
│ │ └── osb_api
│ │ │ └── application_helper.rb
│ ├── controllers
│ │ └── osb_api
│ │ │ └── application_controller.rb
│ └── views
│ │ └── layouts
│ │ └── osb_api
│ │ └── application.html.erb
│ ├── README.rdoc
│ ├── lib
│ ├── osb_api
│ │ ├── version.rb
│ │ └── engine.rb
│ ├── tasks
│ │ └── osb_api_tasks.rake
│ ├── osb_api.rb
│ └── generators
│ │ └── osb_api
│ │ └── migration_generator.rb
│ ├── config
│ └── routes.rb
│ ├── .gitignore
│ ├── bin
│ └── rails
│ └── Gemfile
├── wiki
└── images
│ └── .gitkeep
├── public
├── favicon.ico
├── robots.txt
└── 500.html
├── config
├── initializers
│ ├── pdfkit.rb
│ ├── time_formats.rb.rb
│ ├── dj_mon.rb
│ ├── smtp_settings.rb
│ ├── services.rb
│ ├── generator.rb
│ ├── wicked_pdf.rb
│ ├── delayed_job.rb
│ ├── mime_types.rb
│ ├── backtrace_silencers.rb
│ ├── secret_token.rb
│ ├── session_store.rb
│ ├── wrap_parameters.rb
│ ├── paypal.rb
│ └── inflections.rb
├── environment.rb
└── boot.rb
├── spec
├── controllers
│ ├── settings_controller_spec.rb
│ ├── companies_controller_spec.rb
│ └── calendar_controller_spec.rb
├── models
│ ├── log_spec.rb
│ ├── staff_spec.rb
│ ├── task_spec.rb
│ ├── expense_spec.rb
│ ├── project_spec.rb
│ ├── team_member_spec.rb
│ ├── invoice_task_spec.rb
│ ├── line_item_tax_spec.rb
│ ├── project_task_spec.rb
│ ├── expense_category_spec.rb
│ ├── client_additional_contact_spec.rb
│ ├── category_spec.rb
│ ├── client_contact_spec.rb
│ └── company_entity_spec.rb
├── views
│ ├── calendar
│ │ └── index.html.erb_spec.rb
│ ├── projects
│ │ ├── show.html.all_spec.rb
│ │ ├── index.html.all_spec.rb
│ │ ├── new.html.all_spec.rb
│ │ └── edit.html.all_spec.rb
│ ├── tasks
│ │ └── show.html.erb_spec.rb
│ ├── expenses
│ │ └── show.html.erb_spec.rb
│ └── staffs
│ │ └── show.html.erb_spec.rb
├── requests
│ ├── tasks_spec.rb
│ ├── staffs_spec.rb
│ ├── expenses_spec.rb
│ └── projects_spec.rb
└── helpers
│ ├── tasks_helper_spec.rb
│ ├── staffs_helper_spec.rb
│ ├── calendar_helper_spec.rb
│ ├── expenses_helper_spec.rb
│ ├── projects_helper_spec.rb
│ └── settings_helper_spec.rb
├── config.ru
├── db
└── migrate
│ ├── 20150429054414_add_status_to_payment.rb
│ ├── 20160412155145_add_company_id_to_staffs.rb
│ ├── 20150331075423_add_column_to_line_item_tax.rb
│ ├── 20160509124425_add_provider_to_tax.rb
│ ├── 20160509124435_add_provider_to_item.rb
│ ├── 20160510082726_add_provider_to_task.rb
│ ├── 20160516130907_add_provider_to_log.rb
│ ├── 20160516113923_add_provider_to_staffs.rb
│ ├── 20160509110002_add_provider_into_client.rb
│ ├── 20160509124445_add_provider_to_invoice.rb
│ ├── 20160511121932_add_provider_to_expenses.rb
│ ├── 20160516100615_add_provider_to_payments.rb
│ ├── 20160516122508_add_provider_to_projects.rb
│ ├── 20160512124933_add_provider_to_estimates.rb
│ ├── 20150520131850_add_trackstamps_to_invoice.rb
│ ├── 20160219082001_create_expense_categories.rb
│ ├── 20150211112822_create_account_users.rb
│ ├── 20160511121717_change_taxes_data_types_to_expenses.rb
│ ├── 20150521105207_add_fields_to_recurring_profile.rb
│ ├── 20160511113908_add_provider_to_expense_categories.rb
│ ├── 20150304135920_add_column_currency_id_to_invoices_and_clients.rb
│ ├── 20150331075044_add_acts_as_archival_to_line_item_tax.rb
│ ├── 20150211113714_create_categories.rb
│ ├── 20150330130413_create_line_item_taxes.rb
│ ├── 20160302170954_create_logs.rb
│ ├── 20160330110032_create_invoice_tasks.rb
│ ├── 20150211114833_create_payment_terms.rb
│ ├── 20160606082842_add_sessions_table.rb
│ ├── 20150211114142_create_currencies.rb
│ ├── 20150211113945_create_company_email_templates.rb
│ ├── 20160303151412_create_team_members.rb
│ ├── 20150211114014_create_company_entities.rb
│ ├── 20160303083212_create_project_tasks.rb
│ ├── 20160226125408_create_staffs.rb
│ ├── 20150224123445_add_currency_id_to_recurring_profile.rb
│ ├── 20150211114039_create_credit_payments.rb
│ ├── 20160224125613_create_tasks.rb
│ ├── 20150211115131_create_taxes.rb
│ ├── 20150211115231_create_versions.rb
│ ├── 20160215152715_create_expenses.rb
│ ├── 20150403055445_create_settings.rb
│ ├── 20150211113630_create_api_keys.rb
│ ├── 20150211115032_create_sent_emails.rb
│ ├── 20160224113217_create_projects.rb
│ ├── 20150211113755_create_client_contacts.rb
│ └── 20150211114331_create_email_templates.rb
├── bin
├── delayed_job
└── rspec
├── script
├── delayed_job
└── rails
├── doc
└── README_FOR_APP
└── Rakefile
/log/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lib/tasks/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/unit/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/mailers/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/models/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lib/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/plugins/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/wiki/images/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/functional/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/integration/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/views/tasks/show.html.erb:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/views/invoices/edit.js.erb:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/views/sub_users/destroy.js.erb:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/assets/javascripts/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/log/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/views/devise/inline_forms/inline_forms.html.erb:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/mailers/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/models/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/lib/assets/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/public/favicon.ico:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/views/logs/new.html.erb:
--------------------------------------------------------------------------------
1 | <%= render 'form' %>
2 |
3 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/app/assets/images/osb_api/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/assets/images/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/models/concerns/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/helpers/settings_helper.rb:
--------------------------------------------------------------------------------
1 | module SettingsHelper
2 | end
3 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/controllers/concerns/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/helpers/devise_helper.rb~:
--------------------------------------------------------------------------------
1 | module ClientBillingInfosHelper
2 | end
3 |
--------------------------------------------------------------------------------
/app/helpers/sub_users_helper.rb:
--------------------------------------------------------------------------------
1 | module SubUsersHelper
2 |
3 | end
4 |
--------------------------------------------------------------------------------
/app/views/calendar/index.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/helpers/email_templates_helper.rb:
--------------------------------------------------------------------------------
1 | module EmailTemplatesHelper
2 | end
3 |
--------------------------------------------------------------------------------
/app/models/settings.rb:
--------------------------------------------------------------------------------
1 | class Settings < RailsSettings::CachedSettings
2 |
3 | end
4 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/README.rdoc:
--------------------------------------------------------------------------------
1 | = OsbApi
2 |
3 | This project rocks and uses MIT-LICENSE.
--------------------------------------------------------------------------------
/app/views/logs/_basicWeek.html.erb:
--------------------------------------------------------------------------------
1 | <%= render 'logs/form_week' %>
2 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/lib/osb_api/version.rb:
--------------------------------------------------------------------------------
1 | module OsbApi
2 | VERSION = "0.0.1"
3 | end
4 |
--------------------------------------------------------------------------------
/app/helpers/recurring_profile_line_items_helper.rb:
--------------------------------------------------------------------------------
1 | module RecurringProfileLineItemsHelper
2 | end
3 |
--------------------------------------------------------------------------------
/app/views/logs/index.js.erb:
--------------------------------------------------------------------------------
1 | $('#task_body').html('<%= escape_javascript render('logs/logs') %>');
2 |
--------------------------------------------------------------------------------
/app/views/reports/_report_body.html.erb:
--------------------------------------------------------------------------------
1 | <%= render "reports/report_partials/#{@report.report_name}" %>
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/public/favicon.ico
--------------------------------------------------------------------------------
/vendor/engines/osb_api/config/routes.rb:
--------------------------------------------------------------------------------
1 | OsbApi::Engine.routes.draw do
2 | mount V1::OSB => '/'
3 | end
4 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/helpers/application_helper.rb:
--------------------------------------------------------------------------------
1 | module ApplicationHelper
2 | end
3 |
--------------------------------------------------------------------------------
/app/models/invoice_task.rb:
--------------------------------------------------------------------------------
1 | class InvoiceTask < ActiveRecord::Base
2 |
3 | belongs_to :invoice
4 |
5 | end
6 |
--------------------------------------------------------------------------------
/app/views/reports/_criteria_controls.html.erb:
--------------------------------------------------------------------------------
1 | <%= render "reports/criteria_partials/#{@report.report_name}" %>
--------------------------------------------------------------------------------
/app/assets/images/ad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ad.png
--------------------------------------------------------------------------------
/app/assets/images/asc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/asc.png
--------------------------------------------------------------------------------
/app/assets/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/bg.png
--------------------------------------------------------------------------------
/app/views/sub_users/create.html.erb:
--------------------------------------------------------------------------------
1 | Users#create
2 | Find me in app/views/users/create.html.erb
3 |
--------------------------------------------------------------------------------
/app/views/sub_users/update.html.erb:
--------------------------------------------------------------------------------
1 | Users#update
2 | Find me in app/views/users/update.html.erb
3 |
--------------------------------------------------------------------------------
/app/assets/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/Thumbs.db
--------------------------------------------------------------------------------
/app/assets/images/btn_x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/btn_x.png
--------------------------------------------------------------------------------
/app/assets/images/bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/bullet.png
--------------------------------------------------------------------------------
/app/assets/images/cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/cross.png
--------------------------------------------------------------------------------
/app/assets/images/dd_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/dd_02.png
--------------------------------------------------------------------------------
/app/assets/images/dd_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/dd_top.png
--------------------------------------------------------------------------------
/app/assets/images/desc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/desc.png
--------------------------------------------------------------------------------
/app/assets/images/draft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/draft.png
--------------------------------------------------------------------------------
/app/assets/images/f_sep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/f_sep.png
--------------------------------------------------------------------------------
/app/assets/images/graff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/graff.png
--------------------------------------------------------------------------------
/app/assets/images/graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/graph.png
--------------------------------------------------------------------------------
/app/assets/images/less.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/less.png
--------------------------------------------------------------------------------
/app/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/logo.png
--------------------------------------------------------------------------------
/app/assets/images/more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/more.png
--------------------------------------------------------------------------------
/app/assets/images/nav_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/nav_bg.png
--------------------------------------------------------------------------------
/app/assets/images/paid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/paid.png
--------------------------------------------------------------------------------
/app/assets/images/rails.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/rails.png
--------------------------------------------------------------------------------
/app/assets/images/scrl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/scrl.png
--------------------------------------------------------------------------------
/app/assets/images/sent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sent.png
--------------------------------------------------------------------------------
/app/assets/images/sterik.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sterik.png
--------------------------------------------------------------------------------
/app/assets/images/sub_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sub_bg.png
--------------------------------------------------------------------------------
/app/assets/images/viewed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/viewed.png
--------------------------------------------------------------------------------
/app/views/logs/_month.html.erb:
--------------------------------------------------------------------------------
1 | <%= render 'logs/form' %>
2 |
3 |
--------------------------------------------------------------------------------
/app/views/logs/update_tasks.js.erb:
--------------------------------------------------------------------------------
1 | $("#log_task_id").empty().append("<%= escape_javascript(render(partial: 'tasks')) %>");
--------------------------------------------------------------------------------
/app/assets/images/body-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/body-bg.png
--------------------------------------------------------------------------------
/app/assets/images/btn_plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/btn_plus.png
--------------------------------------------------------------------------------
/app/assets/images/calendar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/calendar.gif
--------------------------------------------------------------------------------
/app/assets/images/dispute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/dispute.png
--------------------------------------------------------------------------------
/app/assets/images/disputed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/disputed.png
--------------------------------------------------------------------------------
/app/assets/images/glow_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/glow_bg.png
--------------------------------------------------------------------------------
/app/assets/images/grey_btm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/grey_btm.png
--------------------------------------------------------------------------------
/app/assets/images/grey_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/grey_top.png
--------------------------------------------------------------------------------
/app/assets/images/invalid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/invalid.png
--------------------------------------------------------------------------------
/app/assets/images/links_dd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/links_dd.png
--------------------------------------------------------------------------------
/app/assets/images/paid_pmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/paid_pmt.png
--------------------------------------------------------------------------------
/app/assets/images/partial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/partial.png
--------------------------------------------------------------------------------
/app/assets/images/sent_pmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sent_pmt.png
--------------------------------------------------------------------------------
/app/assets/images/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/success.png
--------------------------------------------------------------------------------
/app/assets/images/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/warning.png
--------------------------------------------------------------------------------
/app/controllers/calendar_controller.rb:
--------------------------------------------------------------------------------
1 | class CalendarController < ApplicationController
2 | def index
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/items_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ItemsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/taxes_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class TaxesHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/users_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class UsersHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/app/assets/images/_viewed_pmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/_viewed_pmt.png
--------------------------------------------------------------------------------
/app/assets/images/add_remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/add_remove.png
--------------------------------------------------------------------------------
/app/assets/images/btn_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/btn_close.png
--------------------------------------------------------------------------------
/app/assets/images/cross_btn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/cross_btn.png
--------------------------------------------------------------------------------
/app/assets/images/draft_pmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/draft_pmt.png
--------------------------------------------------------------------------------
/app/assets/images/footer_sep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/footer_sep.png
--------------------------------------------------------------------------------
/app/assets/images/freshbooks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/freshbooks.png
--------------------------------------------------------------------------------
/app/assets/images/grey_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/grey_left.png
--------------------------------------------------------------------------------
/app/assets/images/nav_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/nav_hover.png
--------------------------------------------------------------------------------
/app/assets/images/nsub_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/nsub_hover.png
--------------------------------------------------------------------------------
/app/assets/images/partial_pmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/partial_pmt.png
--------------------------------------------------------------------------------
/app/assets/images/sort-arrow.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sort-arrow.gif
--------------------------------------------------------------------------------
/app/assets/images/sorting_dn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sorting_dn.png
--------------------------------------------------------------------------------
/app/assets/images/sorting_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sorting_up.png
--------------------------------------------------------------------------------
/app/assets/images/sub_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sub_hover.png
--------------------------------------------------------------------------------
/app/assets/images/top_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/top_arrow.png
--------------------------------------------------------------------------------
/app/assets/images/top_corner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/top_corner.png
--------------------------------------------------------------------------------
/app/assets/images/viewed_pmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/viewed_pmt.png
--------------------------------------------------------------------------------
/config/initializers/pdfkit.rb:
--------------------------------------------------------------------------------
1 | # PDFKit.configure do |config|
2 | # config.wkhtmltopdf = OSB::CONFIG::WKHTMTTOPDF_PATH
3 | # end
4 |
--------------------------------------------------------------------------------
/config/initializers/time_formats.rb.rb:
--------------------------------------------------------------------------------
1 | Date::DATE_FORMATS[:month_and_year] = "%B %Y"
2 | Date::DATE_FORMATS[:short_mdy] = "%m %d %Y"
--------------------------------------------------------------------------------
/test/unit/helpers/accounts_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class AccountsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/clients_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ClientsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/invoices_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class InvoicesHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/payments_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class PaymentsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/app/helpers/osb_api/application_helper.rb:
--------------------------------------------------------------------------------
1 | module OsbApi
2 | module ApplicationHelper
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/app/assets/images/bkp_nav_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/bkp_nav_hover.png
--------------------------------------------------------------------------------
/app/assets/images/btn_close_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/btn_close_bg.png
--------------------------------------------------------------------------------
/app/assets/images/btn_x_client.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/btn_x_client.png
--------------------------------------------------------------------------------
/app/assets/images/calender_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/calender_icon.png
--------------------------------------------------------------------------------
/app/assets/images/chosen-sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/chosen-sprite.png
--------------------------------------------------------------------------------
/app/assets/images/dashboard_sep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/dashboard_sep.png
--------------------------------------------------------------------------------
/app/assets/images/disputed_pmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/disputed_pmt.png
--------------------------------------------------------------------------------
/app/assets/images/draft_partial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/draft_partial.png
--------------------------------------------------------------------------------
/app/assets/images/payment_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/payment_logo.png
--------------------------------------------------------------------------------
/app/assets/images/preview_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/preview_logo.png
--------------------------------------------------------------------------------
/app/assets/images/sterik_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sterik_small.png
--------------------------------------------------------------------------------
/app/assets/images/sub_secondary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sub_secondary.png
--------------------------------------------------------------------------------
/app/models/expense_category.rb:
--------------------------------------------------------------------------------
1 | class ExpenseCategory < ActiveRecord::Base
2 | has_many :expenses, foreign_key: 'category_id'
3 | end
4 |
--------------------------------------------------------------------------------
/config/initializers/dj_mon.rb:
--------------------------------------------------------------------------------
1 | Osb::Application.config.dj_mon.username = "dj_mon"
2 | Osb::Application.config.dj_mon.password = "password"
--------------------------------------------------------------------------------
/test/unit/helpers/companies_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class CompaniesHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/app/assets/images/del-move-icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/del-move-icons.png
--------------------------------------------------------------------------------
/app/assets/images/graff_highlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/graff_highlight.png
--------------------------------------------------------------------------------
/app/assets/images/grid_control_sep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/grid_control_sep.png
--------------------------------------------------------------------------------
/app/assets/images/sub_secondary_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/sub_secondary_02.png
--------------------------------------------------------------------------------
/app/assets/stylesheets/staffs.scss:
--------------------------------------------------------------------------------
1 | .staff {
2 | .grid_table table{ table-layout: auto;}
3 | .two,.three,.four,.five {width:23%}
4 |
5 | }
--------------------------------------------------------------------------------
/test/unit/helpers/payment_terms_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class PaymentTermsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/routes.rb:
--------------------------------------------------------------------------------
1 | Rails.application.routes.draw do
2 |
3 | mount OsbApi::Engine => "/osb_api"
4 | end
5 |
--------------------------------------------------------------------------------
/app/assets/images/draft_partial_pmt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/draft_partial_pmt.png
--------------------------------------------------------------------------------
/app/assets/images/grid_control_sep2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/grid_control_sep2.png
--------------------------------------------------------------------------------
/app/assets/images/intimation_bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/intimation_bullet.png
--------------------------------------------------------------------------------
/app/views/invoices/invoice_pdf.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <%= render :partial=>"show_invoice"%>
3 |
4 |
--------------------------------------------------------------------------------
/test/unit/helpers/client_contacts_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ClientContactsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/company_profiles_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class CompanyProfilesHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/email_templates_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class EmailTemplatesHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/bin/rake:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require_relative '../config/boot'
3 | require 'rake'
4 | Rake.application.run
5 |
--------------------------------------------------------------------------------
/app/assets/javascripts/bootstrap.js.coffee:
--------------------------------------------------------------------------------
1 | jQuery ->
2 | $("a[rel=popover]").popover()
3 | $(".tooltip").tooltip()
4 | $("a[rel=tooltip]").tooltip()
--------------------------------------------------------------------------------
/app/models/team_member.rb:
--------------------------------------------------------------------------------
1 | class TeamMember < ActiveRecord::Base
2 | belongs_to :staff
3 | belongs_to :project
4 |
5 | acts_as_archival
6 | end
7 |
--------------------------------------------------------------------------------
/app/views/client_contacts/new.html.erb:
--------------------------------------------------------------------------------
1 | New client_contact
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to 'Back', client_contacts_path %>
6 |
--------------------------------------------------------------------------------
/app/views/estimates/estimate_pdf.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <%= render :partial=>"show_estimate"%>
3 |
4 |
--------------------------------------------------------------------------------
/app/views/payments/enter_payment.js.erb:
--------------------------------------------------------------------------------
1 | jQuery("#paymentModal .modal-body").html("<%= escape_javascript(render(:partial=>"payments/enter_payment")) %>");
--------------------------------------------------------------------------------
/config/initializers/smtp_settings.rb:
--------------------------------------------------------------------------------
1 | ActionMailer::Base.smtp_settings = OSB::CONFIG::SMTP_SETTING.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
2 |
--------------------------------------------------------------------------------
/spec/controllers/settings_controller_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe SettingsController, :type => :controller do
4 |
5 | end
6 |
--------------------------------------------------------------------------------
/test/unit/helpers/invoice_line_items_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class InvoiceLineItemsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/helpers/recurring_profiles_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class RecurringProfilesHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/lib/tasks/osb_api_tasks.rake:
--------------------------------------------------------------------------------
1 | # desc "Explaining what the task does"
2 | # task :osb_api do
3 | # # Task goes here
4 | # end
5 |
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-icons_454545_256x240.png
--------------------------------------------------------------------------------
/app/views/payments/new.html.erb:
--------------------------------------------------------------------------------
1 | <%= t('header.links.payments.new') %>
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to 'Back', payments_path %>
6 |
--------------------------------------------------------------------------------
/lib/services/quickbooks/quickbook.rb:
--------------------------------------------------------------------------------
1 | module Services
2 | class Quickbook
3 | DATA_MODULES = ['Client', 'Item', 'Invoice', 'Estimate']
4 | end
5 | end
--------------------------------------------------------------------------------
/spec/controllers/companies_controller_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe CompaniesController, :type => :controller do
4 |
5 | end
6 |
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png
--------------------------------------------------------------------------------
/app/models/line_item_tax.rb:
--------------------------------------------------------------------------------
1 | class LineItemTax < ActiveRecord::Base
2 | belongs_to :invoice_line_item
3 | acts_as_archival
4 | acts_as_paranoid
5 | end
6 |
--------------------------------------------------------------------------------
/test/fixtures/accounts.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | :
5 |
6 | two:
7 | :
8 |
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_flat_75_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-bg_flat_75_ffffff_40x100.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/config/initializers/services.rb:
--------------------------------------------------------------------------------
1 | # require all services files
2 | Dir["#{Rails.root}/lib/services/**/*.rb"].each{|f| require f}
3 | require "#{Rails.root}/lib/util.rb"
--------------------------------------------------------------------------------
/spec/models/log_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe Log, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/test/unit/helpers/client_additional_contacts_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ClientAdditionalContactsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/test/unit/item_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ItemTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/tax_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class TaxTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/user_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class UserTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/app/controllers/osb_api/application_controller.rb:
--------------------------------------------------------------------------------
1 | module OsbApi
2 | class ApplicationController < ActionController::Base
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/app/views/projects/show.html.erb:
--------------------------------------------------------------------------------
1 | <%= notice %>
2 |
3 | <%= link_to 'Edit', edit_project_path(@project) %> |
4 | <%= link_to 'Back', projects_path %>
5 |
--------------------------------------------------------------------------------
/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 | require ::File.expand_path('../config/environment', __FILE__)
3 | run Osb::Application
4 |
--------------------------------------------------------------------------------
/config/initializers/generator.rb:
--------------------------------------------------------------------------------
1 | Rails.application.config.generators do |g|
2 | # ...
3 | g.template_engine :all
4 | g.fallbacks[:all] = :erb # or haml/slim etc
5 | end
--------------------------------------------------------------------------------
/spec/models/staff_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe Staff, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/spec/models/task_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe Task, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/test/unit/client_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ClientTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/helpers/recurring_profile_line_items_helper_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class RecurringProfileLineItemsHelperTest < ActionView::TestCase
4 | end
5 |
--------------------------------------------------------------------------------
/app/models/company_entity.rb:
--------------------------------------------------------------------------------
1 | class CompanyEntity < ActiveRecord::Base
2 | belongs_to :entity, :polymorphic => true
3 | belongs_to :parent, :polymorphic => true
4 | end
5 |
--------------------------------------------------------------------------------
/app/views/doorkeeper/applications/edit.html.erb:
--------------------------------------------------------------------------------
1 |
4 |
5 | <%= render 'form', application: @application %>
6 |
--------------------------------------------------------------------------------
/app/views/doorkeeper/applications/new.html.erb:
--------------------------------------------------------------------------------
1 |
4 |
5 | <%= render 'form', application: @application %>
6 |
--------------------------------------------------------------------------------
/app/views/staffs/new.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
New staff
4 |
5 |
6 | <%= render 'form' %>
--------------------------------------------------------------------------------
/config/initializers/wicked_pdf.rb:
--------------------------------------------------------------------------------
1 | # WickedPdf.config = {
2 | # :wkhtmltopdf => OSB::CONFIG::WKHTMTTOPDF_PATH,
3 | # :exe_path => OSB::CONFIG::WKHTMTTOPDF_PATH
4 | # }
5 |
--------------------------------------------------------------------------------
/spec/models/expense_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe Expense, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/spec/models/project_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe Project, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/test/unit/account_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class AccountTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/category_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class CategoryTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/company_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class CompanyTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/currency_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class CurrencyTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/invoice_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class InvoiceTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/payment_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class PaymentTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png
--------------------------------------------------------------------------------
/app/views/payment_terms/new.html.erb:
--------------------------------------------------------------------------------
1 | <%= t('views.payment_terms.new') %>
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to t('views.common.back'), payment_terms_path %>
6 |
--------------------------------------------------------------------------------
/app/views/tasks/new.html.erb:
--------------------------------------------------------------------------------
1 |
6 |
7 | <%= render 'form' %>
8 |
--------------------------------------------------------------------------------
/lib/const.rb:
--------------------------------------------------------------------------------
1 | module CONST
2 |
3 | module BillingMethod
4 | TYPES = ["Hourly Staff Rate", "Hourly Task Rate", "Hourly Project Rate", "Flat Project Rate"]
5 | end
6 |
7 | end
--------------------------------------------------------------------------------
/spec/models/team_member_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe TeamMember, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/test/unit/payment_term_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class PaymentTermTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/sent_email_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class SentEmailTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/app/views/logs/edit.js.erb:
--------------------------------------------------------------------------------
1 | $('#calendar_form').html('<%= escape_javascript render('logs/form') %>');
2 | var view = $('#calendar').fullCalendar('getView');
3 | $('#view').val(view.name);
--------------------------------------------------------------------------------
/db/migrate/20150429054414_add_status_to_payment.rb:
--------------------------------------------------------------------------------
1 | class AddStatusToPayment < ActiveRecord::Migration
2 | def change
3 | add_column :payments, :status, :string
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/spec/models/invoice_task_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe InvoiceTask, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/spec/models/line_item_tax_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe LineItemTax, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/spec/models/project_task_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe ProjectTask, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/test/unit/account_users_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class AccountUsersTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/client_contact_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ClientContactTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/company_entity_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class CompanyEntityTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/credit_payment_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class CreditPaymentTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/email_template_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class EmailTemplateTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/bin/bundle:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3 | load Gem.bin_path('bundler', 'bundle')
4 |
--------------------------------------------------------------------------------
/app/views/recurring_profile_line_items/new.html.erb:
--------------------------------------------------------------------------------
1 | New recurring_profile_line_item
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to 'Back', recurring_profile_line_items_path %>
6 |
--------------------------------------------------------------------------------
/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the rails application
2 | require File.expand_path('../application', __FILE__)
3 |
4 | # Initialize the rails application
5 | Osb::Application.initialize!
6 |
7 |
--------------------------------------------------------------------------------
/spec/models/expense_category_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe ExpenseCategory, :type => :model do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/test/functional/invoice_mailer_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class InvoiceMailerTest < ActionMailer::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/invoice_line_item_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class InvoiceLineItemTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/recurring_profile_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class RecurringProfileTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/app/assets/images/ad.png~f5884857e2fb28c182ceccd49be1205a1b282c0d:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/angebagui/open-source-billing/master/app/assets/images/ad.png~f5884857e2fb28c182ceccd49be1205a1b282c0d
--------------------------------------------------------------------------------
/app/views/companies/new.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
New Company
4 |
5 |
6 | <%= render 'form' %>
7 |
--------------------------------------------------------------------------------
/app/views/invoice_line_items/new.html.erb:
--------------------------------------------------------------------------------
1 | <%= t('views.invoice_line_item.new') %>
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to t('views.common.back'), invoice_line_items_path %>
6 |
--------------------------------------------------------------------------------
/app/views/logs/load_view.js.erb:
--------------------------------------------------------------------------------
1 | $('#calendar_form').html('<%= escape_javascript render("logs/#{@form_type}") %>');
2 | $('#task_body').html('<%= escape_javascript render('logs/logs') %>');
3 |
4 |
--------------------------------------------------------------------------------
/db/migrate/20160412155145_add_company_id_to_staffs.rb:
--------------------------------------------------------------------------------
1 | class AddCompanyIdToStaffs < ActiveRecord::Migration
2 | def change
3 | add_column :staffs, :company_id, :integer
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/test/fixtures/categories.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | category: MyString
5 |
6 | two:
7 | category: MyString
8 |
--------------------------------------------------------------------------------
/test/unit/client_billing_info_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ClientBillingInfoTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/app/views/client_contacts/edit.html.erb:
--------------------------------------------------------------------------------
1 | Editing client_contact
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to 'Show', @client_contact %> |
6 | <%= link_to 'Back', client_contacts_path %>
7 |
--------------------------------------------------------------------------------
/app/views/payments/_bulk_actions.erb:
--------------------------------------------------------------------------------
1 | <%= hidden_field_tag :page, params[:page] %>
2 | <%= submit_tag t("views.payments.delete_forever"), :name => "destroy", :class => "top_links destroy" %>
3 |
--------------------------------------------------------------------------------
/test/unit/company_email_template_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class CompanyEmailTemplateTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/osb_api_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class OsbApiTest < ActiveSupport::TestCase
4 | test "truth" do
5 | assert_kind_of Module, OsbApi
6 | end
7 | end
8 |
--------------------------------------------------------------------------------
/app/models/company_email_template.rb:
--------------------------------------------------------------------------------
1 | class CompanyEmailTemplate < ActiveRecord::Base
2 | belongs_to :parent, :polymorphic => true
3 | belongs_to :email_template, :foreign_key => 'template_id'
4 | end
5 |
--------------------------------------------------------------------------------
/spec/views/calendar/index.html.erb_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "calendar/index.html.erb", :type => :view do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/test/unit/client_additional_contact_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ClientAdditionalContactTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/.gitignore:
--------------------------------------------------------------------------------
1 | .bundle/
2 | log/*.log
3 | pkg/
4 | test/dummy/db/*.sqlite3
5 | test/dummy/db/*.sqlite3-journal
6 | test/dummy/log/*.log
7 | test/dummy/tmp/
8 | test/dummy/.sass-cache
9 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/bin/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | APP_PATH = File.expand_path('../../config/application', __FILE__)
3 | require_relative '../config/boot'
4 | require 'rails/commands'
5 |
--------------------------------------------------------------------------------
/app/views/logs/events.json.jbuilder:
--------------------------------------------------------------------------------
1 | json.array! @logs do |log|
2 | #json.extract! log, :id, :name, :description
3 | json.title "#{log[1].to_f.round(3)}"
4 | json.start log[0].strftime('%Y-%m-%d')
5 | end
--------------------------------------------------------------------------------
/app/views/payments/update_individual_payment.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= params[:payments].inspect %>
4 |
5 |
6 |
--------------------------------------------------------------------------------
/bin/delayed_job:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
4 | require 'delayed/command'
5 | Delayed::Command.new(ARGV).daemonize
6 |
--------------------------------------------------------------------------------
/db/migrate/20150331075423_add_column_to_line_item_tax.rb:
--------------------------------------------------------------------------------
1 | class AddColumnToLineItemTax < ActiveRecord::Migration
2 | def change
3 | add_column :line_item_taxes, :deleted_at, :datetime
4 | end
5 | end
6 |
--------------------------------------------------------------------------------
/script/delayed_job:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
4 | require 'delayed/command'
5 | Delayed::Command.new(ARGV).daemonize
6 |
--------------------------------------------------------------------------------
/spec/models/client_additional_contact_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | describe ClientAdditionalContact do
4 | let(:client_additional_contact) do
5 | ClientAdditionalContact.new
6 | end
7 | end
8 |
--------------------------------------------------------------------------------
/test/unit/recurring_profile_line_item_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class RecurringProfileLineItemTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 |
3 | require ::File.expand_path('../config/environment', __FILE__)
4 | run Rails.application
5 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/initializers/cookies_serializer.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | Rails.application.config.action_dispatch.cookies_serializer = :json
--------------------------------------------------------------------------------
/app/views/payment_terms/edit.html.erb:
--------------------------------------------------------------------------------
1 | <%= t('views.payment_terms.editing') %>
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to 'Show', @payment_term %> |
6 | <%= link_to 'Back', payment_terms_path %>
7 |
--------------------------------------------------------------------------------
/app/views/tasks/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.tasks.edit_task') %>
4 |
5 |
6 |
7 | <%= render 'form' %>
8 |
9 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/initializers/session_store.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | Rails.application.config.session_store :cookie_store, key: '_dummy_session'
4 |
--------------------------------------------------------------------------------
/app/views/companies/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Editing company
4 |
5 |
6 |
7 |
8 | <%= render 'form' %>
9 |
10 |
--------------------------------------------------------------------------------
/app/views/staffs/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.staffs.edit_staff') %>
4 |
5 |
6 |
7 | <%= render 'form' %>
8 |
9 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the Rails application.
2 | require File.expand_path('../application', __FILE__)
3 |
4 | # Initialize the Rails application.
5 | Rails.application.initialize!
6 |
--------------------------------------------------------------------------------
/config/boot.rb:
--------------------------------------------------------------------------------
1 | require 'rubygems'
2 |
3 | # Set up gems listed in the Gemfile.
4 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5 |
6 | require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
7 |
--------------------------------------------------------------------------------
/db/migrate/20160509124425_add_provider_to_tax.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToTax < ActiveRecord::Migration
2 | def change
3 | add_column :taxes, :provider, :string
4 | add_column :taxes, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20160509124435_add_provider_to_item.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToItem < ActiveRecord::Migration
2 | def change
3 | add_column :items, :provider, :string
4 | add_column :items, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20160510082726_add_provider_to_task.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToTask < ActiveRecord::Migration
2 | def change
3 | add_column :tasks, :provider, :string
4 | add_column :tasks, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20160516130907_add_provider_to_log.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToLog < ActiveRecord::Migration
2 | def change
3 | add_column :logs, :provider, :string
4 | add_column :logs, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/app/models/project_task.rb:
--------------------------------------------------------------------------------
1 | class ProjectTask < ActiveRecord::Base
2 |
3 | belongs_to :task
4 | belongs_to :project
5 | has_one :log, dependent: :destroy, foreign_key: :task_id
6 |
7 | acts_as_archival
8 |
9 | end
10 |
--------------------------------------------------------------------------------
/app/views/clients/new.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.clients.new_client') %>
4 |
5 |
6 | <%= render :partial => 'form' %>
7 |
8 |
--------------------------------------------------------------------------------
/app/views/doorkeeper/authorizations/show.html.erb:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | <%= params[:code] %>
7 |
8 |
--------------------------------------------------------------------------------
/app/views/payments/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.payments.editing_payment') %>
4 |
5 |
6 |
7 | <%= render 'form' %>
8 |
9 |
--------------------------------------------------------------------------------
/app/views/sub_users/new.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | <%= render 'form' %>
9 |
--------------------------------------------------------------------------------
/doc/README_FOR_APP:
--------------------------------------------------------------------------------
1 | Use this README file to introduce your application and point to useful places in the API for learning more.
2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
3 |
--------------------------------------------------------------------------------
/lib/services/freshbooks/freshbook.rb:
--------------------------------------------------------------------------------
1 | module Services
2 | class Freshbook
3 | DATA_MODULES = ['Client', 'Item', 'Tax','Task', 'Category', 'Expense', 'Invoice', 'Estimate', 'Payment', 'Staff', 'Project','TimeLog']
4 | end
5 | end
--------------------------------------------------------------------------------
/test/fixtures/account_users.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | user_id: 1
5 | company_id: 1
6 |
7 | two:
8 | user_id: 1
9 | company_id: 1
10 |
--------------------------------------------------------------------------------
/app/views/doorkeeper/authorizations/error.html.erb:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | <%= @pre_auth.error_response.body[:error_description] %>
7 |
8 |
--------------------------------------------------------------------------------
/app/views/email_templates/index.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('thead#email_template_head').html('<%= escape_javascript render "email_template_header"%>')
2 | jQuery('tbody#template_body').html('<%= escape_javascript render "email_templates" %>');
3 |
4 |
--------------------------------------------------------------------------------
/config/initializers/delayed_job.rb:
--------------------------------------------------------------------------------
1 | #Delayed::Worker.backend = :active_record
2 | class Delayed::Job < ActiveRecord::Base
3 | #attr_accessible :recurring_profile_id
4 | end
5 | Reporting::Reminder.delay.late_payment_reminder rescue nil
6 |
--------------------------------------------------------------------------------
/db/migrate/20160516113923_add_provider_to_staffs.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToStaffs < ActiveRecord::Migration
2 | def change
3 | add_column :staffs, :provider, :string
4 | add_column :staffs, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | # User-Agent: *
5 | # Disallow: /
6 |
--------------------------------------------------------------------------------
/test/fixtures/taxes.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | name: MyString
5 | percentage: 9.99
6 |
7 | two:
8 | name: MyString
9 | percentage: 9.99
10 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/client_contacts.css.scss:
--------------------------------------------------------------------------------
1 | // Place all the styles related to the client_contacts controller here.
2 | // They will automatically be included in application.css.
3 | // You can use Sass (SCSS) here: http://sass-lang.com/
4 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/email_template_editor.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: Arial, Helvetica, sans-serif;
3 | font-size: 13px;
4 | color: #464646;
5 | padding: 0px;
6 | }
7 |
8 | p {
9 | margin-bottom: 0px;
10 | }
11 |
--------------------------------------------------------------------------------
/app/views/import_data/_fb_connect.html.erb:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/views/invoice_line_items/edit.html.erb:
--------------------------------------------------------------------------------
1 | Editing invoice_line_item
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to t('views.common.show'), @invoice_line_item %> |
6 | <%= link_to t('views.common.back'), invoice_line_items_path %>
7 |
--------------------------------------------------------------------------------
/app/views/logs/destroy.js.erb:
--------------------------------------------------------------------------------
1 | $('#task_body').html('<%= escape_javascript render('logs/logs') %>');
2 | $('#calendar').fullCalendar( 'refetchEvents' );
3 | $(".alert.alert-success").show().find('span').html("Log was deleted successfully.");
4 |
--------------------------------------------------------------------------------
/db/migrate/20160509110002_add_provider_into_client.rb:
--------------------------------------------------------------------------------
1 | class AddProviderIntoClient < ActiveRecord::Migration
2 | def change
3 | add_column :clients, :provider, :string
4 | add_column :clients, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20160509124445_add_provider_to_invoice.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToInvoice < ActiveRecord::Migration
2 | def change
3 | add_column :invoices, :provider, :string
4 | add_column :invoices, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20160511121932_add_provider_to_expenses.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToExpenses < ActiveRecord::Migration
2 | def change
3 | add_column :expenses, :provider, :string
4 | add_column :expenses, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20160516100615_add_provider_to_payments.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToPayments < ActiveRecord::Migration
2 | def change
3 | add_column :payments, :provider, :string
4 | add_column :payments, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20160516122508_add_provider_to_projects.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToProjects < ActiveRecord::Migration
2 | def change
3 | add_column :projects, :provider, :string
4 | add_column :projects, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/app/views/taxes/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Editing tax
4 |
5 |
6 |
7 | <%= render 'form' %>
8 |
9 |
10 |
--------------------------------------------------------------------------------
/db/migrate/20160512124933_add_provider_to_estimates.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToEstimates < ActiveRecord::Migration
2 | def change
3 | add_column :estimates, :provider, :string
4 | add_column :estimates, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/app/models/currency.rb:
--------------------------------------------------------------------------------
1 | class Currency < ActiveRecord::Base
2 | validates :code,:title,:unit , presence: true
3 |
4 | def self.default_currency
5 | currency = Currency.where(unit: 'USD').first || Currency.first
6 | currency
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/app/views/logs/_tasks.html.erb:
--------------------------------------------------------------------------------
1 | <% if @tasks %>
2 | Select a task
3 | <% @tasks.each do |task| %>
4 |
5 | <%= task.name.titleize %>
6 |
7 | <% end %>
8 | <% end %>
--------------------------------------------------------------------------------
/app/views/recurring_profile_line_items/show.html.erb:
--------------------------------------------------------------------------------
1 | <%= notice %>
2 |
3 |
4 | <%= link_to 'Edit', edit_recurring_profile_line_item_path(@recurring_profile_line_item) %> |
5 | <%= link_to 'Back', recurring_profile_line_items_path %>
6 |
--------------------------------------------------------------------------------
/db/migrate/20150520131850_add_trackstamps_to_invoice.rb:
--------------------------------------------------------------------------------
1 | class AddTrackstampsToInvoice < ActiveRecord::Migration
2 | def change
3 | add_column :invoices, :created_by, :integer
4 | add_column :invoices, :updated_by, :integer
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20160219082001_create_expense_categories.rb:
--------------------------------------------------------------------------------
1 | class CreateExpenseCategories < ActiveRecord::Migration
2 | def change
3 | create_table :expense_categories do |t|
4 | t.string :name
5 | t.timestamps
6 | end
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/app/views/sub_users/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Editing User
4 |
5 |
6 |
7 | <%= render 'edit_form' %>
8 |
9 |
10 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/integration/navigation_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class NavigationTest < ActionDispatch::IntegrationTest
4 | fixtures :all
5 |
6 | # test "the truth" do
7 | # assert true
8 | # end
9 | end
10 |
11 |
--------------------------------------------------------------------------------
/app/views/invoice_mailer/dispute_invoice_email.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= @email_html_body.html_safe%>
8 |
9 |
10 |
--------------------------------------------------------------------------------
/db/migrate/20150211112822_create_account_users.rb:
--------------------------------------------------------------------------------
1 | class CreateAccountUsers < ActiveRecord::Migration
2 | def change
3 | create_table :account_users, force: true do |t|
4 | t.integer :user_id
5 | t.integer :account_id
6 | end
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/db/migrate/20160511121717_change_taxes_data_types_to_expenses.rb:
--------------------------------------------------------------------------------
1 | class ChangeTaxesDataTypesToExpenses < ActiveRecord::Migration
2 | def change
3 | change_column :expenses, :tax_1, :integer
4 | change_column :expenses, :tax_2, :integer
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/test/fixtures/payment_terms.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | number_of_days: 1
5 | description: MyString
6 |
7 | two:
8 | number_of_days: 1
9 | description: MyString
10 |
--------------------------------------------------------------------------------
/app/views/invoice_mailer/send_note_email.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= @email_html_body.html_safe%>
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/views/user_mailer/new_user_account.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= @email_html_body.html_safe%>
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/views/estimate_mailer/new_estimate_email.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= @email_html_body.html_safe%>
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/views/invoice_mailer/new_invoice_email.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= @email_html_body.html_safe%>
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/lib/tasks/add_categories.rake:
--------------------------------------------------------------------------------
1 | require 'rake'
2 | namespace :add_categories do
3 | task :category => :environment do
4 | CATEGORIES.each do |category|
5 | ExpenseCategory.create name: category unless ExpenseCategory.find_by_name category
6 | end
7 | end
8 | end
--------------------------------------------------------------------------------
/app/views/devise/mailer/confirmation_instructions.html.erb:
--------------------------------------------------------------------------------
1 | Welcome <%= @email %>!
2 |
3 | You can confirm your account email through the link below:
4 |
5 | <%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @token) %>
6 |
--------------------------------------------------------------------------------
/app/views/items/new.html.erb:
--------------------------------------------------------------------------------
1 |
6 |
7 | <%= render 'form' %>
8 |
9 | <%#= link_to 'Back', items_path %>
10 |
--------------------------------------------------------------------------------
/app/views/payment_mailer/payment_notification_email.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= @email_html_body.html_safe%>
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/views/taxes/new.html.erb:
--------------------------------------------------------------------------------
1 |
6 |
7 | <%= render 'form' %>
8 |
9 | <%#= link_to 'Back', taxes_path %>
10 |
--------------------------------------------------------------------------------
/db/migrate/20150521105207_add_fields_to_recurring_profile.rb:
--------------------------------------------------------------------------------
1 | class AddFieldsToRecurringProfile < ActiveRecord::Migration
2 | def change
3 | add_column :recurring_profiles, :created_by, :integer
4 | add_column :recurring_profiles, :updated_by, :integer
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/test/fixtures/credit_payments.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | payment_id: 1
5 | invoice_id: 1
6 | amount: 9.99
7 |
8 | two:
9 | payment_id: 1
10 | invoice_id: 1
11 | amount: 9.99
12 |
--------------------------------------------------------------------------------
/app/views/invoice_mailer/late_payment_reminder_email.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | <%= @email_html_body.html_safe%>
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/views/recurring_profile_line_items/edit.html.erb:
--------------------------------------------------------------------------------
1 | Editing recurring_profile_line_item
2 |
3 | <%= render 'form' %>
4 |
5 | <%= link_to t('views.common.show'), @recurring_profile_line_item %> |
6 | <%= link_to t('views.common.back'), recurring_profile_line_items_path %>
7 |
--------------------------------------------------------------------------------
/db/migrate/20160511113908_add_provider_to_expense_categories.rb:
--------------------------------------------------------------------------------
1 | class AddProviderToExpenseCategories < ActiveRecord::Migration
2 | def change
3 | add_column :expense_categories, :provider, :string
4 | add_column :expense_categories, :provider_id, :string
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/test/fixtures/currencies.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | title: MyString
5 | code: MyString
6 | unit: MyString
7 |
8 | two:
9 | title: MyString
10 | code: MyString
11 | unit: MyString
12 |
--------------------------------------------------------------------------------
/app/assets/javascripts/client_contacts.js.coffee:
--------------------------------------------------------------------------------
1 | # Place all the behaviors and hooks related to the matching controller here.
2 | # All this logic will automatically be available in application.js.
3 | # You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
4 |
--------------------------------------------------------------------------------
/db/migrate/20150304135920_add_column_currency_id_to_invoices_and_clients.rb:
--------------------------------------------------------------------------------
1 | class AddColumnCurrencyIdToInvoicesAndClients < ActiveRecord::Migration
2 | def change
3 | add_column :clients, :currency_id, :integer
4 | add_column :invoices, :currency_id, :integer
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20150331075044_add_acts_as_archival_to_line_item_tax.rb:
--------------------------------------------------------------------------------
1 | class AddActsAsArchivalToLineItemTax < ActiveRecord::Migration
2 | def change
3 | add_column :line_item_taxes, :archive_number, :string
4 | add_column :line_item_taxes, :archived_at, :datetime
5 | end
6 | end
7 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/lib/osb_api.rb:
--------------------------------------------------------------------------------
1 | # requires all dependencies
2 | Gem.loaded_specs['osb_api'].dependencies.each do |d|
3 | require d.name unless d.name == 'rack-cors'
4 | end
5 |
6 | require "osb_api/engine"
7 | require 'rack/cors'
8 |
9 | module OsbApi
10 |
11 | end
12 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/initializers/filter_parameter_logging.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Configure sensitive parameters which will be filtered from the log file.
4 | Rails.application.config.filter_parameters += [:password]
5 |
--------------------------------------------------------------------------------
/app/views/reports/reports.html.erb:
--------------------------------------------------------------------------------
1 | <% unless request.format.pdf? %>
2 | <%= render "criteria_controls" %>
3 | <% end %>
4 |
5 | <%#= render "#{@report.report_name}" %>
6 | <%= render "report_body" %>
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/spec/models/category_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | describe Category do
4 | let(:category) do
5 | Category.new(category:'valid Category')
6 | end
7 |
8 | it '# has valid category name' do
9 | expect(category.category).to eq('valid Category')
10 | end
11 | end
--------------------------------------------------------------------------------
/app/assets/javascripts/client_additional_contacts.js.coffee:
--------------------------------------------------------------------------------
1 | # Place all the behaviors and hooks related to the matching controller here.
2 | # All this logic will automatically be available in application.js.
3 | # You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
4 |
--------------------------------------------------------------------------------
/app/assets/javascripts/invoice_line_items.js.coffee:
--------------------------------------------------------------------------------
1 | # Place all the behaviors and hooks related to the matching controller here.
2 | # All this logic will automatically be available in application.js.
3 | # You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/assets/javascripts/recurring_profile_line_items.js.coffee:
--------------------------------------------------------------------------------
1 | # Place all the behaviors and hooks related to the matching controller here.
2 | # All this logic will automatically be available in application.js.
3 | # You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
4 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/controllers/application_controller.rb:
--------------------------------------------------------------------------------
1 | class ApplicationController < ActionController::Base
2 | # Prevent CSRF attacks by raising an exception.
3 | # For APIs, you may want to use :null_session instead.
4 | protect_from_forgery with: :exception
5 | end
6 |
--------------------------------------------------------------------------------
/Rakefile:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env rake
2 | # Add your own tasks in files placed in lib/tasks ending in .rake,
3 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4 |
5 | require File.expand_path('../config/application', __FILE__)
6 |
7 | Osb::Application.load_tasks
8 |
--------------------------------------------------------------------------------
/spec/requests/tasks_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "Tasks", :type => :request do
4 | describe "GET /tasks" do
5 | it "works! (now write some real specs)" do
6 | get tasks_path
7 | expect(response).to have_http_status(200)
8 | end
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/spec/views/projects/show.html.all_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "projects/show", :type => :view do
4 | before(:each) do
5 | @project = assign(:project, Project.create!())
6 | end
7 |
8 | it "renders attributes in " do
9 | render
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/test/fixtures/company_email_templates.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | template_id: 1
5 | parent_id: 1
6 | parent_type: MyString
7 |
8 | two:
9 | template_id: 1
10 | parent_id: 1
11 | parent_type: MyString
12 |
--------------------------------------------------------------------------------
/test/fixtures/sent_emails.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | date: 2013-02-01
5 | sender: MyString
6 | recipient: MyString
7 |
8 | two:
9 | date: 2013-02-01
10 | sender: MyString
11 | recipient: MyString
12 |
--------------------------------------------------------------------------------
/app/views/logs/_logs_header.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <%= "Project" %>
3 | <%= "Task" %>
4 | <%= "Notes" %>
5 | <%= 'Hours' %>
6 | Action(s)
7 |
8 |
9 |
--------------------------------------------------------------------------------
/spec/requests/staffs_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "Staffs", :type => :request do
4 | describe "GET /staffs" do
5 | it "works! (now write some real specs)" do
6 | get staffs_path
7 | expect(response).to have_http_status(200)
8 | end
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/boot.rb:
--------------------------------------------------------------------------------
1 | # Set up gems listed in the Gemfile.
2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
3 |
4 | require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
5 | $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
6 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/tasks.scss:
--------------------------------------------------------------------------------
1 | .task {
2 | col.one{
3 | width: 3% !important;
4 | }
5 | .two, .three, .four, .five, .six {
6 | width: 16.5%
7 | }
8 | }
9 | .task_head tr th:first-child{
10 | width: 10% !important;
11 | }
12 | .tasks_listing{
13 | table-layout: auto !important;
14 | }
--------------------------------------------------------------------------------
/app/views/doorkeeper/applications/_delete_form.html.erb:
--------------------------------------------------------------------------------
1 | <%- submit_btn_css ||= 'btn btn-link' %>
2 | <%= form_tag [:oauth, application] do %>
3 |
4 | <%= submit_tag 'Destroy', onclick: "return confirm('Are you sure?')", class: submit_btn_css %>
5 | <% end %>
6 |
--------------------------------------------------------------------------------
/app/views/settings/create.js.erb:
--------------------------------------------------------------------------------
1 | jQuery(".alert.alert-success").show().find('span').html("Setting are successfully updated");
2 | <% if @language_changed.present? and @language_changed == true %>
3 | window.location.href = "/<%= current_user.settings.language.to_sym %>/sub_users/user_settings";
4 | <% end %>
5 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/Rakefile:
--------------------------------------------------------------------------------
1 | # Add your own tasks in files placed in lib/tasks ending in .rake,
2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3 |
4 | require File.expand_path('../config/application', __FILE__)
5 |
6 | Rails.application.load_tasks
7 |
--------------------------------------------------------------------------------
/app/models/log.rb:
--------------------------------------------------------------------------------
1 | class Log < ActiveRecord::Base
2 |
3 | belongs_to :project
4 | belongs_to :task, class_name: 'ProjectTask', foreign_key: :task_id
5 |
6 | validates :project_id,:task_id,:date , presence: true
7 |
8 | def line_total
9 | (hours * task.rate).round(2)
10 | end
11 |
12 | end
13 |
--------------------------------------------------------------------------------
/app/views/items/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Editing item
4 |
5 |
6 |
7 | <%= render 'form' %>
8 |
9 | <%#= link_to 'Show', @item %>
10 | <%#= link_to 'Back', items_path %>
11 |
--------------------------------------------------------------------------------
/db/migrate/20150211113714_create_categories.rb:
--------------------------------------------------------------------------------
1 | class CreateCategories < ActiveRecord::Migration
2 | def change
3 | create_table :categories do |t|
4 | t.string "category"
5 | t.datetime "created_at", null: false
6 | t.datetime "updated_at", null: false
7 | end
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/spec/requests/expenses_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "Expenses", :type => :request do
4 | describe "GET /expenses" do
5 | it "works! (now write some real specs)" do
6 | get expenses_path
7 | expect(response).to have_http_status(200)
8 | end
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/spec/requests/projects_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "Projects", :type => :request do
4 | describe "GET /projects" do
5 | it "works! (now write some real specs)" do
6 | get projects_path
7 | expect(response).to have_http_status(200)
8 | end
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/show_email.css.scss:
--------------------------------------------------------------------------------
1 | .show_email{
2 | .content_top{
3 | border-bottom: 0px;
4 | }
5 | .help_page{
6 | float: left;
7 | width: 95.3%;
8 | border: 1px solid #D7D7D7;
9 | border-radius: 4px;
10 | padding: 19px 18px 19px 18px;
11 | margin: 10px 0 0 0;
12 | }
13 | }
--------------------------------------------------------------------------------
/app/views/payments/_form.html.erb:
--------------------------------------------------------------------------------
1 | <%= form_for(@payment) do |f| %>
2 | <%= render "edit_fields", :f => f, :payment => @payment, :index => 0 %>
3 |
4 | <%= f.submit nil, :class => "btn_large submit",:id=>'submit_payment_edit_form' %>
5 |
6 | <% end %>
--------------------------------------------------------------------------------
/app/views/accounts/new.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.accounts.account') %>
4 |
5 |
6 |
7 |
8 |
9 | <%= render 'form' %>
10 |
11 |
12 | <%#= link_to 'Back', companies_path %>
13 |
--------------------------------------------------------------------------------
/app/views/email_templates/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Edit Email Template
4 |
5 |
6 |
7 |
8 |
9 | <%= render 'form' %>
10 |
11 | <%#= link_to 'Show', @email_template %>
12 | <%#= link_to 'Back', email_templates_path %>
13 |
--------------------------------------------------------------------------------
/script/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby.exe"
2 | # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3 |
4 | APP_PATH = File.expand_path('../../config/application', __FILE__)
5 | require File.expand_path('../../config/boot', __FILE__)
6 | require 'rails/commands'
7 |
--------------------------------------------------------------------------------
/spec/controllers/calendar_controller_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe CalendarController, :type => :controller do
4 |
5 | describe "GET index" do
6 | it "returns http success" do
7 | get :index
8 | expect(response).to have_http_status(:success)
9 | end
10 | end
11 |
12 | end
13 |
--------------------------------------------------------------------------------
/app/views/estimates/selected_currency.js.erb:
--------------------------------------------------------------------------------
1 | window.currency_symbol = "<%= @currency.unit %>"
2 | $("#estimate_sub_total_lbl, #estimate_total_lbl, .tax_amount").formatCurrency({symbol: window.currency_symbol})
3 | $('#discount_type').find('option:last').val("<%= @currency.unit %>").html("<%= @currency.unit %>").trigger("liszt:updated");
4 |
--------------------------------------------------------------------------------
/app/views/invoices/selected_currency.js.erb:
--------------------------------------------------------------------------------
1 | window.currency_symbol = "<%= @currency.unit %>"
2 | $("#invoice_sub_total_lbl, #invoice_total_lbl, .tax_amount").formatCurrency({symbol: window.currency_symbol})
3 | $('#discount_type').find('option:last').val("<%= @currency.unit %>").html("<%= @currency.unit %>").trigger("liszt:updated");
4 |
--------------------------------------------------------------------------------
/app/views/logs/create.js.erb:
--------------------------------------------------------------------------------
1 | $('#task_body').html('<%= escape_javascript render('logs/logs') %>');
2 | $('#calendar').fullCalendar( 'refetchEvents' );
3 | $(".alert.alert-success").show().find('span').html("Log(s) created successfully.");
4 | $('#new_log')[0].reset();
5 | $('#log_date').val($.datepicker.formatDate('yy-mm-dd', new Date()) );
--------------------------------------------------------------------------------
/app/views/payment_terms/create.js.erb:
--------------------------------------------------------------------------------
1 | <% inlineform_action = params[:add_more] ? "inlineform:save_and_add_more" : "inlineform:save" %>
2 | <%= "{\"action\": \"#{inlineform_action}\", \"record\": \"#{@payment_term.description} \"}".html_safe%>
3 |
--------------------------------------------------------------------------------
/app/views/doorkeeper/authorized_applications/_delete_form.html.erb:
--------------------------------------------------------------------------------
1 | <%- submit_btn_css ||= 'btn btn-link' %>
2 | <%= form_tag oauth_authorized_application_path(application) do %>
3 |
4 | <%= submit_tag 'Revoke', onclick: "return confirm('Are you sure?')", class: submit_btn_css %>
5 | <% end %>
6 |
--------------------------------------------------------------------------------
/app/views/invoices/_paging.html.slim:
--------------------------------------------------------------------------------
1 | td colspan="8" style="border-top: 1px solid #DDDDDD; text-align: left; "
2 | div class="paginator"
3 | = paginate @invoices, :remote => true
4 | div class="paging_info"
5 | - unless @invoices.blank?
6 | = page_entries_info @invoices
7 | = custom_per_page
8 | | per page
9 |
--------------------------------------------------------------------------------
/app/views/recurring_profiles/selected_currency.js.erb:
--------------------------------------------------------------------------------
1 | window.currency_symbol = "<%= @currency.unit %>"
2 | $("#invoice_sub_total_lbl, #invoice_total_lbl, .tax_amount").formatCurrency({symbol: window.currency_symbol})
3 | $('#discount_type').find('option:last').val("<%= @currency.unit %>").html("<%= @currency.unit %>").trigger("liszt:updated");
4 |
--------------------------------------------------------------------------------
/spec/views/projects/index.html.all_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "projects/index", :type => :view do
4 | before(:each) do
5 | assign(:projects, [
6 | Project.create!(),
7 | Project.create!()
8 | ])
9 | end
10 |
11 | it "renders a list of projects" do
12 | render
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/test/fixtures/company_entities.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | entity_id: 1
5 | entity_type: MyString
6 | parent_id: 1
7 | parent_type: MyString
8 |
9 | two:
10 | entity_id: 1
11 | entity_type: MyString
12 | parent_id: 1
13 | parent_type: MyString
14 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/settings.scss:
--------------------------------------------------------------------------------
1 | // Place all the styles related to the settings controller here.
2 | // They will automatically be included in application.css.
3 | // You can use Sass (SCSS) here: http://sass-lang.com/
4 |
5 | #import_links{padding:30px}
6 | #fb_link,#qb_link{float: left; width: 100px; margin: 20px 0 0 20px}
7 | #qb_link {padding-top:10px}
--------------------------------------------------------------------------------
/db/migrate/20150330130413_create_line_item_taxes.rb:
--------------------------------------------------------------------------------
1 | class CreateLineItemTaxes < ActiveRecord::Migration
2 | def change
3 | create_table :line_item_taxes do |t|
4 | t.integer :invoice_line_item_id
5 | t.decimal :percentage
6 | t.string :name
7 | t.integer :tax_id
8 | t.timestamps
9 | end
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/app/views/clients/create.js.erb:
--------------------------------------------------------------------------------
1 | <% inlineform_action = params[:add_more] ? "inlineform:save_and_add_more" : "inlineform:save" %>
2 | <%= "{\"action\": \"#{inlineform_action}\", \"record\": \"#{@client.organization_name} \"}".html_safe%>
3 |
--------------------------------------------------------------------------------
/test/fixtures/email_templates.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | template_type: MyString
5 | email_from: MyString
6 | subject: MyString
7 | body: MyText
8 |
9 | two:
10 | template_type: MyString
11 | email_from: MyString
12 | subject: MyString
13 | body: MyText
14 |
--------------------------------------------------------------------------------
/app/views/payments/delete_non_credit_payments.js.erb:
--------------------------------------------------------------------------------
1 | jQuery(".alert").hide();
2 |
3 | window.location.reload()
4 |
5 | jQuery('tbody#payment_body').html('<%= escape_javascript render("payment") %>');
6 | jQuery("table.table_listing").trigger('update');
7 | jQuery('#credit_payments').modal('hide');
8 | bind_deleted_entry();
9 | bind_edit_payment_links()
10 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/logs.css.scss:
--------------------------------------------------------------------------------
1 | .log_invoice_form{
2 | .grid_summary {
3 | float: right;
4 | margin: 14px 25px 0;
5 | padding: 0 0 30px;
6 | width: 50%;
7 | }
8 |
9 | #log_invoice_grid_fields{
10 | width: 100% !important;
11 | }
12 | }
13 |
14 | .log form textarea {max-width: 203px }
15 | #timer_wrapper textarea{max-width: 200px}
--------------------------------------------------------------------------------
/app/views/accounts/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.accounts.account') %>
4 |
5 |
6 |
7 |
8 |
9 | <%= render 'form' %>
10 |
11 |
12 | <%#= link_to 'Show', @company %>
13 | <%#= link_to 'Back', companies_path %>
14 |
--------------------------------------------------------------------------------
/app/views/devise/mailer/unlock_instructions.html.erb:
--------------------------------------------------------------------------------
1 | Hello <%= @resource.email %>!
2 |
3 | Your account has been locked due to an excessive number of unsuccessful sign in attempts.
4 |
5 | Click the link below to unlock your account:
6 |
7 | <%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %>
8 |
--------------------------------------------------------------------------------
/app/views/invoices/dispute_invoice.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('#dispute_invoice_popup').modal('hide')
2 | jQuery(".alert.alert-success").show().find('span').html("<%= escape_javascript @message %>");
3 | jQuery('.response_to_client').html('<%= escape_javascript render("dispute_history") %>');
4 | jQuery('#show_invoice_container').html('<%= escape_javascript render("show_invoice") %>');
--------------------------------------------------------------------------------
/db/migrate/20160302170954_create_logs.rb:
--------------------------------------------------------------------------------
1 | class CreateLogs < ActiveRecord::Migration
2 | def change
3 | create_table :logs do |t|
4 | t.integer :project_id
5 | t.integer :task_id
6 | t.float :hours
7 | t.string :notes
8 | t.date :date
9 | t.integer :company_id
10 |
11 | t.timestamps
12 | end
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/db/migrate/20160330110032_create_invoice_tasks.rb:
--------------------------------------------------------------------------------
1 | class CreateInvoiceTasks < ActiveRecord::Migration
2 | def change
3 | create_table :invoice_tasks do |t|
4 | t.string :name
5 | t.string :description
6 | t.integer :rate
7 | t.float :hours
8 | t.integer :invoice_id
9 |
10 | t.timestamps
11 | end
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/db/migrate/20150211114833_create_payment_terms.rb:
--------------------------------------------------------------------------------
1 | class CreatePaymentTerms < ActiveRecord::Migration
2 | def change
3 | create_table :payment_terms do |t|
4 | t.integer "number_of_days"
5 | t.string "description"
6 | t.datetime "created_at", null: false
7 | t.datetime "updated_at", null: false
8 | end
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/spec/views/projects/new.html.all_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "projects/new", :type => :view do
4 | before(:each) do
5 | assign(:project, Project.new())
6 | end
7 |
8 | it "renders new project form" do
9 | render
10 |
11 | assert_select "form[action=?][method=?]", projects_path, "post" do
12 | end
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/app/views/layouts/osb_api/application.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | OsbApi
5 | <%= stylesheet_link_tag "osb_api/application", media: "all" %>
6 | <%= javascript_include_tag "osb_api/application" %>
7 | <%= csrf_meta_tags %>
8 |
9 |
10 |
11 | <%= yield %>
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/accounts.css.scss:
--------------------------------------------------------------------------------
1 | .companies-main{
2 | .label_field.left{
3 | width: 150px;
4 | }
5 | .label_field label{
6 | width:130px;
7 | text-align: left;
8 | }
9 | #company_time_zone_chzn.chzn-container .chzn-results{
10 | max-height: 120px;
11 | }
12 | select{
13 | width: 226px;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/views/invoices/invoice_deleted_message.erb:
--------------------------------------------------------------------------------
1 |
2 |
×
3 |
4 |
5 |
6 |
7 | <%= t('views.invoices.invoice_deleted') %>
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/views/payments/payments_history.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('#payments_history_header').html('<%=escape_javascript(render :partial =>"payments_history_header")%>')
2 | jQuery('#payment_body').html('<%= escape_javascript(render :partial=>"payments_history") %>');
3 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
4 | bind_edit_payment_links()
5 |
6 |
--------------------------------------------------------------------------------
/db/migrate/20160606082842_add_sessions_table.rb:
--------------------------------------------------------------------------------
1 | class AddSessionsTable < ActiveRecord::Migration
2 | def change
3 | create_table :sessions do |t|
4 | t.string :session_id, :null => false
5 | t.text :data
6 | t.timestamps
7 | end
8 |
9 | add_index :sessions, :session_id, :unique => true
10 | add_index :sessions, :updated_at
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/app/views/email_templates/new.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
<%= t('views.email_templates.new') %>
5 |
6 |
7 |
8 |
9 | <%= render 'form' %>
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/views/payments/invoice_payments_history.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('#payments_history_header').html('<%=escape_javascript(render :partial =>"payments_history_header")%>')
2 | jQuery('#payment_body').html('<%= escape_javascript(render :partial=>"payments_history") %>');
3 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
4 | bind_edit_payment_links()
5 |
--------------------------------------------------------------------------------
/db/migrate/20150211114142_create_currencies.rb:
--------------------------------------------------------------------------------
1 | class CreateCurrencies < ActiveRecord::Migration
2 | def change
3 | create_table(:currencies, :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8') do |t|
4 | t.string "title"
5 | t.string "code"
6 | t.string "unit"
7 | t.datetime "created_at"
8 | t.datetime "updated_at"
9 | end
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/app/views/taxes/create.js.erb:
--------------------------------------------------------------------------------
1 | <%unless @tax_exists%>
2 | <% inlineform_action = params[:add_more] ? "inlineform:save_and_add_more" : "inlineform:save" %>
3 | <%= "{\"action\": \"#{inlineform_action}\", \"record\": \"#{@taxis.name} \"}".html_safe%>
4 | <%else%>
5 | <%= "{\"exists\": \"#{@tax_exists}\"}".html_safe%>
6 | <%end%>
--------------------------------------------------------------------------------
/spec/models/client_contact_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | describe ClientContact do
4 | let(:client) do
5 | FactoryGirl.create(:client)
6 | end
7 |
8 | let(:client_contact) do
9 | client.client_contacts.create(:client_contact)
10 | end
11 |
12 | it 'should belongs to client' do
13 | client_contact.client.count.should == 1
14 | end
15 |
16 | end
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/views/taxes/show.html.erb:
--------------------------------------------------------------------------------
1 | <%= notice %>
2 |
3 |
4 | <%= t('views.common.name') %>:
5 | <%= @taxis.name %>
6 |
7 |
8 |
9 | <%= t('views.common.percentage') %>:
10 | <%= @taxis.percentage %>
11 |
12 |
13 |
14 | <%= link_to t('helpers.links.edit'), edit_taxis_path(@taxis) %> |
15 | <%= link_to t('views.common.back'), taxes_path %>
16 |
--------------------------------------------------------------------------------
/spec/views/projects/edit.html.all_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "projects/edit", :type => :view do
4 | before(:each) do
5 | @project = assign(:project, Project.create!())
6 | end
7 |
8 | it "renders the edit project form" do
9 | render
10 |
11 | assert_select "form[action=?][method=?]", project_path(@project), "post" do
12 | end
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/app/views/import_data/_qb_connect.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%= yield %>
4 |
5 |
8 |
--------------------------------------------------------------------------------
/app/views/tasks/_paging.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%= paginate @tasks, :remote => true %>
4 |
5 | <% unless @tasks.blank? %>
6 | <%= page_entries_info @tasks %>
7 | <%= custom_per_page %> per page
8 | <% end %>
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/taxes.css.scss:
--------------------------------------------------------------------------------
1 | .taxes{
2 |
3 | .grid_table table col.one{ /*check box*/
4 | width : 33px;
5 | }
6 | .grid_table table col.two{ /*name*/
7 | width : 359px;
8 | }
9 | .grid_table table col.three{ /*percentage*/
10 | width: 378px;
11 | }
12 | .grid_table table col.four{ /*actions*/
13 | width : 70px;
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/app/views/staffs/_paging.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%= paginate @staffs, :remote => true %>
4 |
5 | <% unless @staffs.blank? %>
6 | <%= page_entries_info @staffs %>
7 | <%= custom_per_page %> per page
8 | <% end %>
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/views/staffs/show.html.erb:
--------------------------------------------------------------------------------
1 | p#notice = notice
2 |
3 | p
4 | strong Email:
5 | = @staff.email
6 | p
7 | strong Name:
8 | = @staff.name
9 | p
10 | strong Rate:
11 | = @staff.rate
12 | p
13 | strong Created by:
14 | = @staff.created_by
15 | p
16 | strong Updated by:
17 | = @staff.updated_by
18 |
19 | = link_to 'Edit', edit_staff_path(@staff)
20 | '|
21 | = link_to 'Back', staffs_path
22 |
--------------------------------------------------------------------------------
/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 | # Mime::Type.register_alias "text/html", :iphone
6 | Mime::Type.register "application/xls", :xls
7 | Mime::Type.register "application/xlsx", :xlsx
8 | Mime::Type.register "application/pdf", :pdf
9 |
10 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/payment_terms.css.scss:
--------------------------------------------------------------------------------
1 | // Place all the styles related to the PaymentTerms controller here.
2 | // They will automatically be included in application.css.
3 | // You can use Sass (SCSS) here: http://sass-lang.com/
4 | #create_term {
5 | .modal {
6 | tr:first-child {
7 | background: none;
8 | }
9 | .modal-body {
10 | min-height: 0;
11 | }
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/app/views/payments/_paging.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%= paginate @payments, :remote => true %>
4 |
5 | <% unless @payments.blank? %>
6 | <%= page_entries_info @payments %>
7 | <%= custom_per_page %> per page
8 | <% end %>
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/views/companies/_paging.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%= paginate @companies, :remote => true %>
4 |
5 | <% unless @companies.blank? %>
6 | <%= page_entries_info @companies %>
7 | <%= custom_per_page %> per page
8 | <% end %>
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/views/dashboard/_osb_reports.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
OSB Reports
4 |
5 |
6 |
7 | Payments Collection, Tax Summary, Revenue by Client and more insightful reports!
8 |
9 |
See my reports
10 |
11 |
--------------------------------------------------------------------------------
/test/fixtures/users.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | # This model initially had no columns defined. If you add columns to the
4 | # model remove the '{}' from the fixture names and add the columns immediately
5 | # below each fixture, per the syntax in the comments below
6 | #
7 | one: {}
8 | # column: value
9 | #
10 | two: {}
11 | # column: value
12 |
--------------------------------------------------------------------------------
/db/migrate/20150211113945_create_company_email_templates.rb:
--------------------------------------------------------------------------------
1 | class CreateCompanyEmailTemplates < ActiveRecord::Migration
2 | def change
3 | create_table :company_email_templates do |t|
4 | t.integer "template_id"
5 | t.integer "parent_id"
6 | t.string "parent_type"
7 | t.datetime "created_at", null: false
8 | t.datetime "updated_at", null: false
9 | end
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/views/layouts/application.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Dummy
5 | <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6 | <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7 | <%= csrf_meta_tags %>
8 |
9 |
10 |
11 | <%= yield %>
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/settings.css.scss:
--------------------------------------------------------------------------------
1 | a.btn.active.btn-danger, a.btn.active.btn-success {
2 | color: #ffffff;
3 | background-color: #00BDE5;
4 | }
5 | a.btn.btn-default {
6 | color: #000000;
7 | background-color: #FFFFFF;
8 | background-position: 0px;
9 | z-index: 0;
10 | }
11 | .fields_content_container{
12 | &.basic{
13 | width: 500px;
14 | select{
15 | width: 350px;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/db/migrate/20160303151412_create_team_members.rb:
--------------------------------------------------------------------------------
1 | class CreateTeamMembers < ActiveRecord::Migration
2 | def change
3 | create_table :team_members do |t|
4 | t.string :email
5 | t.string :name
6 | t.float :rate
7 | t.string :archive_number
8 | t.datetime :archived_at
9 | t.integer :project_id
10 | t.integer :staff_id
11 |
12 | t.timestamps
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/app/views/clients/edit.html.erb:
--------------------------------------------------------------------------------
1 | <%- model_class = Client -%>
2 |
3 |
4 |
5 | <%= t '.title', :default => t('helpers.titles.edit', :model => model_class.model_name.human,
6 | :default => "Edit #{model_class.model_name.human}") %>
7 |
8 |
9 |
10 | <%= render :partial => 'form' %>
11 |
--------------------------------------------------------------------------------
/db/migrate/20150211114014_create_company_entities.rb:
--------------------------------------------------------------------------------
1 | class CreateCompanyEntities < ActiveRecord::Migration
2 | def change
3 | create_table :company_entities do |t|
4 | t.integer "entity_id"
5 | t.string "entity_type"
6 | t.integer "parent_id"
7 | t.string "parent_type"
8 | t.datetime "created_at", null: false
9 | t.datetime "updated_at", null: false
10 | end
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/db/migrate/20160303083212_create_project_tasks.rb:
--------------------------------------------------------------------------------
1 | class CreateProjectTasks < ActiveRecord::Migration
2 | def change
3 | create_table :project_tasks do |t|
4 | t.string :name
5 | t.text :description
6 | t.float :rate
7 | t.string :archive_number
8 | t.datetime :archived_at
9 | t.integer :project_id
10 | t.integer :task_id
11 |
12 | t.timestamps
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/test/fixtures/recurring_profiles.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | # This model initially had no columns defined. If you add columns to the
4 | # model remove the '{}' from the fixture names and add the columns immediately
5 | # below each fixture, per the syntax in the comments below
6 | #
7 | one: {}
8 | # column: value
9 | #
10 | two: {}
11 | # column: value
12 |
--------------------------------------------------------------------------------
/app/views/projects/_task_list.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <%= task.name %>
3 |
4 | <%= task.billable ? "billable" : "non billable"%>
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/client_contacts.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | client_id: 1
5 | first_name: MyString
6 | last_name: MyString
7 | email: MyString
8 | phone1: MyString
9 | phone2: MyString
10 |
11 | two:
12 | client_id: 1
13 | first_name: MyString
14 | last_name: MyString
15 | email: MyString
16 | phone1: MyString
17 | phone2: MyString
18 |
--------------------------------------------------------------------------------
/app/models/recurring_profile_line_item.rb:
--------------------------------------------------------------------------------
1 | class RecurringProfileLineItem < ActiveRecord::Base
2 | # associations
3 | belongs_to :recurring_profile
4 | belongs_to :item
5 | belongs_to :tax1, :foreign_key => 'tax_1', :class_name => 'Tax'
6 | belongs_to :tax2, :foreign_key => 'tax_2', :class_name => 'Tax'
7 | attr_accessor :tax_one, :tax_two
8 |
9 | # archive and delete
10 | acts_as_archival
11 | acts_as_paranoid
12 | end
13 |
--------------------------------------------------------------------------------
/app/views/email_templates/_paging.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%= paginate @email_templates, :remote => true %>
4 |
5 | <% unless @email_templates.blank? %>
6 | <%= page_entries_info @email_templates %>
7 | <%= custom_per_page %> per page
8 | <% end %>
9 |
10 |
11 |
--------------------------------------------------------------------------------
/test/fixtures/recurring_profile_line_items.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | # This model initially had no columns defined. If you add columns to the
4 | # model remove the '{}' from the fixture names and add the columns immediately
5 | # below each fixture, per the syntax in the comments below
6 | #
7 | one: {}
8 | # column: value
9 | #
10 | two: {}
11 | # column: value
12 |
--------------------------------------------------------------------------------
/app/views/items/new.js.erb:
--------------------------------------------------------------------------------
1 | if (confirm('Your changes will be discarded by switching company. Are you sure you want to switch company?')) {
2 | // Set the session and reload the new item page
3 | jQuery.get("/application/new_selected_company_name?company_id=" + "<%= params[:company_id] %>", function(response) {
4 | jQuery("#current_selected_company").text(response);
5 | });
6 | setTimeout(function(){location.reload();},1000);
7 | }
8 |
--------------------------------------------------------------------------------
/bin/rspec:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | #
3 | # This file was generated by Bundler.
4 | #
5 | # The application 'rspec' is installed as part of a gem, and
6 | # this file is here to facilitate running it.
7 | #
8 |
9 | require 'pathname'
10 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11 | Pathname.new(__FILE__).realpath)
12 |
13 | require 'rubygems'
14 | require 'bundler/setup'
15 |
16 | load Gem.bin_path('rspec-core', 'rspec')
17 |
--------------------------------------------------------------------------------
/db/migrate/20160226125408_create_staffs.rb:
--------------------------------------------------------------------------------
1 | class CreateStaffs < ActiveRecord::Migration
2 | def change
3 | create_table :staffs do |t|
4 | t.string :email
5 | t.string :name
6 | t.float :rate
7 | t.integer :created_by
8 | t.integer :updated_by
9 | t.string :archive_number
10 | t.datetime :archived_at
11 | t.time :deleted_at
12 |
13 | t.timestamps
14 | end
15 | end
16 | end
17 |
--------------------------------------------------------------------------------
/app/views/recurring_profiles/_paging.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%= paginate @recurring_profiles, :remote => true %>
4 |
5 | <% unless @recurring_profiles.blank? %>
6 | <%= page_entries_info @recurring_profiles %>
7 | <%= custom_per_page %> per page
8 | <% end %>
9 |
10 |
11 |
--------------------------------------------------------------------------------
/test/performance/browsing_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 | require 'rails/performance_test_help'
3 |
4 | class BrowsingTest < ActionDispatch::PerformanceTest
5 | # Refer to the documentation for all available options
6 | # self.profile_options = { :runs => 5, :metrics => [:wall_time, :memory]
7 | # :output => 'tmp/performance', :formats => [:flat] }
8 |
9 | def test_homepage
10 | get '/'
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/initializers/assets.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Version of your assets, change this if you want to expire all your assets.
4 | Rails.application.config.assets.version = '1.0'
5 |
6 | # Precompile additional assets.
7 | # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
8 | # Rails.application.config.assets.precompile += %w( search.js )
9 |
--------------------------------------------------------------------------------
/config/initializers/backtrace_silencers.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5 |
6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7 | # Rails.backtrace_cleaner.remove_silencers!
8 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/sent_email.css.scss:
--------------------------------------------------------------------------------
1 | .sent_email{
2 | .grid_table{
3 | padding: 35px 0 40px 0;
4 | table col.one{ /*subject*/
5 | width : 330px;
6 | }
7 | table col.two{ /*receipt*/
8 | width : 330px;
9 | }
10 | table col.three{ /*type*/
11 | width: 90px;
12 | }
13 | table col.four{ /*date*/
14 | width : 90px;
15 | }
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/views/invoices/new.js.erb:
--------------------------------------------------------------------------------
1 | //if (confirm('Your changes will be discarded by switching company. Are you sure you want to switch company?')) {
2 | // // Set the session and reload the new invoices page
3 | // jQuery.get("/application/new_selected_company_name?company_id=" + "<%= params[:company_id] %>", function(response) {
4 | // jQuery("#current_selected_company").text(response);
5 | // });
6 | // setTimeout(function(){location.reload();},1000);
7 | //}
8 |
--------------------------------------------------------------------------------
/app/views/payment_terms/show.html.erb:
--------------------------------------------------------------------------------
1 | <%= notice %>
2 |
3 |
4 | <%= t('views.payment_terms.number_of_days') %>:
5 | <%= @payment_term.number_of_days %>
6 |
7 |
8 |
9 | <%= t('views.common.description') %>:
10 | <%= @payment_term.description %>
11 |
12 |
13 |
14 | <%= link_to t('helpers.links.edit'), edit_payment_term_path(@payment_term) %> |
15 | <%= link_to t('views.common.back'), payment_terms_path %>
16 |
--------------------------------------------------------------------------------
/app/views/sent_emails/index.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('thead#sent_emails_header').html('<%= escape_javascript render("sent_email_header") %>');
2 | jQuery('tbody#email_body').html('<%= escape_javascript render("sent_emails") %>');
3 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
4 |
5 | jQuery('#sort_direction').html('<%= params[:direction]%>');
6 | window.history.pushState({html: $("body").html()},"","<%= request.original_url %>")
7 |
--------------------------------------------------------------------------------
/app/views/tasks/_tasks_header.html.erb:
--------------------------------------------------------------------------------
1 | <% sort_class = params[:direction] == 'desc' ? 'sortdown' : 'sortup' %>
2 |
3 | <%= check_box_tag 'select_all' %>
4 | <%= "Name" %>
5 | "><%= t('views.tasks.rate') %>
7 | Action(s)
8 |
--------------------------------------------------------------------------------
/app/views/tasks/create.js.erb:
--------------------------------------------------------------------------------
1 | <%unless @task_exists%>
2 | <% inlineform_action = params[:add_more] ? "inlineform:save_and_add_more" : "inlineform:save" %>
3 | <%= "{\"action\": \"#{inlineform_action}\",\"exists\": \"#{@task_exists}\", \"record\": \"#{@task.name} \"}".html_safe%>
4 | <%else%>
5 | <%= "{\"exists\": \"#{@task_exists}\"}".html_safe%>
6 | <%end%>
--------------------------------------------------------------------------------
/db/migrate/20150224123445_add_currency_id_to_recurring_profile.rb:
--------------------------------------------------------------------------------
1 | class AddCurrencyIdToRecurringProfile < ActiveRecord::Migration
2 | def self.up
3 | unless column_exists?(:recurring_profiles,:currency_id)
4 | add_column :recurring_profiles, :currency_id, :integer
5 | end
6 | end
7 |
8 | def self.down
9 | if column_exists? :recurring_profiles,:currency_id
10 | remove_column :recurring_profiles,:currency_id
11 | end
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/app/views/devise/mailer/reset_password_instructions.html.erb:
--------------------------------------------------------------------------------
1 | Hello <%= @resource.email %>!
2 |
3 | Someone has requested a link to change your password, and you can do this through the link below.
4 |
5 | <%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @token) %>
6 |
7 | If you didn't request this, please ignore this email.
8 | Your password won't change until you access the link above and create a new one.
9 |
--------------------------------------------------------------------------------
/app/views/items/create.js.erb:
--------------------------------------------------------------------------------
1 | <%unless @item_exists%>
2 | <% inlineform_action = params[:add_more] ? "inlineform:save_and_add_more" : "inlineform:save" %>
3 | <%= "{\"action\": \"#{inlineform_action}\",\"exists\": \"#{@item_exists}\", \"record\": \"#{@item.item_name} \"}".html_safe%>
4 | <%else%>
5 | <%= "{\"exists\": \"#{@item_exists}\"}".html_safe%>
6 | <%end%>
--------------------------------------------------------------------------------
/app/views/staffs/_staffs_header.html.erb:
--------------------------------------------------------------------------------
1 | <% sort_class = params[:direction] == 'desc' ? 'sortdown' : 'sortup' %>
2 |
3 | <%= check_box_tag 'select_all' %>
4 | <%= t('name') %>
5 | <%= t('views.staffs.email') %>
6 | <%= t('views.staffs.rate') %>
7 | Action(s)
8 |
--------------------------------------------------------------------------------
/app/views/staffs/create.js.erb:
--------------------------------------------------------------------------------
1 | <%unless @staff_exists%>
2 | <% inlineform_action = params[:add_more] ? "inlineform:save_and_add_more" : "inlineform:save" %>
3 | <%= "{\"action\": \"#{inlineform_action}\",\"exists\": \"#{@staff_exists}\", \"record\": \"#{@staff.name} \"}".html_safe%>
4 | <%else%>
5 | <%= "{\"exists\": \"#{@staff_exists}\"}".html_safe%>
6 | <%end%>
--------------------------------------------------------------------------------
/app/views/taxes/_tax_header.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <%= check_box_tag 'select_all' %>
3 |
4 |
5 | <%= t '.actions', :default => t("helpers.actions") %>
6 |
--------------------------------------------------------------------------------
/app/helpers/calendar_helper.rb:
--------------------------------------------------------------------------------
1 | module CalendarHelper
2 |
3 | def load_projects_for_log
4 | Project.unarchived.map{|p| [p.project_name, p.id]}
5 | end
6 |
7 | def load_projects_for_invoice
8 | Project.select{|p| p.logs.present?}.map{|p| [p.project_name, p.id]}
9 | end
10 |
11 | def load_tasks_for_log(log)
12 | if log.persisted?
13 | log.project.project_tasks.map{|p| [p.name, p.id]}
14 | else
15 | []
16 | end
17 | end
18 |
19 | end
20 |
--------------------------------------------------------------------------------
/app/views/payments/_payments_history_header.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <%= t('invoice') %>
3 | <%= t('client') %>
4 | <%= t('views.common.type') %>
5 | <%= t('views.common.notes') %>
6 | <%= t('views.common.date') %>
7 | <%= t('views.dashboard.amount') %>
8 |
--------------------------------------------------------------------------------
/app/views/expenses/edit.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.expenses.edit_expense') %>
4 |
5 |
6 |
7 | <%= render 'form' %>
8 |
9 | <%= render 'clients/new_client' %>
10 |
11 |
12 |
13 | <%= render 'taxes/new_tax' %>
14 |
--------------------------------------------------------------------------------
/app/views/import_data/index.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%= t('views.import_data.import_data') %>
6 |
7 |
8 |
9 |
10 | <%= render partial: 'fb_connect' %>
11 | <%= render partial: 'qb_connect' %>
12 |
13 |
14 |
15 | <%= render partial: 'freshbooks_popup'%>
16 |
--------------------------------------------------------------------------------
/app/views/recurring_profiles/new.js.erb:
--------------------------------------------------------------------------------
1 | //if (confirm('Your changes will be discarded by switching company. Are you sure you want to switch company?')) {
2 | //
3 | // // Set the session and reload the new invoices page
4 | // jQuery.get("/application/new_selected_company_name?company_id=" + "<%= params[:company_id] %>", function(response) {
5 | // jQuery("#current_selected_company").text(response);
6 | // });
7 | // setTimeout(function(){location.reload();},1000);
8 | //}
9 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/bootstrap_and_overrides.css:
--------------------------------------------------------------------------------
1 | /*
2 | =require twitter-bootstrap-static/bootstrap
3 |
4 | Use Font Awesome icons (default)
5 | To use Glyphicons sprites instead of Font Awesome, replace with "require twitter-bootstrap-static/sprites"
6 | =require twitter-bootstrap-static/fontawesome
7 | */
8 | .table th, .table td {
9 | line-height: 30px;
10 | padding: 0 9px;
11 | }
12 |
13 | button, input, select, textarea{
14 | vertical-align: none !important;
15 | }
--------------------------------------------------------------------------------
/app/views/devise/unlocks/new.html.erb:
--------------------------------------------------------------------------------
1 | Resend unlock instructions
2 |
3 | <%= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => {:method => :post}) do |f| %>
4 | <%= devise_error_messages! %>
5 |
6 | <%= f.label :email %>
7 |
8 | <%= f.email_field :email, :autofocus => true %>
9 |
10 | <%= f.submit "Resend unlock instructions" %>
11 | <% end %>
12 |
13 | <%= render "devise/shared/links" %>
14 |
--------------------------------------------------------------------------------
/app/views/expenses/new.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.expenses.new_expense') %>
4 |
5 |
6 |
7 | <%= render 'form' %>
8 |
9 |
10 | <%= render 'clients/new_client' %>
11 |
12 |
13 |
14 | <%= render 'taxes/new_tax' %>
15 |
--------------------------------------------------------------------------------
/app/views/invoice_mailer/response_to_client.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= @invoice.client.organization_name %>,
9 |
10 |
11 | Invoice <%= @invoice.invoice_number%> has been undisputed by <%= @user.accounts.first.org_name %> for the following response:
12 |
13 |
14 | <%= @response%>
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/views/recurring_profiles/edit.js.erb:
--------------------------------------------------------------------------------
1 | if (confirm('Your changes will be discarded by switching company. Are you sure you want to switch company?')) {
2 | // Set the session and reload the new invoices page
3 | jQuery.get("/application/new_selected_company_name?company_id=" + "<%= params[:company_id] %>", function(response) {
4 | jQuery("#current_selected_company").text(response);
5 | });
6 | setTimeout(function(){window.location.href = '/recurring_profiles';},1000);
7 | }
8 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/initializers/backtrace_silencers.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5 |
6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7 | # Rails.backtrace_cleaner.remove_silencers!
8 |
--------------------------------------------------------------------------------
/app/views/payments/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#payment_body').html('<%= escape_javascript render("payment") %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
3 | jQuery('#active_links').html('<%= escape_javascript render("filter_links") %>');
4 | jQuery(".alert.alert-success").show().find('span').html("Payments are recovered successfully.");
5 | jQuery('#active_links a').removeClass('active');
6 | jQuery('.get_actives').addClass('active');
--------------------------------------------------------------------------------
/db/migrate/20150211114039_create_credit_payments.rb:
--------------------------------------------------------------------------------
1 | class CreateCreditPayments < ActiveRecord::Migration
2 | def change
3 | create_table :credit_payments do |t|
4 | t.integer "payment_id"
5 | t.integer "invoice_id"
6 | t.decimal "amount", precision: 10, scale: 2
7 | t.datetime "created_at", null: false
8 | t.datetime "updated_at", null: false
9 | t.integer "credit_id"
10 | end
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/test/fixtures/items.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | item_name: MyString
5 | item_description: MyString
6 | unit_cost: 9.99
7 | quantity: 1
8 | tax_1: 1
9 | tax_2: 1
10 | track_invetory: false
11 | inventory: 1
12 |
13 | two:
14 | item_name: MyString
15 | item_description: MyString
16 | unit_cost: 9.99
17 | quantity: 1
18 | tax_1: 1
19 | tax_2: 1
20 | track_invetory: false
21 | inventory: 1
22 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/revenue_by_client.css.scss:
--------------------------------------------------------------------------------
1 | .revenue_by_client {
2 | .grid_table table{
3 | col.one{width: 220px}
4 | col.two{width: 155px}
5 | col.three{width: 155px}
6 | col.four{width: 155px}
7 | col.five{width: 155px}
8 | .col_hover, .row_hover{background-color: #F7F7F7;}
9 |
10 | tfoot tr td{
11 | /*border-bottom: medium double #dadada;*/
12 | &:first-child, &:last-child{
13 | font-weight: bold;
14 | }
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/app/assets/stylesheets/recurring_profile_line_items.css.scss:
--------------------------------------------------------------------------------
1 | .recurring_profile_form{
2 | .fre_select{
3 | padding: 0 5px;
4 | select{
5 | width: 90px;
6 | overflow: none;
7 | }
8 | }
9 | .fields_content_left{
10 | .field_row.recurring{
11 | .small_field{
12 | input[type="text"]{
13 | width: 80px;
14 | }
15 | }
16 | }
17 | .medium_field{
18 | input[type="text"]{
19 | width: 280px;
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/views/devise/confirmations/new.html.erb:
--------------------------------------------------------------------------------
1 | Resend confirmation instructions
2 |
3 | <%= form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => {:method => :post}) do |f| %>
4 | <%= devise_error_messages! %>
5 |
6 | <%= f.label :email %>
7 |
8 | <%= f.email_field :email, :autofocus => true %>
9 |
10 | <%= f.submit "Resend confirmation instructions" %>
11 | <% end %>
12 |
13 | <%= render "devise/shared/links" %>
14 |
--------------------------------------------------------------------------------
/app/views/payments/update_individual_payment.js.erb:
--------------------------------------------------------------------------------
1 | jQuery("button[class=close]").click();
2 | jQuery('tbody#invoice_body').html('<%= escape_javascript render("invoices/invoice") %>');
3 | jQuery('.paginator').html('<%= escape_javascript(paginate(@invoices, :remote => true).to_s) %>' +
4 | '<%= page_entries_info @invoices %>
');
5 | jQuery(".alert.alert-success").show().find('span').html("Payment against selected invoice has been recorded successfully.");
6 | bind_edit_payment_links()
7 |
--------------------------------------------------------------------------------
/db/migrate/20160224125613_create_tasks.rb:
--------------------------------------------------------------------------------
1 | class CreateTasks < ActiveRecord::Migration
2 | def change
3 | create_table :tasks do |t|
4 | t.string :name
5 | t.text :description
6 | t.boolean :billable
7 | t.float :rate
8 | t.string :archive_number
9 | t.datetime :archived_at
10 | t.time :deleted_at
11 | t.integer :updated_by
12 | t.integer :created_by
13 | t.integer :project_id
14 |
15 | t.timestamps
16 | end
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/app/views/invoices/pay_with_credit_card.js.erb:
--------------------------------------------------------------------------------
1 |
2 | // If invoice is successfully paid then reload invoice preview with success message.
3 | <% if @result[:status].to_s == "SUCCESS" %>
4 | <% flash[:notice] = @result[:message] %>
5 | window.location = "/invoices/preview/?inv_id=<%= params[:invoice_id] %>";
6 | <% else %>
7 | jQuery("#cc_popup_error.alert.alert-error").show().find("span").html("<%= @result[:message]%>");
8 | jQuery("#cc_popup input[type=submit]").removeAttr("disabled");
9 | <% end %>
10 |
--------------------------------------------------------------------------------
/db/migrate/20150211115131_create_taxes.rb:
--------------------------------------------------------------------------------
1 | class CreateTaxes < ActiveRecord::Migration
2 | def change
3 | create_table :taxes do |t|
4 | t.string "name"
5 | t.decimal "percentage", precision: 10, scale: 2
6 | t.datetime "created_at", null: false
7 | t.datetime "updated_at", null: false
8 | t.string "archive_number"
9 | t.datetime "archived_at"
10 | t.datetime "deleted_at"
11 | end
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/test/fixtures/invoice_line_items.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | invoice_id: 1
5 | item_id: 1
6 | item_name: MyString
7 | item_description: MyString
8 | item_unit_cost: 9.99
9 | item_quantity: 9.99
10 | tax_1: 1
11 | tax_2: 1
12 |
13 | two:
14 | invoice_id: 1
15 | item_id: 1
16 | item_name: MyString
17 | item_description: MyString
18 | item_unit_cost: 9.99
19 | item_quantity: 9.99
20 | tax_1: 1
21 | tax_2: 1
22 |
--------------------------------------------------------------------------------
/spec/helpers/tasks_helper_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | # Specs in this file have access to a helper object that includes
4 | # the TasksHelper. For example:
5 | #
6 | # describe TasksHelper do
7 | # describe "string concat" do
8 | # it "concats two strings with spaces" do
9 | # expect(helper.concat_strings("this","that")).to eq("this that")
10 | # end
11 | # end
12 | # end
13 | RSpec.describe TasksHelper, :type => :helper do
14 | pending "add some examples to (or delete) #{__FILE__}"
15 | end
16 |
--------------------------------------------------------------------------------
/test/fixtures/payments.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | invoice_id: 1
5 | payment_amount:
6 | payment_method: MyString
7 | payment_date: 2013-01-08
8 | notes: MyText
9 | send_payment_notification: false
10 | paid_full: false
11 |
12 | two:
13 | invoice_id: 1
14 | payment_amount:
15 | payment_method: MyString
16 | payment_date: 2013-01-08
17 | notes: MyText
18 | send_payment_notification: false
19 | paid_full: false
20 |
--------------------------------------------------------------------------------
/test/test_helper.rb:
--------------------------------------------------------------------------------
1 | ENV["RAILS_ENV"] = "test"
2 | require File.expand_path('../../config/environment', __FILE__)
3 | require 'rails/test_help'
4 |
5 | class ActiveSupport::TestCase
6 | # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
7 | #
8 | # Note: You'll currently still have to declare fixtures explicitly in integration tests
9 | # -- they do not yet inherit this setting
10 | fixtures :all
11 |
12 | # Add more helper methods to be used by all tests here...
13 | end
14 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/lib/osb_api/engine.rb:
--------------------------------------------------------------------------------
1 | module OsbApi
2 | class Engine < ::Rails::Engine
3 | isolate_namespace OsbApi
4 | config.paths.add File.join('app','api'), glob: File.join('**', '*.rb')
5 | config.autoload_paths += Dir[File.join('app','api', '*')]
6 |
7 | config.middleware.insert_before 0, "Rack::Cors" do
8 | allow do
9 | origins '*'
10 | resource '*', :headers => :any, :methods => [:get, :post, :delete, :patch, :put]
11 | end
12 | end
13 |
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/spec/helpers/staffs_helper_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | # Specs in this file have access to a helper object that includes
4 | # the StaffsHelper. For example:
5 | #
6 | # describe StaffsHelper do
7 | # describe "string concat" do
8 | # it "concats two strings with spaces" do
9 | # expect(helper.concat_strings("this","that")).to eq("this that")
10 | # end
11 | # end
12 | # end
13 | RSpec.describe StaffsHelper, :type => :helper do
14 | pending "add some examples to (or delete) #{__FILE__}"
15 | end
16 |
--------------------------------------------------------------------------------
/db/migrate/20150211115231_create_versions.rb:
--------------------------------------------------------------------------------
1 | class CreateVersions < ActiveRecord::Migration
2 | def change
3 | create_table :versions do |t|
4 | t.string "item_type", null: false
5 | t.integer "item_id", null: false
6 | t.string "event", null: false
7 | t.string "whodunnit"
8 | t.text "object"
9 | t.datetime "created_at"
10 | end
11 | add_index "versions", ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id", using: :btree
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/users.css.scss:
--------------------------------------------------------------------------------
1 | .sub_user {
2 | .grid_table{
3 | padding-top: 17px;
4 | }
5 |
6 | .grid_table table {
7 | //col.one {
8 | ///*email*/
9 | // width: 33px;
10 | //}
11 | //col.two {
12 | ///*date*/
13 | // width: 100px;
14 | //}
15 | col.four {
16 | /*actions*/
17 | width: 120px;
18 | }
19 |
20 | }
21 | }
22 | #notify_user{
23 | float: left;
24 | margin: 0 5px 0 0;
25 | }
26 | .user_email, .user_email:focus:required:invalid {
27 | color: #464646;
28 | }
--------------------------------------------------------------------------------
/config/initializers/secret_token.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Your secret key for verifying the integrity of signed cookies.
4 | # If you change this key, all old signed cookies will become invalid!
5 | # Make sure the secret is at least 30 characters and all random,
6 | # no regular words or you'll be exposed to dictionary attacks.
7 | Osb::Application.config.secret_token = 'd058e184ca6116d62bd667e22759c07582b9075ef2e34712510607d881ea5cfaa3779c473968a458b1970c65e79f7e1e4edb7c6fe4ca0134744b9b6822a23e94'
8 |
--------------------------------------------------------------------------------
/db/migrate/20160215152715_create_expenses.rb:
--------------------------------------------------------------------------------
1 | class CreateExpenses < ActiveRecord::Migration
2 | def change
3 | create_table :expenses do |t|
4 | t.float :amount
5 | t.datetime :expense_date
6 | t.integer :category_id
7 | t.text :note
8 | t.integer :client_id
9 | t.string :archive_number
10 | t.datetime :archived_at
11 | t.time :deleted_at
12 | t.float :tax_1
13 | t.float :tax_2
14 | t.integer :company_id
15 |
16 | t.timestamps
17 | end
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/spec/helpers/calendar_helper_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | # Specs in this file have access to a helper object that includes
4 | # the CalendarHelper. For example:
5 | #
6 | # describe CalendarHelper do
7 | # describe "string concat" do
8 | # it "concats two strings with spaces" do
9 | # expect(helper.concat_strings("this","that")).to eq("this that")
10 | # end
11 | # end
12 | # end
13 | RSpec.describe CalendarHelper, :type => :helper do
14 | pending "add some examples to (or delete) #{__FILE__}"
15 | end
16 |
--------------------------------------------------------------------------------
/spec/helpers/expenses_helper_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | # Specs in this file have access to a helper object that includes
4 | # the ExpensesHelper. For example:
5 | #
6 | # describe ExpensesHelper do
7 | # describe "string concat" do
8 | # it "concats two strings with spaces" do
9 | # expect(helper.concat_strings("this","that")).to eq("this that")
10 | # end
11 | # end
12 | # end
13 | RSpec.describe ExpensesHelper, :type => :helper do
14 | pending "add some examples to (or delete) #{__FILE__}"
15 | end
16 |
--------------------------------------------------------------------------------
/spec/helpers/projects_helper_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | # Specs in this file have access to a helper object that includes
4 | # the ProjectsHelper. For example:
5 | #
6 | # describe ProjectsHelper do
7 | # describe "string concat" do
8 | # it "concats two strings with spaces" do
9 | # expect(helper.concat_strings("this","that")).to eq("this that")
10 | # end
11 | # end
12 | # end
13 | RSpec.describe ProjectsHelper, :type => :helper do
14 | pending "add some examples to (or delete) #{__FILE__}"
15 | end
16 |
--------------------------------------------------------------------------------
/spec/helpers/settings_helper_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | # Specs in this file have access to a helper object that includes
4 | # the SettingsHelper. For example:
5 | #
6 | # describe SettingsHelper do
7 | # describe "string concat" do
8 | # it "concats two strings with spaces" do
9 | # expect(helper.concat_strings("this","that")).to eq("this that")
10 | # end
11 | # end
12 | # end
13 | RSpec.describe SettingsHelper, :type => :helper do
14 | pending "add some examples to (or delete) #{__FILE__}"
15 | end
16 |
--------------------------------------------------------------------------------
/db/migrate/20150403055445_create_settings.rb:
--------------------------------------------------------------------------------
1 | class CreateSettings < ActiveRecord::Migration
2 | def self.up
3 | create_table :settings do |t|
4 | t.string :var, :null => false
5 | t.text :value, :null => true
6 | t.integer :thing_id, :null => true
7 | t.string :thing_type, :limit => 30, :null => true
8 | t.timestamps
9 | end
10 |
11 | add_index :settings, [ :thing_type, :thing_id, :var ], :unique => true
12 | end
13 |
14 | def self.down
15 | drop_table :settings
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/payments_collected.css.scss:
--------------------------------------------------------------------------------
1 | .payments_collected {
2 | .grid_table table{
3 | col.one {width: 115px;}
4 | col.two {width: 167px;}
5 | col.three{width: 102px;}
6 | col.four {width: 286px;}
7 | col.five {width: 92px;}
8 | col.six {width: 110px;}
9 | .col_hover, .row_hover, tfoot tr:hover{background-color: #F7F7F7;}
10 | tfoot tr td{
11 | /*border-bottom: medium double #dadada;*/
12 | &:first-child, &:last-child{
13 | font-weight: bold;
14 | }
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/app/views/sent_emails/_sent_email_header.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/config/initializers/session_store.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | #Osb::Application.config.session_store :cookie_store, key: '_osb_session'
4 | Osb::Application.config.session_store :active_record_store, :key => '_osb_session'
5 |
6 | # Use the database for sessions instead of the cookie-based default,
7 | # which shouldn't be used to store highly confidential information
8 | # (create the session table with "rails generate session_migration")
9 | # Osb::Application.config.session_store :active_record_store
10 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/edit_payment.css.scss:
--------------------------------------------------------------------------------
1 | .edit_payment{
2 | .label_field.left {
3 | width: 122px;
4 | }
5 | .medium_field input {
6 | width: 220px;
7 | padding-right: 6px;
8 | padding-left: 6px;
9 | }
10 | .label_field.right {
11 | padding-left: 25px;
12 | width: 122px;
13 | }
14 |
15 | input[type="radio"], input[type="checkbox"] {
16 | float: left;
17 | }
18 | .options_content{
19 | margin-left: 121px;
20 | padding: 0px;
21 | }
22 | .radio, .checkbox{
23 | padding-left: 13px;
24 | }
25 | }
--------------------------------------------------------------------------------
/app/views/projects/_project_header.html.erb:
--------------------------------------------------------------------------------
1 | <% sort_class = params[:direction] == 'desc' ? 'sortdown' : 'sortup' %>
2 |
3 | <%= check_box_tag 'select_all' %>
4 | <%= t('project_name') %>
5 | <%= t('client') %>
6 | <%= t('manager') %>
7 | <%= t('views.projects.total_hours') %>
8 | Action(s)
9 |
--------------------------------------------------------------------------------
/test/fixtures/client_additional_contacts.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | client_id: 1
5 | first_name: MyString
6 | last_name: MyString
7 | email: MyString
8 | phone_1: MyString
9 | phone_2: MyString
10 | user_name: MyString
11 | password: MyString
12 |
13 | two:
14 | client_id: 1
15 | first_name: MyString
16 | last_name: MyString
17 | email: MyString
18 | phone_1: MyString
19 | phone_2: MyString
20 | user_name: MyString
21 | password: MyString
22 |
--------------------------------------------------------------------------------
/app/views/logs/timer.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%= link_to 'Start', 'javascript:start_timer()', class: 'btn_large'%>
6 | <%= link_to 'Stop', 'javascript:stop_timer()', class: 'btn_large'%>
7 | <%= link_to 'Reset', 'javascript:reset_timer()', class: 'btn_large'%>
8 |
9 |
10 |
11 |
<%= render 'logs/form' %>
12 |
13 |
14 |
--------------------------------------------------------------------------------
/config/initializers/wrap_parameters.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 | #
3 | # This file contains settings for ActionController::ParamsWrapper which
4 | # is enabled by default.
5 |
6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7 | ActiveSupport.on_load(:action_controller) do
8 | wrap_parameters format: [:json]
9 | end
10 |
11 | # Disable root element in JSON by default.
12 | ActiveSupport.on_load(:active_record) do
13 | self.include_root_in_json = false
14 | end
15 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/bin/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3 |
4 | ENGINE_ROOT = File.expand_path('../..', __FILE__)
5 | ENGINE_PATH = File.expand_path('../../lib/osb_api/engine', __FILE__)
6 |
7 | # Set up gems listed in the Gemfile.
8 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
9 | require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
10 |
11 | require 'rails/all'
12 | require 'rails/engine/commands'
13 |
--------------------------------------------------------------------------------
/app/views/help/index.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t("views.help.help") %>
4 |
5 |
6 |
7 |
8 |
9 |
10 |
<%= t("views.help.help_yourself") %>
11 |
12 |
<%= t("views.help.we_hope_you_donot_need_help") %>
13 |
14 |
<%= t("views.help.never_mind_just_kidding") %>
15 |
16 |
<%= t("views.help.happy_invoicing") %>
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/views/taxes/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#tax_body').html('<%= escape_javascript render("taxes") %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
3 | jQuery('#active_links').html('<%= escape_javascript render("filter_links") %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Tax(es) are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
--------------------------------------------------------------------------------
/app/views/items/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#item_body').html('<%= escape_javascript render("items") %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
3 | jQuery('#active_links').html('<%= escape_javascript render("filter_links") %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Item(s) are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
--------------------------------------------------------------------------------
/app/views/clients/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#client_body').html('<%= escape_javascript render("clients") %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
3 | jQuery('#active_links').html('<%= escape_javascript render("filter_links") %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Client(s) are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
--------------------------------------------------------------------------------
/app/views/logs/invoice_form.html.erb:
--------------------------------------------------------------------------------
1 | <%- model_class = Invoice -%>
2 |
3 |
4 |
5 |
<%= t '.title', :default => t('helpers.titles.new', :model => model_class.model_name.human,
6 | :default => "New #{model_class.model_name.human}") %>
7 |
8 |
9 |
10 | <%= render :partial => 'logs/form_invoice' %>
11 |
12 |
13 |
14 | <%= render 'taxes/new_tax' %>
15 |
16 |
--------------------------------------------------------------------------------
/db/migrate/20150211113630_create_api_keys.rb:
--------------------------------------------------------------------------------
1 | class CreateApiKeys < ActiveRecord::Migration
2 | def change
3 | create_table :api_keys do |t|
4 | t.string "access_token"
5 | t.datetime "expires_at"
6 | t.integer "user_id"
7 | t.boolean "active"
8 | t.datetime "created_at"
9 | t.datetime "updated_at"
10 | end
11 | add_index "api_keys", ["access_token"], name: "index_api_keys_on_access_token", unique: true, using: :btree
12 | add_index "api_keys", ["user_id"], name: "index_api_keys_on_user_id", using: :btree
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/lib/generators/osb_api/migration_generator.rb:
--------------------------------------------------------------------------------
1 | require 'rails/generators/active_record'
2 |
3 | class OsbApi::MigrationGenerator < ::Rails::Generators::Base
4 | include Rails::Generators::Migration
5 | source_root File.expand_path('../templates', __FILE__)
6 | desc 'Installs Doorkeeper migration file.'
7 |
8 | def install
9 | migration_template 'migration.rb', 'db/migrate/create_doorkeeper_tables.rb'
10 | end
11 |
12 | def self.next_migration_number(dirname)
13 | ActiveRecord::Generators::Base.next_migration_number(dirname)
14 | end
15 | end
--------------------------------------------------------------------------------
/spec/views/tasks/show.html.erb_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "tasks/show", :type => :view do
4 | before(:each) do
5 | @task = assign(:task, Task.create!(
6 | :name => "Name",
7 | :description => "Description",
8 | :billable => false,
9 | :rate => "9.99"
10 | ))
11 | end
12 |
13 | it "renders attributes in " do
14 | render
15 | expect(rendered).to match(/Name/)
16 | expect(rendered).to match(/Description/)
17 | expect(rendered).to match(/false/)
18 | expect(rendered).to match(/9.99/)
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/spec/models/company_entity_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | describe CompanyEntity do
4 |
5 | let(:client) do
6 | FactoryGirl.create(:client)
7 | end
8 |
9 | let(:account) do
10 | FactoryGirl.create(:account)
11 | end
12 |
13 | let(:company_entity) { FactoryGirl.create(:company_entity, parent: account) }
14 | let(:company_entity) { FactoryGirl.create(:company_entity, entity: client) }
15 |
16 | subject{ company_entity }
17 |
18 | it { should be_valid }
19 | it { should respond_to(:parent) }
20 | it { should respond_to(:entity) }
21 |
22 | end
23 |
24 |
--------------------------------------------------------------------------------
/spec/views/expenses/show.html.erb_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "expenses/show", :type => :view do
4 | before(:each) do
5 | @expense = assign(:expense, Expense.create!(
6 | :amount => 1.5,
7 | :category => "Category",
8 | :note => "MyText",
9 | :client_id => 1
10 | ))
11 | end
12 |
13 | it "renders attributes in
" do
14 | render
15 | expect(rendered).to match(/1.5/)
16 | expect(rendered).to match(/Category/)
17 | expect(rendered).to match(/MyText/)
18 | expect(rendered).to match(/1/)
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/db/migrate/20150211115032_create_sent_emails.rb:
--------------------------------------------------------------------------------
1 | class CreateSentEmails < ActiveRecord::Migration
2 | def change
3 | create_table :sent_emails do |t|
4 | t.date "date"
5 | t.string "sender"
6 | t.string "recipient"
7 | t.string "type"
8 | t.string "subject"
9 | t.text "content"
10 | t.datetime "created_at", null: false
11 | t.datetime "updated_at", null: false
12 | t.integer "notification_id"
13 | t.string "notification_type"
14 | t.integer "company_id"
15 | end
16 | end
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/db/migrate/20160224113217_create_projects.rb:
--------------------------------------------------------------------------------
1 | class CreateProjects < ActiveRecord::Migration
2 | def change
3 | create_table :projects do |t|
4 | t.string :project_name
5 | t.integer :client_id
6 | t.integer :manager_id
7 | t.string :billing_method
8 | t.text :description
9 | t.integer :total_hours
10 | t.integer :company_id
11 | t.integer :updated_by
12 | t.integer :created_by
13 | t.string :archive_number
14 | t.datetime :archived_at
15 | t.datetime :deleted_at
16 |
17 | t.timestamps
18 | end
19 | end
20 | end
21 |
--------------------------------------------------------------------------------
/app/views/email_templates/_email_template_header.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%= t '.actions', :default => t("helpers.actions") %>
6 |
--------------------------------------------------------------------------------
/db/migrate/20150211113755_create_client_contacts.rb:
--------------------------------------------------------------------------------
1 | class CreateClientContacts < ActiveRecord::Migration
2 | def change
3 | create_table :client_contacts do |t|
4 | t.integer "client_id"
5 | t.string "first_name"
6 | t.string "last_name"
7 | t.string "email"
8 | t.string "home_phone"
9 | t.string "mobile_number"
10 | t.string "archive_number"
11 | t.datetime "archived_at"
12 | t.datetime "deleted_at"
13 | t.datetime "created_at", null: false
14 | t.datetime "updated_at", null: false
15 | end
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | # Declare your gem's dependencies in osb_api.gemspec.
4 | # Bundler will treat runtime dependencies like base dependencies, and
5 | # development dependencies will be added by default to the :development group.
6 | gemspec
7 |
8 | # Declare any dependencies that are still in development here instead of in
9 | # your gemspec. These might include edge Rails or gems from your path or
10 | # Git. Remember to move these dependencies to your gemspec before releasing
11 | # your gem to rubygems.org.
12 |
13 | # To use debugger
14 | # gem 'debugger'
15 |
--------------------------------------------------------------------------------
/app/assets/javascripts/jquery.ellipsis.min.js:
--------------------------------------------------------------------------------
1 | /*! jQuery ellipsis - v1.0.7 - 2013-02-15
2 | * https://github.com/STAR-ZERO/jquery-ellipsis
3 | * Copyright (c) 2013 Kenji Abe; Licensed MIT */
4 | (function(e){e.fn.ellipsis=function(t){var n={row:1,"char":"..."};return t=e.extend(n,t),this.each(function(){var n=e(this),r=n.text();n.text("a");var i=n.height();n.text("");var s=1,o=!1,u=0;for(var a=0;at.row){o=!0;break}}}if(o){r=n.text();for(;;){r=r.substring(0,r.length-1),n.text(r+t.char),u=n.height();if(u
2 |
3 |
4 |
Getting Started
5 |
6 |
7 |
8 | <%= link_to "Create new invoice", new_invoice_path %>
9 | <%= link_to "Create new item", new_item_path %>
10 | <%= link_to "Create new client", new_client_path %>
11 | <%= link_to "Enter payment", '/invoices/unpaid_invoices', "data-toggle" => "modal", "data-target" => "#myModal", :remote => true %>
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/views/recurring_profile_line_items/_form.html.erb:
--------------------------------------------------------------------------------
1 | <%= form_for(@recurring_profile_line_item) do |f| %>
2 | <% if @recurring_profile_line_item.errors.any? %>
3 |
4 |
<%= pluralize(@recurring_profile_line_item.errors.count, "error") %> prohibited this recurring_profile_line_item from being saved:
5 |
6 |
7 | <% @recurring_profile_line_item.errors.full_messages.each do |msg| %>
8 | <%= msg %>
9 | <% end %>
10 |
11 |
12 | <% end %>
13 |
14 |
15 | <%= f.submit %>
16 |
17 | <% end %>
18 |
--------------------------------------------------------------------------------
/spec/views/staffs/show.html.erb_spec.rb:
--------------------------------------------------------------------------------
1 | require 'rails_helper'
2 |
3 | RSpec.describe "staffs/show", :type => :view do
4 | before(:each) do
5 | @staff = assign(:staff, Staff.create!(
6 | :email => "Email",
7 | :name => "Name",
8 | :rate => "9.99",
9 | :created_by => 1,
10 | :updated_by => 2
11 | ))
12 | end
13 |
14 | it "renders attributes in " do
15 | render
16 | expect(rendered).to match(/Email/)
17 | expect(rendered).to match(/Name/)
18 | expect(rendered).to match(/9.99/)
19 | expect(rendered).to match(/1/)
20 | expect(rendered).to match(/2/)
21 | end
22 | end
23 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/initializers/wrap_parameters.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # This file contains settings for ActionController::ParamsWrapper which
4 | # is enabled by default.
5 |
6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7 | ActiveSupport.on_load(:action_controller) do
8 | wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
9 | end
10 |
11 | # To enable root element in JSON for ActiveRecord objects.
12 | # ActiveSupport.on_load(:active_record) do
13 | # self.include_root_in_json = true
14 | # end
15 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/README.rdoc:
--------------------------------------------------------------------------------
1 | == README
2 |
3 | This README would normally document whatever steps are necessary to get the
4 | application up and running.
5 |
6 | Things you may want to cover:
7 |
8 | * Ruby version
9 |
10 | * System dependencies
11 |
12 | * Configuration
13 |
14 | * Database creation
15 |
16 | * Database initialization
17 |
18 | * How to run the test suite
19 |
20 | * Services (job queues, cache servers, search engines, etc.)
21 |
22 | * Deployment instructions
23 |
24 | * ...
25 |
26 |
27 | Please feel free to use a different markup language if you do not plan to run
28 | rake doc:app .
29 |
--------------------------------------------------------------------------------
/app/views/invoices/unpaid_invoices.js.erb:
--------------------------------------------------------------------------------
1 | jQuery(".modal-body").html("<%= escape_javascript(render(:partial=>"unpaid_invoices")) %>");
2 |
3 | jQuery('#invoice_selection').submit(function() {
4 | var flag, invoices;
5 | invoices = jQuery("table.table_listing tbody");
6 | return flag = invoices.find('tr.no-invoices').length ? (jQuery(".invoice_popup_error").show().find('span').html('There are no unpaid invoices to enter payment against.'), false) : invoices.find(":checked").length === 0 ? (jQuery(".invoice_popup_error").show().find('span').html("You haven't selected any invoice. Please select one or more invoices and try again."), false) : true;
7 | });
--------------------------------------------------------------------------------
/config/initializers/paypal.rb:
--------------------------------------------------------------------------------
1 | ActiveMerchant::Billing::Base.mode = OSB::CONFIG::ACTIVEMERCHANT_BILLING_MODE
2 |
3 | module OSB
4 | module Paypal
5 | URL = OSB::CONFIG::PAYPAL_URL
6 | module TransStatus
7 | SUCCESS = :SUCCESS
8 | FAILED = :FAILED
9 | INVALID_CARD = :INVALID_CARD
10 | ALREADY_PAID = :ALREADY_PAID
11 | end
12 |
13 | def self.gateway
14 | ActiveMerchant::Billing::PaypalGateway.new(
15 | :login => OSB::CONFIG::PAYPAL_LOGIN,
16 | :password => OSB::CONFIG::PAYPAL_PASSWORD,
17 | :signature => OSB::CONFIG::PAYPAL_SIGNATURE
18 | )
19 | end
20 | end
21 | end
--------------------------------------------------------------------------------
/app/assets/stylesheets/unpaid_invoices.css.scss:
--------------------------------------------------------------------------------
1 | .unpaid_invoice{
2 |
3 | .grid_table table col.one{
4 | width : 33px;
5 | }
6 | .grid_table table col.two{
7 | width : 82px;
8 | }
9 | .grid_table table col.three{
10 | width: 200px;
11 | }
12 | .grid_table table col.four{
13 | width : 125px;
14 | }
15 | .grid_table table col.five{
16 | width : 140px;
17 | }
18 | .grid_table table col.six{
19 | width : 130px;
20 | }
21 | .grid_table table col.seven{
22 | width : 130px;
23 | }
24 | .grid_table{
25 | padding-top: 0px;
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/app/views/sent_emails/show.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
<%= notice %>
3 |
4 |
5 |
Email Contents
6 |
7 |
8 |
9 |
10 |
11 |
12 | <%= @sent_email.content.html_safe unless @sent_email.content.blank? %>
13 |
14 |
15 | <%= link_to 'Back', :controller => "sent_emails" %>
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/views/application_partials/_paging.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | colspan = { 'sent_emails' => '5', 'payments' => '7', 'companies' => '6'}
3 | listing = '@'+ controller_name
4 | %>
5 |
6 |
7 | <%= paginate eval(listing), :window => 9 , :remote => true %>
8 |
9 | <% unless eval(listing).blank? %>
10 | <%= page_entries_info eval(listing) %>
11 | <%= custom_per_page %> per page
12 | <% end %>
13 |
14 |
15 |
16 |
19 |
--------------------------------------------------------------------------------
/app/views/tasks/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#task_body').html('<%= escape_javascript render 'tasks' %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render('application_partials/paging') %>');
3 | jQuery('#active_links').html('<%= escape_javascript render('filter_links') %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Tasks are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
8 | jQuery('.recover_deleted, .recover_archived').hide();
9 | jQuery('.archive').show();
10 |
--------------------------------------------------------------------------------
/app/views/staffs/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#staff_body').html('<%= escape_javascript render 'staffs' %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render('application_partials/paging') %>');
3 | jQuery('#active_links').html('<%= escape_javascript render('filter_links') %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Staffs are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
8 | jQuery('.recover_deleted, .recover_archived').hide();
9 | jQuery('.archive').show();
10 |
--------------------------------------------------------------------------------
/app/views/companies/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#company_body').html('<%= escape_javascript render 'company' %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
3 | jQuery('#active_links').html('<%= escape_javascript render("filter_links") %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Companies are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
8 | jQuery('.recover_deleted, .recover_archived').hide();
9 | jQuery('.archive').show();
10 |
--------------------------------------------------------------------------------
/app/views/expenses/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#expense_body').html('<%= escape_javascript render 'expenses' %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
3 | jQuery('#active_links').html('<%= escape_javascript render("filter_links") %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Expenses are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
8 | jQuery('.recover_deleted, .recover_archived').hide();
9 | jQuery('.archive').show();
10 |
--------------------------------------------------------------------------------
/app/assets/javascripts/reports.js.coffee:
--------------------------------------------------------------------------------
1 | # Place all the behaviors and hooks related to the matching controller here.
2 | # All this logic will automatically be available in application.js.
3 | # You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
4 |
5 | jQuery ->
6 | jQuery(".reports #from_date, .reports #to_date").datepicker dateFormat: DateFormats.format()
7 | jQuery(".reports table.table_listing:not(.aged_accounts_listing, .client_report_listing, .item_sales_listing)").tablesorter()
8 | jQuery(".aged_accounts_listing, .client_report_listing, .item_sales_listing").tablesorter textExtraction: (node) ->
9 | node.getAttribute('data-sort_val')
10 |
--------------------------------------------------------------------------------
/app/views/logs/_logs_table.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Time logs for <%=@date%>
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | <%= render partial: 'logs_header' %>
16 |
17 |
18 | <%= render 'logs' %>
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/views/payments/enter_payment.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
<%= t('views.invoices.enter_payment') %>
4 |
5 |
6 |
7 | <%= form_tag "update_individual_payment", :method => :put, :novalidate => "", :id => "payments_form" do %>
8 | <%= render "enter_payment" %>
9 |
10 |
11 |
12 | <% if params[:from_invoices] %>
13 | <%= hidden_field_tag :from_invoices %>
14 | <% end %>
15 | <% end %>
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/views/projects/edit.html.erb:
--------------------------------------------------------------------------------
1 | <%- model_class = Project -%>
2 |
3 |
4 |
5 |
<%= t '.title', :default => t('helpers.titles.new', :model => model_class.model_name.human,
6 | :default => "Edit #{model_class.model_name.human}") %>
7 |
8 |
9 |
10 | <%= render :partial => 'form' %>
11 |
12 |
13 | <%= render 'tasks/new_task' %>
14 |
15 |
16 |
17 | <%= render 'clients/new_client' %>
18 |
--------------------------------------------------------------------------------
/app/assets/javascripts/settings.coffee:
--------------------------------------------------------------------------------
1 | # Place all the behaviors and hooks related to the matching controller here.
2 | # All this logic will automatically be available in application.js.
3 | # You can use CoffeeScript in this file: http://coffeescript.org/
4 | #jQuery ->
5 | # jQuery('.currency_select').change ->
6 | # status = $('.currency_select').attr('checked')=='checked'
7 | # jQuery.ajax '/settings',
8 | # type: 'POST'
9 | # data: 'status'
10 | # dataType: 'html'
11 | # error: (jqXHR, textStatus, errorThrown) ->
12 | # alert "Error: #{textStatus}"
13 | # success: (data, textStatus, jqXHR) ->
14 | # data = JSON.parse(data)
15 | # console.log(data)
--------------------------------------------------------------------------------
/db/migrate/20150211114331_create_email_templates.rb:
--------------------------------------------------------------------------------
1 | class CreateEmailTemplates < ActiveRecord::Migration
2 | def change
3 | create_table :email_templates do |t|
4 | t.string "template_type"
5 | t.string "email_from"
6 | t.string "subject"
7 | t.text "body"
8 | t.datetime "created_at", null: false
9 | t.datetime "updated_at", null: false
10 | t.string "status"
11 | t.integer "torder"
12 | t.boolean "send_email", default: true
13 | t.integer "no_of_days"
14 | t.boolean "is_late_payment_reminder", default: false
15 | end
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/app/assets/javascripts/osb_api/application.js:
--------------------------------------------------------------------------------
1 | // This is a manifest file that'll be compiled into application.js, which will include all the files
2 | // listed below.
3 | //
4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 | // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6 | //
7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 | // compiled file.
9 | //
10 | // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11 | // about supported directives.
12 | //
13 | //= require_tree .
14 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/database.yml:
--------------------------------------------------------------------------------
1 | # SQLite version 3.x
2 | # gem install sqlite3
3 | #
4 | # Ensure the SQLite 3 gem is defined in your Gemfile
5 | # gem 'sqlite3'
6 | #
7 | default: &default
8 | adapter: sqlite3
9 | pool: 5
10 | timeout: 5000
11 |
12 | development:
13 | <<: *default
14 | database: db/development.sqlite3
15 |
16 | # Warning: The database defined as "test" will be erased and
17 | # re-generated from your development database when you run "rake".
18 | # Do not set this db to the same as development or production.
19 | test:
20 | <<: *default
21 | database: db/test.sqlite3
22 |
23 | production:
24 | <<: *default
25 | database: db/production.sqlite3
26 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/new_item_form.css.scss:
--------------------------------------------------------------------------------
1 | .new_item_form{
2 | .fields_content_container{
3 | width: 500px;
4 | }
5 | .fields_content_data{
6 | padding: 0px;
7 | }
8 | .large_field input, .large_field textarea,{
9 | width: 350px;
10 | &.submit_currency{
11 | width: 176px;
12 | }
13 | }
14 | .large_field input[type="password"]{
15 | padding: 4px 9px ;
16 | }
17 | .small_field input{
18 | width: 107px;
19 | }
20 | .label_field.right{
21 | width: 102px;
22 | padding-left: 10px;
23 | padding-right: 10px;
24 | }
25 | .small_field select.extra_small{
26 | width: 180px;
27 | }
28 | .field_row:last-child{
29 | min-height: 30px;
30 | }
31 | }
--------------------------------------------------------------------------------
/app/views/projects/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#project_body').html('<%= escape_javascript render("project") %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
3 | jQuery('#active_links').html('<%= escape_javascript render("filter_links") %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Project(s) are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
8 | jQuery('.recover_deleted, .recover_archived').hide();
9 | jQuery('.archive,.payment').show();
10 | bind_deleted_entry();
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/app/assets/javascripts/application.js:
--------------------------------------------------------------------------------
1 | // This is a manifest file that'll be compiled into application.js, which will include all the files
2 | // listed below.
3 | //
4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 | // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6 | //
7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 | // compiled file.
9 | //
10 | // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11 | // about supported directives.
12 | //
13 | //= require_tree .
14 |
--------------------------------------------------------------------------------
/test/fixtures/invoices.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | invoice_number: MyString
5 | invoice_date: 2012-12-26 21:45:36
6 | po_number: MyString
7 | discount_percentage: 9.99
8 | client_id: 1
9 | tems: MyText
10 | notes: MyText
11 | status: MyString
12 | sub_total: 9.99
13 | discount_amount: 9.99
14 | tax_amount: 9.99
15 |
16 | two:
17 | invoice_number: MyString
18 | invoice_date: 2012-12-26 21:45:36
19 | po_number: MyString
20 | discount_percentage: 9.99
21 | client_id: 1
22 | tems: MyText
23 | notes: MyText
24 | status: MyString
25 | sub_total: 9.99
26 | discount_amount: 9.99
27 | tax_amount: 9.99
28 |
--------------------------------------------------------------------------------
/app/views/payments/index.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('thead#payments_header').html('<%= escape_javascript render("payments_header") %>');
2 | jQuery('tbody#payment_body').html('<%= escape_javascript render("payment") %>');
3 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
4 | jQuery('#bulk_actions').html('<%= escape_javascript render("bulk_actions") %>');
5 | jQuery("table.table_listing").trigger('update');
6 | jQuery(".payment_listing .text-overflow-class").ellipsis({row:2});
7 |
8 | jQuery('#sort_direction').html('<%= params[:direction]%>');
9 | window.history.pushState({html: $("body").html()},"","<%= request.original_url %>")
10 | bind_edit_payment_links();
11 | bind_edit_payment_links()
12 |
--------------------------------------------------------------------------------
/config/initializers/inflections.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new inflection rules using the following format
4 | # (all these examples are active by default):
5 | # ActiveSupport::Inflector.inflections do |inflect|
6 | # inflect.plural /^(ox)$/i, '\1en'
7 | # inflect.singular /^(ox)en/i, '\1'
8 | # inflect.irregular 'person', 'people'
9 | # inflect.uncountable %w( fish sheep )
10 | # end
11 | #
12 | # These inflection rules are supported but not enabled by default:
13 | # ActiveSupport::Inflector.inflections do |inflect|
14 | # inflect.acronym 'RESTful'
15 | # end
16 | ActiveSupport::Inflector.inflections(:en) do |inflect|
17 | inflect.acronym 'OpenSourceBilling'
18 | end
19 |
--------------------------------------------------------------------------------
/app/views/recurring_profile_line_items/index.html.erb:
--------------------------------------------------------------------------------
1 | Listing recurring_profile_line_items
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | <% @recurring_profile_line_items.each do |recurring_profile_line_item| %>
11 |
12 | <%= link_to 'Show', recurring_profile_line_item %>
13 | <%= link_to 'Edit', edit_recurring_profile_line_item_path(recurring_profile_line_item) %>
14 | <%= link_to 'Destroy', recurring_profile_line_item, method: :delete, data: { confirm: 'Are you sure?' } %>
15 |
16 | <% end %>
17 |
18 |
19 |
20 |
21 | <%= link_to 'New Recurring profile line item', new_recurring_profile_line_item_path %>
22 |
--------------------------------------------------------------------------------
/app/views/doorkeeper/authorized_applications/index.html.erb:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 | Application
10 | Created At
11 |
12 |
13 |
14 |
15 |
16 | <% @applications.each do |application| %>
17 |
18 | <%= application.name %>
19 | <%= application.created_at.strftime('%Y-%m-%d %H:%M:%S') %>
20 | <%= render 'delete_form', application: application %>
21 |
22 | <% end %>
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/controllers/settings_controller.rb:
--------------------------------------------------------------------------------
1 | class SettingsController < ApplicationController
2 | def create
3 | user = current_user
4 | @language_changed = false
5 | if params[:currency_select].present?
6 | user.settings.currency = "On"
7 | else
8 | user.settings.currency = "Off"
9 | end
10 | if params[:date_format].present?
11 | user.settings.date_format = params[:date_format]
12 | end
13 | if params[:records_per_page].present?
14 | user.settings.records_per_page = params[:records_per_page]
15 | end
16 | if params[:locale].present?
17 | user.settings.language = params[:locale]
18 | @language_changed = true
19 | end
20 | respond_to { |format| format.js }
21 | end
22 | end
23 |
--------------------------------------------------------------------------------
/test/functional/users_controller_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class UsersControllerTest < ActionController::TestCase
4 | test "should get index" do
5 | get :index
6 | assert_response :success
7 | end
8 |
9 | test "should get new" do
10 | get :new
11 | assert_response :success
12 | end
13 |
14 | test "should get create" do
15 | get :create
16 | assert_response :success
17 | end
18 |
19 | test "should get edit" do
20 | get :edit
21 | assert_response :success
22 | end
23 |
24 | test "should get update" do
25 | get :update
26 | assert_response :success
27 | end
28 |
29 | test "should get destroy" do
30 | get :destroy
31 | assert_response :success
32 | end
33 |
34 | end
35 |
--------------------------------------------------------------------------------
/app/views/companies/_companies_header.html.erb:
--------------------------------------------------------------------------------
1 |
2 | <%= check_box_tag 'select_all' %>
3 |
4 |
5 |
6 |
7 | <%= t '.actions', :default => t("helpers.actions") %>
8 |
--------------------------------------------------------------------------------
/public/500.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | We're sorry, but something went wrong (500)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
We're sorry, but something went wrong.
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/views/dashboard/_chart_container.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%= t('invoices') %>
6 |
7 | <% if current_user.settings.currency.present? and current_user.settings.currency == "On" %>
8 | <%= select_tag :currency, options_from_collection_for_select(currencies, :id, :unit,@currency.try(:id)),class: "currency" %>
9 | <% end %>
10 |
<%= t('views.dashboard.view_chart_detail') %>
11 |
12 |
13 |
14 | <%#= image_tag "graph.png", :size => "447x191", :alt => "" %>
15 |
16 |
17 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/initializers/inflections.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new inflection rules using the following format. Inflections
4 | # are locale specific, and you may define rules for as many different
5 | # locales as you wish. All of these examples are active by default:
6 | # ActiveSupport::Inflector.inflections(:en) do |inflect|
7 | # inflect.plural /^(ox)$/i, '\1en'
8 | # inflect.singular /^(ox)en/i, '\1'
9 | # inflect.irregular 'person', 'people'
10 | # inflect.uncountable %w( fish sheep )
11 | # end
12 |
13 | # These inflection rules are supported but not enabled by default:
14 | # ActiveSupport::Inflector.inflections(:en) do |inflect|
15 | # inflect.acronym 'RESTful'
16 | # end
17 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/test_helper.rb:
--------------------------------------------------------------------------------
1 | # Configure Rails Environment
2 | ENV["RAILS_ENV"] = "test"
3 |
4 | require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5 | ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
6 | ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__)
7 | require "rails/test_help"
8 |
9 | Rails.backtrace_cleaner.remove_silencers!
10 |
11 | # Load support files
12 | Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
13 |
14 | # Load fixtures from the engine
15 | if ActiveSupport::TestCase.method_defined?(:fixture_path=)
16 | ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
17 | end
18 |
--------------------------------------------------------------------------------
/app/assets/javascripts/users.js.coffee:
--------------------------------------------------------------------------------
1 | jQuery ->
2 |
3 | jQuery('#sub_user_form').submit ->
4 | new validateForms(jQuery(this).attr('id')).validateRequired()
5 |
6 | jQuery('#change_password_form').submit ->
7 | new validateForms(jQuery(this).attr('id')).validateCurrentPassword()
8 |
9 | jQuery('#update_sub_user_form').submit ->
10 | new validateForms(jQuery(this).attr('id')).validateUpdatePassword()
11 |
12 | jQuery('#send_password,#user_login').submit ->
13 | new validateForms(jQuery(this).attr('id')).validateEmail()
14 |
15 | jQuery('#new_user').submit ->
16 | new validateForms(jQuery(this).attr('id')).validateRequired()
17 |
18 | jQuery('#forgot_password').submit ->
19 | new validateForms(jQuery(this).attr('id')).validatePassword()
20 |
--------------------------------------------------------------------------------
/app/views/sent_emails/_sent_emails.html.erb:
--------------------------------------------------------------------------------
1 | <% if @sent_emails.length > 0 %>
2 | <% @sent_emails.each do |sent_email| %>
3 |
4 | <%= link_to sent_email.subject, {:controller => 'sent_emails', :action => 'show', :id => sent_email.id}, :class => "sent_email_link" %>
5 | <%= sent_email.recipient %>
6 | <%= sent_email.type %>
7 | <%= sent_email.date.strftime(get_date_format) %>
8 |
9 | <% end %>
10 | <% else %>
11 |
12 |
13 | <%= t('views.clients.no_sent_emails') %>
14 |
15 |
16 | <% end %>
17 |
18 |
--------------------------------------------------------------------------------
/test/fixtures/client_billing_infos.yml:
--------------------------------------------------------------------------------
1 | # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2 |
3 | one:
4 | country: MyString
5 | street_address_1: MyString
6 | street_address_2: MyString
7 | city: MyString
8 | province_or_state: MyString
9 | postal_or_zip_code: MyString
10 | phone_business: MyString
11 | phone_mobile: MyString
12 | phone_home: MyString
13 | fax: MyString
14 | notes: MyString
15 |
16 | two:
17 | country: MyString
18 | street_address_1: MyString
19 | street_address_2: MyString
20 | city: MyString
21 | province_or_state: MyString
22 | postal_or_zip_code: MyString
23 | phone_business: MyString
24 | phone_mobile: MyString
25 | phone_home: MyString
26 | fax: MyString
27 | notes: MyString
28 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/payment_history.css.scss:
--------------------------------------------------------------------------------
1 | .payment_history{
2 |
3 | .grid_table{
4 | padding-top:35px;
5 |
6 | table{
7 | col.one{ /*invoice*/
8 | width : 94px;
9 | }
10 | col.two{ /*client*/
11 | width : 214px;
12 | }
13 | col.three{ /*type*/
14 | width : 82px;
15 | }
16 | col.four{ /*notes*/
17 | width : 286px;
18 | }
19 | col.five{ /*date*/
20 | width : 82px;
21 | }
22 | col.six{ /*amount*/
23 | width : 82px;
24 | }
25 | }
26 | }
27 |
28 | .content_bottom{
29 | height: 65px;
30 | }
31 | }
32 |
33 |
--------------------------------------------------------------------------------
/vendor/engines/osb_api/test/dummy/config/locales/en.yml:
--------------------------------------------------------------------------------
1 | # Files in the config/locales directory are used for internationalization
2 | # and are automatically loaded by Rails. If you want to use locales other
3 | # than English, add the necessary files in this directory.
4 | #
5 | # To use the locales, use `I18n.t`:
6 | #
7 | # I18n.t 'hello'
8 | #
9 | # In views, this is aliased to just `t`:
10 | #
11 | # <%= t('hello') %>
12 | #
13 | # To use a different locale, set it with `I18n.locale`:
14 | #
15 | # I18n.locale = :es
16 | #
17 | # This would use the information in config/locales/es.yml.
18 | #
19 | # To learn more, please read the Rails Internationalization guide
20 | # available at http://guides.rubyonrails.org/i18n.html.
21 |
22 | en:
23 | hello: "Hello world"
24 |
--------------------------------------------------------------------------------
/app/views/estimates/undo_actions.js.erb:
--------------------------------------------------------------------------------
1 | jQuery('tbody#estimate_body').html('<%= escape_javascript render("estimate") %>');
2 | jQuery('tfoot#paging_links').html('<%= escape_javascript render("application_partials/paging") %>');
3 | jQuery('#active_links').html('<%= escape_javascript render("filter_links") %>');
4 | <% @recovered = params[:archived] ? 'archived' : 'deleted' %>
5 | jQuery(".alert.alert-success").show().find('span').html("Estimate(s) are recovered from <%= @recovered %> successfully.");
6 | jQuery('#active_links a').removeClass('active');
7 | jQuery('.get_actives').addClass('active');
8 | jQuery('.recover_deleted, .recover_archived').hide();
9 | jQuery('.archive,.destroy,.convert_to_invoice,.send').show();
10 | jQuery('.get_actives').addClass('active');
11 | bind_deleted_entry();
--------------------------------------------------------------------------------