Matthew Wire [Wed, 1 May 2019 11:26:04 +0000 (12:26 +0100)]
Merge pull request #14168 from eileenmcnaughton/enotice
dev/core#918 enotice fix part 2 #14165
eileen [Wed, 1 May 2019 08:34:34 +0000 (20:34 +1200)]
dev/core#918 enotice fix part 2 #14165
Seamus Lee [Wed, 1 May 2019 00:33:41 +0000 (10:33 +1000)]
Merge pull request #14166 from civicrm/5.13
5.13
Seamus Lee [Wed, 1 May 2019 00:25:06 +0000 (10:25 +1000)]
Merge pull request #14163 from seamuslee001/flexmailer_26
(flexmailer#29) civicrm/mailing/view - Use Mailing.preview API. Fix compatibility with Flexmailer.
Eileen McNaughton [Tue, 30 Apr 2019 23:59:47 +0000 (11:59 +1200)]
Merge pull request #13887 from eileenmcnaughton/group_entity
dev/core#818 Partial conversion of Group form to be an EntityForm
Eileen McNaughton [Tue, 30 Apr 2019 23:41:42 +0000 (11:41 +1200)]
Merge pull request #14164 from eileenmcnaughton/in_fix
Fix deprecation handling [intra-rc-follow up] on #13999]
Seamus Lee [Tue, 30 Apr 2019 23:11:56 +0000 (09:11 +1000)]
Return MailingID rather than ['id'] as id may not always be supplied
Tim Otten [Tue, 30 Apr 2019 22:50:21 +0000 (15:50 -0700)]
(flexmailer#29) civicrm/mailing/view - Generate content via Mailing.preview API
A root cause of flexmailer#29 is that the flexmailer has to override
multiple parts of CiviMail. Case in point: it overrides the
`civicrm/mailing/view` and forces it to generate content via
`Mailing.preview` API. This is unfortunate because flexmailer's variant is
missing other features (regarding permissioning and contact IDs).
This revision makes it unnecessary for flexmailer to override
`civicrm/mailing/view`.
colemanw [Tue, 30 Apr 2019 22:44:11 +0000 (18:44 -0400)]
Merge pull request #14165 from eileenmcnaughton/enotice
dev/core#918 Enotice fix
colemanw [Tue, 30 Apr 2019 22:43:54 +0000 (18:43 -0400)]
Merge pull request #14161 from eileenmcnaughton/really
Convert dedupe select to select 2 and remove not-used var
Tim Otten [Tue, 30 Apr 2019 22:42:20 +0000 (15:42 -0700)]
(flexmailer#29) Mailing.preview API - Fix array access warning. Make unit-test pass.
Tim Otten [Tue, 30 Apr 2019 22:40:46 +0000 (15:40 -0700)]
(flexmailer#29) Mailing.preview API - Add unit-test for call without contact ID
eileen [Tue, 30 Apr 2019 21:57:21 +0000 (09:57 +1200)]
Enotice fix
The check is looking for status at the wrong level in the array
Seamus Lee [Tue, 30 Apr 2019 20:57:32 +0000 (06:57 +1000)]
flexmailer#26 Fix Flexmailer handling of annonmous user access to view Mailings by porting handling of annon situation to api
eileen [Tue, 30 Apr 2019 21:33:26 +0000 (09:33 +1200)]
Fix deprecation handling
Turns out we were one of the sites naughtily using the BAO directly who needed this handling
to work - but because we passed a number in quote it didn't - this fixes
Seamus Lee [Tue, 30 Apr 2019 21:26:22 +0000 (07:26 +1000)]
Merge pull request #14157 from eileenmcnaughton/ref_dedupe
[REF] function extraction in dedupe code
Seamus Lee [Tue, 30 Apr 2019 11:06:39 +0000 (21:06 +1000)]
Merge pull request #14162 from civicrm/5.13
5.13
Yashodha Chaku [Tue, 30 Apr 2019 06:21:27 +0000 (11:51 +0530)]
Merge pull request #14064 from JMAConsulting/core-338
dev/core#338: Batch update membership type
Tim Otten [Tue, 30 Apr 2019 05:50:32 +0000 (22:50 -0700)]
Merge pull request #14156 from totten/5.13-mail-tokens
CiviMail - Restore support for preview of "mailing"/"action" tokens via TokenProcessor/Flexmailer
eileen [Tue, 30 Apr 2019 05:01:11 +0000 (17:01 +1200)]
Convert dedupe select to select 2 and remove not-used var
Tim Otten [Tue, 30 Apr 2019 04:26:15 +0000 (21:26 -0700)]
CRM_Mailing_TokensTest - Update spec to match expected behavior
The preceding commits revised the behavior of `{mailing.*}` and `{action.*}`
when previewed via `TokenProcessor` (so that they match the preview
logic in other cases).
This simply changes the spec to match.
Eileen McNaughton [Tue, 30 Apr 2019 02:55:22 +0000 (14:55 +1200)]
Merge pull request #14159 from civicrm/5.13
5.13 to master
Eileen McNaughton [Tue, 30 Apr 2019 02:54:23 +0000 (14:54 +1200)]
Merge pull request #14155 from seamuslee001/php_7_2_bin_cli_class
dev/core#907 Fix Deprecation notice for PHP7.2 in bin/cli.class.php
eileen [Tue, 30 Apr 2019 00:38:15 +0000 (12:38 +1200)]
[REF] function extraction in dedupe code
Tim Otten [Mon, 29 Apr 2019 23:59:35 +0000 (16:59 -0700)]
CiviMail - Restore support for previewing mailing-tokens via TokenProcessor/Flexmailer
See preceding commit for general description - this simply applies the same
concept for another set of tokens.
Tim Otten [Mon, 29 Apr 2019 20:35:48 +0000 (13:35 -0700)]
CiviMail - Restore support for previewing action-tokens via TokenProcessor/Flexmailer
Overview
--------
When using `TokenProcessor` to generate a mailing (e.g. as with Flexmailer/Mosaico), the action-tokens (e.g.
`{action.optOutUrl}`) are generated via `CRM_Mailing_ActionTokens`. To properly generate them,
`CRM_Mailing_ActionTokens` relies on certain information (e.g. mailing/job ID). However, that information is no
longer available when performing a "Preview" -- leading to misbehavior in previews. This patch allows Flexmailer to
restore parity for previewing those tokens.
Before (Pre-5.6)
----------------
* When a user begins composing a mailing, CiviMail creates a draft mailing with a concrete ID (e.g. `mailing #123`).
* To preview the mailing, the UI calls `Mailing.preview` API with the ID of the mailing.
* Flexmailer/Mosaico generates the preview by calling `TokenProcessor` and therefore `CRM_Mailing_ActionTokens`.
* `CRM_Mailing_ActionTokens` has strictness checks. These pass because the ID is available.
Before (5.6-5.12)
----------------
As a performance enhancement, CiviCRM 5.6 (PR #12509; [dev/mail#20](https://lab.civicrm.org/dev/mail/issues/20)) revised
the signature for `Mailing.preview` API to allow previews *without* having a specific mailing record/job/ID. Consequently:
* When a user begins composing a mailing, CiviMail creates a draft mailing with a concrete ID (e.g. `mailing #123`).
* To preview the mailing, the UI calls `Mailing.preview` API ~~with~~ **without** the ID of the mailing.
* Flexmailer/Mosaico generates the preview by calling `TokenProcessor` and therefore `CRM_Mailing_ActionTokens`.
* `CRM_Mailing_ActionTokens` has strictness checks. These ~~pass~~ **fail** because the ID is ~~available~~ **unavailable**.
After
----------------
* When a user begins composing a mailing, CiviMail creates a draft mailing with a concrete ID (e.g. `mailing #123`).
* To preview the mailing, the UI calls `Mailing.preview` API ~~with~~ **without** the ID of the mailing.
* Flexmailer/Mosaico generates the preview by calling `TokenProcessor` and therefore `CRM_Mailing_ActionTokens`.
* `CRM_Mailing_ActionTokens` has ~~strictness~~ **less strict** checks. These **pass** because the `context[schema]` hints that
a mailing ID *will be available* when needed.
Eileen McNaughton [Mon, 29 Apr 2019 22:21:12 +0000 (10:21 +1200)]
Merge pull request #13844 from mattwire/corepaymentmore_essay
Update docblock for doPayment function
Seamus Lee [Mon, 29 Apr 2019 21:52:49 +0000 (07:52 +1000)]
dev/core#907 Fix Deprecation notice for PHP7.2 in bin/cli.class.php
Matthew Wire (MJW Consulting) [Sat, 16 Mar 2019 10:43:42 +0000 (10:43 +0000)]
Update docblock for doPayment function
Matthew Wire [Mon, 29 Apr 2019 10:32:41 +0000 (11:32 +0100)]
Merge pull request #14145 from demeritcowboy/submitOften
dev/core#904 - undo part of 13333
Eileen McNaughton [Sun, 28 Apr 2019 23:40:01 +0000 (11:40 +1200)]
Merge pull request #14144 from eileenmcnaughton/dedupe4
dev/core#723 [REF] extract chunk of code that definitely does something.
Eileen McNaughton [Sun, 28 Apr 2019 22:34:25 +0000 (10:34 +1200)]
Merge pull request #14148 from eileenmcnaughton/dedupe8
[REF] extract getConflicts function
eileen [Sat, 27 Apr 2019 04:37:07 +0000 (16:37 +1200)]
[REF] extract chunk of code that definitely does something.
This is a really blunt extraction of a chunk of code whose Raison D'Etre I don't quite know as yet.
I've done the absolute minimum variable cleanup to keep it really clean in the first instance
eileen [Sat, 27 Apr 2019 06:36:12 +0000 (18:36 +1200)]
[REF] extract getConflicts function
This is for readability but I also want to add an api that retrieves conflicts without
trying a merge for more control
Seamus Lee [Sun, 28 Apr 2019 04:25:42 +0000 (14:25 +1000)]
Merge pull request #14151 from eileenmcnaughton/dedupe7
[REF] Extract get cfields function
Seamus Lee [Sat, 27 Apr 2019 23:18:23 +0000 (09:18 +1000)]
Merge pull request #14150 from eileenmcnaughton/last_free_jcal
dev/core#561 Remove last free jcalendar
eileen [Sat, 27 Apr 2019 05:48:38 +0000 (17:48 +1200)]
Extract get cfields function
Seamus Lee [Sat, 27 Apr 2019 21:54:54 +0000 (07:54 +1000)]
Merge pull request #14119 from eileenmcnaughton/recur_meta
dev/core#830 [REF] Add unit tests on contribution recur trxn_id, contribution recur processor id
eileen [Sat, 27 Apr 2019 07:34:20 +0000 (19:34 +1200)]
Remove last free jcalendar
This is the last jcalendar outside of buildDateRange instances.
It turns out to be 'just a form' and pretty straight forward
Seamus Lee [Sat, 27 Apr 2019 21:46:10 +0000 (07:46 +1000)]
Merge pull request #14146 from eileenmcnaughton/dedupe6
dev/core#723 [REF] Declare contactType var rather than using long array syntax.
Seamus Lee [Sat, 27 Apr 2019 21:44:41 +0000 (07:44 +1000)]
Merge pull request #14149 from eileenmcnaughton/exreport
[cleanup] remove CRM_Report_Form_Extended
DemeritCowboy [Sat, 27 Apr 2019 20:28:47 +0000 (16:28 -0400)]
fix save and new
Mathieu Lu [Sat, 27 Apr 2019 20:07:08 +0000 (16:07 -0400)]
Merge pull request #14134 from stesi561/dev/core/248
dev/core#248 - Fixes advanced search mailings results headers
Seamus Lee [Sat, 27 Apr 2019 09:32:31 +0000 (19:32 +1000)]
Merge pull request #14141 from seamuslee001/view_url_double_protocol_test
(NFC) Expand unit test to show off double protocol error
Seamus Lee [Sat, 27 Apr 2019 04:16:19 +0000 (14:16 +1000)]
(NFC) Expand unit test to show off double protocol error
Expand test to include situation if the Other protocol is set rather than a specific protocol
Make test portable
eileen [Sat, 27 Apr 2019 06:48:09 +0000 (18:48 +1200)]
[cleanup] remove CRM_Report_Form_Extended
This file was added to core around 4.2 but for various reasons the ExtendedReport intiative
moved to an extension & it was never used. This just removes it
eileen [Sat, 27 Apr 2019 05:40:14 +0000 (17:40 +1200)]
Declare contactType var rather than using long array syntax.
Very small tidy up for legibility
Eileen McNaughton [Sat, 27 Apr 2019 05:45:44 +0000 (17:45 +1200)]
Merge pull request #14142 from eileenmcnaughton/dedupe2
[REF] move gathering of location info to relevant function (towards dev/core#723)
Eileen McNaughton [Sat, 27 Apr 2019 05:31:01 +0000 (17:31 +1200)]
Merge pull request #14143 from eileenmcnaughton/dedupe3
dev/core#560 Remove a couple of instances of fatal errors in favour of throwing exceptions
Seamus Lee [Sat, 27 Apr 2019 05:23:22 +0000 (15:23 +1000)]
Merge pull request #14140 from eileenmcnaughton/dedupe
[REF] Move the qfbug handling to it's own function (towards dev/core#723)
Seamus Lee [Sat, 27 Apr 2019 04:40:00 +0000 (14:40 +1000)]
Merge pull request #14128 from agileware/CIVICRM-1143
Fixed double protocol being added in link by CKEditor.
eileen [Sat, 27 Apr 2019 04:28:33 +0000 (16:28 +1200)]
Remove a couple of instances of fatal errors in favour of throwing exceptions
https://lab.civicrm.org/dev/core/issues/560
eileen [Sat, 27 Apr 2019 04:13:00 +0000 (16:13 +1200)]
[REF] move gathering of location info to relevant function
We have a loop that parses the migrationInfo to get just location fields which we loop through, but
migrationInfo is already available in the moveLocationInfo fn so we can just handle that param in there
& improve code readability (we do a little less array looping but it's pretty cheap & the code
readabiliity is a real issue here
eileen [Sat, 27 Apr 2019 03:58:34 +0000 (15:58 +1200)]
Move the qfbug handling to it's own function
This is a really toxi function. In order to save the pain or iterating multiple times through a small array
we are dealing with an awful lot of complexity. I'm changing this to iterate through it multiple
times in order to rationalise the code - I think performance is minimal & being able to read the code....
Seamus Lee [Sat, 27 Apr 2019 02:03:37 +0000 (12:03 +1000)]
Merge pull request #14139 from agh1/upgrade-rebuild-caseact-views
dev/core#832 CiviCase: rebuild case activity views during upgrade
Andrew Hunt [Sat, 27 Apr 2019 00:10:33 +0000 (20:10 -0400)]
dev/core#832 CiviCase: rebuild case activity views during upgrade
Luke Stewart [Fri, 26 Apr 2019 21:49:51 +0000 (09:49 +1200)]
Use CRM_Core_I18n::isMultiLingual() to detect if is multilingual
Luke Stewart [Fri, 26 Apr 2019 21:33:37 +0000 (09:33 +1200)]
Fix extra space
Luke Stewart [Fri, 26 Apr 2019 08:00:45 +0000 (20:00 +1200)]
dev/core/248 - Fixes advanced search results headers mailings
Removes language from advanced search results mailings column
headers for non-multilingual sites.
Tim Otten [Fri, 26 Apr 2019 06:54:08 +0000 (23:54 -0700)]
Merge pull request #14131 from colemanw/resourceList
[REF] Use events for CMS resource loading
eileen [Wed, 24 Apr 2019 07:01:32 +0000 (19:01 +1200)]
Add unit tests on contribution recur trxn_id, contribution recur processor id
This is preliminary cleanup towards exposing cancel_reason as a search field, as committed to in proposal to
add the field. This change
- adds unit tests for the trxn_id & processor_id fields
- makes the handling of them more generic
- adds contribution recur field data to the contribution query object so it can be accessed.
Some points about the last of these. Basically we have a situation where the query object needs metadata to
avoid field by field handling. We have done this is some wierd & wonderful ways with dependencies on 'import' &
'export' metadata info to the point where they were given to so many fields as to become meaningless.
I think this method is better - ie. just adding the additional metadata to the query class for all the entities it
deals with. A recently merged PR means 'where' data is still available using this method.
Also I have added uniquenames to the contribution recur fields. Uniquenames no longer really matter outside
- the query object
- profiles
- possibly import & export
We only really expose recurring contribution info through the query object of these so it should be safe. In a future happy
space apiv4 & namespacing will render uniquenames a distant memory.
I couldn't rip out the special handling entirely without dealing with the labels that go into the qill. I figure
we should merge this & then address that - but briefly the issue is that Matt has just changed all the labels
to not quite work in this context so we need to discuss / agree how to manage 'Recurring Contribution Trxn ID' vs
'Trxn ID'.
I also didn't want to rip out the special handling fully in advance of https://github.com/civicrm/civicrm-core/pull/14118
being merged as there could be a performance regression if we let more code hit that unnecessary join line
Seamus Lee [Fri, 26 Apr 2019 02:53:00 +0000 (12:53 +1000)]
Merge pull request #14133 from civicrm/5.13
5.13
Seamus Lee [Fri, 26 Apr 2019 01:03:59 +0000 (11:03 +1000)]
Merge pull request #14132 from seamuslee001/5.13
Add 5.12.4 release notes
Tim Otten [Thu, 25 Apr 2019 23:42:50 +0000 (16:42 -0700)]
Update 5.12.4.md
Tim Otten [Thu, 25 Apr 2019 23:42:03 +0000 (16:42 -0700)]
Update 5.12.4.md
Seamus Lee [Thu, 25 Apr 2019 23:31:42 +0000 (09:31 +1000)]
Update release notes
Seamus Lee [Thu, 25 Apr 2019 01:11:43 +0000 (11:11 +1000)]
Add 5.12.4 release notes
Coleman Watts [Thu, 25 Apr 2019 14:41:49 +0000 (10:41 -0400)]
Use events for CMS resource loading
Eileen McNaughton [Thu, 25 Apr 2019 22:03:34 +0000 (10:03 +1200)]
Merge pull request #14086 from agh1/caseactqueryfix
Case activity query performs poorly on large databases
Eileen McNaughton [Thu, 25 Apr 2019 21:52:30 +0000 (09:52 +1200)]
Merge pull request #14122 from colemanw/menubarHeight
[REF] Use variable for menubar height
Coleman Watts [Wed, 24 Apr 2019 17:55:08 +0000 (13:55 -0400)]
Use variable for menubar height
Monish Deb [Thu, 25 Apr 2019 11:24:25 +0000 (16:54 +0530)]
Merge pull request #13689 from eileenmcnaughton/no_record_payment
Call Payment.create from payment.cancel
Seamus Lee [Thu, 25 Apr 2019 09:38:32 +0000 (19:38 +1000)]
Merge pull request #14127 from civicrm/5.13
5.13
Seamus Lee [Thu, 25 Apr 2019 09:38:10 +0000 (19:38 +1000)]
Merge pull request #14126 from seamuslee001/dev_core_880
Fix typo in DROP table query.
Eileen McNaughton [Thu, 25 Apr 2019 07:34:45 +0000 (19:34 +1200)]
Merge pull request #14045 from totten/master-ab-winning
(REF; dev/core#873) MailingAB - Migrate "copy winner" logic from JS to PHP
mark burdett [Wed, 24 Apr 2019 18:32:32 +0000 (11:32 -0700)]
Fix typo in DROP table query.
eileen [Mon, 25 Mar 2019 09:21:39 +0000 (22:21 +1300)]
Partial converstion of Group form to be an EntityForm
This is mostly for demo purposes and it should be noted that these changes are generally done in a
'step in the right direction' kinda way, and in accordance with this I have made a very minimal change.
In this case the change gets the form to be using the entity form
and converts two field. The change didn't initially work for the title field because the schema didn't define the
html type for the field - fixing these things is a feature not a bug of switching to an entity form
We can remove the apply filter line & the addButtons fn as the parent does these (actually it adds the custom
data too but I've left that out of scope).
If we converted a few more fields we would see that
1) the saved_search_id doesn't have a pseudoconstant defined in the schema, as it should
2) the various field description & help info is not in the schema
3) when we convert the tpl file we add custom data support in, although this form already has it
When we finally switch to a non-quickform layer the new forms will be built of the schema so by
transferring information into the schema and out of thousands of differently coded forms
we take steps in the direction of facilitating that.
That perhaps seems a little unachievable but the api was originally as incoherent as the form
layer and it was only by incremental cleanup it became more consisten
Eileen McNaughton [Thu, 25 Apr 2019 04:34:03 +0000 (16:34 +1200)]
Merge pull request #14110 from mattwire/caseactivitylinks_partial
REF Don't pass activity object to addCaseActivityLinks
Eileen McNaughton [Thu, 25 Apr 2019 04:26:02 +0000 (16:26 +1200)]
Merge pull request #14112 from mattwire/action_filterlinks
Add function filterLinks to return an array of links for an entity that can be used by the API / form layer to generate a link
Eileen McNaughton [Thu, 25 Apr 2019 04:23:30 +0000 (16:23 +1200)]
Merge pull request #14109 from mattwire/refactor_inboundemailshared
REF Use shared function to check inbound email permissions
Eileen McNaughton [Wed, 24 Apr 2019 23:54:01 +0000 (11:54 +1200)]
Merge pull request #14121 from civicrm/revert-14063-core-553
Revert "dev/core#553: Creating new event takes value from default value not from saved template for custom fields"
Seamus Lee [Wed, 24 Apr 2019 23:47:02 +0000 (09:47 +1000)]
Merge pull request #14117 from eileenmcnaughton/import_3
[REF] Follow up tidy up on import fixes
eileen [Wed, 24 Apr 2019 03:33:56 +0000 (15:33 +1200)]
Follow up tidy up on import - use same fn for address
This is covered by testImportPrimaryAddressUpdate
Seamus Lee [Wed, 24 Apr 2019 21:30:23 +0000 (07:30 +1000)]
Merge pull request #14123 from mfb/drop-bug
dev/core#880: Fix typo in DROP table query.
Seamus Lee [Wed, 24 Apr 2019 20:09:10 +0000 (06:09 +1000)]
Merge pull request #14043 from eileenmcnaughton/import_2
Fix import primary phone, primary email, add tests
mark burdett [Wed, 24 Apr 2019 18:32:32 +0000 (11:32 -0700)]
Fix typo in DROP table query.
Yashodha Chaku [Wed, 24 Apr 2019 15:27:19 +0000 (20:57 +0530)]
Revert "dev/core#553: Creating new event takes value from default value not from saved template for custom fields"
Matthew Wire [Wed, 24 Apr 2019 09:53:13 +0000 (10:53 +0100)]
Merge pull request #13994 from eileenmcnaughton/recur_cancel
dev/core#846 Convert Recurring forms to entity forms
Yashodha Chaku [Wed, 24 Apr 2019 07:00:25 +0000 (12:30 +0530)]
Merge pull request #14063 from JMAConsulting/core-553
dev/core#553: Creating new event takes value from default value not from saved template for custom fields
eileen [Fri, 12 Apr 2019 07:51:50 +0000 (17:51 +1000)]
Fix handling of importing 'primary
' phone & email and enable test
Prior to this selecting 'Primary' as location_type_id for phone or email will result in duplicates.
This also simplifies the indexing to be by location type, as it is with addresses, as the code is kinda
confusing
Eileen McNaughton [Tue, 23 Apr 2019 23:06:49 +0000 (09:06 +1000)]
Merge pull request #14108 from mattwire/form_activity_hardcoded_ids
REF Replace hardcoded IDs with pseudoconstants in activity form
Seamus Lee [Tue, 23 Apr 2019 05:49:37 +0000 (15:49 +1000)]
Merge pull request #14115 from civicrm/5.13
5.13
Seamus Lee [Tue, 23 Apr 2019 04:17:21 +0000 (14:17 +1000)]
Merge pull request #14114 from lcdservices/5.13
dev/core#891 condition on id existenced when retrieving mailing hash
Brian Shaughnessy [Tue, 23 Apr 2019 01:43:19 +0000 (21:43 -0400)]
dev/core#891 condition on id existenced when retrieving mailing hash
Seamus Lee [Tue, 23 Apr 2019 01:51:26 +0000 (11:51 +1000)]
Merge pull request #14084 from colemanw/UFFieldBAO
(REF) Standardize UFField create function
Coleman Watts [Mon, 22 Apr 2019 12:22:13 +0000 (08:22 -0400)]
Add UFField to syntaxConformanceTest
Seamus Lee [Mon, 22 Apr 2019 20:27:38 +0000 (06:27 +1000)]
Merge pull request #14105 from eileenmcnaughton/import
[REF] calll formatLocationBlock from parent function.
Seamus Lee [Mon, 22 Apr 2019 20:27:18 +0000 (06:27 +1000)]
Merge pull request #14107 from mattwire/formbuttons_formatting
NFC Whitespace formatting for formButtons.tpl
Seamus Lee [Mon, 22 Apr 2019 20:26:53 +0000 (06:26 +1000)]
Merge pull request #14111 from mlutfy/sms-ts
Fix ts() usage in CRM_SMS_Form_Schedule
Matthew Wire (MJW Consulting) [Mon, 22 Apr 2019 12:22:08 +0000 (13:22 +0100)]
Replace hardcoded IDs with pseudoconstants in activity form