mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-07 21:24:29 -04:00
Proposals
This commit is contained in:
parent
b3f6bc7b9b
commit
21b23a93cf
@ -469,6 +469,10 @@ class CheckData extends Command
|
|||||||
ENTITY_INVOICE,
|
ENTITY_INVOICE,
|
||||||
ENTITY_CLIENT,
|
ENTITY_CLIENT,
|
||||||
ENTITY_USER,
|
ENTITY_USER,
|
||||||
|
ENTITY_TASK_STATUS,
|
||||||
|
],
|
||||||
|
'task_statuses' => [
|
||||||
|
ENTITY_USER,
|
||||||
],
|
],
|
||||||
'credits' => [
|
'credits' => [
|
||||||
ENTITY_CLIENT,
|
ENTITY_CLIENT,
|
||||||
@ -496,6 +500,25 @@ class CheckData extends Command
|
|||||||
ENTITY_USER,
|
ENTITY_USER,
|
||||||
ENTITY_CLIENT,
|
ENTITY_CLIENT,
|
||||||
],
|
],
|
||||||
|
'proposals' => [
|
||||||
|
ENTITY_USER,
|
||||||
|
ENTITY_INVOICE,
|
||||||
|
ENTITY_PROPOSAL_TEMPLATE,
|
||||||
|
],
|
||||||
|
'proposal_categories' => [
|
||||||
|
ENTITY_USER,
|
||||||
|
],
|
||||||
|
'proposal_templates' => [
|
||||||
|
ENTITY_USER,
|
||||||
|
],
|
||||||
|
'proposal_snippets' => [
|
||||||
|
ENTITY_USER,
|
||||||
|
ENTITY_PROPOSAL_CATEGORY,
|
||||||
|
],
|
||||||
|
'proposal_invitations' => [
|
||||||
|
ENTITY_USER,
|
||||||
|
ENTITY_PROPOSAL,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($tables as $table => $entityTypes) {
|
foreach ($tables as $table => $entityTypes) {
|
||||||
|
@ -182,7 +182,8 @@ class HistoryUtils
|
|||||||
$button = '';
|
$button = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$str .= sprintf('<li>%s<a href="%s"><div>%s %s</div></a></li>', $button, $link, $icon, $name);
|
$padding = $str ? 16 : 0;
|
||||||
|
$str .= sprintf('<li style="margin-top: %spx">%s<a href="%s"><div>%s %s</div></a></li>', $padding, $button, $link, $icon, $name);
|
||||||
$lastClientId = $item->client_id;
|
$lastClientId = $item->client_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -566,6 +566,8 @@ class Utils
|
|||||||
return 'expense_categories';
|
return 'expense_categories';
|
||||||
} elseif ($type === ENTITY_PROPOSAL_CATEGORY) {
|
} elseif ($type === ENTITY_PROPOSAL_CATEGORY) {
|
||||||
return 'proposal_categories';
|
return 'proposal_categories';
|
||||||
|
} elseif ($type === ENTITY_TASK_STATUS) {
|
||||||
|
return 'task_statuses';
|
||||||
} else {
|
} else {
|
||||||
return $type . 's';
|
return $type . 's';
|
||||||
}
|
}
|
||||||
|
@ -1652,6 +1652,7 @@ class Account extends Eloquent
|
|||||||
ENTITY_EXPENSE,
|
ENTITY_EXPENSE,
|
||||||
ENTITY_VENDOR,
|
ENTITY_VENDOR,
|
||||||
ENTITY_PROJECT,
|
ENTITY_PROJECT,
|
||||||
|
ENTITY_PROPOSAL,
|
||||||
])) {
|
])) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1660,6 +1661,8 @@ class Account extends Eloquent
|
|||||||
$entityType = ENTITY_EXPENSE;
|
$entityType = ENTITY_EXPENSE;
|
||||||
} elseif ($entityType == ENTITY_PROJECT) {
|
} elseif ($entityType == ENTITY_PROJECT) {
|
||||||
$entityType = ENTITY_TASK;
|
$entityType = ENTITY_TASK;
|
||||||
|
} elseif ($entityType == ENTITY_PROPOSAL) {
|
||||||
|
$entityType = ENTITY_QUOTE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// note: single & checks bitmask match
|
// note: single & checks bitmask match
|
||||||
|
2
public/css/built.css
vendored
2
public/css/built.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
9
resources/assets/css/sidebar.css
vendored
9
resources/assets/css/sidebar.css
vendored
@ -58,6 +58,10 @@
|
|||||||
transition: all 0.5s ease;
|
transition: all 0.5s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#left-sidebar-wrapper .btn-primary.btn-sm.pull-right {
|
||||||
|
margin-top: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
#wrapper.toggled-left #left-sidebar-wrapper {
|
#wrapper.toggled-left #left-sidebar-wrapper {
|
||||||
width: 250px;
|
width: 250px;
|
||||||
}
|
}
|
||||||
@ -109,7 +113,8 @@
|
|||||||
|
|
||||||
#left-sidebar-wrapper .sidebar-nav li {
|
#left-sidebar-wrapper .sidebar-nav li {
|
||||||
text-indent: 14px;
|
text-indent: 14px;
|
||||||
line-height: 34px;
|
line-height: 32px;
|
||||||
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#left-sidebar-wrapper .sidebar-nav li span.badge {
|
#left-sidebar-wrapper .sidebar-nav li span.badge {
|
||||||
@ -129,7 +134,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#left-sidebar-wrapper ul {
|
#left-sidebar-wrapper ul {
|
||||||
min-height: 750px;
|
min-height: 760px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-height: 744px) {
|
@media (max-height: 744px) {
|
||||||
|
@ -2608,7 +2608,7 @@ $LANG = array(
|
|||||||
'invoice_project' => 'Invoice Project',
|
'invoice_project' => 'Invoice Project',
|
||||||
'module_recurring_invoice' => 'Recurring Invoices',
|
'module_recurring_invoice' => 'Recurring Invoices',
|
||||||
'module_credit' => 'Credits',
|
'module_credit' => 'Credits',
|
||||||
'module_quote' => 'Quotes',
|
'module_quote' => 'Quotes & Proposals',
|
||||||
'module_task' => 'Tasks & Projects',
|
'module_task' => 'Tasks & Projects',
|
||||||
'module_expense' => 'Expenses & Vendors',
|
'module_expense' => 'Expenses & Vendors',
|
||||||
'reminders' => 'Reminders',
|
'reminders' => 'Reminders',
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
@endif
|
@endif
|
||||||
|
|
||||||
<a href="{{ url($option == 'recurring' ? 'recurring_invoice' : $option) }}"
|
<a href="{{ url($option == 'recurring' ? 'recurring_invoice' : $option) }}"
|
||||||
style="font-size:16px; padding-top:6px; padding-bottom:6px"
|
style="padding-top:6px; padding-bottom:6px"
|
||||||
class="nav-link {{ Request::is("{$option}*") ? 'active' : '' }}">
|
class="nav-link {{ Request::is("{$option}*") ? 'active' : '' }}">
|
||||||
<i class="fa fa-{{ empty($icon) ? \App\Models\EntityModel::getIcon($option) : $icon }}" style="width:46px; padding-right:10px"></i>
|
<i class="fa fa-{{ empty($icon) ? \App\Models\EntityModel::getIcon($option) : $icon }}" style="width:46px; padding-right:10px"></i>
|
||||||
{{ ($option == 'recurring_invoices') ? trans('texts.recurring') : mtrans($option) }}
|
{{ ($option == 'recurring_invoices') ? trans('texts.recurring') : mtrans($option) }}
|
||||||
|
@ -2,8 +2,9 @@
|
|||||||
<link href="{{ asset('css/grapesjs.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
|
<link href="{{ asset('css/grapesjs.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.gjs-four-color {
|
.gjs-four-color,
|
||||||
color: white !important;
|
.gjs-four-color-h:hover {
|
||||||
|
color: #3b97ff !important;
|
||||||
}
|
}
|
||||||
.gjs-rte-actionbar,
|
.gjs-rte-actionbar,
|
||||||
.gjs-block-label,
|
.gjs-block-label,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user