Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
Core
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container registry
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
justinfreeman (Agileware)
Core
Commits
eaf5045f
Commit
eaf5045f
authored
11 years ago
by
Kurund Jalmi
Browse files
Options
Downloads
Patches
Plain Diff
label configuration form fixes, CRM-12965
parent
01d7cdd8
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
CRM/Admin/Form/LabelFormats.php
+37
-15
37 additions, 15 deletions
CRM/Admin/Form/LabelFormats.php
CRM/Admin/Page/LabelFormats.php
+19
-5
19 additions, 5 deletions
CRM/Admin/Page/LabelFormats.php
CRM/Core/BAO/LabelFormat.php
+35
-32
35 additions, 32 deletions
CRM/Core/BAO/LabelFormat.php
with
91 additions
and
52 deletions
CRM/Admin/Form/LabelFormats.php
+
37
−
15
View file @
eaf5045f
...
...
@@ -45,6 +45,21 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
*/
protected
$_id
=
NULL
;
/**
* Group name, label format or name badge
*/
protected
$_group
=
NULL
;
function
preProcess
()
{
$this
->
_id
=
$this
->
get
(
'id'
);
$this
->
_group
=
CRM_Utils_Request
::
retrieve
(
'group'
,
'String'
,
$this
,
FALSE
,
'label_format'
);
$this
->
_values
=
array
();
if
(
isset
(
$this
->
_id
))
{
$params
=
array
(
'id'
=>
$this
->
_id
);
CRM_Core_BAO_LabelFormat
::
retrieve
(
$params
,
$this
->
_values
,
$this
->
_group
);
}
}
/**
* Function to build the form
*
...
...
@@ -60,8 +75,8 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
return
;
}
$disabled
=
array
();
$required
=
TRUE
;
$disabled
=
array
();
$required
=
TRUE
;
$is_reserved
=
$this
->
_id
?
CRM_Core_BAO_LabelFormat
::
getFieldValue
(
'CRM_Core_BAO_LabelFormat'
,
$this
->
_id
,
'is_reserved'
)
:
FALSE
;
if
(
$is_reserved
)
{
$disabled
[
'disabled'
]
=
'disabled'
;
...
...
@@ -74,16 +89,19 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
$this
->
add
(
'checkbox'
,
'is_default'
,
ts
(
'Is this Label Format the default?'
));
$this
->
add
(
'select'
,
'paper_size'
,
ts
(
'Sheet Size'
),
array
(
0
=>
ts
(
'- default -'
))
+
CRM_Core_BAO_PaperSize
::
getList
(
TRUE
),
FALSE
,
0
=>
ts
(
'- default -'
)
)
+
CRM_Core_BAO_PaperSize
::
getList
(
TRUE
),
FALSE
,
array
(
'onChange'
=>
"selectPaper( this.value );"
)
+
$disabled
'onChange'
=>
"selectPaper( this.value );"
)
+
$disabled
);
$this
->
add
(
'static'
,
'paper_dimensions'
,
NULL
,
ts
(
'Sheet Size (w x h)'
));
$this
->
add
(
'select'
,
'orientation'
,
ts
(
'Orientation'
),
CRM_Core_BAO_LabelFormat
::
getPageOrientations
(),
FALSE
,
array
(
'onChange'
=>
"updatePaperDimensions();"
)
+
$disabled
'onChange'
=>
"updatePaperDimensions();"
)
+
$disabled
);
$this
->
add
(
'select'
,
'font_name'
,
ts
(
'Font Name'
),
CRM_Core_BAO_LabelFormat
::
getFontNames
());
$this
->
add
(
'select'
,
'font_name'
,
ts
(
'Font Name'
),
CRM_Core_BAO_LabelFormat
::
getFontNames
(
$this
->
_group
));
$this
->
add
(
'select'
,
'font_size'
,
ts
(
'Font Size'
),
CRM_Core_BAO_LabelFormat
::
getFontSizes
());
$this
->
add
(
'static'
,
'font_style'
,
ts
(
'Font Style'
));
$this
->
add
(
'checkbox'
,
'bold'
,
ts
(
'Bold'
));
...
...
@@ -103,7 +121,10 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
$this
->
add
(
'text'
,
'tPadding'
,
ts
(
'Top Padding'
),
array
(
'size'
=>
8
,
'maxlength'
=>
8
),
$required
);
$this
->
add
(
'text'
,
'weight'
,
ts
(
'Weight'
),
CRM_Core_DAO
::
getAttribute
(
'CRM_Core_BAO_LabelFormat'
,
'weight'
),
TRUE
);
$this
->
addRule
(
'label'
,
ts
(
'Name already exists in Database.'
),
'objectExists'
,
array
(
'CRM_Core_BAO_LabelFormat'
,
$this
->
_id
));
$this
->
addRule
(
'label'
,
ts
(
'Name already exists in Database.'
),
'objectExists'
,
array
(
'CRM_Core_BAO_LabelFormat'
,
$this
->
_id
));
$this
->
addRule
(
'NX'
,
ts
(
'Must be an integer'
),
'integer'
);
$this
->
addRule
(
'NY'
,
ts
(
'Must be an integer'
),
'integer'
);
$this
->
addRule
(
'tMargin'
,
ts
(
'Must be numeric'
),
'numeric'
);
...
...
@@ -119,7 +140,7 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
function
setDefaultValues
()
{
if
(
$this
->
_action
&
CRM_Core_Action
::
ADD
)
{
$defaults
[
'weight'
]
=
CRM_Utils_Array
::
value
(
'weight'
,
CRM_Core_BAO_LabelFormat
::
getDefaultValues
(),
0
);
$defaults
[
'weight'
]
=
CRM_Utils_Array
::
value
(
'weight'
,
CRM_Core_BAO_LabelFormat
::
getDefaultValues
(
$this
->
_group
),
0
);
}
else
{
$defaults
=
$this
->
_values
;
...
...
@@ -148,16 +169,16 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
public
function
postProcess
()
{
if
(
$this
->
_action
&
CRM_Core_Action
::
DELETE
)
{
// delete Label Format
CRM_Core_BAO_LabelFormat
::
del
(
$this
->
_id
);
CRM_Core_BAO_LabelFormat
::
del
(
$this
->
_id
,
$this
->
_group
);
CRM_Core_Session
::
setStatus
(
ts
(
'Selected Label Format has been deleted.'
),
ts
(
'Record Deleted'
),
'success'
);
return
;
}
if
(
$this
->
_action
&
CRM_Core_Action
::
COPY
)
{
// make a copy of the Label Format
$labelFormat
=
CRM_Core_BAO_LabelFormat
::
getById
(
$this
->
_id
);
$list
=
CRM_Core_BAO_LabelFormat
::
getList
(
TRUE
);
$count
=
1
;
$prefix
=
ts
(
'Copy of '
);
$labelFormat
=
CRM_Core_BAO_LabelFormat
::
getById
(
$this
->
_id
,
$this
->
_group
);
$list
=
CRM_Core_BAO_LabelFormat
::
getList
(
TRUE
);
$count
=
1
;
$prefix
=
ts
(
'Copy of '
);
while
(
in_array
(
$prefix
.
$labelFormat
[
'label'
],
$list
))
{
$prefix
=
ts
(
'Copy'
)
.
' ('
.
++
$count
.
') '
.
ts
(
'of '
);
}
...
...
@@ -165,8 +186,9 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
$labelFormat
[
'grouping'
]
=
CRM_Core_BAO_LabelFormat
::
customGroupName
();
$labelFormat
[
'is_default'
]
=
0
;
$labelFormat
[
'is_reserved'
]
=
0
;
$bao
=
new
CRM_Core_BAO_LabelFormat
();
$bao
->
saveLabelFormat
(
$
labelFormat
);
$bao
->
saveLabelFormat
(
$
values
,
NULL
,
$this
->
_group
);
CRM_Core_Session
::
setStatus
(
$labelFormat
[
'label'
]
.
ts
(
' has been created.'
),
ts
(
'Saved'
),
'success'
);
return
;
}
...
...
@@ -198,7 +220,7 @@ class CRM_Admin_Form_LabelFormats extends CRM_Admin_Form {
$values
[
'font-style'
]
=
$style
;
$bao
=
new
CRM_Core_BAO_LabelFormat
();
$bao
->
saveLabelFormat
(
$values
,
$this
->
_id
);
$bao
->
saveLabelFormat
(
$values
,
$this
->
_id
,
$this
->
_group
);
$status
=
ts
(
'Your new Label Format titled <strong>%1</strong> has been saved.'
,
array
(
1
=>
$values
[
'label'
]));
if
(
$this
->
_action
&
CRM_Core_Action
::
UPDATE
)
{
...
...
This diff is collapsed.
Click to expand it.
CRM/Admin/Page/LabelFormats.php
+
19
−
5
View file @
eaf5045f
...
...
@@ -68,19 +68,19 @@ class CRM_Admin_Page_LabelFormats extends CRM_Core_Page_Basic {
CRM_Core_Action
::
UPDATE
=>
array
(
'name'
=>
ts
(
'Edit'
),
'url'
=>
'civicrm/admin/labelFormats'
,
'qs'
=>
'action=update&id=%%id%%&reset=1'
,
'qs'
=>
'action=update&id=%%id%%&
group=%%group%%&
reset=1'
,
'title'
=>
ts
(
'Edit Label Format'
),
),
CRM_Core_Action
::
COPY
=>
array
(
'name'
=>
ts
(
'Copy'
),
'url'
=>
'civicrm/admin/labelFormats'
,
'qs'
=>
'action=copy&id=%%id%%'
,
'qs'
=>
'action=copy&id=%%id%%
&group=%%group%%&reset=1
'
,
'title'
=>
ts
(
'Copy Label Format'
),
),
CRM_Core_Action
::
DELETE
=>
array
(
'name'
=>
ts
(
'Delete'
),
'url'
=>
'civicrm/admin/labelFormats'
,
'qs'
=>
'action=delete&id=%%id%%'
,
'qs'
=>
'action=delete&id=%%id%%
&group=%%group%%&reset=1
'
,
'title'
=>
ts
(
'Delete Label Format'
),
),
);
...
...
@@ -125,7 +125,8 @@ class CRM_Admin_Page_LabelFormats extends CRM_Core_Page_Basic {
*/
function
browse
(
$action
=
NULL
)
{
// Get list of configured Label Formats
$labelFormatList
=
CRM_Core_BAO_LabelFormat
::
getList
();
$labelFormatList
=
CRM_Core_BAO_LabelFormat
::
getList
();
$nameFormatList
=
CRM_Core_BAO_LabelFormat
::
getList
(
false
,
'name_badge'
);
// Add action links to each of the Label Formats
foreach
(
$labelFormatList
as
&
$format
)
{
...
...
@@ -133,9 +134,22 @@ class CRM_Admin_Page_LabelFormats extends CRM_Core_Page_Basic {
if
(
CRM_Utils_Array
::
value
(
'is_reserved'
,
$format
))
{
$action
-=
CRM_Core_Action
::
DELETE
;
}
$format
[
'action'
]
=
CRM_Core_Action
::
formLink
(
self
::
links
(),
$action
,
array
(
'id'
=>
$format
[
'id'
]));
$format
[
'action'
]
=
CRM_Core_Action
::
formLink
(
self
::
links
(),
$action
,
array
(
'id'
=>
$format
[
'id'
],
'group'
=>
'label_format'
));
}
// Add action links to each of the Label Formats
foreach
(
$nameFormatList
as
&
$format
)
{
$action
=
array_sum
(
array_keys
(
$this
->
links
()));
if
(
CRM_Utils_Array
::
value
(
'is_reserved'
,
$format
))
{
$action
-=
CRM_Core_Action
::
DELETE
;
}
$format
[
'action'
]
=
CRM_Core_Action
::
formLink
(
self
::
links
(),
$action
,
array
(
'id'
=>
$format
[
'id'
],
'group'
=>
'name_badge'
));
}
$labelFormatList
=
array_merge
(
$labelFormatList
,
$nameFormatList
);
// Order Label Formats by weight
$returnURL
=
CRM_Utils_System
::
url
(
self
::
userContext
());
CRM_Core_BAO_LabelFormat
::
addOrder
(
$labelFormatList
,
$returnURL
);
...
...
This diff is collapsed.
Click to expand it.
CRM/Core/BAO/LabelFormat.php
+
35
−
32
View file @
eaf5045f
...
...
@@ -173,14 +173,14 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
/**
* Get font names supported by the TCPDF package used to create PDF labels.
*
* @param
void
* @param
string $name group name
*
* @return array array of font names
* @access public
* @static
*/
public
static
function
getFontNames
()
{
$label
=
new
CRM_Utils_PDF_Label
(
self
::
getDefaultValues
());
public
static
function
getFontNames
(
$name
=
'label_format'
)
{
$label
=
new
CRM_Utils_PDF_Label
(
self
::
getDefaultValues
(
$name
));
return
$label
->
getFontNames
();
}
...
...
@@ -234,14 +234,14 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
* @return int Group ID (null if Group ID doesn't exist)
* @access private
*/
private
static
function
_getGid
()
{
if
(
!
self
::
$_gid
)
{
self
::
$_gid
=
CRM_Core_DAO
::
getFieldValue
(
'CRM_Core_DAO_OptionGroup'
,
'label_format'
,
'id'
,
'name'
);
if
(
!
self
::
$_gid
)
{
private
static
function
_getGid
(
$name
=
'label_format'
)
{
if
(
!
isset
(
self
::
$_gid
[
$name
])
||
!
self
::
$_gid
[
$name
]
)
{
self
::
$_gid
[
$name
]
=
CRM_Core_DAO
::
getFieldValue
(
'CRM_Core_DAO_OptionGroup'
,
$name
,
'id'
,
'name'
);
if
(
!
self
::
$_gid
[
$name
]
)
{
CRM_Core_Error
::
fatal
(
ts
(
'Label Format Option Group not found in database.'
));
}
}
return
self
::
$_gid
;
return
self
::
$_gid
[
$name
]
;
}
/**
...
...
@@ -263,49 +263,50 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
* Retrieve list of Label Formats.
*
* @param bool $namesOnly return simple list of names
* @param string $name name of the option group
*
* @return array (reference) label format list
* @static
* @access public
*/
static
function
&
getList
(
$namesOnly
=
FALSE
)
{
static
function
&
getList
(
$namesOnly
=
FALSE
,
$name
=
'label_format'
)
{
static
$list
=
array
();
if
(
self
::
_getGid
())
{
if
(
self
::
_getGid
(
$name
))
{
// get saved label formats from Option Value table
$dao
=
new
CRM_Core_DAO_OptionValue
();
$dao
->
option_group_id
=
self
::
_getGid
();
$dao
->
option_group_id
=
self
::
_getGid
(
$name
);
$dao
->
is_active
=
1
;
$dao
->
orderBy
(
'weight'
);
$dao
->
find
();
while
(
$dao
->
fetch
())
{
if
(
$namesOnly
)
{
$list
[
$dao
->
name
]
=
$dao
->
label
;
$list
[
$
name
][
$
dao
->
name
]
=
$dao
->
label
;
}
else
{
CRM_Core_DAO
::
storeValues
(
$dao
,
$list
[
$dao
->
id
]);
CRM_Core_DAO
::
storeValues
(
$dao
,
$list
[
$
name
][
$
dao
->
id
]);
}
}
}
return
$list
;
return
$list
[
$name
]
;
}
/**
* retrieve the default Label Format values
*
* @param
NULL
* @param
string $groupName label format group name
*
* @return array Name/value pairs containing the default Label Format values.
* @static
* @access public
*/
static
function
&
getDefaultValues
()
{
static
function
&
getDefaultValues
(
$groupName
=
'label_format'
)
{
$params
=
array
(
'is_active'
=>
1
,
'is_default'
=>
1
);
$defaults
=
array
();
if
(
!
self
::
retrieve
(
$params
,
$defaults
))
{
if
(
!
self
::
retrieve
(
$params
,
$defaults
,
$groupName
))
{
foreach
(
self
::
$optionValueFields
as
$name
=>
$field
)
{
$defaults
[
$name
]
=
$field
[
'default'
];
}
$filter
=
array
(
'option_group_id'
=>
self
::
_getGid
());
$filter
=
array
(
'option_group_id'
=>
self
::
_getGid
(
$groupName
));
$defaults
[
'weight'
]
=
CRM_Utils_Weight
::
getDefaultWeight
(
'CRM_Core_DAO_OptionValue'
,
$filter
);
}
return
$defaults
;
...
...
@@ -320,14 +321,14 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
* @return array $values (reference) associative array of name/value pairs
* @access public
*/
static
function
&
getLabelFormat
(
$field
,
$val
)
{
static
function
&
getLabelFormat
(
$field
,
$val
,
$groupName
=
'label_format'
)
{
$params
=
array
(
'is_active'
=>
1
,
$field
=>
$val
);
$labelFormat
=
array
();
if
(
self
::
retrieve
(
$params
,
$labelFormat
))
{
if
(
self
::
retrieve
(
$params
,
$labelFormat
,
$groupName
))
{
return
$labelFormat
;
}
else
{
return
self
::
getDefaultValues
();
return
self
::
getDefaultValues
(
$groupName
);
}
}
...
...
@@ -347,12 +348,13 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
* Get Label Format by ID
*
* @param int $id label format id. 0 = get default label format
* @param string $groupName group name
*
* @return array $values (reference) associative array of name/value pairs
* @access public
*/
static
function
&
getById
(
$id
)
{
return
self
::
getLabelFormat
(
'id'
,
$id
);
static
function
&
getById
(
$id
,
$groupName
=
'label_format'
)
{
return
self
::
getLabelFormat
(
'id'
,
$id
,
$groupName
);
}
/**
...
...
@@ -397,10 +399,10 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
* @access public
* @static
*/
static
function
retrieve
(
&
$params
,
&
$values
)
{
static
function
retrieve
(
&
$params
,
&
$values
,
$groupName
=
'label_format'
)
{
$optionValue
=
new
CRM_Core_DAO_OptionValue
();
$optionValue
->
copyValues
(
$params
);
$optionValue
->
option_group_id
=
self
::
_getGid
();
$optionValue
->
option_group_id
=
self
::
_getGid
(
$groupName
);
if
(
$optionValue
->
find
(
TRUE
))
{
// Extract fields that have been serialized in the 'value' column of the Option Value table.
$values
=
json_decode
(
$optionValue
->
value
,
TRUE
);
...
...
@@ -440,13 +442,14 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
*
* @param array (reference) $values associative array of name/value pairs
* @param int $id id of the database record (null = new record)
* @param string $groupName group name of the label format
*
* @return void
* @access public
*/
function
saveLabelFormat
(
&
$values
,
$id
=
NULL
)
{
function
saveLabelFormat
(
&
$values
,
$id
=
NULL
,
$groupName
=
'label_format'
)
{
// get the Option Group ID for Label Formats (create one if it doesn't exist)
$group_id
=
self
::
_getGid
();
$group_id
=
self
::
_getGid
(
$groupName
);
// clear other default if this is the new default label format
if
(
$values
[
'is_default'
])
{
...
...
@@ -462,7 +465,7 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
}
else
{
// new record
$list
=
self
::
getList
(
TRUE
);
$list
=
self
::
getList
(
TRUE
,
$groupName
);
$cnt
=
1
;
while
(
array_key_exists
(
"custom_
$cnt
"
,
$list
))
$cnt
++
;
$values
[
'name'
]
=
"custom_
$cnt
"
;
...
...
@@ -502,17 +505,17 @@ class CRM_Core_BAO_LabelFormat extends CRM_Core_DAO_OptionValue {
* Function to delete a Label Format
*
* @param int $id ID of the label format to be deleted.
*
*
@param string $groupName group name
* @access public
* @static
*/
static
function
del
(
$id
)
{
static
function
del
(
$id
,
$groupName
)
{
if
(
$id
)
{
$dao
=
new
CRM_Core_DAO_OptionValue
();
$dao
->
id
=
$id
;
if
(
$dao
->
find
(
TRUE
))
{
if
(
$dao
->
option_group_id
==
self
::
_getGid
())
{
$filter
=
array
(
'option_group_id'
=>
self
::
_getGid
());
if
(
$dao
->
option_group_id
==
self
::
_getGid
(
$groupName
))
{
$filter
=
array
(
'option_group_id'
=>
self
::
_getGid
(
$groupName
));
CRM_Utils_Weight
::
delWeight
(
'CRM_Core_DAO_OptionValue'
,
$id
,
$filter
);
$dao
->
delete
();
return
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment