-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Show tooltips (rdfs:comment or skos:definition) for custom properties #995
Changes from 4 commits
6c66deb
cbdb8ff
5e4ae2c
8e1aa16
161af06
c1ab089
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,6 +11,8 @@ class ConceptProperty | |
private $super; | ||
/** stores the property label */ | ||
private $label; | ||
/** stores the property tooltip */ | ||
private $tooltip; | ||
/** stores the property values */ | ||
private $values; | ||
/** flag whether the values are sorted, as we do lazy sorting */ | ||
|
@@ -22,10 +24,11 @@ class ConceptProperty | |
* @param string $prop property type eg. 'rdf:type'. | ||
* @param string $label | ||
*/ | ||
public function __construct($prop, $label, $super=null, $sort_by_notation=false) | ||
public function __construct($prop, $label, $tooltip=null, $super=null, $sort_by_notation=false) | ||
{ | ||
$this->prop = $prop; | ||
$this->label = $label; | ||
$this->tooltip = $tooltip; | ||
$this->values = array(); | ||
$this->is_sorted = true; | ||
$this->super = $super; | ||
|
@@ -47,7 +50,7 @@ public function getLabel() | |
} | ||
|
||
// if not, see if there was a label for the property in the graph | ||
if ($this->label) { | ||
if ($this->label !== null) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just a side note: I can see why this was done, but does not - nevertheless - change the code behavior a bit. But one can argument for code quality measures, and I agree. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I copied and pasted some of the code for the |
||
return $this->label; | ||
} | ||
|
||
|
@@ -56,14 +59,26 @@ public function getLabel() | |
} | ||
|
||
/** | ||
* Returns a gettext translation for the property tooltip. | ||
* Returns text for the property tooltip. | ||
* @return string | ||
*/ | ||
public function getDescription() | ||
{ | ||
$helpprop = $this->prop . "_help"; | ||
|
||
return gettext($helpprop); // can't use string constant, it'd be picked up by xgettext | ||
// see if we have a translation with the help text | ||
$help = gettext($helpprop); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This will prefer Skosmos translations, but that will must likely be OK. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, that's the intent (same as for property labels) |
||
if ($help != $helpprop) { | ||
return $help; | ||
} | ||
|
||
// if not, see if there was a comment/definition for the property in the graph | ||
if ($this->tooltip !== null) { | ||
return $this->tooltip; | ||
} | ||
|
||
// when nothing is found, don't show the tooltip at all | ||
return null; | ||
} | ||
|
||
/** | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -62,7 +62,7 @@ | |
{% if property.getSubPropertyOf != 'skos:hiddenLabel' %} | ||
<div class="row{% if property.type == 'dc:isReplacedBy' %} replaced-by{% endif%}"> | ||
<div class="property-label"> | ||
<span class="versal{% if property.type == 'rdf:type' %}-bold{% endif %}{% if not (property.type in property.description and '_help' in property.description) %} property-click" title="{{ property.description }}"{% else %}"{% endif %}>{{ property.label|upper }}</span> | ||
<span class="versal{% if property.type == 'rdf:type' %}-bold{% endif %}{% if property.description %} property-click" title="{{ property.description }}"{% else %}"{% endif %}>{{ property.label|upper }}</span> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This could only have an There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good catch! |
||
</div> | ||
<div class="property-value-column"><div class="property-value-wrapper"> | ||
{% if request.vocab.config.hasMultiLingualProperty(property.type) %} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One could document any new parameter(s) here.
On a side note, it's also a bit risky to add a parameter in the middle of a constructor call parameter list, but in this case it does not cause trouble. It may very well be intended, though, if one thinks it is a more important one to have.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right, the phpdoc declaration for the new parameter is missing.
I added the parameter in the middle because in PHP, only the last parameters can be omitted. Since there is a need to call the constructor both with and without the last two parameters, this was the only clean option. I did check all calls to the constructor.