CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-06-18T00:43:47Zhttps://lab.civicrm.org/dev/core/-/issues/3311Proposal - store metadata on membership renewal on line item2023-06-18T00:43:47ZeileenProposal - store metadata on membership renewal on line item~~UPDATE - discussion on this is converging on adding a new json field 'metdata' to the line item table, permitting data related to that line item to be stored at point of order, and used when confirming. (UPDATE - this is not really the...~~UPDATE - discussion on this is converging on adding a new json field 'metdata' to the line item table, permitting data related to that line item to be stored at point of order, and used when confirming. (UPDATE - this is not really the convergence now - proposal updated below)~~
We have a few issues open ( https://lab.civicrm.org/dev/membership/-/issues/28 , https://lab.civicrm.org/dev/core/-/issues/1402 , https://lab.civicrm.org/dev/financial/-/issues/53 ) that are to my mind blocked by us not having a data model that holds the user's intent when renewing. The focus of this gl is the data model and exposing it via the back office renewal form & doing what is needed in the apis.
**The problem**
When renewing an expired membership the back office user has a fairly blunt way of influencing the calculated dates - they can set the 'renewal date'. However, if the payment is not made in the same form submission that intent is not captured anywhere and cannot be respected when completing the transaction. Likewise the receipt text and number of renewal terms are not captured.
**The proposal data model**
1) add membership_num_terms to civicrm_line_item table.
2) add 'payment_completion_metadata' to the ~~civicrm_line_item~~ civicrm_contribution table for data that is only used in the order->payment flow. Limit what can be stored here to tested values used in that flow - likely to be the message details and effective date the renewal form uses but doesn't sotre.
~~1. New field added to civicrm_line_item called 'metadata' which stores information required to complete the membership renewal - e.g. the field might store ``json_encode(['start_date' => '2010-01-01', 'end_date' => '2020-01-01', 'membership_status_id' => 'Current', 'membership_num_terms' => 2']~~
~~- note this is the new proposal - but I'm wondering what happens if it's renewed in the meantime & then paid~~
~~- New status 'Pending renewal' used when there is a need to record the dates (is_current_member = 0, is_reserved = 1, is_admin = 1 too I think)~~
~~- When a contribution linked to a membership in 'Pending renewal' is completed the status is updated but the dates are not changed~~
~~- If a membership has 'Pending renewal' status and status_override_end_date is set then any processing of that membership after that date would result in it being reverted to previous dates and status - this information should be available in the membership_log table.~~
**Proposed form exposure**
No proposed form changes - this is just storing data already submitted in the renewal form.
~~- the logic could be used outside of existing core forms but within core I think this is something we are exposing to the back-office user doing a renewal - they already have considerable ability to edit dates. So I think this is a form layer thing not some site-wide setting.
- when renewing an expired membership the renewal form would present the user with what will happen to the start date, end date etc if payment is received on that day and offer a checkbox to specify dates - if that is checked then date fields would be exposed an on save the Pending Renewal status would be used with the selected dates.
- potentially the user can also enter the date the 'offer' is available until - ie status_override_end_date~~
**Edge cases**
1. Multiple terms
We would add an extra field membership_num_terms to the line items column
~~https://lab.civicrm.org/dev/membership/-/issues/28 throws up the edge case that more than one renewal term might be selected. Both @jptillman and I assumed that the right way to represent that would be setting qty = n and then picking that when confirming. @andrewhunt didn't think that was the right assumption https://github.com/civicrm/civicrm-core/pull/18618. If we come down on NOT setting qty then we ALSO need a way to record intent for non-expired renewals - this could be an extra membership_num_terms column on the line_item table. (I'm still inclined to my original assumption but more points of view needed).~~
2. About to expire rather than actually expired
Out of scope for now - just do what the form currently does
~~I think we would still manage this in the form ie - "the membership is due to to expire in 4 days, if payment is received after that then .... ' and present the same options as for an actually expired membership~~https://lab.civicrm.org/dev/core/-/issues/3299Make alerts accessible2022-04-22T16:04:58ZJoeMurrayMake alerts accessibleFrom Clare comes a problem statement and some brainstorming ideas:
> A problem for our low vision users is alerts, their AT software doesn't recognise them, so they miss warnings and end up adding duplicates. It would be great to have s...From Clare comes a problem statement and some brainstorming ideas:
> A problem for our low vision users is alerts, their AT software doesn't recognise them, so they miss warnings and end up adding duplicates. It would be great to have some sort of per user control for setting how alerts display, perhaps even adding audio cues.
Use alert role approach suggested at https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/alert/index.html as this will allow audio cues to be given to users of screen readers.
Note more details at https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/#alert and also https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/#alertdialog
https://www.w3.org/TR/UNDERSTANDING-WCAG20/time-limits-no-exceptions.html indicates that there should be no time limits like quickly disappearing alerts.
As a first pass, let's implement a site wide setting to disable alerts from disappearing. We don't have a good design pattern currently for per user preferences. When we do move to per user preferences, the default should be to have alerts not disappear.justinfreeman (Agileware)justinfreeman (Agileware)https://lab.civicrm.org/dev/core/-/issues/3296Add aria-label (and label?) to form elements missing them2022-04-22T16:04:46ZJoeMurrayAdd aria-label (and label?) to form elements missing themUse accessible labels for all pages/forms following spec at https://www.w3.org/WAI/tutorials/forms/labels.
Tasks will include the following general points. Some details will change to ensure that ts() is handled properly, addField() is...Use accessible labels for all pages/forms following spec at https://www.w3.org/WAI/tutorials/forms/labels.
Tasks will include the following general points. Some details will change to ensure that ts() is handled properly, addField() is used appropriately, etc from comments below:
1. Label without control elements/text: In some pages/forms we are simply declaring labels under `<label>` tag against an element/text.
1. Remove tag when it is declared against a text as in
```
- <div class="label"><label>{ts}Contact{/ts}</label></div>
+ <div class="label">{ts}Contact{/ts}</div>
```
1. Add `aria-labelledby` attribute to tag
```
- <label>{ts}Contact{/ts}</label><input type="text" name="contact_id" id="contact_id">
+ <label aria-labelledby="contact_id">{ts}Contact{/ts}</label><input type="text" name="contact_id" id="contact_id">
```
1. Add aria-label attribute to QuickForm element when label is not declared in tpl: Say for example we are assigning a label to a QuickForm element
`$form->addElement('text', 'pledge_installments', ts('Installments'), array('size' => 3));` but not using it in tpl.
**Fix**: Add aria-label attribute to QuickForm element:
```
- $form->addElement('text', 'pledge_installments', ts('Installments'), array('size' => 3));
+ $form->addElement('text', 'pledge_installments', ts('Installments'), array('size' => 3, 'aria-label' => ts('Pledge Installments')));
```
1. Add aria-label attribute to form element via JS: A special case when after declaring this attribute didn't got added to the QuickForm element as in case of 'Credit card Expiration date' when this element got rendered in the quickform as `$form->add('date', 'credit_card_exp_date', ts('Expiration Date'), ['format' => M Y'])` and thus rendered into two select field without this attribute
**Fix**: Add `aria-label` attribute via JS instead. This might involve modifying $.fn.crmDatepicker in Common.js to add aria-labels to the autogenerated date elements it inserts.
1. Fix date fields.
Focus initially on public facing pages/forms:
1. [x] contribution page
1. [x] event registration page
1. [x] price field block
1. [x] newsletter signup
1. [x] user registration in CMS
1. [x] profile create/edit/search
1. [x] contact dashboard
1. [x] contact summary page
1. [ ] CiviReports
1. [ ] Search Forms
1. [ ] Backend registration forms
https://lab.civicrm.org/dev/core/-/issues/3294Make accordion panels accessible2024-03-15T20:39:55ZJoeMurrayMake accordion panels accessibleFrom https://civicrm.stackexchange.com/questions/17735/access-for-blind-users-to-civicrm/17752#17752
Accordion panels in the contact record cannot be expanded with the keyboard. In general, panels containing certain contact data (demogr...From https://civicrm.stackexchange.com/questions/17735/access-for-blind-users-to-civicrm/17752#17752
Accordion panels in the contact record cannot be expanded with the keyboard. In general, panels containing certain contact data (demographic information, address, etc.) are collapsed by default. It is necessary to use the mouse (JAWS) cursor in order to expand these panels.
A user should be able to expand an collapse an accordion panel by using the keyboard only and not be required to use the mouse. To accomplish this, elements of crm-acordion-header should be made keyboard focusable and be configured to provide feedback to the screen reader on whether they are collapsed or expanded. At the simplest level, these elements could be made buttons instead of divs and be given the aria-expanded attribute which would be dynamically toggled depending on the panel’s state. This will allow a keyboard user to focus the panel header with the tab key and expand or collapse it with ENTER or SPACE. More in-depth examples of accordion accessibility can be found at OAA Accessibility http://www.oaa-accessibility.org/examplep/accordian1/, and Basic Accessible Accordion Panel for jQuery http://www.jqueryscript.net/accordion/Basic-Accessible-Accordion-Plugin-jQuery.html.
Technical spec to come.
Was https://issues.civicrm.org/jira/browse/CRM-208255.73.0https://lab.civicrm.org/dev/core/-/issues/3293Make menu more accessible2022-04-22T16:04:20ZJoeMurrayMake menu more accessiblePreliminary tasks, many from https://lab.civicrm.org/dev/accessibility/issues/1#note_4855 below:
1. [x] Hide D7 menubar
1. [x] Fix for D8
1. [x] After getting focus into top menu, tabbing and back-tabbing revealed there was something hid...Preliminary tasks, many from https://lab.civicrm.org/dev/accessibility/issues/1#note_4855 below:
1. [x] Hide D7 menubar
1. [x] Fix for D8
1. [x] After getting focus into top menu, tabbing and back-tabbing revealed there was something hidden between Quick Search textbox and the CiviCRM icon. Opening submenus and back-tabbing revealed it was the search options for the Quick Search textbox. Please remove this from tab order.
1. [x] After getting focus into top menu, Space did not open (and when repeated, close) child menu on current item. It should act similarly to Return.
1. [x] When focus is on an item that could be selected to navigate somewhere, Return worked fine but Space did not replicate this.
1. [x] When on an open sub-submenu (eg Contributions > Accounting Batches with Open Batches with focus), using left arrow correctly moved focus to Accounting Batches, but it did not close the sub-submenu.
1. [x] When on a submenu, using left arrow should close the submenu and move focus to parent item. Instead it moved focus to menu item to left of parent item. The submenu was left open when it should have been closed.
~~1. [ ] When on a sub-submenu, escape should only close that level of menu but closes both the sub-submenu and the submenu.~~
1. [ ] "First item in menu bar should be in the tab order (tabindex=0)." (https://staff.washington.edu/tft/tests/menus/index.html). This may be a bit of work to implement in all CMSes but I think tabindex=0 for CiviCRM menu makes sense as the default on CiviCRM pages on default CMS installs. The CiviCRM Menu left item should be considered the QuickSearch. There appears to be an item for a div around the textarea and a separate way to focus on the textarea itself. The div around the textarea should be tabindex=0.
1. [ ] The cited spec is relatively silent, but other accessible menus have different implementations on the following: 1) When focus is on top menu item and its submenu is open, left and right cycle focus to left and right top menu items and shift which submenu is open to the one under the top menu focussed item. 2a) When focus is on a submenu item left closes the submenu, cycles focus to left on top menu and opens that top menu's submenu. 2b) When focus is on a submenu item without a subsubmenu, right similarly closes submenu, cycles focus right on top menu and opens that top menu item's submenu. 2c) When focus is on a submenu item with a subsubmenu, right opens the subsubmenu. Let's change behaviour 1), 2a) and 2b) to not opening new submenu. Leave 2c) as is.
~~1. [ ] When focus is not on the menu, cursor hovering over a menu item brings focus to it and opens submenu. Submenu should not open until click, return or space.~~
A user should be able to navigate the menu bar by use of the keyboard:
1. [ ] The menu bar should occupy one tab stop
1. [ ] When focused on a menu at the top level:
1. [ ] The right arrow key should move the user to the next top-level menu
1. [ ] The left arrow key should move the user to the previous top level menu
1. [ ] User focus should wrap to the beginning if the user advances past the final menu item. Likewise, if the user tries to navigate to the previous item from the first menu, focus should wrap to the last menu.
1. [ ] The down-arrow and ENTER keys should expand a child menu and focus the user on the first item
~~1. [ ] When a character is typed, the next menu item starting with that letter receives the focus, circling around to first when there are no more. If no menu item starts with the typed character, focus does not move. (deprecated by HTML 5.2 accesskey standard)~~
1. [ ] When focused on a child menu
1. [ ] The down arrow key should move the user to the next menu item
1. [ ] The up arrow key should move the user to the previous menu item
1. [ ] The right arrow key should expand a menu item with a submenu and place user focus on the first item in that submenu. If there is no submenu, then no action is taken.
1. [ ] The left arrow key should collapse a submenu and place user focus on the parent of that submenu
1. [ ] The ESC key should close the active child menu, and any submenus, and return user focus to the parent menu at the top level.
~~1. [ ] When a character is typed, the next child menu item starting with that letter receives the focus, circling around to first when there are no more. If no child menu item starts with the typed character, focus does not move. (deprecated by HTML 5.2 accesskey standard)~~
Test the menu works on default installs (ie default theme!) on
1. [x] Drupal 7
1. [x] WordPress
1. [x] Joomla
1. [x] Backdrop
1. [x] Drupal 8
(NB: deliberately ignoring support for Drupal 6.)
Test the menu works on:
1. [x] Drupal 7 site with shoreditch theme installed
1. [x] Drupal 7 site with mosaico installed, on a CiviMail mosaico page.
A more detailed functional spec is provided at http://lists.w3.org/Archives/Public/wai-xtech/2007Dec/att-0025/index.html#menu
A good implementation that might be useful for its implementation details (seeing View Source) is https://staff.washington.edu/tft/tests/menus/simplyaccessible/index.html. As there are no sub-submenus, I imagine the code implementation needs to be extended to opening sub-submenus properly.
Was https://issues.civicrm.org/jira/browse/CRM-20824
Original description from https://civicrm.stackexchange.com/questions/17735/access-for-blind-users-to-civicrm/17752#17752
The menu bar is keyboard accessible, but awkwardly. Generally I find it best to focus on the first item then TAB (as opposed to arrowing) to the top level menu the user wants to interact with before pressing ENTER to activate the pop-up menu. You will then have to locate the HTML list element containing the menu choices. Often this element appears after the menu bar, or at the bottom of the virtual document (sometimes depending on the CMS theme, sometimes depending on, seemingly, the browser’s mood). In either case, it will not appear immediately “under” the activated menu.https://lab.civicrm.org/dev/core/-/issues/3292Upgrade select2 to stable version 4.0.4 and fix compatibility issues in Civi2024-02-23T17:58:01ZMonish DebUpgrade select2 to stable version 4.0.4 and fix compatibility issues in CiviCurrently, Civi is using select2 3.5 which we need to upgrade to latest stable 4.0.4 (https://github.com/select2/select2/releases) and also resolve compatibility issues with CiviCRM.
Major issues:
1. Auto appending values doesn't work a...Currently, Civi is using select2 3.5 which we need to upgrade to latest stable 4.0.4 (https://github.com/select2/select2/releases) and also resolve compatibility issues with CiviCRM.
Major issues:
1. Auto appending values doesn't work anymore
Error: Uncaught TypeError: Cannot read property 'prop' of undefined
LOC - https://github.com/civicrm/civicrm-core/blob/master/js/crm.searchForm.js#L9
Reference - https://select2.org/upgrading/migrating-from-35#select2-val
2. Placeholder broken
Error: Uncaught TypeError: Cannot read property 'id' of undefined
As per 3.5 - placeholderOption is used to set the placeholder value for select2 widget
As per 4.0.4 - placeholder option can now accept placeholder value both in string and object
Reference - https://select2.org/upgrading/migrating-from-35#more-flexible-placeholders
3. EntityRef select2 fields are broken
Error: Uncaught Error: No select2/compat/initSelection
As per 4.0.4 - Removed the requirement of 'initSelection'
Reference - https://select2.org/upgrading/migrating-from-35#removed-the-requirement-of-initselection
4. Navigation menu style is not applied
Error: Uncaught TypeError: Cannot read property 'prop' of undefined
As per 4.0.4 - $("select").val("1").trigger("change"); // instead of $("select").select2("val", "1");
Reference - https://select2.org/upgrading/migrating-from-35#select2-val
5. Broken entityRef field
There are multiple issues with an entityRef field which are listed below:
1. Placeholder doesn't show
2. Unable to populate data via REST API link
3. Create contact dialog box doesn't render below the search field
4. Escape text doesn't show up
6. Action-menu select2 doesn't work on selecting record(s) in a search list
It throws an error `Uncaught TypeError: Cannot read property 'apply' of undefined` after Search and also action-menu field doesn't behave on selecting a record.
7. The native crm CSS styling doesn't apply on select2/4.0+ widget
Minor issues
1. Multi select2 widget doesn't show downarrow placeholder icon
2. select2 css style aren't applied after upgradehttps://lab.civicrm.org/dev/core/-/issues/3270getAddressColumns doesn't fully support prefix2022-04-22T15:53:18ZJonGoldgetAddressColumns doesn't fully support prefixThere's one place where the table name is hard coded that should be `$tableAlias`. I wrote a fix + UT.
I also realized that the way odd/even street numbers are handled causes the address table to always get joined regardless of whether...There's one place where the table name is hard coded that should be `$tableAlias`. I wrote a fix + UT.
I also realized that the way odd/even street numbers are handled causes the address table to always get joined regardless of whether it's necessary, but that's out of scope for now.5.14.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3259Add the possibility to use the hook_civicrm_alterReportVar('sql') in all reports2022-04-22T15:53:00ZrubofvilAdd the possibility to use the hook_civicrm_alterReportVar('sql') in all reportsSome reports have rewrited the method "buildQuery" from class CRM_Report_Form. Not in all reports is included the line to launch the hook `hook_civicrm_alterReportVar` -> `CRM_Utils_Hook::alterReportVar('sql', $this, $this);`
Example
h...Some reports have rewrited the method "buildQuery" from class CRM_Report_Form. Not in all reports is included the line to launch the hook `hook_civicrm_alterReportVar` -> `CRM_Utils_Hook::alterReportVar('sql', $this, $this);`
Example
https://github.com/civicrm/civicrm-core/blob/abc4afe890add20796585a2a997bc3d832815abe/CRM/Report/Form/Member/ContributionDetail.php#L552https://lab.civicrm.org/dev/core/-/issues/3248Add "created_date" to report filters2022-04-22T15:52:38ZphilipkasoAdd "created_date" to report filters**Use Case**: Report on all contacts created <period>.
**Background/Ask**: "created_date" can only be used via Change Log in Advance Search. We would like to be able to use the "Change Log" created date as a filter in standard reporting...**Use Case**: Report on all contacts created <period>.
**Background/Ask**: "created_date" can only be used via Change Log in Advance Search. We would like to be able to use the "Change Log" created date as a filter in standard reporting to satisfy the stated use case.https://lab.civicrm.org/dev/core/-/issues/3245Include random as an option when sorting displays2022-04-22T15:52:35Zjoshjosh@civicrm.orgInclude random as an option when sorting displaysCurrently on SearchKit displays, users can sort by a designated field using either "ascending" or "descending". I propose that we include an option to sort data in a "random" format.
![Screenshot_2021-__1_](/uploads/02ac6ff8f5609eddc51d...Currently on SearchKit displays, users can sort by a designated field using either "ascending" or "descending". I propose that we include an option to sort data in a "random" format.
![Screenshot_2021-__1_](/uploads/02ac6ff8f5609eddc51d64629d9e1ca1/Screenshot_2021-__1_.png)https://lab.civicrm.org/dev/core/-/issues/3239Contribution reports don't include thank-you date2022-04-22T15:51:49ZJonGoldContribution reports don't include thank-you dateThis is an issue that a couple of people have noted [on Stack Exchange](https://civicrm.stackexchange.com/questions/15374/thank-you-letter-report/15377). However, this is the first time anyone has paid me to fix it :) PR incoming.This is an issue that a couple of people have noted [on Stack Exchange](https://civicrm.stackexchange.com/questions/15374/thank-you-letter-report/15377). However, this is the first time anyone has paid me to fix it :) PR incoming.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3236No pagination on Contribution Detail report2022-04-22T15:51:42ZJonGoldNo pagination on Contribution Detail reportThis seems to be a side effect of [this commit](https://github.com/civicrm/civicrm-core/commit/e6bab5eae9e7293dff9ecb9852f85e6aa01dad7f#diff-585f40aa84b2e15ef6b0768dd64bfd0c) fixing core#170. I'm not 100% sure why this isn't happening o...This seems to be a side effect of [this commit](https://github.com/civicrm/civicrm-core/commit/e6bab5eae9e7293dff9ecb9852f85e6aa01dad7f#diff-585f40aa84b2e15ef6b0768dd64bfd0c) fixing core#170. I'm not 100% sure why this isn't happening on the sandbox, but I'm reasonably certain it's because servers without Full Group By use a different code path.
There were 2.5 bugs that needed to be fixed:
* The first temp table for this report sets a limit of 50 rows - so the second time through `buildQuery()`, the SQL statement `SELECT * FROM civireport_contribution_detail_temp3 $this->_orderBy` will never return more than 50, so the pager won't be set.
* `setPager()` assumes that a) the last SQL statement executed includes `SQL_CALC_FOUND_ROWS`; b) that `$this->limit` is set.
Finally, I found a call to `setPager()` in a place where it would never be correct (on a temp table that's not the "final" temp table) so I removed it.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3231Correct Mailing Report unique Count2022-04-22T15:51:27ZsunilCorrect Mailing Report unique CountMailing -> Scheduled and Sent Mailings -> Report
Unique Opens -> Report
Total Opens -> Report
Both Report show same count.Mailing -> Scheduled and Sent Mailings -> Report
Unique Opens -> Report
Total Opens -> Report
Both Report show same count.5.10https://lab.civicrm.org/dev/core/-/issues/3212Participant Listing report filters incorrectly on role ID2023-12-24T05:03:20ZJonGoldParticipant Listing report filters incorrectly on role IDThis issue is identical to [CRM-18803](https://issues.civicrm.org/jira/browse/CRM-18803) except that CRM-18803 affected all other CiviReports with fields that stored values separated by `CRM_Core_DAO::VALUE_SEPARATOR`. Those were fixed ...This issue is identical to [CRM-18803](https://issues.civicrm.org/jira/browse/CRM-18803) except that CRM-18803 affected all other CiviReports with fields that stored values separated by `CRM_Core_DAO::VALUE_SEPARATOR`. Those were fixed everywhere else by [this PR](https://github.com/civicrm/civicrm-core/pull/8650). However, since the `where()` in this report is overridden, it has its own copy of the regex which wasn't fixed.
I grepped and confirmed this is the only place where this needs to be fixed, and applied the same regex as the commit above.
To replicate this bug, you need at least ten participant roles. The first one's value should be `1`. Searching on this value will return any participant whose role BEGINS with a `1` (i.e. `10`, `11`, `100`, etc.) rather than just records whose participant role value IS 1.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3209Contribution Details Statistics are multiplied under many circumstances2023-12-22T05:03:25ZJonGoldContribution Details Statistics are multiplied under many circumstancesThis bug was previously identified and fixed as core#655, but the fix only addresses the rows and not the statistics.
In addition to contribution detail rows getting multiplied by soft credits, they can be multipled by any one-to-many `...This bug was previously identified and fixed as core#655, but the fix only addresses the rows and not the statistics.
In addition to contribution detail rows getting multiplied by soft credits, they can be multipled by any one-to-many `JOIN` to the contribution table. Soft credits are one example, but it can also be to a contact's multi-record contact field group, or if you pick a field (like "Credit Card Type") that lives in the financial transaction tables ([first reported on SE](https://civicrm.stackexchange.com/a/28791/12) by @KarinG).
Given that the statistics don't concern itself with any data that's not in `civicrm_contribution`, we can replace the flawed (and potentially CPU-intensive) original query with a list of contribution IDs and only use `FROM civicrm_contribution`.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3206Cannot save a copy of a report without the "administer reports" permission2023-12-21T05:03:20ZbgmCannot save a copy of a report without the "administer reports" permissionTo reproduce:
* Create a user with the following permissions
* access CiviReport
* access Report Criteria
* save Report Criteria
* Go to an existing report (or a template)
* Refresh the results
* Under Actions, click "save as"
Re...To reproduce:
* Create a user with the following permissions
* access CiviReport
* access Report Criteria
* save Report Criteria
* Go to an existing report (or a template)
* Refresh the results
* Under Actions, click "save as"
Result: javascript error: "TypeError: $refresh_field.html() is undefined"
![report-saveas-2021-08-05_14-45](/uploads/fe812c8f50c77c51a5a010987cd9b86d/report-saveas-2021-08-05_14-45.png)https://lab.civicrm.org/dev/core/-/issues/3205Search Kit terminology and help2022-04-22T18:13:08ZJoeMurraySearch Kit terminology and helpI hope this is the right project for feedback on Search Kit.
In the recent demo that we were all very excited about (great progress and functionality!!), there were one or two things that struck me as not as good in terms of usability.
...I hope this is the right project for feedback on Search Kit.
In the recent demo that we were all very excited about (great progress and functionality!!), there were one or two things that struck me as not as good in terms of usability.
There is wonderful support for creating very complex queries. Most of the UI terminology is based on the SQL clauses. There were, however, a few places where a different term was introduced, perhaps in an effort to make it more user friendly for non-programmers. So while there is a WHERE term in the interface, instead of HAVING there are FILTERs. I think the primary UI should just stick to standard SQL throughout, rather than only 95% of the time. Attempts to make it less technical or more understandable by changing away from SQL could be done in mouseover or other documentation.
Adding an explanation for each of these elements, maybe with some samples or links to samples, would be a great way to turn tech savvy non-developers into power users of this tool.
@dtarrant had a useful idea for documentation for join options he shared with me yesterday, and may post here. It's based on what MS Access presents to its users, who can be tech savvy but not programmers, similar to the target users of Search Kit:
![Image_Pasted_at_2021-2-10_17-47](/uploads/5ea62735afb38d711f956c3ca64a13ca/Image_Pasted_at_2021-2-10_17-47.png)colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3204Add recurring contributions to contribution reports2022-09-16T21:11:08ZlarsssandergreenAdd recurring contributions to contribution reportsIt would be very convenient to be able to do filter by recurring contributions for reports, add recurring contributions as a column or even group by.
[Here's a PR that adds this for the Contribution Summary report.](https://github.com/c...It would be very convenient to be able to do filter by recurring contributions for reports, add recurring contributions as a column or even group by.
[Here's a PR that adds this for the Contribution Summary report.](https://github.com/civicrm/civicrm-core/pull/20168) I will also implement in other relevant reports once this has been reviewed.https://lab.civicrm.org/dev/core/-/issues/3203When using the Search Kit and Form Builder to implement a front-end Search Li...2023-12-20T05:03:24Zjustinfreeman (Agileware)When using the Search Kit and Form Builder to implement a front-end Search Listing, how do include a Reset button to clear the search criteria?When using the Search Kit and Form Builder to implement a front-end Search Listing, how do include a Reset button to clear the search criteria?
Ideally, this button would be displayed AFTER the Search button.
![Screenshot_20211112_1744...When using the Search Kit and Form Builder to implement a front-end Search Listing, how do include a Reset button to clear the search criteria?
Ideally, this button would be displayed AFTER the Search button.
![Screenshot_20211112_174423](/uploads/a065207345c884f41eae014ae25e1a8d/Screenshot_20211112_174423.png)https://lab.civicrm.org/dev/core/-/issues/3193SearchKit: granularity of relative dates2023-12-16T05:03:23ZJonGoldSearchKit: granularity of relative datesConsider the following search:
![Selection_1424](/uploads/5b6824f282ecffd713578876a30e7c3a/Selection_1424.png)
I would expect this, when run on March 14 2022, to find any donations made on or after March 14, 2021.
However, it takes "1 ...Consider the following search:
![Selection_1424](/uploads/5b6824f282ecffd713578876a30e7c3a/Selection_1424.png)
I would expect this, when run on March 14 2022, to find any donations made on or after March 14, 2021.
However, it takes "1 year" rather literally - if I run it at 3pm, it will only catch donations made on March 14, 2021 at or after 3pm. This doesn't match the behavior elsewhere in Civi, where we automatically add a "00:00:00" to the search when setting the beginning date of a search, or "23:59:59" when setting the end date of a search.
**Proposal**: When the interval unit is "Day", "Week", "Month" or "Year" we append the timestamp, much as we do in `CRM_Contact_BAO_Query::dateQueryBuilder()` or `CRM_Report_Form::dateClause()`.