protected void updateActivitySettings(ActionRequest actionRequest) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); String settingsJSON = ParamUtil.getString(actionRequest, "settingsJSON"); JSONObject settingsJSONObject = JSONFactoryUtil.createJSONObject(settingsJSON); JSONArray actionsJSONArray = settingsJSONObject.getJSONArray("actions"); String modelName = settingsJSONObject.getString("modelName"); for (int i = 0; i < actionsJSONArray.length(); i++) { JSONObject actionJSONObject = actionsJSONArray.getJSONObject(i); int activityType = actionJSONObject.getInt("activityType"); SocialActivityDefinition activityDefinition = SocialActivitySettingServiceUtil.getActivityDefinition( themeDisplay.getSiteGroupIdOrLiveGroupId(), modelName, activityType); if (activityDefinition == null) { continue; } List<SocialActivityCounterDefinition> activityCounterDefinitions = new ArrayList<>(); activityCounterDefinitions.add( updateActivityCounterDefinition( actionJSONObject, activityDefinition, SocialActivityCounterConstants.NAME_CONTRIBUTION)); activityCounterDefinitions.add( updateActivityCounterDefinition( actionJSONObject, activityDefinition, SocialActivityCounterConstants.NAME_PARTICIPATION)); activityCounterDefinitions.add( updateActivityCounterDefinition( actionJSONObject, activityDefinition, SocialActivityCounterConstants.NAME_POPULARITY)); SocialActivitySettingServiceUtil.updateActivitySettings( themeDisplay.getSiteGroupIdOrLiveGroupId(), modelName, activityType, activityCounterDefinitions); } }
protected SocialActivityCounterDefinition updateActivityCounterDefinition( JSONObject actionJSONObject, SocialActivityDefinition activityDefinition, String activityCounterName) { SocialActivityCounterDefinition activityCounterDefinition = activityDefinition.getActivityCounterDefinition(activityCounterName); if (activityCounterDefinition == null) { activityCounterDefinition = new SocialActivityCounterDefinition(); activityCounterDefinition.setName(activityCounterName); } if (activityCounterName.equals(SocialActivityCounterConstants.NAME_CONTRIBUTION)) { activityCounterDefinition.setOwnerType(SocialActivityCounterConstants.TYPE_CREATOR); } else if (activityCounterName.equals(SocialActivityCounterConstants.NAME_PARTICIPATION)) { activityCounterDefinition.setOwnerType(SocialActivityCounterConstants.TYPE_ACTOR); } else if (activityCounterName.equals(SocialActivityCounterConstants.NAME_POPULARITY)) { activityCounterDefinition.setOwnerType(SocialActivityCounterConstants.TYPE_ASSET); activityCounterName = SocialActivityCounterConstants.NAME_CONTRIBUTION; } else { throw new IllegalArgumentException(); } activityCounterDefinition.setEnabled(actionJSONObject.getBoolean("active")); activityCounterDefinition.setIncrement( actionJSONObject.getInt(activityCounterName + "Increment")); activityCounterDefinition.setLimitPeriod( actionJSONObject.getInt(activityCounterName + "LimitPeriod")); activityCounterDefinition.setLimitValue( actionJSONObject.getInt(activityCounterName + "LimitValue")); return activityCounterDefinition; }
@Override protected String getTitle( JSONObject jsonObject, AssetRenderer<?> assetRenderer, ServiceContext serviceContext) { MicroblogsEntry microblogsEntry = _microblogsEntryLocalService.fetchMicroblogsEntry(assetRenderer.getClassPK()); String title = StringPool.BLANK; String userFullName = HtmlUtil.escape(PortalUtil.getUserName(microblogsEntry.getUserId(), StringPool.BLANK)); int notificationType = jsonObject.getInt("notificationType"); if (notificationType == MicroblogsEntryConstants.NOTIFICATION_TYPE_REPLY) { title = serviceContext.translate("x-commented-on-your-post", userFullName); } else if (notificationType == MicroblogsEntryConstants.NOTIFICATION_TYPE_REPLY_TO_REPLIED) { long parentMicroblogsEntryUserId = microblogsEntry.fetchParentMicroblogsEntryUserId(); User user = _userLocalService.fetchUser(parentMicroblogsEntryUserId); if (user != null) { title = serviceContext.translate( "x-also-commented-on-x's-post", userFullName, user.getFullName()); } } else if (notificationType == MicroblogsEntryConstants.NOTIFICATION_TYPE_REPLY_TO_TAGGED) { title = serviceContext.translate("x-commented-on-a-post-you-are-tagged-in", userFullName); } else if (notificationType == MicroblogsEntryConstants.NOTIFICATION_TYPE_TAG) { title = serviceContext.translate("x-tagged-you-in-a-post", userFullName); } return title; }
protected FileEntry saveTempImageFileEntry(ActionRequest actionRequest) throws Exception { FileEntry tempFileEntry = null; InputStream tempImageStream = null; try { tempFileEntry = getTempImageFileEntry(actionRequest); tempImageStream = tempFileEntry.getContentStream(); ImageBag imageBag = ImageToolUtil.read(tempImageStream); RenderedImage renderedImage = imageBag.getRenderedImage(); String cropRegionJSON = ParamUtil.getString(actionRequest, "cropRegion"); if (Validator.isNotNull(cropRegionJSON)) { JSONObject jsonObject = JSONFactoryUtil.createJSONObject(cropRegionJSON); int height = jsonObject.getInt("height"); int width = jsonObject.getInt("width"); int x = jsonObject.getInt("x"); int y = jsonObject.getInt("y"); if ((x == 0) && (y == 0) && (renderedImage.getHeight() == height) && (renderedImage.getWidth() == width)) { return tempFileEntry; } if ((height + y) > renderedImage.getHeight()) { height = renderedImage.getHeight() - y; } if ((width + x) > renderedImage.getWidth()) { width = renderedImage.getWidth() - x; } renderedImage = ImageToolUtil.crop(renderedImage, height, width, x, y); } byte[] bytes = ImageToolUtil.getBytes(renderedImage, imageBag.getType()); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); File file = FileUtil.createTempFile(bytes); try { TempFileEntryUtil.deleteTempFileEntry( themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), getTempImageFolderName(), getTempImageFileName(actionRequest)); } catch (Exception e) { } return TempFileEntryUtil.addTempFileEntry( themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), getTempImageFolderName(), getTempImageFileName(actionRequest), file, tempFileEntry.getMimeType()); } catch (NoSuchFileEntryException nsfee) { throw new UploadException(nsfee); } catch (NoSuchRepositoryException nsre) { throw new UploadException(nsre); } finally { StreamUtil.cleanUp(tempImageStream); } }