Commit 5c969a65 by Ildar Safiullin

Initial commit

parents

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

**/*.iml
**/.ivy
**/.classpath
**/.project
**/.sass-cache
**/.settings
**/bin
**/build
**/build_gradle
**/node_modules
**/test-coverage
**/tmp
**/.web_bundle_build
.gradle
.idea
/bundles
/gradle-*.properties
/plugins-sdk/**/classes
/plugins-sdk/**/ivy.xml.MD5
/plugins-sdk/**/liferay-hook.xml.processed
/plugins-sdk/build.*.properties
/plugins-sdk/dependencies/**/*.jar
/plugins-sdk/dist
/plugins-sdk/lib
test-results
/modules/test
\ No newline at end of file
include-and-override=portal-developer.properties
#
# MySQL
#
#jdbc.default.driverClassName=com.mysql.jdbc.Driver
#jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
#jdbc.default.username=root
#jdbc.default.password=
\ No newline at end of file
include-and-override=portal-developer.properties
#
# MySQL
#
#jdbc.default.driverClassName=com.mysql.jdbc.Driver
#jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
#jdbc.default.username=root
#jdbc.default.password=
\ No newline at end of file
operationMode=REMOTE
transportAddresses=127.0.0.1:9300
\ No newline at end of file
#
# MySQL
#
#jdbc.default.driverClassName=com.mysql.jdbc.Driver
#jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
#jdbc.default.username=root
#jdbc.default.password=
\ No newline at end of file
operationMode=REMOTE
transportAddresses=127.0.0.1:9300
logExceptionsOnly=false
\ No newline at end of file
#
# MySQL
#
#jdbc.default.driverClassName=com.mysql.jdbc.Driver
#jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
#jdbc.default.username=root
#jdbc.default.password=
\ No newline at end of file
# Set the directory where the downloaded bundle Zip files are stored. The
# default value is the ".liferay/bundles" folder inside the user home
# directory.
#
#liferay.workspace.bundle.cache.dir=~/.liferay/bundles
#
# Set this to true if the "liferay.workspace.bundle.url" property is set to
# a DXP bundle Zip. This property allows the token residing in the
# "~/.liferay" folder to be used to validate your user credentials when
# downloading the bundle. The default value is false.
#
#liferay.workspace.bundle.token.download=false
#
# Set the email address to use when downloading a DXP bundle. This is used
# to create the authentication token. The email address must match the one
# registered for your DXP subscription.
#
# If you wish to create a new token without providing your email address and
# password in this file, you can create a token manually by navigating to
# your Liferay profile's Account Setting page and generating a token in the
# Authentication Tokens menu. Your token must reside in the "~/.liferay"
# folder.
#
#liferay.workspace.bundle.token.email.address=
#
# Set this to true to override the existing token with a newly generated
# token created by the "createToken" task. The default value is false.
#
#liferay.workspace.bundle.token.force=false
#
# Set the password to use when downloading a DXP bundle. This is used to
# create the authentication token. The password must match the one
# registered for your DXP subscription. See the
# "liferay.workspace.bundle.token.email.address" property for more details.
#
#liferay.workspace.bundle.token.password=
#
# Set the file to hold the Liferay bundle authentication token password.
# The default file value is "~/.liferay/token".
#
#liferay.workspace.bundle.token.password.file=
#
# Set the URL pointing to the bundle Zip to download. If the URL points to a
# DXP bundle (e.g., https://api.liferay.com/...), set the
# "liferay.workspace.bundle.token.download" property to true. The default
# value is the URL for Liferay Portal CE 7.0.3 GA4.
#
#liferay.workspace.bundle.url=https://cdn.lfrs.sl/releases.liferay.com/portal/7.0.4-ga5/liferay-ce-portal-tomcat-7.0-ga5-20171018150113838.zip
#
# Set this to true to configure Liferay CDN as the default repository in the
# root project. The default value is true.
#
#liferay.workspace.default.repository.enabled=true
#
# Set the environment with the settings appropriate for current development.
# The "configs" folder is used to hold different environments in the same
# workspace. You can organize environment settings and generate an
# environment installation with those settings. There are five
# environments: common, dev, local, prod, and uat. The default value is
# "local".
#
#liferay.workspace.environment=local
#
# Set the folder that contains the Liferay bundle downloaded from the
# "liferay.workspace.bundle.url" property. The default value is "bundles".
#
#liferay.workspace.home.dir=bundles
#
# Set this to true to configure Liferay CDN as the default repository for
# module/OSGi projects. The default value is true.
#
#liferay.workspace.modules.default.repository.enabled=true
#
# Set the folder that contains all module/OSGi projects. The default value
# is "modules".
#
#liferay.workspace.modules.dir=modules
#
# Set this to true to compile the JSP files in OSGi modules and have them
# added to the distributable Zip/Tar. The default value is false.
#
#liferay.workspace.modules.jsp.precompile.enabled=false
#
# Set the folder that contains the Plugins SDK environment. The default
# value is "plugins-sdk".
#
#liferay.workspace.plugins.sdk.dir=plugins-sdk
#
# Set the folder that contains Node.js-style theme projects. The default
# value is "themes".
#
#liferay.workspace.themes.dir=themes
#
# Set the folder that contains classic WAR-style projects. The default value
# is "wars".
#
#liferay.workspace.wars.dir=wars
#
# Set the subscription key for Microsoft Translation integration.
# Subscription to the Translator Text Translation API on Microsoft Cognitive
# Services is required. Basic subscriptions, up to 2 million characters a
# month, are free. See
# http://docs.microsofttranslator.com/text-translate.html for more
# information.
#
org.gradle.java.home=C:\\Java\\jdk1.8.0_131
microsoft.translator.subscription.key=
\ No newline at end of file
#Thu Aug 18 11:52:36 CDT 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
\ No newline at end of file
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [[ "$(uname)" == "Darwin" ]] && [[ "$HOME" == "$PWD" ]]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
.gradle/
build/
target/
\ No newline at end of file
Bundle-Name: assetPublicher
Bundle-SymbolicName: assetpublicher
Bundle-Version: 1.0.0
Fragment-Host: com.liferay.asset.publisher.web;bundle-version="1.6.10"
\ No newline at end of file
<%--
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
--%>
<%@ include file="/init.jsp" %>
<%
String redirect = ParamUtil.getString(request, "redirect");
if (Validator.isNull(redirect)) {
redirect = ParamUtil.getString(PortalUtil.getOriginalServletRequest(request), "redirect");
}
boolean showBackURL = GetterUtil.getBoolean(request.getAttribute("view.jsp-showBackURL"));
if (Validator.isNull(redirect)) {
PortletURL portletURL = renderResponse.createRenderURL();
portletURL.setParameter("mvcPath", "/view.jsp");
redirect = portletURL.toString();
}
List results = (List)request.getAttribute("view.jsp-results");
int assetEntryIndex = ((Integer)request.getAttribute("view.jsp-assetEntryIndex")).intValue();
AssetEntry assetEntry = (AssetEntry)request.getAttribute("view.jsp-assetEntry");
AssetRendererFactory<?> assetRendererFactory = (AssetRendererFactory<?>)request.getAttribute("view.jsp-assetRendererFactory");
AssetRenderer<?> assetRenderer = (AssetRenderer<?>)request.getAttribute("view.jsp-assetRenderer");
String languageId = LanguageUtil.getLanguageId(request);
String title = assetRenderer.getTitle(LocaleUtil.fromLanguageId(languageId));
boolean print = ((Boolean)request.getAttribute("view.jsp-print")).booleanValue();
boolean workflowEnabled = WorkflowDefinitionLinkLocalServiceUtil.hasWorkflowDefinitionLink(assetEntry.getCompanyId(), assetEntry.getGroupId(), assetEntry.getClassName());
assetPublisherDisplayContext.setLayoutAssetEntry(assetEntry);
assetEntry = assetPublisherDisplayContext.incrementViewCounter(assetEntry);
request.setAttribute("view.jsp-fullContentRedirect", workflowEnabled ? redirect : currentURL);
request.setAttribute("view.jsp-showIconLabel", true);
%>
<div class="h2">
<%-- <c:if test="<%= assetPublisherDisplayContext.isShowAssetTitle() %>">
<c:if test="<%= showBackURL && Validator.isNotNull(redirect) %>">
<liferay-ui:icon
cssClass="header-back-to"
icon="angle-left"
markupView="lexicon"
url="<%= redirect %>"
/>
</c:if>
<span class="header-title"><%= HtmlUtil.escape(title) %></span>
</c:if> --%>
<c:if test="<%= !print %>">
<liferay-util:include page="/asset_actions.jsp" servletContext="<%= application %>" />
</c:if>
</div>
<div class="asset-full-content clearfix <%= assetPublisherDisplayContext.isDefaultAssetPublisher() ? "default-asset-publisher" : StringPool.BLANK %> <%= assetPublisherDisplayContext.isShowAssetTitle() ? "show-asset-title" : "no-title" %>">
<c:if test="<%= (assetPublisherDisplayContext.isEnableConversions() && assetRenderer.isConvertible()) || (assetPublisherDisplayContext.isEnablePrint() && assetRenderer.isPrintable()) || (assetPublisherDisplayContext.isShowAvailableLocales() && assetRenderer.isLocalizable()) %>">
<div class="asset-user-actions">
<c:if test="<%= assetPublisherDisplayContext.isEnablePrint() %>">
<div class="print-action">
<%@ include file="/asset_print.jspf" %>
</div>
</c:if>
<c:if test="<%= assetPublisherDisplayContext.isEnableConversions() && assetRenderer.isConvertible() && !print %>">
<div class="export-actions">
<%@ include file="/asset_export.jspf" %>
</div>
</c:if>
<c:if test="<%= assetPublisherDisplayContext.isShowAvailableLocales() && assetRenderer.isLocalizable() && !print %>">
<%
String[] availableLanguageIds = assetRenderer.getAvailableLanguageIds();
%>
<c:if test="<%= availableLanguageIds.length > 1 %>">
<c:if test="<%= assetPublisherDisplayContext.isEnableConversions() || assetPublisherDisplayContext.isEnablePrint() %>">
<div class="locale-separator"> </div>
</c:if>
<div class="locale-actions">
<liferay-ui:language formAction="<%= currentURL %>" languageId="<%= languageId %>" languageIds="<%= availableLanguageIds %>" />
</div>
</c:if>
</c:if>
</div>
</c:if>
<%
PortletURL viewFullContentURL = renderResponse.createRenderURL();
viewFullContentURL.setParameter("mvcPath", "/view_content.jsp");
viewFullContentURL.setParameter("type", assetRendererFactory.getType());
if (print) {
viewFullContentURL.setParameter("viewMode", Constants.PRINT);
}
if (Validator.isNotNull(assetRenderer.getUrlTitle())) {
if (assetRenderer.getGroupId() != scopeGroupId) {
viewFullContentURL.setParameter("groupId", String.valueOf(assetRenderer.getGroupId()));
}
viewFullContentURL.setParameter("urlTitle", assetRenderer.getUrlTitle());
}
String socialBookmarksDisplayPosition = assetPublisherDisplayContext.getSocialBookmarksDisplayPosition();
%>
<div class="asset-content" id="<portlet:namespace /><%= assetEntry.getEntryId() %>">
<c:if test='<%= assetPublisherDisplayContext.isEnableSocialBookmarks() && socialBookmarksDisplayPosition.equals("top") && !print %>'>
<div class="pull-right">
<liferay-ui:social-bookmarks
contentId="<%= String.valueOf(assetEntry.getEntryId()) %>"
displayStyle="<%= assetPublisherDisplayContext.getSocialBookmarksDisplayStyle() %>"
target="_blank"
title="<%= title %>"
url="<%= PortalUtil.getCanonicalURL(viewFullContentURL.toString(), themeDisplay, layout) %>"
/>
</div>
</c:if>
<liferay-ui:asset-display
assetEntry="<%= assetEntry %>"
assetRenderer="<%= assetRenderer %>"
assetRendererFactory="<%= assetRendererFactory %>"
showExtraInfo="<%= assetPublisherDisplayContext.isShowExtraInfo() %>"
/>
<c:if test='<%= assetPublisherDisplayContext.isEnableSocialBookmarks() && socialBookmarksDisplayPosition.equals("bottom") && !print %>'>
<div class="pull-right">
<liferay-ui:social-bookmarks
displayStyle="<%= assetPublisherDisplayContext.getSocialBookmarksDisplayStyle() %>"
target="_blank"
title="<%= title %>"
url="<%= PortalUtil.getCanonicalURL(viewFullContentURL.toString(), themeDisplay, layout) %>"
/>
</div>
</c:if>
<c:if test="<%= assetPublisherDisplayContext.isEnableFlags() %>">
<div class="asset-flag">
<liferay-flags:flags
className="<%= assetEntry.getClassName() %>"
classPK="<%= assetEntry.getClassPK() %>"
contentTitle="<%= title %>"
reportedUserId="<%= assetRenderer.getUserId() %>"
/>
</div>
</c:if>
<c:if test="<%= assetPublisherDisplayContext.isEnableRatings() && assetRenderer.isRatable() %>">
<div class="asset-ratings">
<liferay-ui:ratings
className="<%= assetEntry.getClassName() %>"
classPK="<%= assetEntry.getClassPK() %>"
/>
</div>
</c:if>
<c:if test="<%= assetPublisherDisplayContext.isShowContextLink(assetRenderer.getGroupId(), assetRendererFactory.getPortletId()) && !print && assetEntry.isVisible() %>">
<div class="asset-more">
<a href="<%= assetRenderer.getURLViewInContext(liferayPortletRequest, liferayPortletResponse, HttpUtil.setParameter(viewFullContentURL.toString(), "redirect", currentURL)) %>"><liferay-ui:message key="<%= assetRenderer.getViewInContextMessage() %>" /> &raquo;</a>
</div>
</c:if>
<c:if test="<%= assetPublisherDisplayContext.isEnableRelatedAssets() %>">
<%
PortletURL assetLingsURL = renderResponse.createRenderURL();
assetLingsURL.setParameter("mvcPath", "/view_content.jsp");
if (print) {
assetLingsURL.setParameter("viewMode", Constants.PRINT);
}
%>
<liferay-ui:asset-links
assetEntryId="<%= assetEntry.getEntryId() %>"
portletURL="<%= assetLingsURL %>"
/>
</c:if>
<c:if test="<%= assetPublisherDisplayContext.isEnableComments() && assetRenderer.isCommentable() %>">
<div class="col-md-12">
<liferay-ui:discussion
className="<%= assetEntry.getClassName() %>"
classPK="<%= assetEntry.getClassPK() %>"
formName='<%= "fm" + assetEntry.getClassPK() %>'
ratingsEnabled="<%= assetPublisherDisplayContext.isEnableCommentRatings() %>"
redirect="<%= currentURL %>"
userId="<%= assetRenderer.getUserId() %>"
/>
</div>
</c:if>
</div>
<liferay-ui:asset-metadata
className="<%= assetEntry.getClassName() %>"
classPK="<%= assetEntry.getClassPK() %>"
filterByMetadata="<%= true %>"
metadataFields="<%= assetPublisherDisplayContext.getMetadataFields() %>"
/>
</div>
<c:if test="<%= !assetPublisherDisplayContext.isShowAssetTitle() && ((assetEntryIndex + 1) < results.size()) %>">
<div class="separator"><!-- --></div>
</c:if>
<%!
%>
\ No newline at end of file
<%--
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
--%>
<%@ include file="/init.jsp" %>
<liferay-util:dynamic-include key="com.liferay.asset.publisher.web#/view_content.jsp#pre" />
<%
String returnToFullPageURL = ParamUtil.getString(request, "returnToFullPageURL");
if (Validator.isNotNull(returnToFullPageURL)) {
portletDisplay.setURLBack(returnToFullPageURL);
}
long assetEntryId = ParamUtil.getLong(request, "assetEntryId");
String type = ParamUtil.getString(request, "type");
long groupId = ParamUtil.getLong(request, "groupId", scopeGroupId);
String urlTitle = ParamUtil.getString(request, "urlTitle");
boolean print = ParamUtil.getString(request, "viewMode").equals(Constants.PRINT);
AssetEntry assetEntry = null;
AssetRendererFactory<?> assetRendererFactory = AssetRendererFactoryRegistryUtil.getAssetRendererFactoryByType(type);
AssetRenderer<?> assetRenderer = null;
if (Validator.isNotNull(urlTitle)) {
assetRenderer = assetRendererFactory.getAssetRenderer(groupId, urlTitle);
assetEntry = assetRendererFactory.getAssetEntry(assetRendererFactory.getClassName(), assetRenderer.getClassPK());
}
else {
assetEntry = assetRendererFactory.getAssetEntry(assetEntryId);
assetRenderer = assetRendererFactory.getAssetRenderer(assetEntry.getClassPK());
}
%>
<c:choose>
<c:when test="<%= assetEntry.isVisible() %>">
<%
String title = assetRenderer.getTitle(locale);
request.setAttribute("view.jsp-showBackURL", Boolean.valueOf(!print));
request.setAttribute("view.jsp-results", new ArrayList());
request.setAttribute("view.jsp-assetEntryIndex", Integer.valueOf(0));
request.setAttribute("view.jsp-assetEntry", assetEntry);
request.setAttribute("view.jsp-assetRenderer", assetRenderer);
request.setAttribute("view.jsp-assetRendererFactory", assetRendererFactory);
request.setAttribute("view.jsp-title", title);
request.setAttribute("view.jsp-print", Boolean.valueOf(print));
PortalUtil.addPortletBreadcrumbEntry(request, title, currentURL);
%>
<div>
<liferay-util:include page="/display/full_content.jsp" servletContext="<%= application %>" />
</div>
<liferay-util:include page="/asset_html_metadata.jsp" servletContext="<%= application %>" />
</c:when>
<c:otherwise>
<%
SessionErrors.add(renderRequest, NoSuchModelException.class.getName());
%>
<liferay-util:include page="/error.jsp" servletContext="<%= application %>" />
</c:otherwise>
</c:choose>
<liferay-util:dynamic-include key="com.liferay.asset.publisher.web#/view_content.jsp#post" />
\ No newline at end of file
.gradle/
build/
target/
\ No newline at end of file
Bundle-Name: media-gallery-web-jsp-hook
Bundle-SymbolicName: media.gallery.web.jsp.hook
Bundle-Version: 1.0.0
Fragment-Host: com.liferay.document.library.web;bundle-version="1.3.16"
\ No newline at end of file
<%--
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
--%>
<%@ include file="/image_gallery_display/init.jsp" %>
<%
Folder folder = (Folder)request.getAttribute(WebKeys.DOCUMENT_LIBRARY_FOLDER);
long folderId = BeanParamUtil.getLong(folder, request, "folderId", rootFolderId);
boolean defaultFolderView = false;
if ((folder == null) && (rootFolderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID)) {
defaultFolderView = true;
}
if (defaultFolderView) {
try {
folder = DLAppLocalServiceUtil.getFolder(folderId);
}
catch (NoSuchFolderException nsfe) {
folderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
}
}
long repositoryId = scopeGroupId;
if (folder != null) {
repositoryId = folder.getRepositoryId();
}
int status = WorkflowConstants.STATUS_APPROVED;
if (permissionChecker.isContentReviewer(user.getCompanyId(), scopeGroupId)) {
status = WorkflowConstants.STATUS_ANY;
}
Map<String, Object> contextObjects = new HashMap<String, Object>();
contextObjects.put("dlPortletInstanceSettings", dlPortletInstanceSettings);
String[] mediaGalleryMimeTypes = dlPortletInstanceSettings.getMimeTypes();
List fileEntries = DLAppServiceUtil.getGroupFileEntries(scopeGroupId, 0, folderId, mediaGalleryMimeTypes, status, 0, SearchContainer.MAX_DELTA, null);
%>
<liferay-ddm:template-renderer className="<%= FileEntry.class.getName() %>" contextObjects="<%= contextObjects %>" displayStyle="<%= displayStyle %>" displayStyleGroupId="<%= displayStyleGroupId %>" entries="<%= fileEntries %>">
<%
String topLink = ParamUtil.getString(request, "topLink", "home");
long assetCategoryId = ParamUtil.getLong(request, "categoryId");
String assetTagName = ParamUtil.getString(request, "tag");
boolean useAssetEntryQuery = (assetCategoryId > 0) || Validator.isNotNull(assetTagName);
PortletURL portletURL = renderResponse.createRenderURL();
portletURL.setParameter("mvcRenderCommandName", "/image_gallery_display/view");
portletURL.setParameter("topLink", topLink);
portletURL.setParameter("folderId", String.valueOf(folderId));
request.setAttribute("view.jsp-folder", folder);
request.setAttribute("view.jsp-rootFolderId", String.valueOf(rootFolderId));
request.setAttribute("view.jsp-folderId", String.valueOf(folderId));
request.setAttribute("view.jsp-repositoryId", String.valueOf(repositoryId));
request.setAttribute("view.jsp-viewFolder", Boolean.TRUE.toString());
request.setAttribute("view.jsp-useAssetEntryQuery", String.valueOf(useAssetEntryQuery));
request.setAttribute("view.jsp-portletURL", portletURL);
%>
<portlet:actionURL name="/document_library/edit_file_entry" var="restoreTrashEntriesURL">
<portlet:param name="<%= Constants.CMD %>" value="<%= Constants.RESTORE %>" />
</portlet:actionURL>
<liferay-trash:undo
portletURL="<%= restoreTrashEntriesURL %>"
/>
<c:choose>
<c:when test="<%= useAssetEntryQuery %>">
<liferay-ui:categorization-filter
assetType="images"
portletURL="<%= portletURL %>"
/>
<%
SearchContainer igSearchContainer = new SearchContainer(renderRequest, null, null, "cur2", SearchContainer.DEFAULT_DELTA, portletURL, null, null);
long[] classNameIds = {PortalUtil.getClassNameId(DLFileEntryConstants.getClassName()), PortalUtil.getClassNameId(DLFileShortcutConstants.getClassName())};
AssetEntryQuery assetEntryQuery = new AssetEntryQuery(classNameIds, igSearchContainer);
assetEntryQuery.setEnablePermissions(true);
assetEntryQuery.setExcludeZeroViewCount(false);
int total = AssetEntryServiceUtil.getEntriesCount(assetEntryQuery);
igSearchContainer.setTotal(total);
List results = AssetEntryServiceUtil.getEntries(assetEntryQuery);
igSearchContainer.setResults(results);
mediaGalleryMimeTypes = null;
request.setAttribute("view.jsp-igSearchContainer", igSearchContainer);
request.setAttribute("view.jsp-mediaGalleryMimeTypes", mediaGalleryMimeTypes);
%>
<liferay-util:include page="/image_gallery_display/view_images.jsp" servletContext="<%= application %>" />
</c:when>
<c:when test='<%= topLink.equals("home") %>'>
<hr/>
<%
SearchContainer igSearchContainer = new SearchContainer(renderRequest, null, null, "cur2", 5, portletURL, null, null);
int foldersCount = DLAppServiceUtil.getFoldersCount(repositoryId, folderId, true);
int total = DLAppServiceUtil.getFoldersAndFileEntriesAndFileShortcutsCount(repositoryId, folderId, status, mediaGalleryMimeTypes, true);
int imagesCount = total - foldersCount;
igSearchContainer.setTotal(total);
List results = DLAppServiceUtil.getFoldersAndFileEntriesAndFileShortcuts(repositoryId, folderId, status, mediaGalleryMimeTypes, true, igSearchContainer.getStart(), igSearchContainer.getEnd(), igSearchContainer.getOrderByComparator());
igSearchContainer.setResults(results);
request.setAttribute("view.jsp-igSearchContainer", igSearchContainer);
request.setAttribute("view.jsp-mediaGalleryMimeTypes", mediaGalleryMimeTypes);
%>
<div id="<portlet:namespace />imageGalleryAssetInfo">
<c:if test="<%= folder != null %>">
<div class="lfr-asset-description">
<%= HtmlUtil.escape(folder.getDescription()) %>
</div>
<liferay-expando:custom-attributes-available className="<%= DLFolderConstants.getClassName() %>">
<liferay-expando:custom-attribute-list
className="<%= DLFolderConstants.getClassName() %>"
classPK="<%= (folder != null) ? folder.getFolderId() : 0 %>"
editable="<%= false %>"
label="<%= true %>"
/>
</liferay-expando:custom-attributes-available>
</c:if>
<liferay-util:include page="/image_gallery_display/view_images.jsp" servletContext="<%= application %>" />
</div>
<%
if (folder != null) {
IGUtil.addPortletBreadcrumbEntries(folder, request, renderResponse);
if (!defaultFolderView && portletName.equals(DLPortletKeys.MEDIA_GALLERY_DISPLAY)) {
PortalUtil.setPageSubtitle(folder.getName(), request);
PortalUtil.setPageDescription(folder.getDescription(), request);
}
}
%>
</c:when>
<c:when test='<%= topLink.equals("mine") || topLink.equals("recent") %>'>
<%
long groupImagesUserId = 0;
if (topLink.equals("mine") && themeDisplay.isSignedIn()) {
groupImagesUserId = user.getUserId();
}
SearchContainer igSearchContainer = new SearchContainer(renderRequest, null, null, SearchContainer.DEFAULT_CUR_PARAM, SearchContainer.DEFAULT_DELTA, portletURL, null, null);
int total = DLAppServiceUtil.getGroupFileEntriesCount(repositoryId, groupImagesUserId, rootFolderId, mediaGalleryMimeTypes, status);
igSearchContainer.setTotal(total);
List results = DLAppServiceUtil.getGroupFileEntries(repositoryId, groupImagesUserId, rootFolderId, mediaGalleryMimeTypes, status, igSearchContainer.getStart(), igSearchContainer.getEnd(), igSearchContainer.getOrderByComparator());
igSearchContainer.setResults(results);
request.setAttribute("view.jsp-igSearchContainer", igSearchContainer);
request.setAttribute("view.jsp-mediaGalleryMimeTypes", mediaGalleryMimeTypes);
%>
<aui:row>
<liferay-ui:header
title="<%= topLink %>"
/>
<liferay-util:include page="/image_gallery_display/view_images.jsp" servletContext="<%= application %>" />
</aui:row>
<%
PortalUtil.addPortletBreadcrumbEntry(request, LanguageUtil.get(request, topLink), currentURL);
PortalUtil.setPageSubtitle(LanguageUtil.get(request, topLink), request);
%>
</c:when>
</c:choose>
</liferay-ddm:template-renderer>
\ No newline at end of file
<%--
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
--%>
<%@ include file="/image_gallery_display/init.jsp" %>
<%
SearchContainer igSearchContainer = (SearchContainer)request.getAttribute("view.jsp-igSearchContainer");
DLPortletInstanceSettingsHelper dlPortletInstanceSettingsHelper = new DLPortletInstanceSettingsHelper(igRequestHelper);
%>
<liferay-ui:search-container
delta="5"
emptyResultsMessage="there-are-no-media-files-in-this-folder"
searchContainer="<%= igSearchContainer %>"
>
<liferay-ui:search-container-row
className="Object"
modelVar="result"
>
<%@ include file="/document_library/cast_result.jspf" %>
<c:choose>
<c:when test="<%= fileEntry != null %>">
<%
String thumbnailId = null;
if (fileShortcut != null) {
thumbnailId = "shortcut_" + fileShortcut.getFileShortcutId();
}
else {
thumbnailId = "entry_" + fileEntry.getFileEntryId();
}
FileVersion fileVersion = fileEntry.getFileVersion();
boolean hasAudio = AudioProcessorUtil.hasAudio(fileVersion);
boolean hasImages = ImageProcessorUtil.hasImages(fileVersion);
boolean hasPDFImages = PDFProcessorUtil.hasImages(fileVersion);
boolean hasVideo = VideoProcessorUtil.hasVideo(fileVersion);
String imageURL = themeDisplay.getPathThemeImages() + "/file_system/large/" + DLUtil.getGenericName(fileEntry.getExtension()) + ".png";
int playerHeight = 500;
String dataOptions = StringPool.BLANK;
if (PropsValues.DL_FILE_ENTRY_PREVIEW_ENABLED) {
if (hasAudio) {
imageURL = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, HtmlUtil.escapeURL("&audioPreview=1") + "&supportedAudio=1&mediaGallery=1");
for (String audioContainer : PropsValues.DL_FILE_ENTRY_PREVIEW_AUDIO_CONTAINERS) {
dataOptions += "&" + audioContainer + "PreviewURL=" + HtmlUtil.escapeURL(DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&supportedAudio=1&audioPreview=1&type=" + audioContainer));
}
playerHeight = 43;
}
else if (hasImages) {
imageURL = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&imagePreview=1");
}
else if (hasPDFImages) {
imageURL = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&previewFileIndex=1");
}
else if (hasVideo) {
imageURL = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&supportedVideo=1&mediaGallery=1");
for (String videoContainer : PropsValues.DL_FILE_ENTRY_PREVIEW_VIDEO_CONTAINERS) {
dataOptions += "&" + videoContainer + "PreviewURL=" + HtmlUtil.escapeURL(DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&supportedVideo=1&videoPreview=1&type=" + videoContainer));
}
}
}
String title = fileEntry.getTitle();
if (Validator.isNotNull(fileEntry.getDescription())) {
title += " - " + fileEntry.getDescription();
}
row.setCssClass("lfr-asset-item");
%>
<liferay-ui:search-container-column-text>
<div class="image-link preview" <%= (hasAudio || hasVideo) ? "data-options=\"height=" + playerHeight + "&thumbnailURL=" + HtmlUtil.escapeURL(DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&videoThumbnail=1")) + "&width=640" + dataOptions + "\"" : StringPool.BLANK %> href="<%= imageURL %>" thumbnailId="<%= thumbnailId %>" title="<%= HtmlUtil.escapeAttribute(title) %>">
<c:choose>
<c:when test="<%= Validator.isNull(imageURL) %>">
<liferay-frontend:icon-vertical-card
actionJsp='<%= dlPortletInstanceSettingsHelper.isShowActions() ? "/image_gallery_display/image_action.jsp" : StringPool.BLANK %>'
actionJspServletContext="<%= application %>"
cssClass="entry-display-style"
icon="documents-and-media"
resultRow="<%= row %>"
title="<%= dlPortletInstanceSettingsHelper.isShowActions() ? fileEntry.getTitle() : StringPool.BLANK %>"
/>
</c:when>
<c:otherwise>
<liferay-frontend:vertical-card
actionJsp='<%= dlPortletInstanceSettingsHelper.isShowActions() ? "/image_gallery_display/image_action.jsp" : StringPool.BLANK %>'
actionJspServletContext="<%= application %>"
cssClass="entry-display-style"
imageUrl="<%= imageURL %>"
resultRow="<%= row %>"
title="<%= dlPortletInstanceSettingsHelper.isShowActions() ? fileEntry.getTitle() : StringPool.BLANK %>"
/>
</c:otherwise>
</c:choose>
</div>
</liferay-ui:search-container-column-text>
</c:when>
<c:otherwise>
<portlet:renderURL var="viewFolderURL">
<portlet:param name="mvcRenderCommandName" value="/image_gallery_display/view" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="folderId" value="<%= String.valueOf(curFolder.getFolderId()) %>" />
</portlet:renderURL>
<%
row.setCssClass("lfr-asset-folder");
%>
<liferay-ui:search-container-column-text>
<liferay-frontend:horizontal-card
actionJsp='<%= dlPortletInstanceSettingsHelper.isShowActions() ? "/document_library/folder_action.jsp" : StringPool.BLANK %>'
actionJspServletContext="<%= application %>"
resultRow="<%= row %>"
text="<%= curFolder.getName() %>"
url="<%= viewFolderURL %>"
>
<liferay-frontend:horizontal-card-col>
<liferay-frontend:horizontal-card-icon
icon='<%= curFolder.isMountPoint() ? "repository" : "folder" %>'
/>
</liferay-frontend:horizontal-card-col>
</liferay-frontend:horizontal-card>
</liferay-ui:search-container-column-text>
</c:otherwise>
</c:choose>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator displayStyle="icon" markupView="lexicon" resultRowSplitter="<%= new IGResultRowSplitter() %>" searchContainer="<%= igSearchContainer %>" />
</liferay-ui:search-container>
<%
PortletURL embeddedPlayerURL = renderResponse.createRenderURL();
embeddedPlayerURL.setParameter("mvcPath", "/image_gallery_display/embedded_player.jsp");
embeddedPlayerURL.setWindowState(LiferayWindowState.POP_UP);
%>
<aui:script use="aui-image-viewer,aui-image-viewer-media">
var viewportRegion = A.getDoc().get('viewportRegion');
var maxHeight = (viewportRegion.height);
var maxWidth = (viewportRegion.width);
var playingMediaIndex = -1;
var imageViewer = new A.ImageViewer(
{
after: {
<c:if test="<%= dlPortletInstanceSettingsHelper.isShowActions() %>">
load: function(event) {
var instance = this;
var currentLink = instance.getCurrentLink();
var thumbnailId = currentLink.attr('thumbnailId');
var actions = instance._actions;
if (actions) {
var defaultAction = A.one('#<portlet:namespace />buttonsContainer_' + thumbnailId);
actions.empty();
var action = defaultAction.clone().show();
actions.append(action);
}
}
</c:if>
},
delay: 5000,
infoTemplate: '<%= LanguageUtil.format(request, "image-x-of-x", new String[] {"{current}", "{total}"}, false) %>',
links: '#<portlet:namespace />imageGalleryAssetInfo .image-link.preview',
maxHeight: maxHeight,
maxWidth: maxWidth,
on: {
'currentIndexChange': function() {
if (playingMediaIndex != -1) {
Liferay.fire('<portlet:namespace />ImageViewer:currentIndexChange');
playingMediaIndex = -1;
}
},
'visibleChange': function(event) {
if (!event.newVal && playingMediaIndex != -1) {
Liferay.fire('<portlet:namespace />ImageViewer:close');
playingMediaIndex = -1;
}
}
},
playingLabel: '(<liferay-ui:message key="playing" />)',
plugins: [
{
cfg: {
'providers.liferay': {
container: '<iframe frameborder="0" height="{height}" scrolling="no" src="<%= embeddedPlayerURL.toString() %>&<portlet:namespace />thumbnailURL={thumbnailURL}&<portlet:namespace />mp3PreviewURL={mp3PreviewURL}&<portlet:namespace />mp4PreviewURL={mp4PreviewURL}&<portlet:namespace />oggPreviewURL={oggPreviewURL}&<portlet:namespace />ogvPreviewURL={ogvPreviewURL}" width="{width}"></iframe>',
matcher: /(.+)&mediaGallery=1/,
mediaRegex: /(.+)&mediaGallery=1/,
options: A.merge(
A.MediaViewerPlugin.DEFAULT_OPTIONS,
{
'mp3PreviewURL': '',
'mp4PreviewURL': '',
'oggPreviewURL': '',
'ogvPreviewURL': '',
'thumbnailURL': ''
}
)
}
},
fn: A.MediaViewerPlugin
}
],
zIndex: ++Liferay.zIndex.WINDOW
}
).render();
Liferay.on(
'<portlet:namespace />Video:play',
function() {
imageViewer.pause();
playingMediaIndex = this.get('currentIndex');
}
);
Liferay.on(
'<portlet:namespace />Audio:play',
function() {
imageViewer.pause();
playingMediaIndex = this.get('currentIndex');
}
);
var onClickLinksDefaultFn = imageViewer._onClickLinks;
imageViewer._onClickLinks = function(event) {
if (!event.target.ancestor('.dropdown')) {
onClickLinksDefaultFn.call(this, event);
}
};
imageViewer.set('links', '#<portlet:namespace />imageGalleryAssetInfo .image-link.preview');
</aui:script>
\ No newline at end of file
<%--
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
--%>
<%@ include file="/image_gallery_display/init.jsp" %>
<%
Folder folder = (Folder)request.getAttribute(WebKeys.DOCUMENT_LIBRARY_FOLDER);
long folderId = (folder == null) ? 0 : folder.getFolderId();
long repositoryId = scopeGroupId;
if (folder != null) {
repositoryId = folder.getRepositoryId();
}
List fileEntries = DLAppServiceUtil.getFileEntries(repositoryId, folderId);
int defaultSpeed = 3000;
%>
<aui:form>
<aui:fieldset column="<%= true %>">
<aui:col width="<%= 50 %>">
<aui:button onClick='<%= renderResponse.getNamespace() + "showPrevious();" %>' value="previous" />
<aui:button onClick='<%= renderResponse.getNamespace() + "play();" %>' value="play" />
<aui:button onClick='<%= renderResponse.getNamespace() + "pause();" %>' value="pause" />
<aui:button onClick='<%= renderResponse.getNamespace() + "showNext();" %>' value="next" />
</aui:col>
<aui:col width="<%= 50 %>">
<aui:select inlineLabel="left" name="speed" onChange='<%= renderResponse.getNamespace() + "pause();" + renderResponse.getNamespace() + "speed = this[this.selectedIndex].value * 1000;" + renderResponse.getNamespace() + "play();" %>'>
<%
for (int i = 1; i <= 10; i++) {
%>
<aui:option label="<%= i %>" selected="<%= (defaultSpeed / 1000) == i %>" />
<%
}
%>
</aui:select>
</aui:col>
</aui:fieldset>
</aui:form>
<br />
<table class="lfr-table">
<tr>
<td>
<%
if (!fileEntries.isEmpty()) {
FileEntry fileEntry = (FileEntry)fileEntries.get(0);
String largeSrc = DLUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, StringPool.BLANK);
%>
<img alt="<liferay-ui:message escapeAttribute="<%= true %>" key="slide-show" />" name="<portlet:namespace />slideShow" src="<%= largeSrc %>" />
<%
}
%>
</td>
</tr>
</table>
<aui:script>
var <portlet:namespace />imgArray = [];
<%
for (int i = 0; i < fileEntries.size(); i++) {
FileEntry fileEntry = (FileEntry)fileEntries.get(i);
String largeSrc = DLUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, StringPool.BLANK);
%>
<portlet:namespace />imgArray[<%= i %>] = '<%= largeSrc %>';
<%
}
%>
var <portlet:namespace />imgArrayPos = 0;
var <portlet:namespace />speed = <%= defaultSpeed %>;
var <portlet:namespace />timeout = 0;
function <portlet:namespace />pause() {
clearInterval(<portlet:namespace />timeout);
<portlet:namespace />timeout = 0;
}
function <portlet:namespace />play() {
if (<portlet:namespace />timeout == 0) {
<portlet:namespace />timeout = setInterval(<portlet:namespace />showNext, <portlet:namespace />speed);
}
}
function <portlet:namespace />showNext() {
<portlet:namespace />imgArrayPos++;
if (<portlet:namespace />imgArrayPos == <portlet:namespace />imgArray.length) {
<portlet:namespace />imgArrayPos = 0;
}
document.images.<portlet:namespace />slideShow.src = <portlet:namespace />imgArray[<portlet:namespace />imgArrayPos];
}
function <portlet:namespace />showPrevious() {
<portlet:namespace />imgArrayPos--;
if (<portlet:namespace />imgArrayPos < 0) {
<portlet:namespace />imgArrayPos = <portlet:namespace />imgArray.length - 1;
}
document.images.<portlet:namespace />slideShow.src = <portlet:namespace />imgArray[<portlet:namespace />imgArrayPos];
}
<portlet:namespace />play();
</aui:script>
\ No newline at end of file
.gradle/
build/
target/
\ No newline at end of file
Bundle-Name: video-news
Bundle-SymbolicName: ru.systematic.cisstat
Bundle-Version: 1.0.0
Export-Package: ru.systematic.cisstat.constants
\ No newline at end of file
dependencies {
compile files("C:/Java/jdk1.8.0_131/lib/tools.jar")
compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.28.0"
compileOnly group: "com.liferay.portal", name: "com.liferay.portal.impl", version: "2.14.0"
compileOnly group: "com.liferay.portal", name: "com.liferay.util.taglib", version: "2.0.0"
compileOnly group: "javax.portlet", name: "portlet-api", version: "2.0"
compileOnly group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"
compileOnly group: "jstl", name: "jstl", version: "1.2"
compileOnly group: "org.osgi", name: "osgi.cmpn", version: "6.0.0"
compileOnly group: "biz.aQute.bnd", name: "biz.aQute.bnd.annotation", version: "3.5.0"
}
package ru.systematic.cisstat.constants;
/**
* @author safiu
*/
public class VideoNewsPortletKeys {
public static final String VideoNews = "VideoNews";
}
\ No newline at end of file
package ru.systematic.cisstat.portlet;
import javax.portlet.PortletPreferences;
import javax.portlet.PortletRequest;
import javax.portlet.PortletURL;
import javax.servlet.http.HttpServletRequest;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import com.liferay.asset.kernel.model.AssetEntry;
import com.liferay.asset.kernel.service.AssetEntryLocalService;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.model.Group;
import com.liferay.portal.kernel.portlet.AddPortletProvider;
import com.liferay.portal.kernel.portlet.BasePortletProvider;
import com.liferay.portal.kernel.portlet.PortletURLFactoryUtil;
import com.liferay.portal.kernel.portlet.ViewPortletProvider;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import ru.systematic.cisstat.constants.VideoNewsPortletKeys;
import ru.systematic.cisstat.util.VideoNewsUtil;
@Component(
immediate = true,
property = {"model.class.name=com.liferay.asset.kernel.model.AssetEntry"},
service = {AddPortletProvider.class, ViewPortletProvider.class}
)
public class VideoNewsAddPortletProvider extends BasePortletProvider
implements AddPortletProvider, ViewPortletProvider {
@Override
public String getPortletName() {
return VideoNewsPortletKeys.VideoNews;
}
@Override
public PortletURL getPortletURL(HttpServletRequest request)
throws PortalException {
PortletURL assetPublisherURL = super.getPortletURL(request);
assetPublisherURL.setParameter("mvcPath", "/view_content.jsp");
return assetPublisherURL;
}
@Override
public PortletURL getPortletURL(HttpServletRequest request, Group group)
throws PortalException {
return PortletURLFactoryUtil.create(
request, getPortletName(), PortletRequest.RENDER_PHASE);
}
@Override
public void updatePortletPreferences(
PortletPreferences portletPreferences, String portletId,
String className, long classPK, ThemeDisplay themeDisplay)
throws Exception {
portletPreferences.setValue("displayStyle", "full-content");
portletPreferences.setValue(
"emailAssetEntryAddedEnabled", Boolean.FALSE.toString());
portletPreferences.setValue("selectionStyle", "manual");
portletPreferences.setValue(
"showAddContentButton", Boolean.FALSE.toString());
portletPreferences.setValue("showAssetTitle", Boolean.FALSE.toString());
portletPreferences.setValue("showExtraInfo", Boolean.FALSE.toString());
AssetEntry assetEntry = _assetEntryLocalService.getEntry(className, classPK);
VideoNewsUtil.addSelection(
themeDisplay, portletPreferences, portletId,
assetEntry.getEntryId(), -1, assetEntry.getClassName());
}
/**
* @deprecated As of 1.2.0
*/
@Deprecated
@Override
protected long getPlid(ThemeDisplay themeDisplay) {
return themeDisplay.getPlid();
}
@Reference(unbind = "-")
protected void setAssetEntryLocalService(
AssetEntryLocalService assetEntryLocalService) {
_assetEntryLocalService = assetEntryLocalService;
}
private AssetEntryLocalService _assetEntryLocalService;
}
package ru.systematic.cisstat.portlet;
import ru.systematic.cisstat.constants.VideoNewsPortletKeys;
import com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet;
import java.io.IOException;
import javax.portlet.Portlet;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import org.osgi.service.component.annotations.Component;
/**
* @author safiu
*/
@Component(
immediate = true,
property = {
"com.liferay.portlet.display-category=category.highlighted",
"com.liferay.portlet.instanceable=true",
"com.liferay.portlet.header-portlet-css=/css/main.css",
"javax.portlet.display-name=video-news Portlet",
"javax.portlet.init-param.template-path=/",
"javax.portlet.init-param.view-template=/view.jsp",
"javax.portlet.name=" + VideoNewsPortletKeys.VideoNews,
"javax.portlet.resource-bundle=content.Language",
"javax.portlet.security-role-ref=power-user,user"
},
service = Portlet.class
)
public class VideoNewsPortlet extends MVCPortlet {
public void render(
RenderRequest renderRequest, RenderResponse renderResponse)
throws PortletException, IOException {
super.render(renderRequest, renderResponse);
}
}
\ No newline at end of file
package ru.systematic.cisstat.portlet.action;
import java.util.Objects;
import javax.servlet.http.HttpServletRequest;
import org.osgi.service.component.annotations.Component;
import com.liferay.portal.kernel.portlet.ConfigurationAction;
import com.liferay.portal.kernel.portlet.DefaultConfigurationAction;
import com.liferay.portal.kernel.util.Constants;
import com.liferay.portal.kernel.util.ParamUtil;
import ru.systematic.cisstat.constants.VideoNewsPortletKeys;
@Component(
immediate = true,
property = {
"javax.portlet.name=" + VideoNewsPortletKeys.VideoNews
},
service = ConfigurationAction.class
)
public class VideoNewsConfigurationAction extends DefaultConfigurationAction {
@Override
public String getJspPath(HttpServletRequest request) {
String cmd = ParamUtil.getString(request, Constants.CMD);
return "/configuration.jsp";
}
}
package ru.systematic.cisstat.portlet.display.context;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import javax.portlet.PortletPreferences;
import javax.portlet.PortletRequest;
import javax.portlet.PortletResponse;
import javax.portlet.PortletURL;
import javax.portlet.RenderRequest;
import javax.servlet.http.HttpServletRequest;
import com.liferay.asset.kernel.AssetRendererFactoryRegistryUtil;
import com.liferay.portal.kernel.display.context.util.BaseRequestHelper;
import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
import com.liferay.portal.kernel.portlet.LiferayWindowState;
import com.liferay.portal.kernel.portlet.PortletURLUtil;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.MapUtil;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.PortalUtil;
import com.liferay.portal.kernel.util.StringComparator;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.kernel.util.WebKeys;
import com.liferay.portlet.asset.util.AssetUtil;
import ru.systematic.cisstat.util.VideoNewsUtil;
public class VideoNewsDisplayContext {
public VideoNewsDisplayContext(
PortletRequest portletRequest, PortletResponse portletResponse,
PortletPreferences portletPreferences) {
_request = PortalUtil.getHttpServletRequest(portletRequest);
_portletRequest = portletRequest;
_portletResponse = portletResponse;
_portletPreferences = portletPreferences;
}
public boolean isShowAddContentButton() {
if (_showAddContentButton == null) {
_showAddContentButton = GetterUtil.getBoolean(
_portletPreferences.getValue("showAddContentButton", null),
true);
}
return _showAddContentButton;
}
public String[] getMimeTypes() throws Exception {
_mimeTypes = _portletPreferences.getValue("selectedMimeTypes", "").split(",");
return _mimeTypes;
}
public long getRootFolder() throws Exception {
_rootFolder = Long.parseLong(_portletPreferences.getValue("rootFolderId", "0"), 10);
return _rootFolder;
}
public String getDisplayStyle() {
_displayStyle = _portletPreferences.getValue("displayStyle","");
return _displayStyle;
}
public String getStyleID() {
_styleID = _portletPreferences.getValue("styleID","myGallery");
return _styleID;
}
public String getCSS() {
_css = _portletPreferences.getValue("css","");
return _css;
}
public Boolean isOneStaticPhoto() {
_isOneStaticPhoto = GetterUtil.getBoolean(_portletPreferences.getValue("isOneStaticPhoto","0"), false);
return _isOneStaticPhoto;
}
public Boolean getPosition() {
_position = GetterUtil.getBoolean(_portletPreferences.getValue("position","1"), true);
return _position;
}
public int getDelta() {
_delta = GetterUtil.getInteger(_portletPreferences.getValue("delta","4"),4);
return _delta;
}
public long[] getGroupIds() {
if (_groupIds == null) {
ThemeDisplay themeDisplay = (ThemeDisplay)_request.getAttribute(
WebKeys.THEME_DISPLAY);
_groupIds = VideoNewsUtil.getGroupIds(
_portletPreferences, themeDisplay.getScopeGroupId(),
themeDisplay.getLayout());
}
return _groupIds;
}
public Map<Long, Map<String, PortletURL>> getScopeAddPortletURLs(int max)
throws Exception {
long[] groupIds = getGroupIds();
if (groupIds.length == 0) {
return Collections.emptyMap();
}
Map<Long, Map<String, PortletURL>> scopeAddPortletURLs = new HashMap();
LiferayPortletResponse liferayPortletResponse =
PortalUtil.getLiferayPortletResponse(_portletResponse);
PortletURL redirectURL = liferayPortletResponse.createRenderURL();
redirectURL.setParameter(
"hideDefaultSuccessMessage", Boolean.TRUE.toString());
redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp");
LiferayPortletRequest liferayPortletRequest =
PortalUtil.getLiferayPortletRequest(_portletRequest);
PortletURL currentURLObj = PortletURLUtil.getCurrent(
liferayPortletRequest, liferayPortletResponse);
redirectURL.setParameter("redirect", currentURLObj.toString());
redirectURL.setWindowState(LiferayWindowState.POP_UP);
String redirect = redirectURL.toString();
for (long groupId : groupIds) {
Map<String, PortletURL> addPortletURLs =
AssetUtil.getAddPortletURLs(
liferayPortletRequest, liferayPortletResponse, groupId,
getClassNameIds(), getClassTypeIds(),
getAllAssetCategoryIds(), getAllAssetTagNames(), redirect);
if (MapUtil.isNotEmpty(addPortletURLs)) {
scopeAddPortletURLs.put(groupId, addPortletURLs);
}
if (scopeAddPortletURLs.size() > max) {
break;
}
}
return scopeAddPortletURLs;
}
public String[] getAllAssetTagNames() throws Exception {
if (_allAssetTagNames != null) {
return _allAssetTagNames;
}
_allAssetTagNames = new String[0];
String assetTagName = ParamUtil.getString(_request, "tag");
String selectionStyle = getSelectionStyle();
if (selectionStyle.equals("dynamic")) {
_allAssetTagNames = VideoNewsUtil.getAssetTagNames(
_portletPreferences);
}
if (Validator.isNotNull(assetTagName) &&
!ArrayUtil.contains(_allAssetTagNames, assetTagName)) {
_allAssetTagNames = ArrayUtil.append(
_allAssetTagNames, assetTagName);
}
if (isMergeURLTags()) {
_allAssetTagNames = ArrayUtil.append(
_allAssetTagNames, getCompilerTagNames());
}
_allAssetTagNames = ArrayUtil.distinct(
_allAssetTagNames, new StringComparator());
return _allAssetTagNames;
}
public String[] getCompilerTagNames() {
if (_compilerTagNames != null) {
return _compilerTagNames;
}
_compilerTagNames = new String[0];
if (isMergeURLTags()) {
_compilerTagNames = ParamUtil.getParameterValues(_request, "tags");
}
return _compilerTagNames;
}
public boolean isMergeURLTags() {
if (_mergeURLTags == null) {
_mergeURLTags = GetterUtil.getBoolean(
_portletPreferences.getValue("mergeUrlTags", null), true);
}
return _mergeURLTags;
}
public String getSelectionStyle() {
if (_selectionStyle == null) {
_selectionStyle = GetterUtil.getString(
_portletPreferences.getValue("selectionStyle", null),
"dynamic");
}
return _selectionStyle;
}
public long[] getAllAssetCategoryIds() throws Exception {
if (_allAssetCategoryIds != null) {
return _allAssetCategoryIds;
}
_allAssetCategoryIds = new long[0];
long assetCategoryId = ParamUtil.getLong(_request, "categoryId");
String selectionStyle = getSelectionStyle();
if (selectionStyle.equals("dynamic")) {
_allAssetCategoryIds = VideoNewsUtil.getAssetCategoryIds(
_portletPreferences);
}
if ((assetCategoryId > 0) &&
!ArrayUtil.contains(_allAssetCategoryIds, assetCategoryId)) {
_allAssetCategoryIds = ArrayUtil.append(
_allAssetCategoryIds, assetCategoryId);
}
return _allAssetCategoryIds;
}
public long[] getClassNameIds() {
if (_classNameIds == null) {
_classNameIds = VideoNewsUtil.getClassNameIds(
_portletPreferences, getAvailableClassNameIds());
}
return _classNameIds;
}
public long[] getAvailableClassNameIds() {
if (_availableClassNameIds == null) {
ThemeDisplay themeDisplay = (ThemeDisplay)_request.getAttribute(
WebKeys.THEME_DISPLAY);
_availableClassNameIds =
AssetRendererFactoryRegistryUtil.getClassNameIds(
themeDisplay.getCompanyId(), true);
}
return _availableClassNameIds;
}
public long[] getClassTypeIds() {
if (_classTypeIds == null) {
_classTypeIds = GetterUtil.getLongValues(
_portletPreferences.getValues("classTypeIds", null));
}
return _classTypeIds;
}
public String getPortletResource() {
if (_portletResource == null) {
_portletResource = ParamUtil.getString(_request, "portletResource");
}
return _portletResource;
}
private long[] _allAssetCategoryIds;
private long[] _availableClassNameIds;
private long[] _classNameIds;
private long[] _classTypeIds;
private final PortletPreferences _portletPreferences;
private final PortletRequest _portletRequest;
private final PortletResponse _portletResponse;
private final HttpServletRequest _request;
private Boolean _showAddContentButton;
private long[] _groupIds;
private String _portletResource;
private String[] _allAssetTagNames;
private String[] _compilerTagNames;
private Boolean _mergeURLTags;
private String _selectionStyle;
private String _css;
private String _styleID;
private Boolean _isOneStaticPhoto;
private String[] _mimeTypes;
private long _rootFolder;
private int _delta;
private String _displayStyle;
private boolean _position;
}
package ru.systematic.cisstat.portlet.toolbar.contributor;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
import javax.portlet.PortletRequest;
import javax.portlet.PortletResponse;
import javax.portlet.PortletURL;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.model.Group;
import com.liferay.portal.kernel.model.Layout;
import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
import com.liferay.portal.kernel.portlet.LiferayWindowState;
import com.liferay.portal.kernel.portlet.toolbar.contributor.BasePortletToolbarContributor;
import com.liferay.portal.kernel.portlet.toolbar.contributor.PortletToolbarContributor;
import com.liferay.portal.kernel.service.GroupLocalService;
import com.liferay.portal.kernel.servlet.taglib.ui.MenuItem;
import com.liferay.portal.kernel.servlet.taglib.ui.URLMenuItem;
import com.liferay.portal.kernel.theme.PortletDisplay;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.HtmlUtil;
import com.liferay.portal.kernel.util.MapUtil;
import com.liferay.portal.kernel.util.Portal;
import com.liferay.portal.kernel.util.ResourceBundleUtil;
import com.liferay.portal.kernel.util.WebKeys;
import com.liferay.portlet.asset.util.AssetUtil;
import ru.systematic.cisstat.constants.VideoNewsPortletKeys;
import ru.systematic.cisstat.portlet.display.context.VideoNewsDisplayContext;
@Component(
immediate = true,
property = {
"javax.portlet.name=" + VideoNewsPortletKeys.VideoNews,
"mvc.path=-", "mvc.path=/view.jsp"
},
service = {
VideoNewsPortletToolbarContributor.class,
PortletToolbarContributor.class
}
)
public class VideoNewsPortletToolbarContributor extends BasePortletToolbarContributor {
protected void addPortletTitleAddAssetEntryMenuItems(
List<MenuItem> menuItems, PortletRequest portletRequest,
PortletResponse portletResponse)
throws Exception {
ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
WebKeys.THEME_DISPLAY);
Layout layout = themeDisplay.getLayout();
PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
String portletName = portletDisplay.getPortletName();
VideoNewsDisplayContext assetPublisherDisplayContext =
new VideoNewsDisplayContext(
portletRequest, portletResponse,
portletRequest.getPreferences());
if (!assetPublisherDisplayContext.isShowAddContentButton() ||
layout.isLayoutPrototypeLinkActive()
)
//||
//portletName.equals(VideoNewsPortletKeys.HIGHEST_RATED_ASSETS) ||
//portletName.equals(VideoNewsPortletKeys.MOST_VIEWED_ASSETS) ||
//portletName.equals(VideoNewsPortletKeys.RELATED_ASSETS))
{
return;
}
Map<Long, Map<String, PortletURL>> scopeAddPortletURLs =
assetPublisherDisplayContext.getScopeAddPortletURLs(1);
if (MapUtil.isEmpty(scopeAddPortletURLs)) {
return;
}
if (scopeAddPortletURLs.size() == 1) {
Set<Map.Entry<Long, Map<String, PortletURL>>> entrySet =
scopeAddPortletURLs.entrySet();
Iterator<Map.Entry<Long, Map<String, PortletURL>>> iterator =
entrySet.iterator();
Map.Entry<Long, Map<String, PortletURL>> scopeAddPortletURL =
iterator.next();
long groupId = scopeAddPortletURL.getKey();
Map<String, PortletURL> addPortletURLs =
scopeAddPortletURL.getValue();
for (Map.Entry<String, PortletURL> entry :
addPortletURLs.entrySet()) {
URLMenuItem urlMenuItem = _getPortletTitleAddAssetEntryMenuItem(
themeDisplay, assetPublisherDisplayContext, groupId,
entry.getKey(), entry.getValue());
menuItems.add(urlMenuItem);
}
return;
}
URLMenuItem urlMenuItem = new URLMenuItem();
Map<String, Object> data = new HashMap<>();
data.put(
"id", HtmlUtil.escape(portletDisplay.getNamespace()) + "editAsset");
ResourceBundle resourceBundle = ResourceBundleUtil.getBundle(
"content.Language", themeDisplay.getLocale(), getClass());
String title = LanguageUtil.get(
resourceBundle, "add-content-select-scope-and-type");
data.put("title", title);
urlMenuItem.setData(data);
urlMenuItem.setLabel(title);
LiferayPortletResponse liferayPortletResponse =
_portal.getLiferayPortletResponse(portletResponse);
PortletURL portletURL = liferayPortletResponse.createRenderURL();
portletURL.setParameter("mvcPath", "/add_asset_selector.jsp");
portletURL.setParameter("redirect", themeDisplay.getURLCurrent());
portletURL.setWindowState(LiferayWindowState.POP_UP);
urlMenuItem.setURL(portletURL.toString());
urlMenuItem.setUseDialog(true);
menuItems.add(urlMenuItem);
}
private URLMenuItem _getPortletTitleAddAssetEntryMenuItem(
ThemeDisplay themeDisplay,
VideoNewsDisplayContext assetPublisherDisplayContext, long groupId,
String className, PortletURL portletURL) {
URLMenuItem urlMenuItem = new URLMenuItem();
Map<String, Object> data = new HashMap<>();
PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
data.put(
"id", HtmlUtil.escape(portletDisplay.getNamespace()) + "editAsset");
String message = AssetUtil.getClassNameMessage(className, themeDisplay.getLocale());
String title = LanguageUtil.format(
themeDisplay.getLocale(), "new-x", message, false);
data.put("title", title);
urlMenuItem.setData(data);
urlMenuItem.setLabel(HtmlUtil.escape(message));
long curGroupId = groupId;
Group group = _groupLocalService.fetchGroup(groupId);
// TODO Доделать Ильдар!
/*AssetRendererFactory<?> assetRendererFactory =
AssetRendererFactoryRegistryUtil.getAssetRendererFactoryByClassName(
AssetUtil.getClassName(className));*/
/*if (!group.isStagedPortlet(assetRendererFactory.getPortletId()) &&
!group.isStagedRemotely()) {*/
if(!group.isStagedRemotely()) {
curGroupId = group.getLiveGroupId();
}
// TODO Доделать Ильдар
boolean addDisplayPageParameter = AssetUtil.isDefaultAssetPublisher(themeDisplay.getLayout(), portletDisplay.getId(),assetPublisherDisplayContext.getPortletResource());
String url = "nnnnnnnnnnnnnnnnnnnnnn";// AssetUtil.getAddURLPopUp(curGroupId, themeDisplay.getPlid(), portletURL,assetRendererFactory.getPortletId(), addDisplayPageParameter,themeDisplay.getLayout());
urlMenuItem.setURL(url);
urlMenuItem.setUseDialog(true);
return urlMenuItem;
}
@Override
protected List<MenuItem> getPortletTitleMenuItems(PortletRequest portletRequest, PortletResponse portletResponse) {
// TODO Auto-generated method stub
List<MenuItem> menuItems = new ArrayList<>();
try {
addPortletTitleAddAssetEntryMenuItems(
menuItems, portletRequest, portletResponse);
}
catch (Exception e) {
_log.error("Unable to add folder menu item", e);
}
return menuItems;
}
private static final Log _log = LogFactoryUtil.getLog(
VideoNewsPortletToolbarContributor.class);
private GroupLocalService _groupLocalService;
@Reference
private Portal _portal;
}
<%@ include file="init.jsp" %>
<%
Set<String> allMediaGalleryMimeTypes = DLUtil.getAllMediaGalleryMimeTypes();
List<KeyValuePair> leftList = new ArrayList<KeyValuePair>();
List<KeyValuePair> rightList = new ArrayList<KeyValuePair>();
for (String t : currentMimeTypes){
leftList.add(new KeyValuePair(t,t));
}
for (String mimeType : allMediaGalleryMimeTypes) {
KeyValuePair tempKeyValuePair = new KeyValuePair(mimeType,mimeType);
if (!leftList.contains(tempKeyValuePair)) {
rightList.add(tempKeyValuePair);
}
}
KeyValuePair tempKeyValuePDF = new KeyValuePair("application/pdf","application/pdf");
if (!leftList.contains(tempKeyValuePDF)) {
rightList.add(tempKeyValuePDF);
}
long rootFolderId = assetPublisherDisplayContext.getRootFolder();
String rootFolderName = StringPool.BLANK;
if (rootFolderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
try {
Folder rootFolder = DLAppLocalServiceUtil.getFolder(rootFolderId);
rootFolderName = rootFolder.getName();
if (rootFolder.getGroupId() != scopeGroupId) {
rootFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
rootFolderName = StringPool.BLANK;
}
}
catch (NoSuchFolderException nsfe) {
rootFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
}
}
%>
<liferay-portlet:actionURL portletConfiguration="<%= true %>" var="configurationActionURL" />
<liferay-portlet:renderURL portletConfiguration="<%= true %>" varImpl="configurationRenderURL" />
<aui:form action="<%= configurationActionURL %>" method="post" name="fm" onSubmit="event.preventDefault();">
<aui:input name="<%= Constants.CMD %>" type="hidden" value="<%= Constants.UPDATE %>" />
<aui:input name="redirect" type="hidden" value="<%= configurationRenderURL.toString() %>" />
<aui:input name="groupId" type="hidden" />
<aui:input name="preferences--rootFolderId--" type="hidden" value="<%= rootFolderId %>" />
<div class="portlet-configuration-body-content">
<aui:fieldset-group markupView="lexicon">
<aui:fieldset cssClass="general-display-settings">
<aui:input helpMessage="show-add-content-button-help" name="preferences--showAddContentButton--" type="toggle-switch" value="<%= assetPublisherDisplayContext.isShowAddContentButton() %>" />
<aui:input helpMessage="horizontally-vertically" name="preferences--position--" type="toggle-switch" value="<%= assetPublisherDisplayContext.getPosition() %>" />
<aui:input name="preferences--selectedMimeTypes--" type="hidden" />
<aui:input name="preferences--styleID--" type="text" value="<%= assetPublisherDisplayContext.getStyleID() %>"/>
<aui:input name="preferences--css--" type="textarea" value="<%= assetPublisherDisplayContext.getCSS() %>"/>
<aui:input name="preferences--isOneStaticPhoto--" type="toggle-switch" value="<%= assetPublisherDisplayContext.isOneStaticPhoto() %>"/>
<aui:field-wrapper label="show-media-type">
<liferay-ui:input-move-boxes
leftBoxName="currentMimeTypes"
leftList="<%= leftList %>"
leftReorder="<%= Boolean.TRUE.toString() %>"
leftTitle="current"
rightBoxName="availableMimeTypes"
rightList="<%= rightList %>"
rightTitle="available"
/>
</aui:field-wrapper>
<aui:field-wrapper label="folder">
<div class="form-group">
<aui:input label="root-folder" name="rootFolderName" type="resource" value="<%= rootFolderName %>" />
<aui:button name="openFolderSelectorButton" value="select" />
<%
String taglibRemoveFolder = "Liferay.Util.removeEntitySelection('rootFolderId', 'rootFolderName', this, '" + renderResponse.getNamespace() + "');";
%>
<aui:button disabled="<%= rootFolderId <= 0 %>" name="removeFolderButton" onClick="<%= taglibRemoveFolder %>" value="remove" />
</div>
</aui:field-wrapper>
<div class="display-template">
<liferay-ddm:template-selector
className="<%= FileEntry.class.getName() %>"
displayStyle="<%= displayStyle %>"
displayStyleGroupId="<%= displayStyleGroupId %>"
refreshURL="<%= configurationRenderURL.toString() %>"
showEmptyOption="<%= true %>"
/>
</div>
<aui:input helpMessage="number-of-items-to-display-help" label="number-of-items-to-display" name="preferences--delta--" type="text" value="<%= assetPublisherDisplayContext.getDelta() %>">
<aui:validator name="digits" />
</aui:input>
</aui:fieldset>
</aui:fieldset-group>
</div>
<aui:button-row>
<aui:button cssClass="btn-lg" onClick='<%= renderResponse.getNamespace() + "saveSelectBoxes();" %>' type="submit" />
</aui:button-row>
</aui:form>
<aui:script>
AUI.$('#<portlet:namespace />openFolderSelectorButton').on(
'click',
function(event) {
Liferay.Util.selectEntity(
{
dialog: {
constrain: true,
destroyOnHide: true,
modal: true,
width: 680
},
id: '_<%= HtmlUtil.escapeJS(PortletKeys.DOCUMENT_LIBRARY) %>_selectFolder',
title: '<liferay-ui:message arguments="folder" key="select-x" />',
<liferay-portlet:renderURL var="selectFolderURL" windowState="<%= LiferayWindowState.POP_UP.toString() %>" portletName="<%= PortletKeys.DOCUMENT_LIBRARY %>">
<portlet:param name="mvcRenderCommandName" value='<%= "/document_library/select_folder" %>' />
<portlet:param name="folderId" value="<%= String.valueOf(rootFolderId) %>" />
<portlet:param name="ignoreRootFolder" value="<%= Boolean.TRUE.toString() %>" />
</liferay-portlet:renderURL>
uri: '<%= HtmlUtil.escapeJS(selectFolderURL.toString()) %>'
},
function(event) {
var folderData = {
idString: 'rootFolderId',
idValue: event.folderid,
nameString: 'rootFolderName',
nameValue: event.foldername
};
Liferay.Util.selectFolder(folderData, '<portlet:namespace />');
}
);
}
);
function <portlet:namespace />saveSelectBoxes() {
var Util = Liferay.Util;
if (document.<portlet:namespace />fm.<portlet:namespace />selectedMimeTypes) {
document.<portlet:namespace />fm.<portlet:namespace />selectedMimeTypes.value = Liferay.Util.listSelect(document.<portlet:namespace />fm.<portlet:namespace />currentMimeTypes);
}
var form = AUI.$(document.<portlet:namespace />fm);
submitForm(form);
}
</aui:script>
.video-item{
margin-bottom: 5px;
}
.pdf-column1{
padding-left: 15px;
padding-right: 15px;
padding-bottom: 15px;
}
\ No newline at end of file
<%@page import="com.liferay.portal.kernel.util.FastDateFormatFactoryUtil"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%@ taglib uri="http://liferay.com/tld/ddm" prefix="liferay-ddm" %>
<%@ taglib uri="http://liferay.com/tld/flags" prefix="liferay-flags" %>
<%@ taglib uri="http://liferay.com/tld/frontend" prefix="liferay-frontend" %>
<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %>
<%@ taglib uri="http://liferay.com/tld/security" prefix="liferay-security" %>
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<%@ taglib uri="http://liferay.com/tld/util" prefix="liferay-util" %>
<%@ taglib uri="http://liferay.com/tld/expando" prefix="liferay-expando" %>
<%@ page import="java.io.Serializable"%>
<%@ page import="java.text.Format" %>
<%@ page import="java.text.NumberFormat" %>
<%@ page import="java.text.DecimalFormatSymbols"%>
<%@ page import="java.util.Arrays"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Calendar" %>
<%@ page import="java.util.Collections"%>
<%@ page import="java.util.Currency" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.Enumeration" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.Properties" %>
<%@ page import="java.util.Set"%>
<%@ page import="javax.portlet.PortletURL" %>
<%@ page import="javax.portlet.WindowState" %>
<%@page import="com.liferay.portal.kernel.util.PropsUtil"%>
<%@page import="com.liferay.portal.kernel.util.PropsKeys"%>
<%@page import="com.liferay.document.library.kernel.util.VideoProcessorUtil"%>
<%@page import="com.liferay.document.library.kernel.util.VideoProcessor"%>
<%@page import="com.liferay.portal.kernel.repository.model.FileVersion"%>
<%@page import="com.liferay.portal.kernel.repository.model.FileEntry"%>
<%@page import="com.liferay.portal.kernel.util.StringPool"%>
<%@page import="com.liferay.document.library.kernel.util.ImageProcessorUtil"%>
<%@page import="com.liferay.document.library.kernel.service.DLAppServiceUtil"%>
<%@page import="com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"%>
<%@page import="com.liferay.document.library.kernel.model.DLFileEntry"%>
<%@page import="com.liferay.portal.kernel.dao.orm.QueryUtil"%>
<%@page import="com.liferay.portal.kernel.util.OrderByComparator"%>
<%@page import="com.liferay.portal.kernel.workflow.WorkflowConstants"%>
<%@page import="com.liferay.document.library.kernel.model.DLFolderConstants"%>
<%@page import="com.liferay.portal.kernel.util.Validator"%>
<%@page import="com.liferay.document.library.kernel.util.DLUtil"%>
<%@page import="com.liferay.document.library.kernel.service.DLFolderLocalServiceUtil"%>
<%@page import="com.liferay.document.library.kernel.model.DLFolder"%>
<%@page import="com.liferay.portal.kernel.util.GetterUtil"%>
<%@page import="com.liferay.portal.kernel.util.PortletKeys"%>
<%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%>
<%@page import="com.liferay.portal.kernel.util.HtmlUtil"%>
<%@page import="com.liferay.document.library.kernel.exception.NoSuchFolderException"%>
<%@page import="com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"%>
<%@page import="com.liferay.portal.kernel.repository.model.Folder"%>
<%@page import="com.liferay.portal.kernel.util.KeyValuePair"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Arrays"%>
<%@page import="com.liferay.document.library.kernel.util.DLUtil"%>
<%@page import="com.liferay.portal.kernel.util.Constants"%>
<%@ page import="ru.systematic.cisstat.portlet.display.context.VideoNewsDisplayContext" %>
<liferay-theme:defineObjects />
<portlet:defineObjects />
<%
VideoNewsDisplayContext assetPublisherDisplayContext = new VideoNewsDisplayContext(liferayPortletRequest, liferayPortletResponse, portletPreferences);
Format dateFormatDate = FastDateFormatFactoryUtil.getDate(locale, timeZone);
String[] currentMimeTypes = assetPublisherDisplayContext.getMimeTypes();
String displayStyle = assetPublisherDisplayContext.getDisplayStyle();
long displayStyleGroupId = themeDisplay.getScopeGroupId();
%>
<%@page import="com.liferay.document.library.kernel.util.PDFProcessorUtil"%>
<%@page import="com.liferay.portal.kernel.dao.search.SearchContainer"%>
<%@ include file="init.jsp" %>
<%
long folderId = assetPublisherDisplayContext.getRootFolder();
int status = WorkflowConstants.STATUS_APPROVED;
int max_delta = assetPublisherDisplayContext.getDelta();
boolean position = assetPublisherDisplayContext.getPosition();
String css = assetPublisherDisplayContext.getDisplayStyle();
String styleID = assetPublisherDisplayContext.getStyleID();
OrderByComparator orderByComparator = DLUtil.getRepositoryModelOrderByComparator("modifiedDate", "desc");
List<FileEntry> fileEntries = DLAppServiceUtil.getGroupFileEntries(scopeGroupId, 0, folderId, currentMimeTypes, status, 0, max_delta, orderByComparator);
//List<DLFileEntry> dlssss = DLFileEntryLocalServiceUtil.getFileEntries(scopeGroupId, folder.getFolderId(), status, QueryUtil.ALL_POS, QueryUtil.ALL_POS, orderByComparator);
//System.out.println(fileEntries.size());
%>
<style>
<%= max_delta==1 ? "#"+styleID+" li.lfr-asset-item{width:100%;}" : "" %>
<%= assetPublisherDisplayContext.getCSS() %>
.pdf-column1{
padding-left: 15px;
padding-right: 15px;
padding-bottom: 15px;
}
</style>
<div class="text-justify">
<ul class="display-style-icon list-unstyled row" id="<%= styleID %>">
<%
for(FileEntry fileEntry : fileEntries){
FileVersion fileVersion = DLAppServiceUtil.getFileVersion(fileEntry.getFileVersion().getFileVersionId());
String thumbnailImage = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&videoThumbnail=1");
if(VideoProcessorUtil.hasVideo(fileVersion)){
String src = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&videoPreview=1"+"&type=" + "mp4");
//String oo = PropsUtil.get(PropsKeys.DL_FILE_ENTRY_PREVIEW_VIDEO_CONTAINERS);
%>
<li class="lfr-asset-item video">
<video src="<%= src %>" poster="<%= thumbnailImage %>" controls width="200"></video>
<div class="cis-text-color" style="white-space: nowrap;"><%= fileEntry.getTitle() %></div>
</li>
<%
}else if(ImageProcessorUtil.hasImages(fileVersion)){
%>
<li class="lfr-asset-item">
<div class="image-link preview" href="<%= DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "") %>">
<div class="taglib-vertical-card entry-display-style">
<div class="clients-item">
<% if(!assetPublisherDisplayContext.isOneStaticPhoto()){ %>
<div class="aspect-ratio aspect-ratio-bg-center aspect-ratio-bg-cover" style="background-image: url('<%= DLUtil.getPreviewURL(fileEntry,fileVersion, themeDisplay, "&imageThumbnail=1") %>');cursor: pointer;">
</div>
<% }else{ %>
<img alt="" src="<%= DLUtil.getPreviewURL(fileEntry,fileVersion, themeDisplay, "&imageThumbnail=1") %>">
<% } %>
</div>
</div>
<div class="cis-text-color"><%= fileEntry.getTitle() %></div>
</div>
</li>
<%
}else if(PDFProcessorUtil.hasImages(fileVersion)){
String imageURL = DLUtil.getPreviewURL(fileEntry, fileVersion, themeDisplay, "&previewFileIndex=1");
%>
<%-- <div class="image-link preview">
<%= imageURL %>
</div> --%>
<%-- <li class="lfr-asset-item">
<div class="image-link preview" href="<%= imageURL %>">
<div class="taglib-vertical-card entry-display-style">
<div class="clients-item">
<% if(!assetPublisherDisplayContext.isOneStaticPhoto()){ %>
<div class="aspect-ratio aspect-ratio-bg-center aspect-ratio-bg-cover" style="background-image: url('<%= imageURL %>');cursor: pointer;"></div>
<% }else{ %>
<img alt="" src="<%= imageURL %>">
<% } %>
</div>
</div>
</div>
</li> --%>
<div class="pdf-column1">
<a href="<%= DLUtil.getDownloadURL(fileEntry, fileVersion, themeDisplay, "") %>">
<img alt="" src="<%=request.getContextPath()%>/img/pdficon.png"> <span><%= fileEntry.getTitle() %></span>
</a>
</div>
<%
}
}
%>
</ul>
</div>
<%-- <div class="text-justify">
<%
DLFolder folder = DLFolderLocalServiceUtil.fetchFolder(scopeGroupId, DLFolderConstants.DEFAULT_PARENT_FOLDER_ID, "video");
if (Validator.isNotNull(folder)){
List<DLFileEntry> dls = DLFileEntryLocalServiceUtil.getFileEntries(scopeGroupId, folder.getFolderId(), status, QueryUtil.ALL_POS, QueryUtil.ALL_POS, orderByComparator);
for(DLFileEntry dl : dls){
}
}
%>
<div> --%>
<aui:script use="aui-carousel,aui-image-viewer">
var imageViewer = new A.ImageViewer(
{
caption: '',
captionFromTitle: true,
centered: true,
imageAnim: {
duration: 1,
easing: 'easeIn'
},
intervalTime: 7,
links: '#<%= styleID %> .image-link.preview',
playing: true,
preloadAllImages: true,
preloadNeighborImages: true,
showInfo: false,
showPlayer: true,
zIndex: 1
}
).render();
</aui:script>
javax.portlet.display-name.video-news=video-news JSP
javax.portlet.keywords.video-news=video-news,jsp
javax.portlet.short-title.video-news=video-news JSP
javax.portlet.title.video-news=video-news JSP Portlet
video-news.caption=Hello from video-news JSP!
\ No newline at end of file
horizontally-vertically=горизонтально/вертикално
isOneStaticPhoto=Если одна статическое фото
\ No newline at end of file
buildscript {
dependencies {
classpath group: "com.liferay", name: "com.liferay.gradle.plugins.workspace", version: "1.7.1"
classpath group: "net.saliman", name: "gradle-properties-plugin", version: "1.4.6"
}
repositories {
maven {
url "https://cdn.lfrs.sl/repository.liferay.com/nexus/content/groups/public"
}
}
}
apply plugin: "net.saliman.properties"
apply plugin: "com.liferay.workspace"
\ No newline at end of file
.yo-rc.json
dist
liferay-plugin.json
node_modules
\ No newline at end of file
<?xml version="1.0"?>
<!DOCTYPE layout-templates PUBLIC "-//Liferay//DTD Layout Templates 7.0.0//EN" "http://www.liferay.com/dtd/liferay-layout-templates_7_0_0.dtd">
<layout-templates>
<custom>
<layout-template id="cis" name="cis_4-8_12">
<template-path>/cis.tpl</template-path>
<thumbnail-path>/cis.png</thumbnail-path>
</layout-template>
<layout-template id="cis_3-9" name="cis_3-9">
<template-path>/cis39.tpl</template-path>
<thumbnail-path>/cis39.png</thumbnail-path>
</layout-template>
<layout-template id="cis_2-8-2_12" name="cis_2-8-2_12">
<template-path>/cis(2-8-2)-12.tpl</template-path>
<thumbnail-path>/cis(2-8-2)-12.png</thumbnail-path>
</layout-template>
<layout-template id="cis_20-80" name="cis_20-80">
<template-path>/cis_20-80.tpl</template-path>
<thumbnail-path>/cis_20-80.png</thumbnail-path>
</layout-template>
<layout-template id="cis_20-802" name="cis_20-802">
<template-path>/cis_20-802.tpl</template-path>
<thumbnail-path>/cis_20-802.png</thumbnail-path>
</layout-template>
</custom>
</layout-templates>
\ No newline at end of file
name=cis
module-group-id=liferay
module-incremental-version=1
tags=
short-description=
long-description=
change-log=
page-url=http://www.liferay.com
author=Liferay, Inc.
licenses=LGPL
liferay-versions=7.0.0+
module-version=1.0.0
\ No newline at end of file
<div class="cis" id="main-content" role="main">
<div class="portlet-layout row">
<div class="portlet-column portlet-column-first col-md-3" id="column-1">
$processor.processColumn("column-1", "portlet-column-content portlet-column-content-first")
</div>
<div class="portlet-column col-md-6" id="column-2">
$processor.processColumn("column-2", "portlet-column-content")
</div>
<div class="portlet-column portlet-column-last col-md-3" id="column-3">
$processor.processColumn("column-3", "portlet-column-content portlet-column-content-last")
</div>
</div>
<div class="portlet-layout row">
<div class="portlet-column portlet-column-only col-md-12" id="column-4">
$processor.processColumn("column-4", "portlet-column-content portlet-column-content-only")
</div>
</div>
</div>
\ No newline at end of file
<div class="cis" id="main-content" role="main">
<div class="portlet-layout row">
<div class="col-md-8 portlet-column portlet-column-first" id="column-1">
$processor.processColumn("column-1", "portlet-column-content portlet-column-content-first")
</div>
<div class="col-md-4 portlet-column portlet-column-last" id="column-2">
$processor.processColumn("column-2", "portlet-column-content portlet-column-content-last")
</div>
</div>
<div class="portlet-layout row">
<div class="col-md-12 portlet-column portlet-column-only" id="column-3">
$processor.processColumn("column-3", "portlet-column-content portlet-column-content-only")
</div>
</div>
</div>
<div class="cis39" id="main-content" role="main">
<div class="portlet-layout row">
<div class="portlet-column portlet-column-first col-md-3" id="column-1">
$processor.processColumn("column-1", "portlet-column-content portlet-column-content-first")
</div>
<div class="portlet-column portlet-column-last col-md-9" id="column-2">
$processor.processColumn("column-2", "portlet-column-content portlet-column-content-last")
</div>
</div>
</div>
<div class="cis_20-80" id="main-content" role="main">
<div class="portlet-layout row">
<div class="portlet-column portlet-column-first col-md-3" id="column-1">
$processor.processColumn("column-1", "portlet-column-content portlet-column-content-first")
</div>
<div class="portlet-column portlet-column-last col-md-9">
<div class="portlet-layout row">
<div class="portlet-column portlet-column-only col-md-12" id="column-2">
$processor.processColumn("column-2", "portlet-column-content portlet-column-content-only")
</div>
</div>
<div class="portlet-layout row">
<div class="portlet-column portlet-column-first col-md-4" id="column-3">
$processor.processColumn("column-3", "portlet-column-content portlet-column-content-first")
</div>
<div class="portlet-column col-md-4" id="column-4">
$processor.processColumn("column-4", "portlet-column-content")
</div>
<div class="portlet-column portlet-column-last col-md-4" id="column-5">
$processor.processColumn("column-5", "portlet-column-content portlet-column-content-last")
</div>
</div>
<div class="portlet-layout row">
<div class="portlet-column portlet-column-only col-md-12" id="column-6">
$processor.processColumn("column-6", "portlet-column-content portlet-column-content-only")
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<div class="cis39ddd" id="main-content" role="main">
<div class="portlet-layout row">
<div class="portlet-column portlet-column-first col-md-3" id="column-1">
$processor.processColumn("column-1", "portlet-column-content portlet-column-content-first")
</div>
<div class="portlet-column portlet-column-last col-md-9">
<div class="portlet-layout row">
<div class="portlet-column portlet-column-only col-md-12" id="column-2">
$processor.processColumn("column-2", "portlet-column-content portlet-column-content-only")
</div>
</div>
<div class="portlet-layout row">
<div class="portlet-column portlet-column-first col-md-6" id="column-3">
$processor.processColumn("column-3", "portlet-column-content portlet-column-content-first")
</div>
<div class="portlet-column portlet-column-last col-md-6" id="column-4">
$processor.processColumn("column-4", "portlet-column-content portlet-column-content-last")
</div>
</div>
<div class="portlet-layout row">
<div class="portlet-column portlet-column-only col-md-12" id="column-5">
$processor.processColumn("column-5", "portlet-column-content portlet-column-content-only")
</div>
</div>
</div>
</div>
</div>
'use strict';
var gulp = require('gulp');
var liferayPluginTasks = require('liferay-plugin-node-tasks');
liferayPluginTasks.registerTasks({
gulp: gulp
});
{"LiferayTheme":{"deployPath":"F:/sbsoft/work/project/bundles/deploy","themeName":"cis-layouttpl","appServerPathTheme":"F:/sbsoft/work/project/bundles/tomcat-8.0.32/webapps/cis-layouttpl","deployed":false,"appServerPath":"F:/sbsoft/work/project/bundles/tomcat-8.0.32"}}
\ No newline at end of file
{
"name": "cis-layouttpl",
"version": "1.0.0",
"main": "package.json",
"keywords": [
"liferay-theme"
],
"liferayLayoutTemplate": {
"version": "7.0"
},
"devDependencies": {
"gulp": "^3.8.10",
"liferay-plugin-node-tasks": "*"
}
}
node_modules
build
dist
liferay-theme.json
.web_bundle_build
.yo-rc.json
\ No newline at end of file
'use strict';
var gulp = require('gulp');
var liferayThemeTasks = require('liferay-theme-tasks');
liferayThemeTasks.registerTasks({
gulp: gulp
});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "cis-stat-theme",
"version": "1.0.0",
"main": "package.json",
"keywords": [
"liferay-theme"
],
"liferayTheme": {
"baseTheme": "styled",
"screenshot": "",
"rubySass": true,
"templateLanguage": "ftl",
"version": "7.0"
},
"devDependencies": {
"gulp": "^3.9.1",
"gulp-ruby-sass": "^2.1.1",
"liferay-theme-deps-7.0": "~1.0.0",
"liferay-theme-tasks": "*"
},
"publishConfig": {
"tag": "7_0_x"
},
"dependencies": {}
}
site-map=Site Map
contact-us=Contact Us
data-base=Database
publications=Publications
more-sites=More sites
job-vacancies=Job vacancies
terms-and-conditions=Terms and Conditions
privacy-policy=Privacy Policy
social-media=Follow us (Social Media)
cis-stat-name=Statcommittee of the CIS
cis-stat-full-name=Interstate Statistical Committee of the Commonwealt of Independent States
welcome-to-statistics=Welcome to statistics!
oecd-header-logo-css=oecd-header__logo_en
oecd-menu-logo-css=oecd-menu-logo-en
oecd-shared-footer__logo-css=oecd-shared-footer__logo-en
en-US=English
site-map=Карта сайта
contact-us=Свяжитесь с нами
data-base=База данных
publications=Публикации
more-sites=Ещё сайты
job-vacancies=Вакансии
terms-and-conditions=Условия
privacy-policy=Политика конфиденциальности
social-media=Мы в соцсетях
cis-stat-name=Статкомитет СНГ
cis-stat-full-name=Межгосударственный статистический комитет Содружества Независимых Государств
welcome-to-statistics=Добро пожаловать в статистику СНГ
oecd-header-logo-css=oecd-header__logo_ru
oecd-menu-logo-css=oecd-menu-logo-ru
oecd-shared-footer__logo-css=oecd-shared-footer__logo-ru
ru-RU=Русский
go-to-x=Перейти на {0}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 7.0.0//EN" "http://www.liferay.com/dtd/liferay-hook_7_0_0.dtd">
<hook>
<language-properties>Language_en_US.properties</language-properties>
<language-properties>Language_ru_RU.properties</language-properties>
</hook>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 7.0.0//EN" "http://www.liferay.com/dtd/liferay-hook_7_0_0.dtd">
<hook>
<language-properties>Language_en_US.properties</language-properties>
<language-properties>Language_ru_RU.properties</language-properties>
</hook>
<?xml version="1.0"?>
<!DOCTYPE look-and-feel PUBLIC "-//Liferay//DTD Look and Feel 7.0.0//EN" "http://www.liferay.com/dtd/liferay-look-and-feel_7_0_0.dtd">
<look-and-feel>
<compatibility>
<version>7.0.0+</version>
</compatibility>
<theme id="cis-stat-theme" name="CIS Stat Theme">
<template-extension>ftl</template-extension>
<color-scheme name="newDesign" id="newDesign">
<css-class>newDesign</css-class>
</color-scheme>
<color-scheme name="oldDesign" id="oldDesign">
<default-cs>true</default-cs>
<css-class>oldDesign</css-class>
</color-scheme>
<portlet-decorator id="barebone" name="Barebone">
<default-portlet-decorator>true</default-portlet-decorator>
<portlet-decorator-css-class>portlet-barebone</portlet-decorator-css-class>
</portlet-decorator>
<portlet-decorator id="borderless" name="Borderless">
<portlet-decorator-css-class>portlet-borderless</portlet-decorator-css-class>
</portlet-decorator>
<portlet-decorator id="decorate" name="Decorate">
<portlet-decorator-css-class>portlet-decorate</portlet-decorator-css-class>
</portlet-decorator>
<portlet-decorator id="linedtitle" name="Lined title">
<portlet-decorator-css-class>portlet-decorate</portlet-decorator-css-class>
</portlet-decorator>
<portlet-decorator id="newtitle" name="New title">
<portlet-decorator-css-class>portlet-newtitle</portlet-decorator-css-class>
</portlet-decorator>
</theme>
</look-and-feel>
\ No newline at end of file
name=CIS Stat Theme
module-group-id=sbsoft
module-incremental-version=2
tags=
short-description=
long-description=
change-log=
page-url=http://www.sbsoft.ru
author=SBSoft, Inc.
licenses=proprietary
liferay-versions=7.0.0+
resources-importer-developer-mode-enabled=true
module-version=1.0.3
\ No newline at end of file
@import "application/variables_custom";
@import "application/variables";
@import "application/autocomplete";
@import "application/cards";
@import "application/color_picker";
@import "application/dialog";
@import "application/drag_drop";
@import "application/editable";
@import "application/editor_alloy";
@import "application/editor_ckeditor";
@import "application/editor_html";
@import "application/editor_lfr_source";
@import "application/file_icons_colors";
@import "application/item_viewer";
@import "application/labels";
@import "application/list_group_deprecated";
@import "application/menu";
@import "application/misc";
@import "application/modal";
@import "application/page_customization";
@import "application/pagination";
@import "application/panel";
@import "application/splitter";
@import "application/tabs";
@import "application/tag_list";
@import "application/tag_selector";
@import "application/tooltip";
@import "application/tree";
@import "application/underlay";
@import "application/user_icons_colors";
\ No newline at end of file
// Icon paths
$FontAwesomePath: "aui/lexicon/fonts/alloy-font-awesome/font";
$font-awesome-path: "aui/lexicon/fonts/alloy-font-awesome/font";
$icon-font-path: "aui/lexicon/fonts/";
\ No newline at end of file
@import "base/variables_custom";
@import "base/variables";
@import "base/loading_animation";
@import "base/logo";
@import "base/misc";
@import "base/quick_access";
@import "base/table_styles";
@import "base/text";
@import "base/util";
\ No newline at end of file
@mixin keyframes($name) {
@-webkit-keyframes #{$name} {
@content;
}
@-moz-keyframes #{$name} {
@content;
}
@-o-keyframes #{$name} {
@content;
}
@keyframes #{$name} {
@content;
}
}
.menu-content, .underlay-content {
box-shadow: 2px 4px 7px rgba(0, 0, 0, 0.5);
}
.lfr-ddm-container .file-entry-upload-progress {
border-radius: 0 0 4px 4px;
}
.lfr-preview-file-image img {
box-shadow: 0 3px 5px -3px rgba(0, 0, 0, 0.8);
}
.lfr-preview-file-image-current-column {
box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.8);
}
.lfr-preview-file-image-current-column {
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.8);
}
.portlet-document-library, .portlet-dynamic-data-mapping {
.lfr-ddm-small-image-preview {
box-shadow: 0 1px 3px #CCC;
}
}
.portlet-document-library-upload-mask .overlaymask-content {
border-radius: 5px;
}
.lfr-search-combobox-item {
border-radius: 1px;
}
.lfr-search-combobox {
.field-input-text {
border-radius: 4px 1px 1px 4px;
}
.button-input {
border-radius: 1px 4px 4px 1px;
}
}
.lfr-upload-container .progress-bar, .lfr-upload-container .progress, .lfr-editable:after {
border-radius: 10px;
}
.portlet-language .portlet-body {
.current-language, .taglib-icon, .taglib-language-list-text {
border-radius: 10px;
}
}
body > .lfr-menu-list ul, .active-area-proxy, .entry-display-style .entry-thumbnail, .lfr-api-results, .lfr-translation-manager, .lfr-translation-manager-translation, .lfr-upload-container .cancel-button .modify-pages .delete-tab, .portlet-image-gallery-display .image-thumbnail img, .rule-group-instance-container .rule-group-instance, .select-documents, .select-files, .taglib-ratings.stars:hover, .taglib-ratings.stars:hover .liferay-rating-vote > div, .taglib-ratings.stars .rating-focused > div, .tags-search-combobox .field-input-text {
border-radius: 4px;
}
.entry-display-style, .lfr-search-combobox, .lfr-upload-container .upload-file, .lfr-upload-container .upload-target, .portlet-document-library .common-file-metadata-container.selected, .portlet-document-library-display .common-file-metadata-container.selected, .portlet-image-gallery-display .image-icon, .select-documents, .select-files {
border-radius: 5px;
}
.portlet-dynamic-data-list-display, .portlet-dynamic-data-lists {
.lfr-ddm-container {
.lfr-ddm-repeatable-placeholder {
border-radius: 6px;
}
}
}
.taglib-categorization-filter .asset-entry {
border-radius: 14px;
}
.menu-content {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.taglib-form-navigator > .form-steps > ul.form-navigator.list-group {
box-shadow: none;
.tab .tab-label {
&:hover, &:focus {
.number {
box-shadow: 0 0 5px 0 #333;
@include transition-duration(0.25s);
@include transition-property(box-shadow);
@include transition-timing-function(ease-out);
}
}
.number {
border-radius: 50%;
}
}
}
.underlay-content {
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
}
.input-localized {
.lfr-input-localized-state {
border-radius: 3px;
}
.lfr-input-localized .lfr-input-localized-state {
box-shadow: 0 0 3px #DDD;
&.lfr-input-localized-state-error {
box-shadow: 0 0 3px #FF0047;
}
}
.palette-item-selected .lfr-input-localized-state {
box-shadow: 0 0 3px #27C1F2;
}
}
.lfr-content-preview-popup .lfr-content-preview-popup-content {
border-radius: 0;
box-shadow: 8px 3px 7px rgba(0, 0, 0, 0.25);
}
.lfr-message .lfr-message-control {
border-radius: 10px;
}
.lfr-token {
border-radius: 8px;
}
.staging-tabview-list {
border-radius: 0;
}
.site-variations-tabview-list .tab-content, .staging-tabview-list .tab-active .tab-content, .tagselector-content .textboxlistentry-holder .lfr-tag-selector-input:focus {
box-shadow: none;
}
.rule-group-instance-container .rule-group-instance {
box-shadow: 1px 1px 2px #999;
}
.lfr-action-label {
border-radius: 2px;
}
@include keyframes(progress-bar-stripes) {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
.lfr-progress-active .progress-bar-status, .lfr-upload-container .file-uploading .progress-bar .progress {
$transparent: rgba(255, 255, 255, 0);
background-size: 40px 40px;
@include background-image(linear-gradient(-45deg, rgba(255, 255, 255, 0.3) 25%, $transparent 25%, $transparent 50%, rgba(255, 255, 255, 0.3) 50%, rgba(255, 255, 255, 0.3) 75%, $transparent 75%, $transparent));
@include experimental(animation, progress-bar-stripes 0.5s linear infinite);
@include transition(width, 0.5s, ease-out);
}
@include keyframes(highlight-animation) {
from {
background-color: #FFC;
}
to {
background-color: transparent;
}
}
.highlight-animation {
@include experimental(animation, highlight-animation 0.7s);
}
.lfr-spa-loading .lfr-spa-loading-bar {
@include experimental(animation, shift-rightwards 1s ease-in-out infinite);
@include experimental(animation-delay, 0.4s);
}
.lfr-spa-loading-bar {
@include transform(translateX(100%));
}
@include keyframes(shift-rightwards) {
0% {
@include transform(translateX(-100%));
}
40% {
@include transform(translateX(0%));
}
60% {
@include transform(translateX(0%));
}
100% {
@include transform(translateX(100%));
}
}
.mobile.touch body:first-of-type .portlet-content .lfr-icon-actions {
.lfr-icon-menu-text, .taglib-text {
max-width: 200px;
}
}
.portlet-boundary.yui3-dd-dragging {
@include transform(scale(0.8));
@include transition(transform 0.3s ease);
}
.portlet-document-library .entry-thumbnail .label, .portlet-document-library-display .workflow-status .label, .portlet-journal .entry-thumbnail .label {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.portlet-options.btn-group {
&, &.open {
.dropdown-toggle {
box-shadow: none;
}
}
}
@include keyframes(lfr-drop-active) {
0% {
background-color: #EBEBEB;
border-color: #DDD;
}
50% {
background-color: #DDEDDE;
border-color: #7D7;
@include transform(scale(1.1));
}
75% {
background-color: #DDEDDE;
border-color: #7D7;
}
100% {
background-color: #EBEBEB;
border-color: #DDD;
}
}
.upload-drop-active {
.lfr-upload-container .upload-target {
@include experimental(animation, none);
}
.portlet-document-library .document-container {
box-shadow: inset 0 0 5px #B8C1D1;
}
}
.upload-drop-intent .lfr-upload-container .upload-target {
@include experimental(animation, lfr-drop-active 1s ease 0.2s infinite);
}
.quick-access-nav {
a {
box-shadow: rgba(0, 0, 0, 0.1) 1px 1px 1px;
}
}
.cke_toolbar {
&.cke_toolbar__a11yhelpbtn {
.cke_toolgroup, .cke_toolgroup:hover {
box-shadow: initial;
}
.cke_button {
&:hover {
box-shadow: none;
}
.cke_button_label {
&:after {
@include background-image(linear-gradient(#FFF, #E4E4E4));
border-radius: 2px;
}
&:hover:after {
@include background-image(linear-gradient(#F2F2F2, #CCC));
}
}
}
}
}
/* ---------- Switches ---------- */
input.switch {
&:focus ~ .switch-bar:before {
box-shadow: 0 0 3px #00F;
}
&:empty ~ .switch-bar {
&:after, &:before, .switch-icon, .switch-toggle:after, .switch-toggle:before {
@include transition(all 100ms ease-in);
}
}
}
/* ---------- Image selector ---------- */
.taglib-image-selector {
.glyphicon-ok {
@include transition(opacity 0.2s ease-in-out);
border-radius: 30px;
}
.progress-wrapper .progressbar {
border-radius: 0;
}
}
/* ---------- Drop here info ---------- */
.drop-here-info {
@include transition(all 0.2s ease-in-out);
.drop-icons {
@include transition(all 0.2s ease-in-out);
span {
@include transition(all 0.3s ease-in-out);
border-radius: 3px;
}
span:nth-of-type(1) {
@include transform(rotate(25deg));
box-shadow: 5px 4px 0 0 rgba(0, 0, 0, 0.08);
}
span:nth-of-type(2) {
@include transform(scale(0.8));
box-shadow: 0 6px 0 -2px rgba(0, 0, 0, 0.15);
}
span:nth-of-type(3) {
@include transform(rotate(-25deg));
box-shadow: -5px 4px 0 0 rgba(0, 0, 0, 0.08);
}
}
}
.drop-active .drop-here-info {
span:nth-of-type(1) {
@include transform(rotate(-20deg));
}
span:nth-of-type(2) {
@include transform(scale(1));
}
span:nth-of-type(3) {
@include transform(rotate(15deg));
}
}
\ No newline at end of file
@import "bourbon";
@import "mixins";
@import "aui/lexicon/lexicon-base-variables";
@import "aui/lexicon/bootstrap/mixins";
@import "aui/lexicon/lexicon-base/mixins";
\ No newline at end of file
@import "layout/variables";
@import "layout/layout";
\ No newline at end of file
/* ---------- Help messages, general additional information, etc. ---------- */
.portlet-msg-alert, .portlet-msg-error, .portlet-msg-help, .portlet-msg-info, .portlet-msg-progress, .portlet-msg-success {
@extend .alert;
}
.portlet-msg-help, .portlet-msg-info, .portlet-msg-progress {
@extend .alert-info;
}
.portlet-msg-progress {
background-image: url(../images/aui/loading_indicator.gif);
background-position: 6px 50%;
background-repeat: no-repeat;
padding-left: 30px;
}
/* ---------- Error messages ---------- */
.portlet-msg-error {
@extend .alert-danger;
}
/* ---------- Alert messages ---------- */
.portlet-msg-alert {
@extend .alert-warning;
}
/* ---------- Success messages ---------- */
.portlet-msg-success {
@extend .alert-success;
}
/* ---------- Misc ---------- */
.navbar .nav li > a {
@include word-wrap(break-all);
}
/* ---------- Status ---------- */
.entry-status {
&.approved {
border-color: $status-approved-border !important;
}
&.scheduled {
border-color: $status-scheduled-border !important;
}
&.pending {
border-color: $status-pending-border !important;
}
&.denied {
border-color: $status-denied-border !important;
}
&.expired {
border-color: $status-expired-border !important;
}
&.draft {
border-color: $status-draft-border !important;
}
}
.status {
&.approved {
color: $status-approved-text;
}
&.scheduled {
color: $status-scheduled-text;
}
&.pending {
color: $status-pending-text;
}
&.denied {
color: $status-denied-text;
}
&.expired {
color: $status-expired-text;
}
&.draft {
color: $status-draft-text;
}
}
\ No newline at end of file
$status-approved-border: $state-success-border !default;
$status-approved-text: $state-success-text !default;
$status-denied-border: $state-danger-border !default;
$status-denied-text: $state-danger-text !default;
$status-draft-border: $gray !default;
$status-draft-text: $status-draft-border !default;
$status-expired-border: $state-warning-border !default;
$status-expired-text: $state-warning-text !default;
$status-pending-border: $state-info-border !default;
$status-pending-text: $state-info-text !default;
$status-scheduled-border: $state-info-bg !default;
$status-scheduled-text: $state-info-text !default;
\ No newline at end of file
@import "navigation/manage_controls";
@import "navigation/page";
@import "navigation/portlet";
@import "navigation/template_selector";
\ No newline at end of file
@import "./portal/accessibility";
@import "./portal/asset_category_selector";
@import "./portal/asset_column";
@import "./portal/auto_row";
@import "./portal/edit_layout";
@import "./portal/generic_portal";
@import "./portal/generic_portlet";
@import "./portal/header_row";
@import "./portal/openid";
@import "./portal/page_settings";
@import "./portal/pagination";
@import "./portal/panel_component";
@import "./portal/panel_page";
@import "./portal/panel_pagination";
@import "./portal/portlet_css_editor";
@import "./portal/preview";
@import "./portal/rich_editor";
@import "./portal/spa";
@import "./portal/tag_selector";
@import "./portal/toolbar";
@import "./portal/translation_manager";
@import "./portal/tree";
@import "./portal/uploader";
\ No newline at end of file
@import "portlet/variables_custom";
@import "portlet/variables";
@import "portlet/controls";
@import "portlet/labels";
@import "portlet/messages";
@import "portlet/spec";
@import "portlet/topper";
@import "portlet/misc";
@import "portlet/portlet_decorator";
@import "portlet/app_components";
\ No newline at end of file
@import "./taglib/app_view_common";
@import "./taglib/app_view_entry";
@import "./taglib/app_view_search_entry";
@import "./taglib/app_view_toolbar";
@import "./taglib/asset_links";
@import "./taglib/asset_metadata";
@import "./taglib/calendar";
@import "./taglib/categorization_filter";
@import "./taglib/diff";
@import "./taglib/diff_html";
@import "./taglib/diff_version_comparator";
@import "./taglib/discussion";
@import "./taglib/drop_here_info";
@import "./taglib/field_wrapper";
@import "./taglib/flags";
@import "./taglib/form_navigator";
@import "./taglib/header";
@import "./taglib/icon";
@import "./taglib/image_selector";
@import "./taglib/input_localized";
@import "./taglib/input_move_boxes";
@import "./taglib/layouts_tree";
@import "./taglib/map";
@import "./taglib/navbar";
@import "./taglib/preview";
@import "./taglib/search_container";
@import "./taglib/search_toggle";
@import "./taglib/social_activities";
@import "./taglib/social_bookmarks";
@import "./taglib/user_display";
@import "./taglib/webdav";
@import "./taglib/workflow_status";
\ No newline at end of file
.lfr-autocomplete-input-list .yui3-aclist-list {
margin: 0;
}
.liferay-autocomplete-input-mirror {
left: -9999px;
overflow-x: hidden;
overflow-y: auto;
position: absolute;
top: -9999px;
visibility: hidden;
white-space: pre-wrap;
word-wrap: break-word;
}
\ No newline at end of file
.card-tab-group {
.card-tab:nth-child(n+2) {
border-left: $card-tab-border-left-width solid $card-tab-border-left-color;
padding-left: $card-tab-padding-left-width;
.card-tab {
border-left: $card-tab-border-left-width solid lighten($card-tab-border-left-color, 10%);
padding-left: $card-tab-padding-left-width;
.card-tab {
border-left-color: lighten($card-tab-border-left-color, 20%);
}
}
}
}
\ No newline at end of file
.hsv-palette {
.hsv-view-container {
.hsv-label-value-hex .hsv-value {
width: 95px;
}
.hsv-label {
display: inline;
margin-left: 5px;
}
.hsv-value {
width: 30px;
}
}
}
.yui3-color-picker-popover {
.palette-container {
border-collapse: separate;
}
}
\ No newline at end of file
.dialog-bd {
min-height: 30px;
}
.dialog-content {
border: 1px solid #C8C9CA;
padding: 5px;
}
.dialog-iframe-popup {
.contacts-portlet .portlet-configuration-container .form {
position: static;
}
.lfr-form-content {
padding: 15px;
}
.portlet-body,
.portlet-boundary,
.portlet-column,
.portlet-layout {
height: 100%;
}
.portlet-column {
position: static;
}
.dialog-body,
.export-dialog-tree,
.lfr-dynamic-uploader,
.lfr-form-content,
.portlet-configuration-body-content,
.process-list,
.roles-selector-body {
> .container-fluid-1280 {
padding-top: 20px;
}
> .lfr-nav + .container-fluid-1280 {
padding-top: 0;
}
}
.dialog-body,
.lfr-form-content,
.portlet-configuration-body-content {
bottom: 0;
left: 0;
margin-bottom: 0;
overflow: auto;
position: absolute;
right: 0;
top: 0;
-webkit-overflow-scrolling: touch;
}
.login-container {
padding: $modal-inner-padding;
}
.management-bar-default,
.navbar-default {
border-left-width: 0;
border-radius: 0;
border-right-width: 0;
border-top-width: 0;
margin-bottom: 0;
}
.navbar ~ .portlet-configuration-setup,
.portlet-export-import-container {
height: calc(100% - #{$dialog-navbar-height});
position: relative;
@include sm {
height: calc(100% - #{$dialog-desktop-navbar-height});
}
}
.panel-group .panel {
border-left-width: 0;
border-radius: 0;
border-right-width: 0;
}
.panel-group .panel + .panel {
border-top-width: 0;
margin-top: 0;
}
.panel-heading {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.portlet-configuration-setup {
.lfr-nav {
margin-left: auto;
margin-right: auto;
max-width: 1280px;
padding-left: 3px;
padding-right: 3px;
@include sm {
padding-left: 8px;
padding-right: 8px;
}
}
}
.export-dialog-tree,
.lfr-dynamic-uploader,
.process-list,
.roles-selector-body {
bottom: 0;
display: block;
left: 0;
overflow: auto;
position: absolute;
right: 0;
top: $dialog-navbar-height;
-webkit-overflow-scrolling: touch;
@include sm {
top: $dialog-desktop-navbar-height;
}
}
.portlet-export-import-publish-processes {
top: 0;
}
}
.dialog-with-footer {
.button-holder {
&.dialog-footer {
background-color: $dialog-footer-bg;
border-top: 1px solid $dialog-footer-border-color;
bottom: 0;
@if (variable-exists(dialog-footer-box-shadow)) {
box-shadow: $dialog-footer-box-shadow;
}
left: 0;
margin: 0;
padding: 10px 15px;
position: absolute;
width: 100%;
@include sm {
background-color: $dialog-desktop-footer-bg;
padding: $dialog-footer-padding;
}
}
.btn-lg {
@include media-query(null, $screen-xs-max) {
font-size: 12px;
padding: 8px 24px;
}
}
}
.blog-article-button-row,
.journal-article-button-row,
.kb-submit-buttons {
.btn-lg {
@include media-query(null, $screen-xs-max) {
padding-left: 16px;
padding-right: 16px;
}
}
}
.dialog-body,
.export-dialog-tree,
.lfr-dynamic-uploader,
.lfr-form-content,
.portlet-configuration-body-content,
.roles-selector-body {
bottom: $dialog-footer-height;
@include sm {
bottom: $dialog-desktop-footer-height;
}
}
.lfr-dynamic-uploader.hide-dialog-footer {
bottom: 0;
+ .dialog-footer {
display: none;
}
}
.portlet-configuration-edit-templates .portlet-configuration-body-content {
bottom: 0;
}
}
\ No newline at end of file
.portlet-layout.dragging {
border-collapse: separate;
}
.drop-area {
background-color: #D3DADD;
}
.active-area {
background: #FFC;
}
.portlet-boundary.yui3-dd-dragging {
opacity: 0.6;
.portlet {
border: 2px dashed #CCC;
}
}
.sortable-layout-proxy {
opacity: 1;
.portlet-topper {
background-image: none;
}
}
.proxy {
cursor: move;
opacity: 0.65;
position: absolute;
&.generic-portlet {
height: 200px;
width: 300px;
.portlet-title {
padding: 10px;
}
}
&.not-intersecting .forbidden-action {
background: url(../images/application/forbidden_action.png) no-repeat;
display: block;
height: 32px;
position: absolute;
right: -15px;
top: -15px;
width: 32px;
}
}
.resizable-proxy {
border: 1px dashed #828F95;
position: absolute;
visibility: hidden;
}
.sortable-proxy {
background: #727C81;
margin-top: 1px;
}
.lfr-freeform-layout-drag-indicator {
visibility: hidden;
}
.sortable-layout-drag-target-indicator {
margin: 2px 0;
}
.yui3-dd-proxy {
z-index: 1110 !important;
}
\ No newline at end of file
.lfr-editable {
$edit-color: #68BB30;
$edit-color-hover: darken(#68BB30, 10);
outline: 1px dashed $edit-color;
outline-offset: 2px;
position: relative;
&:after {
background: $edit-color url(../images/common/edit_white.png) no-repeat 50%;
content: '';
display: block;
height: 20px;
position: absolute;
right: 5px;
top: 5px;
width: 30px;
}
&:focus {
&:after {
display: none;
}
&:hover {
background-color: transparent;
}
}
&:hover {
background-color: rgba(255, 255, 255, 0.3);
outline-color: $edit-color-hover;
&:after {
background-color: $edit-color-hover;
}
}
}
.lfr-editable-notice-close {
margin-left: 1em;
}
.lfr-portlet-title-editable {
margin-top: 0;
z-index: 9999;
.lfr-portlet-title-editable-content {
padding: 0;
.field-input {
margin-bottom: 0;
}
.textfield-label {
display: none;
}
.btn-toolbar-content {
display: inline-block;
vertical-align: bottom;
}
.btn-group {
margin-top: 0;
}
.btn {
display: inline-block;
float: none;
margin-top: 0;
width: auto;
}
}
}
\ No newline at end of file
.alloy-editor-container {
.alloy-editor {
&.alloy-editor-placeholder {
color: #2B4259;
&.ae-placeholder:not(:focus) {
background: transparent;
border-left-color: #DBDDE1;
color: #B0B4BB;
}
&.readonly {
color: #CCC;
}
}
outline: 0;
}
.alloy-editor-icon {
color: #869CAD;
}
}
.has-error .alloy-editor-container .alloy-editor.alloy-editor-placeholder {
&.ae-placeholder:not(:focus) {
border-left-color: #CC6677;
}
}
\ No newline at end of file
.cke_dialog .cke_dialog_ui_input_text {
height: auto;
}
.cke_editable_inline a {
cursor: pointer;
}
.cke_panel.cke_combopanel {
width: 220px;
}
.cke_panel_block {
.cke_panel_grouptitle {
font-size: 20px;
line-height: 20px;
margin-top: 0;
}
.cke_panel_list {
margin-left: 0;
.cke_panel_listItem {
line-height: initial;
a:hover {
text-decoration: none;
}
}
}
}
/* ---------- CKEditor table ---------- */
.cke_show_border {
width: 500px;
td {
height: 15px;
}
}
\ No newline at end of file
.html-editor.portlet {
background: #FFF;
color: #000;
line-height: 1;
padding: 1em;
}
.html-editor.portlet-message-boards {
@include hyphens;
word-wrap: break-word;
blockquote {
background: #EEF0F2 url(../images/message_boards/quoteleft.png) no-repeat 5px 5px;
border: 1px solid #777;
padding: 5px 45px;
&:after {
background: url(../images/message_boards/quoteright.png) no-repeat 50%;
content: '';
display: block;
float: right;
height: 24px;
margin-right: -35px;
margin-top: -25px;
width: 31px;
z-index: 999;
}
cite {
display: block;
font-weight: bold;
}
}
pre {
background: #F9F9F9;
border: 1px solid #777;
padding: 0.5em;
}
}
\ No newline at end of file
.lfr-source-editor {
border-color: #CCC;
.lfr-source-editor-toolbar {
li {
> .btn {
background-color: #FFF;
border: transparent;
color: #717383;
outline: 0;
}
}
}
.lfr-source-editor-code {
background-color: #FFF;
color: #2B4259;
.ace_gutter {
background-color: #EDEDEF;
color: #868896;
overflow : hidden;
.ace_fold-widget {
font-family: fontawesome-alloy;
text-align: center;
vertical-align: middle;
&.ace_open, &.ace_closed {
background-image: none;
}
&.ace_open:before {
content: "\f0d7";
}
&.ace_closed:before {
content: "\f0dA";
}
}
.ace_gutter-active-cell {
color: #FFF;
}
.ace_gutter-active-line {
background-color : #717383;
}
.ace_gutter-layer {
border-right: solid 1px #CCC;
}
.ace_info {
background-image: none;
}
}
.ace_content {
.ace_active-line {
background-color: #EDEDEF;
}
.ace_constant {
color: #34ADAB;
}
.ace_tag {
color: #1D5EC7;
}
.ace_string {
color: #FF6C58;
&.ace_regex {
color: #F00;
}
}
}
}
&.ace_dark {
.lfr-source-editor-code {
background-color: #47474F;
color: #FFF;
.ace_gutter {
background: #54555E;
color: #FFF;
.ace_gutter-active-line {
background-color : #009AED;
}
}
.ace_content {
.ace_active-line {
background-color: #11394E;
}
.ace_cursor {
color: #FFF;
}
.ace_tag {
color: #4D91FF;
}
}
}
}
}
.lfr-fullscreen-source-editor .lfr-fullscreen-source-editor-content .panel-splitter {
border-color: #CCC;
}
\ No newline at end of file
.file-icon-color-0 {
background-color: $file-icon-color-0;
color: $file-icon-text-color-0;
}
.file-icon-color-1 {
background-color: $file-icon-color-1;
color:$file-icon-text-color-1;
}
.file-icon-color-2 {
background-color: $file-icon-color-2;
color:$file-icon-text-color-2;
}
.file-icon-color-3 {
background-color: $file-icon-color-3;
color:$file-icon-text-color-3;
}
.file-icon-color-4 {
background-color: $file-icon-color-4;
color:$file-icon-text-color-4;
}
.file-icon-color-5 {
background-color: $file-icon-color-5;
color:$file-icon-text-color-5;
}
.file-icon-color-6 {
background-color: $file-icon-color-6;
color:$file-icon-text-color-6;
}
.file-icon-color-7 {
background-color: $file-icon-color-7;
color:$file-icon-text-color-7;
}
\ No newline at end of file
.lfr-item-viewer {
.image-viewer-base {
outline: none;
}
.item-preview:hover {
cursor: pointer;
}
.aspect-ratio a.item-preview {
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
.search-info {
background-color: #D3E8F1;
.keywords {
font-size: 1.4em;
font-weight: bold;
}
.change-search-folder {
font-size: 0.8em;
font-weight: normal;
}
}
.progress-container {
background-color: #FFF;
}
&.uploading > div:not(.progress-container) {
opacity: 0.3;
}
}
.image-viewer-caption {
color: #777;
}
.image-viewer-footer-control {
&, &:focus, &:hover {
color: #777;
}
}
.image-viewer-sidenav-menu {
@include sm {
background-color: transparent;
border-left-width: 0;
}
}
.image-viewer-sidenav {
dd {
color: #8B8B8B;
margin-bottom: 16px;
@include sm {
color: #777;
}
}
.h5 {
color: #869CAD;
margin-bottom: 3px;
@include sm {
color: #FFF;
}
}
.nav-tabs-default {
> li {
padding-left: 20px;
&:first-child {
padding-left: 0;
}
}
> li:first-child > a {
padding-left: 0;
}
> li > a {
border-color: transparent;
color: #777;
padding-left: 0;
padding-right: 0;
}
> .active > a {
&, &:focus, &:hover {
border-color: transparent;
color: #777;
@include sm {
color: #FFF;
}
}
&:after {
background-color: #65B6F0;
bottom: -10px;
content: '';
display: block;
height: 2px;
left: 0;
position: absolute;
right: 0;
}
}
}
}
.image-viewer-sidenav-body {
padding-top: 0;
}
.lfr-item-viewer .lfr-item-viewer-close {
color: #FFF;
opacity: 1;
&, &:focus, &:hover {
color: #FFF;
}
.icon-monospaced {
color: #777;
}
}
.lfr-item-viewer-icon-info {
color: #FFF;
}
\ No newline at end of file
.label-circle {
&, .label {
border-radius: $label-circle-border-radius;
}
}
.label-rounded {
&, .label {
border-radius: $label-rounded-border-radius;
}
}
.label-square {
&, .label {
border-radius: $label-square-border-radius;
}
}
.label-entry {
background-color: $label-entry-bg;
border: solid $label-entry-border-width $label-entry-border-color;
color: $label-entry-color;
display: inline-block;
font-size: $label-entry-font-size;
font-weight: normal;
padding: $label-entry-padding;
button {
background-color: transparent;
border-width: 0;
color: inherit;
height: $label-entry-button-height;
width: $label-entry-button-width;
}
}
\ No newline at end of file
.nav.list-group {
li > a {
&:focus, &:hover {
background-color: #E5F5FC;
color: #009AE5;
}
}
> .active {
border-width: 1px 0 0 0;
> a {
&, &:focus, &:hover {
background-color: #60BFEF;
border: 1px solid #60BFEF;
color: #FFF;
}
}
}
.list-group-item {
padding: 0;
&.nav-header {
background-color: #F3F3F3;
padding-left: 10px;
padding-right: 10px;
}
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment