Skip to content

Commit

Permalink
Add "Manage Premiums" to AdminUI, toward dev/core#3912 .
Browse files Browse the repository at this point in the history
  • Loading branch information
twomice committed Dec 7, 2023
1 parent bf23556 commit 9a94794
Show file tree
Hide file tree
Showing 5 changed files with 284 additions and 0 deletions.
1 change: 1 addition & 0 deletions CRM/Contribute/DAO/Product.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
'add' => 'civicrm/admin/contribute/managePremiums/edit?action=add&reset=1',
'update' => 'civicrm/admin/contribute/managePremiums/edit?action=update&id=[id]&reset=1',
'delete' => 'civicrm/admin/contribute/managePremiums/edit?action=delete&id=[id]&reset=1',
'preview' => 'civicrm/admin/contribute/managePremiums/edit?action=preview&reset=1&id=[id]',
'browse' => 'civicrm/admin/contribute/managePremiums/',
];

Expand Down
13 changes: 13 additions & 0 deletions ext/civicrm_admin_ui/ang/afsearchPremiumProducts.aff.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<div class="af-container">
<div class="af-markup">
<div class="help">
<p>{{:: ts(&#39;CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Premiums may be tangible items (i.e. a coffee mug or t-shirt), or they may be a membership or subscription with a pre-determined duration.&#39;) }}</p>

<p>{{:: ts(&#39;Use this section to enter and update all premiums that you want to offer on any of your Online Contribution pages. Then you can assign one or more premiums to a specific Contribution page from Contributions &raquo; Manage Contribution Pages &raquo; Configure &raquo; Premiums.&#39;) }}</p>
</div>

</div>
</div>
<div af-fieldset="">
<crm-search-display-table search-name="Manage_Premiums" display-name="Manage_Premiums_Table_1"></crm-search-display-table>
</div>
27 changes: 27 additions & 0 deletions ext/civicrm_admin_ui/ang/afsearchPremiumProducts.aff.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"type": "search",
"requires": null,
"entity_type": null,
"join_entity": null,
"title": "Premium Products",
"description": null,
"placement": [],
"summary_contact_type": null,
"summary_weight": null,
"icon": "fa-list-alt",
"server_route": "civicrm/admin/contribute/managePremiums",
"is_public": false,
"permission": [
"access CiviCRM"
],
"permission_operator": "AND",
"redirect": null,
"submit_enabled": true,
"submit_limit": null,
"create_submission": false,
"navigation": null,
"modified_date": "2023-12-06 08:54:32",
"manual_processing": null,
"allow_verification_by_email": null,
"email_confirmation_template_id": null
}
237 changes: 237 additions & 0 deletions ext/civicrm_admin_ui/managed/SavedSearch_Manage_Premiums.mgd.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,237 @@
<?php
use CRM_CivicrmAdminUi_ExtensionUtil as E;

return [
[
'name' => 'SavedSearch_Manage_Premiums',
'entity' => 'SavedSearch',
'cleanup' => 'unused',
'update' => 'unmodified',
'params' => [
'version' => 4,
'values' => [
'name' => 'Manage_Premiums',
'label' => E::ts('Manage Premiums'),
'api_entity' => 'Product',
'api_params' => [
'version' => 4,
'select' => [
'name',
'sku',
'price',
'min_contribution',
'cost',
'financial_type_id:label',
'is_active',
],
'orderBy' => [],
'where' => [],
'groupBy' => [],
'join' => [],
'having' => [],
],
],
'match' => [
'name',
],
],
],
[
'name' => 'SavedSearch_Manage_Premiums_SearchDisplay_Manage_Premiums_Table_1',
'entity' => 'SearchDisplay',
'cleanup' => 'unused',
'update' => 'unmodified',
'params' => [
'version' => 4,
'values' => [
'name' => 'Manage_Premiums_Table_1',
'label' => E::ts('Manage Premium Products'),
'saved_search_id.name' => 'Manage_Premiums',
'type' => 'table',
'settings' => [
'description' => E::ts('CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Premiums may be tangible items (i.e. a coffee mug or t-shirt), or they may be a membership or subscription with a pre-determined duration. Use this section to enter and update all premiums that you want to offer on any of your Online Contribution pages. Then you can assign one or more premiums to a specific Contribution page from Manage Contribution Pages » Configure » Premiums.'),
'sort' => [
[
'name',
'ASC',
],
],
'limit' => 50,
'pager' => [
'expose_limit' => TRUE,
'show_count' => TRUE,
'hide_single' => TRUE,
],
'placeholder' => 5,
'columns' => [
[
'type' => 'field',
'key' => 'name',
'dataType' => 'String',
'label' => E::ts('Product Name'),
'sortable' => TRUE,
'editable' => TRUE,
],
[
'type' => 'field',
'key' => 'sku',
'dataType' => 'String',
'label' => E::ts('SKU'),
'sortable' => TRUE,
'editable' => TRUE,
],
[
'type' => 'field',
'key' => 'price',
'dataType' => 'Money',
'label' => E::ts('Price'),
'sortable' => TRUE,
'editable' => TRUE,
],
[
'type' => 'field',
'key' => 'min_contribution',
'dataType' => 'Money',
'label' => E::ts('Minimum Contribution'),
'sortable' => TRUE,
'editable' => TRUE,
],
[
'type' => 'field',
'key' => 'cost',
'dataType' => 'Money',
'label' => E::ts('Cost'),
'sortable' => TRUE,
'editable' => TRUE,
],
[
'type' => 'field',
'key' => 'financial_type_id:label',
'dataType' => 'Integer',
'label' => E::ts('Financial Type'),
'sortable' => TRUE,
'editable' => TRUE,
],
[
'type' => 'field',
'key' => 'is_active',
'dataType' => 'Boolean',
'label' => E::ts('Enabled'),
'sortable' => TRUE,
'editable' => TRUE,
],
[
'text' => '',
'style' => 'default',
'size' => 'btn-xs',
'icon' => 'fa-bars',
'links' => [
[
'entity' => 'Product',
'action' => 'preview',
'join' => '',
'target' => 'crm-popup',
'icon' => 'fa-eye',
'text' => E::ts('Preview'),
'style' => 'default',
'path' => '',
'task' => '',
'condition' => [],
],
[
'entity' => 'Product',
'action' => 'update',
'join' => '',
'target' => 'crm-popup',
'icon' => 'fa-pencil',
'text' => E::ts('Edit'),
'style' => 'default',
'path' => '',
'task' => '',
'condition' => [],
],
[
'task' => 'enable',
'entity' => 'Product',
'join' => '',
'target' => 'crm-popup',
'icon' => 'fa-toggle-on',
'text' => E::ts('Enable'),
'style' => 'default',
'path' => '',
'action' => '',
'condition' => [
'is_active',
'=',
FALSE,
],
],
[
'task' => 'disable',
'entity' => 'Product',
'join' => '',
'target' => 'crm-popup',
'icon' => 'fa-toggle-off',
'text' => E::ts('Disable'),
'style' => 'default',
'path' => '',
'action' => '',
'condition' => [
'is_active',
'=',
TRUE,
],
],
[
'entity' => 'Product',
'action' => 'delete',
'join' => '',
'target' => 'crm-popup',
'icon' => 'fa-trash',
'text' => E::ts('Delete'),
'style' => 'danger',
'path' => '',
'task' => '',
'condition' => [],
],
],
'type' => 'menu',
'alignment' => 'text-right',
],
],
'actions' => TRUE,
'classes' => [
'table',
'table-striped',
],
'cssRules' => [
[
'disabled',
'is_active',
'=',
FALSE,
],
],
'toolbar' => [
[
'path' => '',
'icon' => 'fa-plus',
'text' => E::ts('Add Product'),
'style' => 'primary',
'condition' => [],
'task' => '',
'entity' => 'Product',
'action' => 'add',
'join' => '',
'target' => 'crm-popup',
],
],
],
],
'match' => [
'saved_search_id',
'name',
],
],
],
];
6 changes: 6 additions & 0 deletions xml/schema/Contribute/Product.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@
<comment>able - stores "product info" for premiums and can be used for non-incentive products </comment>
<name>civicrm_product</name>
<add>1.4</add>
<paths>
<add>civicrm/admin/contribute/managePremiums?action=add&amp;reset=1</add>
<preview>civicrm/admin/contribute/managePremiums?action=preview&amp;reset=1&amp;id=[id]</preview>
<update>civicrm/admin/contribute/managePremiums?action=update&amp;reset=1&amp;id=[id]</update>
<delete>civicrm/admin/contribute/managePremiums?action=delete&amp;reset=1&amp;id=[id]</delete>
</paths>
<log>true</log>
<component>CiviContribute</component>
<labelField>name</labelField>
Expand Down

0 comments on commit 9a94794

Please sign in to comment.