--- /dev/null
+<%@page import="com.liferay.portal.kernel.util.Validator"%>\r
+<%@page import="com.pentila.entSavoie.userProperties.service.UserMatchingLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.userProperties.model.UserMatching"%>\r
+<%@page import="com.pentila.entSavoie.cantine.service.CantinePlanAlimentaireLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.internalMessaging.InternalMessagingConstants"%>\r
+<%@page import="com.pentila.entSavoie.cartable.service.CasierEntryLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.internalMessaging.service.MessageLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.internalMessaging.model.Account"%>\r
+<%@page import="com.pentila.entSavoie.internalMessaging.service.AccountLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.internalMessaging.service.InternalMessageLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.internalMessaging.service.InternalFolderMessageLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.internalMessaging.model.InternalFolderMessage"%>\r
+<%@page import="java.util.List"%>\r
+<%@page import="com.liferay.portal.service.RoleLocalServiceUtil"%>\r
+<%@page import="com.liferay.portal.model.RoleConstants"%>\r
+<%@page import="com.pentila.entSavoie.ENTRoleUtilFactory"%>\r
+<%@page import="com.liferay.portal.model.Role"%>\r
+<%@page import="com.liferay.portal.model.Organization"%>\r
+<%@page import="com.pentila.entSavoie.directory.OrganizationFinderServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.utils.XitiUtil"%>\r
+<%@page import="com.pentila.entSavoie.userProperties.service.UserPropertiesLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.userProperties.model.UserProperties"%>\r
+<%@page import="com.pentila.entSavoie.utils.ENTMainUtilsLocalServiceUtil"%>\r
+<%@page import="com.pentila.entSavoie.utils.MenuFullScreenGenerator"%>\r
+\r
+<%\r
+/**\r
+ * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy\r
+ * of this software and associated documentation files (the "Software"), to deal\r
+ * in the Software without restriction, including without limitation the rights\r
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+ * copies of the Software, and to permit persons to whom the Software is\r
+ * furnished to do so, subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in\r
+ * all copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ */\r
+%>\r
+\r
+<%@ include file="/html/common/init.jsp" %>\r
+<%\r
+// on traite les locale\r
+String defaultLoc = "fr";\r
+\r
+if(!user.getLocale().toString().isEmpty()){\r
+ defaultLoc = user.getLocale().toString().substring(0,2);\r
+}\r
+\r
+boolean imUseSignature = false;\r
+String imSignature = "";\r
+\r
+try{\r
+ UserProperties up = UserPropertiesLocalServiceUtil.getUserPropertiesByUserId(user.getUserId());\r
+ imUseSignature = up.getImUseSignature();\r
+ imSignature = up.getImSignature().replace('"', '\'');\r
+} catch(Exception e){\r
+\r
+}\r
+\r
+\r
+%>\r
+\r
+<script>\r
+\r
+// To set gray theme\r
+//Ext.util.CSS.swapStyleSheet("theme", "/html/js/extjs/resources/css/xtheme-gray.css");\r
+\r
+var defaultLoc = "<%= defaultLoc %>";\r
+\r
+//Pour la signature\r
+var imUseSignatureGlobal = <%=imUseSignature%>;\r
+var imSignatureGlobal = "<%=imSignature.replaceAll("[\r\n]+", " ")%>";\r
+\r
+//Parametres Xiti concernant le user\r
+var userXitiId = <%= user.getUserId() %>;\r
+var roleXitiId = <%= XitiUtil.getRole(user) %>;\r
+var etabXitiId = <%= XitiUtil.getEtab(user) %>;\r
+\r
+//Parametres Xiti generaux\r
+var serviceXitiId_emptyId = "<%= XitiUtil.EMPTY_ID %>";\r
+var libServiceXiti_pageEnt = "<%= XitiUtil.PAGE_ENT %>";\r
+var serviceXitiId_REL = <%= XitiUtil.ID_RESSOURCES_EN_LIGNE %>;\r
+var libServiceXiti_REL = "<%= XitiUtil.RESSOURCES_EN_LIGNE %>";\r
+var serviceXitiId_VieScolaire = <%= XitiUtil.ID_SERVICES_VIE_SCOLAIRE %>;\r
+var libServiceXiti_VieScolaire = "<%= XitiUtil.SERVICES_VIE_SCOLAIRE %>";\r
+var enableXitiTag = <%= ENTMainUtilsLocalServiceUtil.getXitiEnable(user.getCompanyId()) %>;\r
+var ID_PROJET = <%=ENTMainUtilsLocalServiceUtil.getXitiIdProjet(user.getCompanyId())%>;\r
+var ID_PLATEFORME = <%=ENTMainUtilsLocalServiceUtil.getXitiIdPlateforme(user.getCompanyId())%>;\r
+var ID_COLLECTIVITE = <%=ENTMainUtilsLocalServiceUtil.getXitiIdCollectivite(user.getCompanyId())%>;\r
+\r
+// Paramètre Piwik\r
+var enablePiwikTag = <%= ENTMainUtilsLocalServiceUtil.getPiwikEnable(user.getCompanyId()) %>;\r
+var piwikURL = "<%= ENTMainUtilsLocalServiceUtil.getPiwikUrl(user.getCompanyId()) %>";\r
+\r
+//parametre de tracker\r
+var trackerOrgId = 0;\r
+\r
+function getUrlParam(name, url) {\r
+ if (!url) {\r
+ url = location.href;\r
+ }\r
+ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");\r
+ var regexS = "[\\?&]"+name+"=([^&#]*)";\r
+ var regex = new RegExp( regexS );\r
+ var results = regex.exec( url );\r
+ return results == null ? null : results[1];\r
+}\r
+<%\r
+if (!user.isDefaultUser()) {\r
+ Organization etabRatt = OrganizationFinderServiceUtil.getEtabRatachement(user);\r
+ if (etabRatt!=null) {\r
+ %>\r
+ trackerOrgId = <%= etabRatt.getOrganizationId() %>;\r
+ <%\r
+ }\r
+}\r
+%>\r
+\r
+function fireGroupChangeWikiPageEvent(pageUrl) {\r
+ var event = new CustomEvent("groupChangeWikiPage", { "detail": {"pageUrl": pageUrl}});\r
+ document.dispatchEvent(event);\r
+}\r
+\r
+//Fonction permettant de construire l'uploader xiti\r
+function drawJQUploadFilePanel(panel){\r
+ var idUploadBtn = '#' + panel.jQUploadBtnId;\r
+ jQuery( '<div id="progress-panel" class="angular-content hide" style="width:200px;">' +\r
+ '</div>')\r
+ .appendTo('body');\r
+\r
+ jQuery(function () {\r
+ 'use strict';\r
+ // Initialize the jQuery File Upload widget:\r
+ jQuery(idUploadBtn).fileupload({\r
+ namespace: idUploadBtn,\r
+ autoUpload: true,\r
+ dropZone: (Ext.isGecko3 || Ext.isIE)?null:jQuery(panel.filesDropZone),\r
+ maxFileSize: 100000000,\r
+ acceptFileTypes: panel.supportedExtensions, ///^image\/(gif|jpeg|png|jpg|tif|tiff)$/:/.+$/i,\r
+ add: function (e, data) {\r
+ $.each(data.files, function (index, file) {\r
+ if (file.size > 100000000) {\r
+ data.abort();\r
+ Ext.MessageBox.alert(file.name, "Le fichier dépasse la taille maximale autorisée. (100Mo)", function(btn){});\r
+ return false;\r
+ }\r
+ var fileId = file.size + file.lastModified;\r
+ $('#progress-panel').removeClass("hide");\r
+ jQuery( '<div id="progress' + fileId + '">' +\r
+ '<div class="progress" style="width:180px;height:20px;">' +\r
+ '<div class="progress-bar progress-bar-success progress-bar-striped">' +\r
+ file.name +\r
+ '</div>' +\r
+ '</div>' +\r
+ '<a id="abort' + fileId + '">' +\r
+ '<i class="fa fa-times"></i>'+\r
+ '</a>' +\r
+ '</div>')\r
+ .appendTo('#progress-panel');\r
+\r
+ $("#abort" + fileId).on('click', function () {\r
+ data.abort();\r
+ $("#progress" + fileId).remove();\r
+ });\r
+ });\r
+\r
+\r
+ if (e.isDefaultPrevented()) {\r
+ return false;\r
+ }\r
+ var $this = $(this),\r
+ that = $this.data('blueimp-fileupload') ||\r
+ $this.data('fileupload'),\r
+ options = that.options;\r
+\r
+ data.context = that._renderUpload(data.files)\r
+ .data('data', data)\r
+ .addClass('processing');\r
+ options.filesContainer[\r
+ options.prependFiles ? 'prepend' : 'append'\r
+ ](data.context);\r
+ that._forceReflow(data.context);\r
+ that._transition(data.context);\r
+ data.process(function () {\r
+ return $this.fileupload('process', data);\r
+ }).always(function () {\r
+ data.context.each(function (index) {\r
+ $(this).find('.size').text(\r
+ that._formatFileSize(data.files[index].size)\r
+ );\r
+ }).removeClass('processing');\r
+ that._renderPreviews(data);\r
+ }).done(function () {\r
+ data.context.find('.start').prop('disabled', false);\r
+ if ((that._trigger('added', e, data) !== false) &&\r
+ (options.autoUpload || data.autoUpload) &&\r
+ data.autoUpload !== false) {\r
+ data.submit();\r
+ }\r
+ }).fail(function () {\r
+ if (data.files.error) {\r
+ data.context.each(function (index) {\r
+ var error = data.files[index].error;\r
+ if (error) {\r
+ $(this).find('.error').text(error);\r
+ }\r
+ });\r
+ }\r
+ });\r
+ },\r
+ progress: function (e, data) {\r
+ if (e.isDefaultPrevented()) {\r
+ return false;\r
+ }\r
+ var progress = Math.floor(data.loaded / data.total * 100);\r
+\r
+ $.each(data.files, function (index, file) {\r
+ var fileId = file.size + file.lastModified;\r
+\r
+ $('#progress' + fileId + ' .progress-bar').css(\r
+ 'width',\r
+ progress + '%'\r
+ );\r
+ });\r
+ },\r
+ progressall: function (e, data) {\r
+ var progress = parseInt(data.loaded / data.total * 100, 10);\r
+\r
+ $('#progress .progress-bar').css(\r
+ 'width',\r
+ progress + '%'\r
+ );\r
+ },\r
+ done: function (e, data) {\r
+ if (e.isDefaultPrevented()) {\r
+ return false;\r
+ }\r
+\r
+ $.each(data.files, function (index, file) {\r
+ var fileId = file.size + file.lastModified;\r
+ $("#progress" + fileId).remove();\r
+ });\r
+\r
+ if(defaultLoc == "en"){\r
+ Ext.slideMsg.msg("Add files", "The files has been added.");\r
+ } else if(defaultLoc == "ro"){\r
+ Ext.slideMsg.msg("Adăugarea de fişiere", "Fișierul a fost adăugat");\r
+ } else {\r
+ Ext.slideMsg.msg("Ajout de fichiers", "Le(s) fichier(s) a(ont) été correctement ajouté(s)");\r
+ }\r
+ },\r
+ stop: function (e) {\r
+ $('#progress-panel').addClass("hide");\r
+ if (e.isDefaultPrevented()) {\r
+ return false;\r
+ }\r
+ var that = $(this).data('blueimp-fileupload') ||\r
+ $(this).data('fileupload'),\r
+ deferred = that._addFinishedDeferreds();\r
+ $.when.apply($, that._getFinishedDeferreds())\r
+ .done(function () {\r
+ that._trigger('stopped', e);\r
+ });\r
+ that._transition($(this).find('.fileupload-progress')).done(\r
+ function () {\r
+ $(this).find('.progress')\r
+ .attr('aria-valuenow', '0')\r
+ .children().first().css('width', '0%');\r
+ $(this).find('.progress-extended').html(' ');\r
+ deferred.resolve();\r
+ }\r
+ );\r
+ },\r
+ formData: panel.isCartable ? function (form) {\r
+ return [\r
+ {\r
+ name: 'folderId',\r
+ value: panel.mainContainer.folderId\r
+ }\r
+ ];\r
+ }:null\r
+ });\r
+\r
+ jQuery(idUploadBtn).bind('fileuploaddone', function (e, data) {\r
+ panel.mainContainer.refreshInterfaceAddFileJQuery(data.result);\r
+ });\r
+\r
+ // Open download dialogs via iframes,\r
+ // to prevent aborting current uploads:\r
+ jQuery(idUploadBtn + ' .files a:not([target^=_blank])').on('click', function (e) {\r
+ e.preventDefault();\r
+ jQuery('<iframe style="display:none;"></iframe>')\r
+ .prop('src', this.href)\r
+ .appendTo('body');\r
+ });\r
+ });\r
+};\r
+\r
+//Le render jQueryUploaderProgressWindow du est dans bottom-ext.jsp\r
+var jQueryUploaderProgressWindow = new EntSavoie.JQueryUploaderProgressWindow({});\r
+\r
+//Initialisation de la classe permettant la detection du navigateur\r
+EntSavoie.BrowserDetect.initialize();\r
+\r
+var Global = {\r
+ User: {\r
+ <c:if test="<%= themeDisplay.isSignedIn() %>">\r
+\r
+ portraitId: "<%= user.getPortraitId() %>",\r
+\r
+ getUserId: function() {\r
+ return "<%= user.getUserId() %>";\r
+ },\r
+ getLastName: function() {\r
+ return "<%= user.getLastName() %>";\r
+ },\r
+ getFirstName: function() {\r
+ return "<%= user.getFirstName() %>";\r
+ },\r
+ getScreenName: function() {\r
+ return "<%= user.getScreenName() %>";\r
+ },\r
+ isMale: function() {\r
+ return "<%= user.isMale() %>";\r
+ },\r
+ isFemale: function() {\r
+ return "<%= user.isFemale() %>";\r
+ },\r
+ getPortraitId: function() {\r
+ return this.portraitId;\r
+ },\r
+ setPortraitId: function(portraitId){\r
+ this.portraitId = portraitId;\r
+ },\r
+ isAdministrator: function(){\r
+ <%\r
+ Role administrator = ENTRoleUtilFactory.getInstance(user.getCompanyId()).getRole(RoleConstants.ADMINISTRATOR);\r
+ %>\r
+ return <%= RoleLocalServiceUtil.hasUserRole(user.getUserId(), administrator.getRoleId()) %>;\r
+ },\r
+ getNewMessageCount: function() {\r
+ <%\r
+ int nbMesage = 0;\r
+ List<InternalFolderMessage> folderIncommingMsg = InternalFolderMessageLocalServiceUtil.getUserFolderTypeMessages(user.getUserId(), InternalMessagingConstants.INCOMMING_FOLDER_TYPE);\r
+ for (InternalFolderMessage folder : folderIncommingMsg){\r
+ nbMesage += InternalMessageLocalServiceUtil.countMessageNew(folder.getFolderMessageId());\r
+ }\r
+\r
+ List<Account> accs = AccountLocalServiceUtil.getAccountsByUserId(user.getUserId());\r
+ for (Account ac : accs) {\r
+ nbMesage += MessageLocalServiceUtil.getFolderUnreadMessagesCount(ac.getInboxFolderId());\r
+ }\r
+ %>\r
+ return "<%= nbMesage %>";\r
+ },\r
+ getNewCasierEntryCount: function() {\r
+ <%\r
+ int nbCasier = CasierEntryLocalServiceUtil.countByC_G_isNew(user.getCompanyId(), user.getGroup().getGroupId(), true);\r
+ %>\r
+ return "<%= nbCasier %>";\r
+ },\r
+ hasCantineConsultation: function(){\r
+ <%\r
+ Organization etab = OrganizationFinderServiceUtil.getEtabRatachement(user);\r
+ int nbPlans = 0;\r
+ if(Validator.isNotNull(etab)){\r
+ nbPlans = CantinePlanAlimentaireLocalServiceUtil.getCantinePlanAlimentaireByEtabId_Diffuse(etab.getOrganizationId()).size();\r
+ }\r
+ %>\r
+ return <%= nbPlans>0 %>;\r
+ },\r
+ hasMenuAjaxable: function(){\r
+ <%\r
+ boolean ajaxable = false;\r
+ try {\r
+ ajaxable = UserPropertiesLocalServiceUtil.getUserPropertiesByUserId(user.getUserId()).getAjaxablePortlets();\r
+ } catch(Exception e){}\r
+ %>\r
+ return <%= ajaxable %>;\r
+ },\r
+ canImpersonateUser: function(){\r
+ <%\r
+ boolean canImpersonate = false;\r
+ List<UserMatching> lUserMatching = UserMatchingLocalServiceUtil.getUserMatchings(realUser.getUserId());\r
+ for(UserMatching userMatching: lUserMatching){\r
+ if(userMatching.getValid()){\r
+ canImpersonate = true;\r
+ break;\r
+ }\r
+ }\r
+ %>\r
+ return <%= canImpersonate %>;\r
+ },\r
+ isImpersonate: function(){\r
+ return <%= realUser.getUserId() != user.getUserId() %>;\r
+ },\r
+ getRealUserId: function() {\r
+ return "<%= realUser.getUserId() %>";\r
+ },\r
+ getRealLastName: function() {\r
+ return "<%= realUser.getLastName() %>";\r
+ },\r
+ getRealFirstName: function() {\r
+ return "<%= realUser.getFirstName() %>";\r
+ },\r
+ getRealScreenName: function() {\r
+ return "<%= realUser.getScreenName() %>";\r
+ }\r
+ </c:if>\r
+ },\r
+ Theme: {\r
+ getURLPortal: function() {\r
+ return "<%= themeDisplay.getURLPortal() %>";\r
+ },\r
+ getPathThemeImages: function() {\r
+ return "<%= themeDisplay.getPathThemeImages() %>";\r
+ },\r
+ getURLControlPanel: function() {\r
+ return "<%= themeDisplay.getURLControlPanel() %>";\r
+ },\r
+ getURLSignOut: function() {\r
+ return "<%= themeDisplay.getURLSignOut() %>";\r
+ },\r
+ getMenuFullScreenAsJSON: function() {\r
+ <%-- return Ext.decode("<%= MenuFullScreenGenerator.generate(themeDisplay, request, user) %>"); --%>\r
+ },\r
+ getEntFullScreenAllowed: function() {\r
+ return "<%= ENTMainUtilsLocalServiceUtil.getEntFullScreenAllowed() %>";\r
+ },\r
+ getFullScreenMaximizeKey: function() {\r
+ return "<%= ENTMainUtilsLocalServiceUtil.getEntFullScreenMaximizeKey() %>";\r
+ }\r
+ },\r
+ Portlet: {\r
+ height: <%= ENTMainUtilsLocalServiceUtil.getDefaultPortletHeight() %>\r
+ }\r
+};\r
+\r
+</script>\r
+\r
+<script src="<%= HtmlUtil.escape(PortalUtil.getStaticResourceURL(request, themeDisplay.getCDNHost() + themeDisplay.getPathContext() + "/html/js/extjs/src/locale/ext-lang-"+ defaultLoc +".js")) %>" type="text/javascript"></script>\r
+\r
+<script src="<%= HtmlUtil.escape(PortalUtil.getStaticResourceURL(request, themeDisplay.getCDNHost() + themeDisplay.getPathContext() + "/html/js/extjs/pentila/locale/pentila-ext-lang-"+ defaultLoc +".js")) %>" type="text/javascript"></script>\r