restyled GUI
git-svn-id: https://svn.research-infrastructures.eu/d4science/gcube/trunk/portlets/user/share-updates@122043 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
d0a4578f42
commit
eebe4de85f
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/share-updates-1.8.1-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||
<classpathentry kind="src" output="target/share-updates-1.8.2-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
|
@ -31,5 +31,5 @@
|
|||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/share-updates-1.8.1-SNAPSHOT/WEB-INF/classes"/>
|
||||
<classpathentry kind="output" path="target/share-updates-1.8.2-SNAPSHOT/WEB-INF/classes"/>
|
||||
</classpath>
|
||||
|
|
|
@ -7,9 +7,6 @@
|
|||
<dependent-module archiveName="gcube-widgets-1.9.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/gcube-widgets/gcube-widgets">
|
||||
<dependency-type>uses</dependency-type>
|
||||
</dependent-module>
|
||||
<dependent-module archiveName="pickitem-widget-1.1.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/pickitem-widget/pickitem-widget">
|
||||
<dependency-type>uses</dependency-type>
|
||||
</dependent-module>
|
||||
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
|
||||
<property name="context-root" value="share-updates"/>
|
||||
</wb-module>
|
||||
|
|
6
pom.xml
6
pom.xml
|
@ -13,7 +13,7 @@
|
|||
<groupId>org.gcube.portlets.user</groupId>
|
||||
<artifactId>share-updates</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<version>1.8.1-SNAPSHOT</version>
|
||||
<version>1.8.2-SNAPSHOT</version>
|
||||
|
||||
<name>gCube Share Updates Portlet</name>
|
||||
<description>
|
||||
|
@ -74,6 +74,10 @@
|
|||
<artifactId>social-networking-library</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.portal</groupId>
|
||||
<artifactId>notifications-common-library</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.applicationsupportlayer</groupId>
|
||||
<artifactId>aslcore</artifactId>
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.gcube.portlets.widgets.fileupload.client.view.UploadProgressPanel;
|
|||
import org.jsonmaker.gwt.client.Jsonizer;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Document;
|
||||
import com.google.gwt.dom.client.Element;
|
||||
import com.google.gwt.dom.client.Style.Display;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
|
@ -144,14 +145,12 @@ public class ShareUpdateForm extends Composite {
|
|||
|
||||
shareupdateService.getUserSettings(new AsyncCallback<UserSettings>() {
|
||||
public void onFailure(Throwable caught) {
|
||||
avatarImage.setSize("60px", "60px");
|
||||
avatarImage.setUrl(avatar_default);
|
||||
}
|
||||
|
||||
public void onSuccess(UserSettings userSettings) {
|
||||
myUserInfo = userSettings.getUserInfo();
|
||||
avatarImage.getElement().getParentElement().setAttribute("href", myUserInfo.getAccountURL());
|
||||
avatarImage.setSize("60px", "60px");
|
||||
avatarImage.setUrl(myUserInfo.getAvatarId());
|
||||
String singleVREName = "";
|
||||
|
||||
|
@ -198,6 +197,9 @@ public class ShareUpdateForm extends Composite {
|
|||
@UiHandler("shareTextArea")
|
||||
void onShareUpdateClick(ClickEvent e) {
|
||||
shareTextArea.removeSampleText();
|
||||
Document.get().getElementById("highlighterContainer").getStyle().setHeight(52, Unit.PX);
|
||||
Document.get().getElementById("highlighter").getStyle().setHeight(52, Unit.PX);
|
||||
Document.get().getElementById("postTextArea").getStyle().setHeight(52, Unit.PX);
|
||||
}
|
||||
|
||||
@UiHandler("attachButton")
|
||||
|
|
|
@ -3,16 +3,13 @@
|
|||
xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:m="urn:import:org.gcube.portlets.user.shareupdates.client.view"
|
||||
xmlns:j="urn:import:org.gcube.portlets.widgets.fileupload.client.view">
|
||||
<g:HTMLPanel ui:field="mainPanel">
|
||||
<table class="tab-main-container">
|
||||
<tr>
|
||||
<td align="middle" valign="top">
|
||||
<a href="">
|
||||
<g:Image title="Edit Profile Picture" styleName="member-photo"
|
||||
url="" ui:field="avatarImage" width="60px" height="60px" />
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td valign="top">
|
||||
<div class="share-updates-table">
|
||||
<div>
|
||||
<div class="share-updates-photo-cell">
|
||||
<g:Image title="Edit Profile Picture" styleName="share-updates-member-photo"
|
||||
url="" ui:field="avatarImage" />
|
||||
</div>
|
||||
<div class="share-updates-cell">
|
||||
<div id="supercontainer">
|
||||
<div id="highlighterContainer">
|
||||
<div id="highlighter">
|
||||
|
@ -23,11 +20,13 @@
|
|||
ui:field="shareTextArea" />
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<j:UploadProgressPanel ui:field="uploadProgress"></j:UploadProgressPanel>
|
||||
<m:Placeholder ui:field="preview"></m:Placeholder>
|
||||
|
||||
<table class="toolsContainer">
|
||||
<tr>
|
||||
<td valign="middle" width="60px;">
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
package org.gcube.portlets.user.shareupdates.server;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.applicationsupportlayer.social.NotificationsManager;
|
||||
import org.gcube.portlets.widgets.pickitem.shared.ItemBean;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante ISTI-CNR
|
||||
*
|
||||
*/
|
||||
public class MentionNotificationsThread implements Runnable {
|
||||
private static Logger _log = LoggerFactory.getLogger(MentionNotificationsThread.class);
|
||||
|
||||
private String postText;
|
||||
private String postId;
|
||||
private NotificationsManager nm;
|
||||
private ArrayList<ItemBean> users;
|
||||
|
||||
|
||||
public MentionNotificationsThread(String postId, String postText, NotificationsManager nm, ArrayList<ItemBean> users) {
|
||||
super();
|
||||
this.postId = postId;
|
||||
this.postText = postText;
|
||||
this.nm = nm;
|
||||
this.users = users;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
for (ItemBean userToNotify : users) {
|
||||
boolean result = nm.notifyUserTag(userToNotify.getName(), postId, postText);
|
||||
_log.trace("Sending Notification for post mention to: " + userToNotify.getName() + " result?"+ result);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
package org.gcube.portlets.user.shareupdates.server;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.applicationsupportlayer.social.NotificationsManager;
|
||||
import org.gcube.vomanagement.usermanagement.UserManager;
|
||||
import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayUserManager;
|
||||
import org.gcube.vomanagement.usermanagement.model.UserModel;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante ISTI-CNR
|
||||
*
|
||||
*/
|
||||
public class PostNotificationsThread implements Runnable {
|
||||
private static Logger _log = LoggerFactory.getLogger(PostNotificationsThread.class);
|
||||
|
||||
private String postText;
|
||||
private String postId;
|
||||
private String groupId;
|
||||
private List<String> hashtags;
|
||||
private NotificationsManager nm;
|
||||
|
||||
public PostNotificationsThread(String postId, String postText, String groupId, NotificationsManager nm, List<String> hashtags) {
|
||||
super();
|
||||
this.postId = postId;
|
||||
this.postText = postText;
|
||||
this.groupId = groupId;
|
||||
this.hashtags = hashtags;
|
||||
this.nm = nm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
UserManager um = new LiferayUserManager();
|
||||
String[] hashtagsToPass = hashtags.toArray(new String[hashtags.size()]);
|
||||
try {
|
||||
for (UserModel user : um.listUsersByGroup(groupId)) {
|
||||
boolean result = nm.notifyPost(user.getScreenName(), postId, postText, hashtagsToPass);
|
||||
_log.trace("Sending Notification for post alert to: " + user.getScreenName() + " result?"+ result);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -39,6 +39,9 @@ import org.gcube.portal.databook.shared.FeedType;
|
|||
import org.gcube.portal.databook.shared.PrivacyLevel;
|
||||
import org.gcube.portal.databook.shared.UserInfo;
|
||||
import org.gcube.portal.databook.shared.ex.FeedIDNotFoundException;
|
||||
import org.gcube.portal.notifications.bean.GenericItemBean;
|
||||
import org.gcube.portal.notifications.thread.MentionNotificationsThread;
|
||||
import org.gcube.portal.notifications.thread.PostNotificationsThread;
|
||||
import org.gcube.portlets.user.shareupdates.client.ShareUpdateService;
|
||||
import org.gcube.portlets.user.shareupdates.client.view.ShareUpdateForm;
|
||||
import org.gcube.portlets.user.shareupdates.server.opengraph.OpenGraph;
|
||||
|
@ -249,7 +252,11 @@ public class ShareUpdateServiceImpl extends RemoteServiceServlet implements Shar
|
|||
//send the notification to the mentioned users
|
||||
if (mentionedUsers != null && mentionedUsers.size() > 0) {
|
||||
NotificationsManager nm = new ApplicationNotificationsManager(session);
|
||||
Thread thread = new Thread(new MentionNotificationsThread(toShare.getKey(), textToPost, nm, mentionedUsers));
|
||||
ArrayList<GenericItemBean> toPass = new ArrayList<GenericItemBean>();
|
||||
for (ItemBean u : mentionedUsers) {
|
||||
toPass.add(new GenericItemBean(u.getId(), u.getName(), u.getAlternativeName(), u.getThumbnailURL()));
|
||||
}
|
||||
Thread thread = new Thread(new MentionNotificationsThread(toShare.getKey(), textToPost, nm, toPass));
|
||||
thread.start();
|
||||
}
|
||||
|
||||
|
|
|
@ -26,5 +26,5 @@
|
|||
<!-- Specify the paths for translatable code -->
|
||||
<source path='client' />
|
||||
<source path='shared' />
|
||||
|
||||
<add-linker name="xsiframe" />
|
||||
</module>
|
||||
|
|
|
@ -1,3 +1,34 @@
|
|||
.share-updates-table {
|
||||
display: table;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.share-updates-table>div {
|
||||
display: table-row;
|
||||
}
|
||||
|
||||
.share-updates-table .share-updates-cell {
|
||||
display: table-cell;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
.share-updates-table .share-updates-photo-cell {
|
||||
display: table-cell;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.share-updates-photo-cell>img {
|
||||
|
||||
}
|
||||
|
||||
.share-updates-member-photo {
|
||||
margin-left: 6px;
|
||||
width: 39px;
|
||||
height: 39px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/* Superpose TextArea and Highlight DIV trick starts here */
|
||||
#supercontainer {
|
||||
|
@ -10,7 +41,7 @@
|
|||
top: 0;
|
||||
cursor: text;
|
||||
width: 525px;
|
||||
height: 54px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
#inputContainer {
|
||||
|
@ -27,38 +58,32 @@
|
|||
font-size: 13px;
|
||||
letter-spacing: normal;
|
||||
line-height: normal;
|
||||
|
||||
border: 1px solid transparent;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
width: 525px;
|
||||
height: 54px;
|
||||
|
||||
word-wrap: break-word; /* this is very important when usere paste long links*/
|
||||
height: 32px;
|
||||
word-wrap: break-word;
|
||||
/* this is very important when usere paste long links*/
|
||||
}
|
||||
|
||||
|
||||
.postTextArea {
|
||||
padding: 4px 2px;
|
||||
color: #999;
|
||||
background-color: transparent;
|
||||
|
||||
margin: 0px;
|
||||
font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial,
|
||||
sans-serif;
|
||||
font-size: 13px;
|
||||
letter-spacing: normal;
|
||||
line-height: normal;
|
||||
|
||||
border: 1px solid #999;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
width: 525px;
|
||||
height: 54px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.highlightedUser {
|
||||
|
@ -69,7 +94,6 @@
|
|||
background-color: #0084B5 !important;
|
||||
}
|
||||
|
||||
|
||||
/* DIV trick ends here */
|
||||
|
||||
.gwt-Button {
|
||||
|
@ -101,7 +125,7 @@
|
|||
padding: 5px 15px;
|
||||
}
|
||||
|
||||
.shareButton:hover, .shareButton:focus {
|
||||
.shareButton:hover,.shareButton:focus {
|
||||
background-color: #019AD3;
|
||||
background-image: linear-gradient(#33BCEF, #019AD3);
|
||||
border-color: #057ED0;
|
||||
|
@ -111,7 +135,6 @@
|
|||
background: #e3e8f3;
|
||||
}
|
||||
|
||||
|
||||
.framed {
|
||||
margin: 0 0 10px;
|
||||
padding: 10px;
|
||||
|
@ -128,13 +151,6 @@
|
|||
padding-top: 2px;
|
||||
}
|
||||
|
||||
.member-photo {
|
||||
display: block;
|
||||
padding: 2px;
|
||||
border: 1px solid #E6E6E6;
|
||||
margin: 0 2px 2px 0;
|
||||
}
|
||||
|
||||
.link-previewer {
|
||||
width: 600px;
|
||||
padding-top: 10px;
|
||||
|
@ -163,7 +179,7 @@
|
|||
font-weight: bold;
|
||||
line-height: 15px;
|
||||
width: 465px;
|
||||
word-break:break-all;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.link-url {
|
||||
|
@ -240,12 +256,9 @@ a.link:hover {
|
|||
}
|
||||
|
||||
.toolsContainer {
|
||||
padding-top: 3px;
|
||||
width: 600px;
|
||||
padding: 3px 0 0 2px;
|
||||
width: 595px;
|
||||
background-image: none;
|
||||
border-top-color: #DADADA;
|
||||
border-top-style: solid;
|
||||
border-top-width: 1px;
|
||||
}
|
||||
|
||||
.wizardListbox {
|
||||
|
@ -259,10 +272,11 @@ a.link:hover {
|
|||
border-style: solid;
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
margin-left: 6px;
|
||||
margin-left: 0px;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
/* smart textarea */
|
||||
|
|
Loading…
Reference in New Issue