Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into refactor_ui
Browse files Browse the repository at this point in the history
  • Loading branch information
François Prunayre committed Oct 28, 2013
2 parents 38dc745 + 44bb595 commit 3eb6859
Show file tree
Hide file tree
Showing 17 changed files with 234 additions and 148 deletions.
Expand Up @@ -35,6 +35,7 @@
import org.fao.geonet.lib.Lib;
import org.jdom.Element;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

Expand Down Expand Up @@ -107,19 +108,26 @@ public Element exec(Element params, ServiceContext context) throws Exception
record.setName("targetGroup");
response.addContent(record);
// List all group users or administrator
String query = "SELECT id, surname, name FROM Users LEFT JOIN UserGroups ON (id = userId) "+
String query = "SELECT id, surname, name, username FROM Users LEFT JOIN UserGroups ON (id = userId) "+
" WHERE (groupId=? AND usergroups.profile != 'RegisteredUser') OR users.profile = 'Administrator'";

Element editors = dbms.select(query, Integer.valueOf(groupId));

for (Object o : editors.getChildren())
// Avoid duplicated users: if a user is a Reviewer in a group, in the database exists a row as Editor also
List<String> editorsId = new ArrayList<String>();

for (Object o : editors.getChildren())
{
Element editor = (Element) o;
if (editorsId.contains(editor.getChildText("id"))) continue;

editor = (Element) editor.clone();
editor.removeChild("password");
editor.setName("editor");

record.addContent(editor);

editorsId.add(editor.getChildText("id"));
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions web-client/src/main/resources/apps/html5ui/js/Templates.js
Expand Up @@ -191,7 +191,7 @@ GeoNetwork.HTML5UI.Templates.SHOW_ON_MAP =
</tpl>';

GeoNetwork.HTML5UI.Templates.LINKCONTAINER =
'<div class="md-links" id="md-links-{id}">\
'<div class="md-links md-links-{id}">\
</div>';
/**
* Button to download metadata
Expand All @@ -210,7 +210,7 @@ GeoNetwork.HTML5UI.Templates.DOWNLOAD =
onclick="catalogue.metadataMEF(\'{uuid}\');">\
<img src="{[catalogue.URL]}/apps/html5ui/images/default/page_white_zip.png"/>\
</button>\
<div class="md-links" id="md-links-{id}"/>\
<div class="md-links md-links-{id}"/>\
</div>';


Expand Down
Expand Up @@ -400,7 +400,17 @@ GeoNetwork.map.ExtentMap = function(){
feature = feature[0];
}

vectorLayer.addFeatures(feature);
// Draw a point if north=south and west=east
var bounds = feature.geometry.getBounds();
if (bounds.left === bounds.right && bounds.top === bounds.bottom) {
var pointfeature = new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(bounds.left, bounds.top));
vectorLayer.addFeatures(pointfeature);
} else {
vectorLayer.addFeatures(feature);
}


// optionally, zoom on the layer features extent
if (options.zoomToFeatures) {
zoomToFeatures(map, vectorLayer);
Expand Down
Expand Up @@ -379,7 +379,7 @@ GeoNetwork.MetadataMenu = Ext.extend(Ext.menu.Menu, {
this.versioningAction.setDisabled((!isEditable && !isHarvested) || isReadOnly);
this.categoryAction.setDisabled((!isEditable && !isHarvested) || isReadOnly);
this.deleteAction.setDisabled((!isEditable && !isHarvested) || isReadOnly);
this.duplicateAction.setDisabled(!isEditable || isReadOnly);
this.duplicateAction.setDisabled(isReadOnly);
this.createChildAction.setDisabled(!isEditable || isReadOnly);

if (this.ratingWidget) {
Expand Down
Expand Up @@ -214,6 +214,7 @@ GeoNetwork.MetadataResultsToolbar = Ext.extend(Ext.Toolbar, {
clickTemplateMenu: function(item, pressed){
if (pressed) {
this.applyTemplate(item.getId());
this.refreshLinks();
}
this.initRatingWidget();
},
Expand Down

Large diffs are not rendered by default.

Expand Up @@ -170,12 +170,8 @@ GeoNetwork.Templates.THUMBNAIL = new Ext.XTemplate(
'</tpl>',
'<tpl if="thumbnail==\'\'"></tpl>',
'</div>',
'<tpl for="links">',
'<tpl if="values.type == \'application/vnd.ogc.wms_xml\'">',
// FIXME : ref to app
'<a href="#" class="md-mn addLayer" title="{title}" alt="{title}" onclick="app.switchMode(\'1\', true);app.getIMap().addWMSLayer([[\'{title}\', \'{href}\', \'{name}\', \'{parent.uuid}\']]);">&nbsp;</a>',
'</tpl>',
'</tpl>',
'<div class="md-links md-links-{id}" data-filter="application/vnd.ogc.wms_xml">',
'</div>',
'</div>',
'</li>',
'</tpl>',
Expand Down Expand Up @@ -204,7 +200,7 @@ GeoNetwork.Templates.FULL = new Ext.XTemplate(
'{value}{[xindex==xcount?"":", "]}',
'</tpl></p>',
'</tpl>',
'<div class="md-links" id="md-links-{id}">',
'<div class="md-links md-links-{id}">',
'</div>',
'</td><td class="thumb">',
GeoNetwork.Templates.RATING_TPL,
Expand Down
Expand Up @@ -4,6 +4,7 @@ GeoNetwork.admin.PrivilegesPanel = Ext.extend(Ext.grid.GridPanel, {

defaultConfig: {
autoScroll: true,
stateful: false,
cls: 'privileges-panel',
onlyUserGroup: false,
batch: false
Expand Down Expand Up @@ -164,6 +165,9 @@ GeoNetwork.admin.PrivilegesPanel = Ext.extend(Ext.grid.GridPanel, {
record: 'group',
idPath: 'id',
totalRecords: '@TotalResults',
sortInfo: {
field: 'label'
},
fields: [
'name',
'description', {
Expand All @@ -173,7 +177,17 @@ GeoNetwork.admin.PrivilegesPanel = Ext.extend(Ext.grid.GridPanel, {
name: 'label',
convert: function(v,n) {
var label = Ext.DomQuery.selectNode('label/' + catalogue.lang,n);
return label ? catalogue.getNodeText(label) : catalogue.getNodeText(n.getElementsByTagName('name')[0]);
var prefix = "";
var id = Ext.DomQuery.selectNode('id', n);
if (catalogue.getNodeText(id) <= 1) {
prefix = " - ";
}
var trueLabel =
label ?
catalogue.getNodeText(label) :
catalogue.getNodeText(n.getElementsByTagName('name')[0]);

return prefix + trueLabel + prefix;
}
},
this.getOperField(0),
Expand Down Expand Up @@ -239,7 +253,7 @@ GeoNetwork.admin.PrivilegesPanel = Ext.extend(Ext.grid.GridPanel, {

var cm = new Ext.grid.ColumnModel({
defaults: {
sortable: false,
sortable: true,
hideable: false,
menuDisabled: true
},
Expand Down Expand Up @@ -272,4 +286,4 @@ GeoNetwork.admin.PrivilegesPanel = Ext.extend(Ext.grid.GridPanel, {
});
GeoNetwork.admin.PrivilegesPanel.superclass.initComponent.call(this);
}
});
});
Expand Up @@ -389,14 +389,22 @@ GeoNetwork.editor.LinkResourcesWindow = Ext.extend(Ext.Window, {
if (this.uploadForm.getForm().isValid()) {
var panel = this;
if (this.uploadThumbnail) {
this.uploadForm.getForm().submit({
url: this.setThumbnail,
waitMsg: OpenLayers.i18n('uploading'),
success: function (fp, o) {
self.editor.init(self.metadataId);
self.hide();
}
// Save current edits
this.editor.loadUrl('metadata.update.new', undefined, function () {
// Update version
panel.versionField.setValue(document.mainForm.version.value);
// and upload thumbnails
panel.uploadForm.getForm().submit({
url: panel.setThumbnail,
waitMsg: OpenLayers.i18n('uploading'),
success: function (fp, o) {
self.editor.init(self.metadataId);
self.hide();
}
});

});

} else {
this.runProcess();
}
Expand Down Expand Up @@ -925,7 +933,8 @@ GeoNetwork.editor.LinkResourcesWindow = Ext.extend(Ext.Window, {
xtype: 'spacer',
height: 20
});
cmp.push(this.getFormFieldForService());
var serviceField = this.getFormFieldForService();
serviceField && cmp.push(serviceField);

this.formPanel = new Ext.form.FormPanel({
items: cmp,
Expand Down
Expand Up @@ -485,11 +485,11 @@
<xsl:if test="gfc:listedValue">
<xsl:call-template name="complexElementGui">
<xsl:with-param name="title">
<xsl:value-of select="/root/gui/iso19110/element[@name='gfc:listedValue']/label"/>
<xsl:value-of select="/root/gui/schemas/iso19110/labels/element[@name='gfc:listedValue']/label"/>
<xsl:text> </xsl:text>
(<xsl:value-of select="/root/gui/iso19110/element[@name='gfc:label']/label"/>
[<xsl:value-of select="/root/gui/iso19110/element[@name='gfc:code']/label"/>] :
<xsl:value-of select="/root/gui/iso19110/element[@name='gfc:definition']/label"/>)
(<xsl:value-of select="/root/gui/schemas/iso19110/labels/element[@name='gfc:label']/label"/>
[<xsl:value-of select="/root/gui/schemas/iso19110/labels/element[@name='gfc:code']/label"/>] :
<xsl:value-of select="/root/gui/schemas/iso19110/labels/element[@name='gfc:definition']/label"/>)
</xsl:with-param>
<xsl:with-param name="content">

Expand Down
Expand Up @@ -16,7 +16,7 @@
</xsl:with-param>
<xsl:with-param name="exportButton"/>
<xsl:with-param name="logo">
<img src="../../images/logos/{//geonet:info/source}.gif" alt="logo"/>
<img src="../../images/logos/{//geonet:info/source}.gif" alt="logo" class="logo"/>
</xsl:with-param>
<xsl:with-param name="relatedResources">
<table class="related">
Expand Down
Expand Up @@ -25,6 +25,11 @@
<suggest name="gmd:contactInfo"/>
</field>

<field name="gmd:contactInstructions">
<suggest name="gco:CharacterString"/>
<suggest name="gmx:FileName"/>
</field>

<field name="gfc:FC_FeatureType">
<suggest name="gfc:typeName"/>
</field>
Expand Down
Expand Up @@ -87,7 +87,7 @@
</xsl:copy>
</xsl:template>

<xsl:template match="gmx:FileName">
<xsl:template match="gmx:FileName[name(..)!='gmd:contactInstructions']">
<xsl:copy>
<xsl:attribute name="src">
<xsl:choose>
Expand Down
Expand Up @@ -243,6 +243,17 @@
</xsl:choose>
</MD_LegalConstraints>
</resourceConstraints>

<xsl:if test="lower-case(.) = 'none'">
<resourceConstraints>
<MD_Constraints>
<useLimitation>
<gco:CharacterString>no conditions apply</gco:CharacterString>
</useLimitation>
</MD_Constraints>
</resourceConstraints>
</xsl:if>

</xsl:for-each>

<srv:serviceType>
Expand Down
Expand Up @@ -80,11 +80,11 @@
</phone>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<xsl:for-each select="ContactAddress|wms:ContactAddress|
<xsl:for-each select="ContactAddress|../wms:ContactInformation|wms:ContactAddress|
wcs:contactInfo|
ows:ServiceContact/ows:ContactInfo/ows:Address|
ows11:ServiceContact/ows11:ContactInfo/ows11:Address">

<address>
<CI_Address>
<xsl:apply-templates select="." mode="Address"/>
Expand Down Expand Up @@ -116,7 +116,6 @@
<!-- ============================================================================= -->

<xsl:template match="*" mode="Address">

<xsl:for-each select="Address|wms:Address|ows:DeliveryPoint|ows11:DeliveryPoint">
<deliveryPoint>
<gco:CharacterString><xsl:value-of select="."/></gco:CharacterString>
Expand Down Expand Up @@ -157,7 +156,7 @@

<!-- TODO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<xsl:for-each select="ContactElectronicMailAddress|../wms:ContactElectronicMailAddress|wcs:address/wcs:electronicMailAddress|ows:ElectronicMailAddress|ows11:ElectronicMailAddress">
<xsl:for-each select="ContactElectronicMailAddress|wms:ContactElectronicMailAddress|wcs:address/wcs:electronicMailAddress|ows:ElectronicMailAddress|ows11:ElectronicMailAddress">
<electronicMailAddress>
<gco:CharacterString><xsl:value-of select="."/></gco:CharacterString>
</electronicMailAddress>
Expand Down
Expand Up @@ -54,7 +54,7 @@ function init_OK(data)
alert(loader.getText('noEditors'));
else
for (var i=0; i<data.length; i++)
view.addSourceUser(data[i].id, data[i].surname +' '+ data[i].name);
view.addSourceUser(data[i].id, data[i].surname +' '+ data[i].name +' ('+ data[i].username +')');
}

//=====================================================================================
Expand Down
3 changes: 2 additions & 1 deletion web/src/main/webapp/scripts/ownership/view.js
Expand Up @@ -106,9 +106,10 @@ function setTargetUsers(groupId, ctrl)
var edId = xml.evalXPath(editors[j], 'id');
var name = xml.evalXPath(editors[j], 'name');
var surn = xml.evalXPath(editors[j], 'surname');
var username = xml.evalXPath(editors[j], 'username');

if (edId != srcId)
gui.addToSelect(ctrl, edId, surn +' '+ name);
gui.addToSelect(ctrl, edId, surn +' '+ name +' ('+ username +') ');
}
}
}
Expand Down

0 comments on commit 3eb6859

Please sign in to comment.