IDEMPIERE-2309 Performance: replace Custom Idempiere Homepage (img_back) 639kb->69kb

This commit is contained in:
Carlos Ruiz 2019-01-01 17:40:22 +01:00
parent f3db098703
commit 16595cca41
11 changed files with 7 additions and 282 deletions

View File

@ -10,58 +10,6 @@
<link href="standard.css" rel="stylesheet" type="text/css">
<!--
<script language="JavaScript" type="text/javascript">
var javawsInstalled = false;
if (navigator.mimeTypes && navigator.mimeTypes.length)
javawsInstalled = navigator.mimeTypes['application/x-java-jnlp-file'];
else
isIE = true;
function insertLink (url, name)
{
if (javawsInstalled)
{
}
else
{
document.write("You need to install Java or configure Java Web Start");
document.write("<br>visit ");
document.write("<a href=\"http://java.sun.com/javase/downloads/index.jsp\">" );
document.write("Java Installation");
document.write("</a><br>");
}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
<script language="VBScript" type="text/vbscript">
on error resume next
If isIE Then
If Not(IsObject(CreateObject("JavaWebStart.IsInstalled"))) Then
javawsInstalled = false
Else
javawsInstalled = true
End If
End If
</script>
//-->
</head>
<body leftmargin="0" topmargin="0" onload="MM_preloadImages('idempiere_logo2.gif')" marginheight="0" marginwidth="0">
@ -115,49 +63,6 @@ End If
<!--DWLayoutTable-->
<tbody>
<!-- !!! Comment webstart still not supported
<tr>
<td bgcolor="#e9eef5" valign="top" width="23%">
<h2>
<font color="#000000">Web Start</font>
</h2>
</td>
<td bgcolor="#fbf8f1" width="77%">
<p>
<a href="adempiere.jnlp">
<img src="webstart.jpg" alt="iDempiere WebStart" align="right" border="0" height="57" width="237">
</a>
<script language="JavaScript" type="text/javascript">
</script>
Install &nbsp;<a href="http://java.sun.com/javase/downloads/index.jsp" target="sun">Java 6 JRE (Runtime)</a>
and press WebStart<br>
Check also WebStart <a href="http://www.adempiere.org/support/install/webStart.html" target="c">Details</a>.<br>
If you have trouble starting, try <a href="/admin/adempiereHome/adempiereDirect.jnlp">this</a>
(or via <a href="/admin/applet.html">Applet</a>)
</p>
</td>
</tr>
-->
<!-- !!! Comment local install supported in a different download
<tr>
<td bgcolor="#e9eef5">
<h2><font color="#000000">Local Install </font></h2>
</td>
<td bgcolor="#fbf8f1"><a href="adempiereHome/AdempiereClient.zip"><img src="zip.gif" alt="iDempiere Client Zip" align="right" border="0" height="32" width="32"></a>Install &nbsp;<a href="http://java.sun.com/javase/downloads/index.jsp" target="sun">Java 6 JRE (Runtime)</a>; Download and extract the iDempiere Client <a href="/admin/adempiereHome/AdempiereClient.zip" title="Download iDempiere Client">zip</a> file on your Client;. <br>
Start iDempiere via RUN_Adempiere </td>
</tr>
-->
<tr>
@ -224,7 +129,7 @@ Start iDempiere via RUN_Adempiere </td>
<tbody>
<tr>
<td>&copy; Copyright 2013 iDempiere - All rights reserved - <a href="http://www.gnu.org/licenses/gpl-2.0.html" target="_blank">iDempiere License is GPLv2</a></td>
<td>&copy; Copyright 2019 iDempiere - All rights reserved - <a href="http://www.gnu.org/licenses/gpl-2.0.html" target="_blank">iDempiere License is GPLv2</a></td>
</tr>

View File

@ -12,11 +12,6 @@ Author URI: http://www.bmlaurus.com
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="<%=Prop.loadCss()%>">
<script type="text/javascript" src="resources/jquery/jquery.js"></script>
<% if(Prop.isRssOn()){
out.write("<script type=\"text/javascript\" language=\"javascript\" src=\"https://www.google.com/jsapi?key=ABQIAAAAFEyVt-pBJaTXzM__EKlCrBRyn6VRRdQGMLQqRPPw1fs6QDtVcBRGklOHzrf7hmoAX3qgxg4t5ImqRA\"></script>\n");
out.write("<script type=\"text/javascript\" language=\"javascript\" src=\"resources/gfeedfetcher.js\"></script>");
}
%>
<title><%=Prop.getProperty(Prop.TITLE) %></title>
</head>
<body>
@ -80,28 +75,6 @@ Author URI: http://www.bmlaurus.com
</div>
</div>
</div>
<div id="main-rssContent">
<div id="rssfeed-wrap">
<script type="text/javascript">
<% if(Prop.isRssOn()) {
out.write("var newsfeed=new gfeedfetcher(\"rssfeeds\", \"rssfeedsclass\", \"_new\");\n");
out.write("newsfeed.displayoptions(\"label datetime snippet\");\n");
out.write("newsfeed.setentrycontainer(\"p\");\n");
out.write("newsfeed.filterfeed(20, \"date\");\n");
for(int i=1;i<=5;i++){
if(Prop.getProperty(Prop.RSS+i)!=null&&Prop.getProperty(Prop.RSS+i).length()>0){
out.write("newsfeed.addFeed(\""+Prop.getProperty(Prop.RSS+i+"Name")+"\",\""+Prop.getProperty(Prop.RSS+i)+"\");\n");
}
}
out.write("newsfeed.init();\n");
}
%>
</script>
<% if(Prop.isRssOn())
out.write("<p><a class=\"darklink\" href=\"javascript:newsfeed.init()\">"+Prop.getProperty(Prop.RSS_REFRESH)+"</a></p>");
%>
</div>
</div>
<div id="main-login" class="main-login">
<a href="<%=Prop.getProperty(Prop.WEBUI_LINK)%>" target="_self">
<img name="img_webui" src="<%=Prop.getImage("img_webui.png")%>" border="0" />
@ -144,7 +117,7 @@ Author URI: http://www.bmlaurus.com
</div>
</div>
<div id="main-background">
<img name="img_background" src="<%=Prop.getImage("img_back.png")%>" border="0"/>
<img name="img_background" src="<%=Prop.getImage("img_back.jpg")%>" border="0"/>
</div>
</div>
</div>

View File

@ -1,119 +0,0 @@
// -------------------------------------------------------------------
// gAjax RSS Feeds Displayer- By Dynamic Drive, available at: http://www.dynamicdrive.com
// Created: July 17th, 2007
// Updated June 14th, 10': Fixed issue in IE where labels would sometimes be associated with the incorrect feed items
// -------------------------------------------------------------------
var gfeedfetcher_loading_image="resources/indicator.gif" //Full URL to "loading" image. No need to config after this line!!
google.load("feeds", "1") //Load Google Ajax Feed API (version 1)
function gfeedfetcher(divid, divClass, linktarget){
this.linktarget=linktarget || "" //link target of RSS entries
this.feedlabels=[] //array holding lables for each RSS feed
this.feedurls=[]
this.feeds=[] //array holding combined RSS feeds' entries from Feed API (result.feed.entries)
this.feedsfetched=0 //number of feeds fetched
this.feedlimit=5
this.showoptions="" //Optional components of RSS entry to show (none by default)
this.sortstring="date" //sort by "date" by default
document.write('<div id="'+divid+'" class="'+divClass+'"></div>') //output div to contain RSS entries
this.feedcontainer=document.getElementById(divid)
this.itemcontainer="<li>" //default element wrapping around each RSS entry item
}
gfeedfetcher.prototype.addFeed=function(label, url){
this.feedlabels[this.feedlabels.length]=label
this.feedurls[this.feedurls.length]=url
}
gfeedfetcher.prototype.filterfeed=function(feedlimit, sortstr){
this.feedlimit=feedlimit
if (typeof sortstr!="undefined")
this.sortstring=sortstr
}
gfeedfetcher.prototype.displayoptions=function(parts){
this.showoptions=parts //set RSS entry options to show ("date, datetime, time, snippet, label, description")
}
gfeedfetcher.prototype.setentrycontainer=function(containerstr){ //set element that should wrap around each RSS entry item
this.itemcontainer="<"+containerstr.toLowerCase()+">"
}
gfeedfetcher.prototype.init=function(){
this.feedsfetched=0 //reset number of feeds fetched to 0 (in case init() is called more than once)
this.feeds=[] //reset feeds[] array to empty (in case init() is called more than once)
this.feedcontainer.innerHTML='<p><img src="'+gfeedfetcher_loading_image+'" /> Retrieving RSS feed(s)</p>'
var displayer=this
for (var i=0; i<this.feedurls.length; i++){ //loop through the specified RSS feeds' URLs
var feedpointer=new google.feeds.Feed(this.feedurls[i]) //create new instance of Google Ajax Feed API
var items_to_show=(this.feedlimit<=this.feedurls.length)? 1 : Math.floor(this.feedlimit/this.feedurls.length) //Calculate # of entries to show for each RSS feed
if (this.feedlimit%this.feedurls.length>0 && this.feedlimit>this.feedurls.length && i==this.feedurls.length-1) //If this is the last RSS feed, and feedlimit/feedurls.length yields a remainder
items_to_show+=(this.feedlimit%this.feedurls.length) //Add that remainder to the number of entries to show for last RSS feed
feedpointer.setNumEntries(items_to_show) //set number of items to display
feedpointer.load(function(label){
return function(r){
displayer._fetch_data_as_array(r, label)
}
}(this.feedlabels[i])) //call Feed.load() to retrieve and output RSS feed.
}
}
gfeedfetcher._formatdate=function(datestr, showoptions){
var itemdate=new Date(datestr)
var parseddate=(showoptions.indexOf("datetime")!=-1)? itemdate.toLocaleString() : (showoptions.indexOf("date")!=-1)? itemdate.toLocaleDateString() : (showoptions.indexOf("time")!=-1)? itemdate.toLocaleTimeString() : ""
return "<span class='datefield'>"+parseddate+"</span>"
}
gfeedfetcher._sortarray=function(arr, sortstr){
var sortstr=(sortstr=="label")? "ddlabel" : sortstr //change "label" string (if entered) to "ddlabel" instead, for internal use
if (sortstr=="title" || sortstr=="ddlabel"){ //sort array by "title" or "ddlabel" property of RSS feed entries[]
arr.sort(function(a,b){
var fielda=a[sortstr].toLowerCase()
var fieldb=b[sortstr].toLowerCase()
return (fielda<fieldb)? -1 : (fielda>fieldb)? 1 : 0
})
}
else{ //else, sort by "publishedDate" property (using error handling, as "publishedDate" may not be a valid date str if an error has occured while getting feed
try{
arr.sort(function(a,b){return new Date(b.publishedDate)-new Date(a.publishedDate)})
}
catch(err){}
}
}
gfeedfetcher.prototype._fetch_data_as_array=function(result, ddlabel){
var thisfeed=(!result.error)? result.feed.entries : "" //get all feed entries as a JSON array or "" if failed
if (thisfeed==""){ //if error has occured fetching feed
alert("Some blog posts could not be loaded: "+result.error.message)
}
for (var i=0; i<thisfeed.length; i++){ //For each entry within feed
result.feed.entries[i].ddlabel=ddlabel //extend it with a "ddlabel" property
}
this.feeds=this.feeds.concat(thisfeed) //add entry to array holding all feed entries
this._signaldownloadcomplete() //signal the retrieval of this feed as complete (and move on to next one if defined)
}
gfeedfetcher.prototype._signaldownloadcomplete=function(){
this.feedsfetched+=1
if (this.feedsfetched==this.feedurls.length) //if all feeds fetched
this._displayresult(this.feeds) //display results
}
gfeedfetcher.prototype._displayresult=function(feeds){
var rssoutput=(this.itemcontainer=="<li>")? "<ul>\n" : ""
gfeedfetcher._sortarray(feeds, this.sortstring)
for (var i=0; i<feeds.length; i++){
var itemtitle="<a rel=\"nofollow\" href=\"" + feeds[i].link + "\" target=\"" + this.linktarget + "\" class=\"titlefield\">" + feeds[i].title + "</a>"
var itemlabel=/label/i.test(this.showoptions)? '<span class="labelfield">['+this.feeds[i].ddlabel+']</span>' : " "
var itemdate=gfeedfetcher._formatdate(feeds[i].publishedDate, this.showoptions)
var itemdescription=/description/i.test(this.showoptions)? "<br />"+feeds[i].content : /snippet/i.test(this.showoptions)? "<br />"+feeds[i].contentSnippet : ""
rssoutput+=this.itemcontainer + itemtitle + " " + itemlabel + " " + itemdate + "\n" + itemdescription + this.itemcontainer.replace("<", "</") + "\n\n"
}
rssoutput+=(this.itemcontainer=="<li>")? "</ul>" : ""
this.feedcontainer.innerHTML=rssoutput
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -24,7 +24,7 @@ public final class Prop implements Serializable {
* @author BMLaurus-acanaveral
* @uri http://www.bmlaurus.com
*/
private static final long serialVersionUID = -3973931828485013352L;
private static final long serialVersionUID = -2735243406793760873L;
/** File Property */
public static final String HOME_PROPERTY_FILE = "home.properties";
@ -89,23 +89,8 @@ public final class Prop implements Serializable {
public static final String SOC_6 = "Social6";
public static final String SOC_7 = "Social7";
/** RSS Properties */
public static final String RSS_ON = "rssOn";
public static final String RSS = "rss";
public static final String RSS_1_NAME = "rss1Name";
public static final String RSS_1 = "rss1";
public static final String RSS_2_NAME = "rss2Name";
public static final String RSS_2 = "rss2";
public static final String RSS_3_NAME = "rss3Name";
public static final String RSS_3 = "rss3";
public static final String RSS_4_NAME = "rss4Name";
public static final String RSS_4 = "rss4";
public static final String RSS_5_NAME = "rss5Name";
public static final String RSS_5 = "rss5";
public static final String RSS_REFRESH = "RssRefreshMessage";
/**Defaults*/
private static final String CREDITS = "Welcome to the iDempiere (OSGi+ADempiere) 3.0 Page!";
private static final String CREDITS = "Welcome to the iDempiere (OSGi+ADempiere) 6.1 Page!";
private static String LOGO_URL = null;
@ -173,8 +158,6 @@ public final class Prop implements Serializable {
s_prop.setProperty(CLIENT_NAME, "iDempiere Server");
if(s_prop.getProperty(CREDITS_TXT)==null||s_prop.getProperty(CREDITS_TXT).length()<=0)
s_prop.setProperty(CREDITS_TXT, CREDITS);
if(s_prop.getProperty(RSS_REFRESH)==null||s_prop.getProperty(RSS_REFRESH).length()<=0)
s_prop.setProperty(RSS_REFRESH, "Refresh live blog posts");
//LINKS
if(s_prop.getProperty(FELIX_LINK)==null||s_prop.getProperty(FELIX_LINK).length()<=0)
s_prop.setProperty(FELIX_LINK, DEF_FELIX_LINK);
@ -320,15 +303,6 @@ public final class Prop implements Serializable {
return bais.toByteArray();
}
public static boolean isRssOn(){
boolean rss=false;
if(getProperty(RSS_ON).toUpperCase().equals("TRUE")||
getProperty(RSS_ON).toUpperCase().equals("YES")||
getProperty(RSS_ON).toUpperCase().equals("Y"))
rss=true;
return rss;
}
public static void load(){
loadProperties(getFileName(false));
setDefaults();

View File

@ -11,7 +11,7 @@ IrcLink = http://webchat.freenode.net/?channels=idempiere
WikiLink = http://wiki.idempiere.org/
ForumsLink = http://groups.google.com/group/idempiere
SupportRequestLink = http://jira.idempiere.com
SupportLink = mailto:support@idempiere.com
SupportLink = mailto:idempiere@googlegroups.com
OptionLink = https://idempiere.atlassian.net
#Default Texts
@ -32,7 +32,7 @@ SupportRequestText = Support Request
Facebook = https://www.facebook.com/IDempiere
Twitter = https://twitter.com/iDempiere
LinkedIn = NONE
Google+ = https://groups.google.com/forum/#!forum/idempiere-dev
Google+ = https://plus.google.com/communities/107237178393636704520
Social5 = NONE
Social6 = NONE
Social7 = NONE
@ -41,7 +41,7 @@ Social7 = NONE
Title = iDempiere Application Home
#Custom TemplateName (white or black)
TemplateName = black
TemplateName = white
#file:///Linux/&Mac/resources/templates/ --- file://Windows/resources/templates/
TemplatePath = resources/templates/
@ -54,11 +54,3 @@ ClientName = iDempiere Server
#Custom Credits & Copyright tail
Credits = Welcome to the iDempiere (OSGi+ADempiere) 6.1 Page!
Copyriright = || by <a href="http://www.idempiere.org" target="blank">iDempiere Community</a>
#Custom RSS (rss1 to rss5)
rssOn = true
RssRefreshMessage = Refresh
rss1Name = iDempiere's Blog
rss1 = https://groups.google.com/group/idempiere/feed/rss_v2_0_msgs.xml
rss2Name = 2 nd Blog
rss2 = https://groups.google.com/group/idempiere-es/feed/rss_v2_0_msgs.xml