Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jgraph/drawio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benson <david@draw.io>2018-05-11 18:01:03 +0300
committerDavid Benson <david@draw.io>2018-05-11 18:01:03 +0300
commit0bf6364e7bcf653c17a62a909c68a4ad003ac0b8 (patch)
treebb986c4488410cab737cc61a4d2a356e65daf3cb
parent73a2020973afd477e028e2f26fcd650c35fa5270 (diff)
8.6.3 releasev8.6.3
Former-commit-id: 19b651d84f4f0fb5e67280c1dc26f8936552d04f
-rw-r--r--ChangeLog4
-rw-r--r--VERSION2
-rw-r--r--src/main/java/com/mxgraph/online/ProxyServlet.java19
-rw-r--r--src/main/webapp/cache.manifest2
-rw-r--r--src/main/webapp/js/app.min.js2
-rw-r--r--src/main/webapp/js/atlas.min.js2
-rw-r--r--src/main/webapp/js/embed-static.min.js2
-rw-r--r--src/main/webapp/js/reader.min.js2
-rw-r--r--src/main/webapp/plugins/rackF5.js1675
9 files changed, 1701 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 9b0f921c..7e120dba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+11-MAY-2018: 8.6.3
+
+- Adds F5 icons plugin
+
09-MAY-2018: 8.6.2
- Replaces domain apex redirect
diff --git a/VERSION b/VERSION
index 0431022f..1de56fec 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-8.6.2 \ No newline at end of file
+8.6.3 \ No newline at end of file
diff --git a/src/main/java/com/mxgraph/online/ProxyServlet.java b/src/main/java/com/mxgraph/online/ProxyServlet.java
index feea694e..216fc602 100644
--- a/src/main/java/com/mxgraph/online/ProxyServlet.java
+++ b/src/main/java/com/mxgraph/online/ProxyServlet.java
@@ -41,6 +41,7 @@ public class ProxyServlet extends HttpServlet
String urlParam = request.getParameter("url");
// build the UML source from the compressed request parameter
+ String ua = request.getHeader("User-Agent");
String ref = request.getHeader("referer");
String dom = null;
@@ -54,6 +55,13 @@ public class ProxyServlet extends HttpServlet
{
dom = ref.toLowerCase().substring(0, ref.indexOf(".quipelements.com/") + 17);
}
+ // Enables Confluence/Jira proxy via referer or hardcoded user-agent (for old versions)
+ // UA refers to old FF on macOS so low risk and fixes requests from existing servers
+ else if ((ref != null && ref.equals("draw.io Proxy Confluence Server")) ||
+ (ua != null && ua.equals("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0")))
+ {
+ dom = "";
+ }
if (dom != null && urlParam != null)
{
@@ -70,7 +78,13 @@ public class ProxyServlet extends HttpServlet
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setHeader("Cache-control", "private, no-cache, no-store");
response.setHeader("Expires", "0");
- response.addHeader("Access-Control-Allow-Origin", dom);
+
+ if (dom != null && dom.length() > 0)
+ {
+ response.addHeader("Access-Control-Allow-Origin", dom);
+ }
+
+ connection.setRequestProperty("User-Agent", "draw.io");
// Status code pass-through and follow redirects
if (connection instanceof HttpURLConnection)
@@ -78,7 +92,6 @@ public class ProxyServlet extends HttpServlet
((HttpURLConnection) connection).setInstanceFollowRedirects(true);
// Workaround for 451 response from Iconfinder CDN
- ((HttpURLConnection) connection).setRequestProperty("User-Agent", "draw.io");
int status = ((HttpURLConnection) connection).getResponseCode();
int counter = 0;
@@ -91,7 +104,7 @@ public class ProxyServlet extends HttpServlet
((HttpURLConnection) connection).setInstanceFollowRedirects(true);
// Workaround for 451 response from Iconfinder CDN
- ((HttpURLConnection) connection).setRequestProperty("User-Agent", "draw.io");
+ connection.setRequestProperty("User-Agent", "draw.io");
status = ((HttpURLConnection) connection).getResponseCode();
}
diff --git a/src/main/webapp/cache.manifest b/src/main/webapp/cache.manifest
index 324e2ba2..34307b62 100644
--- a/src/main/webapp/cache.manifest
+++ b/src/main/webapp/cache.manifest
@@ -1,7 +1,7 @@
CACHE MANIFEST
# THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 05/09/2018 04:27 PM
+# 05/11/2018 01:24 PM
app.html
index.html?offline=1
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index d1d48af8..601344d8 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -7104,7 +7104,7 @@ var U=document.createElement("input");U.style.cssText="margin:0 8px 0 8px;";U.se
m.className="geBtn",e.appendChild(m));PrintDialog.previewEnabled&&(m=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),m.className="geBtn",e.appendChild(m));m=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});m.className="geBtn gePrimaryBtn";e.appendChild(m);a.editor.cancelFirst||e.appendChild(p);k.appendChild(e);this.container=k};var v=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==
this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(v.apply(this,arguments),null!=this.mathEnabled&&
this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,c){c.ui=a.ui;return d};a.afterDecode=function(a,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.6.2";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,c){c.ui=a.ui;return d};a.afterDecode=function(a,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.6.3";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=
!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;EditorUi.prototype.showCsvImport=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(p){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=
diff --git a/src/main/webapp/js/atlas.min.js b/src/main/webapp/js/atlas.min.js
index 6679185e..b01e2fdb 100644
--- a/src/main/webapp/js/atlas.min.js
+++ b/src/main/webapp/js/atlas.min.js
@@ -7104,7 +7104,7 @@ var U=document.createElement("input");U.style.cssText="margin:0 8px 0 8px;";U.se
x.className="geBtn",p.appendChild(x));PrintDialog.previewEnabled&&(x=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();f(!1)}),x.className="geBtn",p.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";p.appendChild(x);a.editor.cancelFirst||p.appendChild(u);d.appendChild(p);this.container=d};var x=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==
this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(x.apply(this,arguments),null!=this.mathEnabled&&
this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})();
-(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.6.2";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
+(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.6.3";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';
EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=
!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;EditorUi.prototype.showCsvImport=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(p){}try{var b=document.createElement("canvas"),h=new Image;h.onload=function(){try{b.getContext("2d").drawImage(h,0,0);var a=
diff --git a/src/main/webapp/js/embed-static.min.js b/src/main/webapp/js/embed-static.min.js
index 00aa6fd3..497b3a43 100644
--- a/src/main/webapp/js/embed-static.min.js
+++ b/src/main/webapp/js/embed-static.min.js
@@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.6.2",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.6.3",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
diff --git a/src/main/webapp/js/reader.min.js b/src/main/webapp/js/reader.min.js
index cc2db01c..7abe6a6e 100644
--- a/src/main/webapp/js/reader.min.js
+++ b/src/main/webapp/js/reader.min.js
@@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy
e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});
"function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
-window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.6.2",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
+window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.6.3",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&
0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&
0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||
diff --git a/src/main/webapp/plugins/rackF5.js b/src/main/webapp/plugins/rackF5.js
new file mode 100644
index 00000000..21f7e7da
--- /dev/null
+++ b/src/main/webapp/plugins/rackF5.js
@@ -0,0 +1,1675 @@
+/**
+ * $Id: mxF5.js,v 1.0 2018/05/03 13:10:37 mate Exp $
+ * Copyright (c) 2006-2018, JGraph Ltd
+ */
+//**********************************************************************************************************************************************************
+//Big-IP 1600
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp1600(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp1600, mxShape);
+
+mxRackF5BigIp1600.prototype.cst =
+{
+ SHAPE_BIG_IP_1600 : 'mxgraph.rackF5Shapes.big_ip_1600'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp1600.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp1600.prototype.cst.SHAPE_BIG_IP_1600, mxRackF5BigIp1600);
+
+//**********************************************************************************************************************************************************
+//Big-IP 2x00
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp2x00(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp2x00, mxShape);
+
+mxRackF5BigIp2x00.prototype.cst =
+{
+ SHAPE_BIG_IP_2x00 : 'mxgraph.rackF5Shapes.big_ip_2x00'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp2x00.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_2x00_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp2x00.prototype.cst.SHAPE_BIG_IP_2x00, mxRackF5BigIp2x00);
+
+//**********************************************************************************************************************************************************
+//Big-IP 3600
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp3600(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp3600, mxShape);
+
+mxRackF5BigIp3600.prototype.cst =
+{
+ SHAPE_BIG_IP_3600 : 'mxgraph.rackF5Shapes.big_ip_3600'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp3600.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_3600_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp3600.prototype.cst.SHAPE_BIG_IP_3600, mxRackF5BigIp3600);
+
+//**********************************************************************************************************************************************************
+//Big-IP 3900
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp3900(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp3900, mxShape);
+
+mxRackF5BigIp3900.prototype.cst =
+{
+ SHAPE_BIG_IP_3900 : 'mxgraph.rackF5Shapes.big_ip_3900'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp3900.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_3900_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp3900.prototype.cst.SHAPE_BIG_IP_3900, mxRackF5BigIp3900);
+
+//**********************************************************************************************************************************************************
+//Big-IP 4x00
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp4x00(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp4x00, mxShape);
+
+mxRackF5BigIp4x00.prototype.cst =
+{
+ SHAPE_BIG_IP_4x00 : 'mxgraph.rackF5Shapes.big_ip_4x00'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp4x00.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_4x00_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp4x00.prototype.cst.SHAPE_BIG_IP_4x00, mxRackF5BigIp4x00);
+
+//**********************************************************************************************************************************************************
+//Big-IP 5x00
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp5x00(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp5x00, mxShape);
+
+mxRackF5BigIp5x00.prototype.cst =
+{
+ SHAPE_BIG_IP_5x00 : 'mxgraph.rackF5Shapes.big_ip_5x00'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp5x00.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_5x00_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp5x00.prototype.cst.SHAPE_BIG_IP_5x00, mxRackF5BigIp5x00);
+
+//**********************************************************************************************************************************************************
+//EM 4000
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5Em4000(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5Em4000, mxShape);
+
+mxRackF5Em4000.prototype.cst =
+{
+ SHAPE_EM_4000 : 'mxgraph.rackF5Shapes.em4000'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5Em4000.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'em_4000_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5Em4000.prototype.cst.SHAPE_EM_4000, mxRackF5Em4000);
+
+//**********************************************************************************************************************************************************
+//Big-IP 6900
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp6900(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp6900, mxShape);
+
+mxRackF5BigIp6900.prototype.cst =
+{
+ SHAPE_BIG_IP_6900 : 'mxgraph.rackF5Shapes.big_ip_6900'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp6900.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_6900_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_6900_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_6900_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_6900_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ c.image(w * 0.046, h * 0.025, w * 0.176, h * 0.48, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ c.image(w * 0.227, h * 0.025, w * 0.176, h * 0.48, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp6900.prototype.cst.SHAPE_BIG_IP_6900, mxRackF5BigIp6900);
+
+//**********************************************************************************************************************************************************
+//Big-IP 89x0
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp89x0(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp89x0, mxShape);
+
+mxRackF5BigIp89x0.prototype.cst =
+{
+ SHAPE_BIG_IP_89x0 : 'mxgraph.rackF5Shapes.big_ip_89x0'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp89x0.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_6900_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_6900_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_89x0_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_6900_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ c.image(w * 0.046, h * 0.025, w * 0.176, h * 0.48, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ c.image(w * 0.227, h * 0.025, w * 0.176, h * 0.48, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp89x0.prototype.cst.SHAPE_BIG_IP_89x0, mxRackF5BigIp89x0);
+
+//**********************************************************************************************************************************************************
+//Big-IP 7x00
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp7x00(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp7x00, mxShape);
+
+mxRackF5BigIp7x00.prototype.cst =
+{
+ SHAPE_BIG_IP_7x00 : 'mxgraph.rackF5Shapes.big_ip_7x00'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp7x00.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_6900_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_6900_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_7x00_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_6900_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ c.image(w * 0.046, h * 0.025, w * 0.176, h * 0.48, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ c.image(w * 0.227, h * 0.025, w * 0.176, h * 0.48, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp7x00.prototype.cst.SHAPE_BIG_IP_7x00, mxRackF5BigIp7x00);
+
+//**********************************************************************************************************************************************************
+//Big-IP 10x00
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp10x00(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp10x00, mxShape);
+
+mxRackF5BigIp10x00.prototype.cst =
+{
+ SHAPE_BIG_IP_10x00 : 'mxgraph.rackF5Shapes.big_ip_10x00'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp10x00.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_6900_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_6900_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_10x00_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_6900_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ c.image(w * 0.046, h * 0.025, w * 0.176, h * 0.48, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ c.image(w * 0.227, h * 0.025, w * 0.176, h * 0.48, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp10x00.prototype.cst.SHAPE_BIG_IP_10x00, mxRackF5BigIp10x00);
+
+//**********************************************************************************************************************************************************
+//Big-IP 110x0
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIp110x0(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIp110x0, mxShape);
+
+mxRackF5BigIp110x0.prototype.cst =
+{
+ SHAPE_BIG_IP_110x0 : 'mxgraph.rackF5Shapes.big_ip_110x0'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIp110x0.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, h * 0.33, w * 0.04, h * 0.67, stencilPath + 'big_ip_6900_ear.png', 0, 0, 0);
+ c.image(w * 0.96, h * 0.33, w * 0.04, h * 0.67, stencilPath + 'big_ip_6900_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_110x0_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_110x0_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ c.image(w * 0.085, h * 0.025, w * 0.177, h * 0.31, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ c.image(w * 0.271, h * 0.025, w * 0.179, h * 0.31, stencilPath + 'big_ip_6900_dc.png', 0, 0, 0);
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIp110x0.prototype.cst.SHAPE_BIG_IP_110x0, mxRackF5BigIp110x0);
+
+//**********************************************************************************************************************************************************
+//Viprion 2400
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5Viprion2400(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5Viprion2400, mxShape);
+
+mxRackF5Viprion2400.prototype.cst =
+{
+ SHAPE_VIPRION_2400 : 'mxgraph.rackF5Shapes.viprion_2400'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5Viprion2400.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var bladeNum = parseInt(mxUtils.getValue(this.style, 'bladeNum', '4'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'viprion_2400_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'viprion_2400_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'viprion_2400_front.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ c.image(w * 0.178, h * 0.025, w * 0.301, h * 0.273, stencilPath + 'viprion_2400_dc.png', 0, 0, 0);
+ c.image(w * 0.52, h * 0.025, w * 0.301, h * 0.273, stencilPath + 'viprion_2400_dc.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 1)
+ {
+ c.image(w * 0.052, h * 0.337, w * 0.45, h * 0.29, stencilPath + 'viprion_2400_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 2)
+ {
+ c.image(w * 0.495, h * 0.337, w * 0.45, h * 0.29, stencilPath + 'viprion_2400_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 3)
+ {
+ c.image(w * 0.052, h * 0.655, w * 0.45, h * 0.29, stencilPath + 'viprion_2400_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 4)
+ {
+ c.image(w * 0.495, h * 0.655, w * 0.45, h * 0.29, stencilPath + 'viprion_2400_blade.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'viprion_2400_back.png', 0, 0, 0);
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5Viprion2400.prototype.cst.SHAPE_VIPRION_2400, mxRackF5Viprion2400);
+
+//**********************************************************************************************************************************************************
+//Viprion 4400
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5Viprion4400(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5Viprion4400, mxShape);
+
+mxRackF5Viprion4400.prototype.cst =
+{
+ SHAPE_VIPRION_4400 : 'mxgraph.rackF5Shapes.viprion_4400'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5Viprion4400.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var hasMask = mxUtils.getValue(this.style, 'hasMask', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var bladeType = mxUtils.getValue(this.style, 'bladeType', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var bladeNum = parseInt(mxUtils.getValue(this.style, 'bladeNum', '0'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'viprion_4400_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'viprion_4400_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'viprion_4400_front_chassis.png', 0, 0, 0);
+
+ if (hasMask)
+ {
+ c.image(w * 0.033, h * 0.005, w * 0.934, h * 0.282, stencilPath + 'viprion_4400_front.png', 0, 0, 0);
+ }
+
+ var bladeStr = stencilPath + 'viprion_4400_pb100_blade.png';
+
+ if (bladeType == 1)
+ {
+ bladeStr = stencilPath + 'viprion_4400_pb200_blade.png';
+ }
+ else if (bladeType == 2)
+ {
+ bladeStr = stencilPath + 'viprion_4400_b4300_blade.png';
+ }
+
+
+ if (bladeNum >= 1)
+ {
+ c.image(w * 0.182, h * 0.3, w * 0.74, h * 0.145, bladeStr, 0, 0, 0);
+ }
+
+ if (bladeNum >= 2)
+ {
+ c.image(w * 0.182, h * 0.462, w * 0.74, h * 0.145, bladeStr, 0, 0, 0);
+ }
+
+ if (bladeNum >= 3)
+ {
+ c.image(w * 0.182, h * 0.625, w * 0.74, h * 0.145, bladeStr, 0, 0, 0);
+ }
+
+ if (bladeNum >= 4)
+ {
+ c.image(w * 0.182, h * 0.788, w * 0.74, h * 0.145, bladeStr, 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (isDC)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'viprion_4400_back_dc.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'viprion_4400_back_ac.png', 0, 0, 0);
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5Viprion4400.prototype.cst.SHAPE_VIPRION_4400, mxRackF5Viprion4400);
+
+//**********************************************************************************************************************************************************
+//Viprion 4800
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5Viprion4800(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5Viprion4800, mxShape);
+
+mxRackF5Viprion4800.prototype.cst =
+{
+ SHAPE_VIPRION_4800 : 'mxgraph.rackF5Shapes.viprion_4800'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5Viprion4800.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var bladeNum = parseInt(mxUtils.getValue(this.style, 'bladeNum', '0'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, h * 0.09, w * 0.04, h * 0.8, stencilPath + 'viprion_4800_ear.png', 0, 0, 0);
+ c.image(w * 0.96, h * 0.09, w * 0.04, h * 0.8, stencilPath + 'viprion_4800_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'viprion_4800_front.png', 0, 0, 0);
+
+
+ if (bladeNum >= 1)
+ {
+ c.image(w * 0.075, h * 0.245, w * 0.104, h * 0.516, stencilPath + 'viprion_4800_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 2)
+ {
+ c.image(w * 0.182, h * 0.245, w * 0.104, h * 0.516, stencilPath + 'viprion_4800_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 3)
+ {
+ c.image(w * 0.289, h * 0.245, w * 0.104, h * 0.516, stencilPath + 'viprion_4800_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 4)
+ {
+ c.image(w * 0.396, h * 0.245, w * 0.104, h * 0.516, stencilPath + 'viprion_4800_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 5)
+ {
+ c.image(w * 0.503, h * 0.245, w * 0.104, h * 0.516, stencilPath + 'viprion_4800_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 6)
+ {
+ c.image(w * 0.61, h * 0.245, w * 0.104, h * 0.516, stencilPath + 'viprion_4800_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 7)
+ {
+ c.image(w * 0.717, h * 0.245, w * 0.104, h * 0.516, stencilPath + 'viprion_4800_blade.png', 0, 0, 0);
+ }
+
+ if (bladeNum >= 8)
+ {
+ c.image(w * 0.824, h * 0.245, w * 0.104, h * 0.516, stencilPath + 'viprion_4800_blade.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'viprion_4800_back.png', 0, 0, 0);
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5Viprion4800.prototype.cst.SHAPE_VIPRION_4800, mxRackF5Viprion4800);
+
+//**********************************************************************************************************************************************************
+//Big-IP i2000
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIpi2000(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIpi2000, mxShape);
+
+mxRackF5BigIpi2000.prototype.cst =
+{
+ SHAPE_BIG_IP_I2000 : 'mxgraph.rackF5Shapes.big_ip_i2000'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIpi2000.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_i2000_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIpi2000.prototype.cst.SHAPE_BIG_IP_I2000, mxRackF5BigIpi2000);
+
+//**********************************************************************************************************************************************************
+//Big-IP i4000
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIpi4000(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIpi4000, mxShape);
+
+mxRackF5BigIpi4000.prototype.cst =
+{
+ SHAPE_BIG_IP_I4000 : 'mxgraph.rackF5Shapes.big_ip_i4000'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIpi4000.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_i4000_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIpi4000.prototype.cst.SHAPE_BIG_IP_I4000, mxRackF5BigIpi4000);
+
+//**********************************************************************************************************************************************************
+//Big-IP i5000
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIpi5000(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIpi5000, mxShape);
+
+mxRackF5BigIpi5000.prototype.cst =
+{
+ SHAPE_BIG_IP_I5000 : 'mxgraph.rackF5Shapes.big_ip_i5000'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIpi5000.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_i5000_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIpi5000.prototype.cst.SHAPE_BIG_IP_I5000, mxRackF5BigIpi5000);
+
+//**********************************************************************************************************************************************************
+//Big-IP i7000
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIpi7000(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIpi7000, mxShape);
+
+mxRackF5BigIpi7000.prototype.cst =
+{
+ SHAPE_BIG_IP_I7000 : 'mxgraph.rackF5Shapes.big_ip_i7000'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIpi7000.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_i7000_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIpi7000.prototype.cst.SHAPE_BIG_IP_I7000, mxRackF5BigIpi7000);
+
+//**********************************************************************************************************************************************************
+//Big-IP i10000
+//**********************************************************************************************************************************************************
+/**
+* Extends mxShape.
+*/
+function mxRackF5BigIpi10000(bounds, fill, stroke, strokewidth)
+{
+ mxShape.call(this);
+ this.bounds = bounds;
+ this.fill = fill;
+ this.stroke = stroke;
+ this.strokewidth = (strokewidth != null) ? strokewidth : 1;
+};
+
+/**
+* Extends mxShape.
+*/
+mxUtils.extend(mxRackF5BigIpi10000, mxShape);
+
+mxRackF5BigIpi10000.prototype.cst =
+{
+ SHAPE_BIG_IP_I10000 : 'mxgraph.rackF5Shapes.big_ip_i10000'
+};
+
+/**
+* Function: paintVertexShape
+*
+* Paints the vertex shape.
+*/
+mxRackF5BigIpi10000.prototype.paintVertexShape = function(c, x, y, w, h)
+{
+ c.translate(x, y);
+
+ var hasEars = mxUtils.getValue(this.style, 'hasEars', '1');
+ var isFront = mxUtils.getValue(this.style, 'isFront', '0');
+ var isDC = mxUtils.getValue(this.style, 'isDC', '0');
+ var psNum = parseInt(mxUtils.getValue(this.style, 'psNum', '2'));
+ var stencilPath = mxUtils.getValue(this.style, 'path', 'img/lib/f5/');
+
+ if (hasEars)
+ {
+ c.image(0, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 0, 0);
+ c.image(w * 0.96, 0, w * 0.04, h, stencilPath + 'big_ip_5x00_ear.png', 0, 1, 0);
+ }
+
+ if (isFront)
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_i10000_front.png', 0, 0, 0);
+ }
+ else
+ {
+ c.image(w * 0.04, 0, w * 0.92, h, stencilPath + 'big_ip_1600_back.png', 0, 0, 0);
+
+ if (isDC)
+ {
+ if (psNum >= '1')
+ {
+ c.image(w * 0.425, h * 0.05, w * 0.244, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_dc.png', 0, 0, 0);
+ }
+ }
+ else
+ {
+ if (psNum >= '2')
+ {
+ c.image(w * 0.672, h * 0.05, w * 0.245, h * 0.92, stencilPath + 'big_ip_4x00_ac.png', 0, 0, 0);
+ }
+ }
+ }
+};
+
+mxCellRenderer.registerShape(mxRackF5BigIpi10000.prototype.cst.SHAPE_BIG_IP_I10000, mxRackF5BigIpi10000);
+
+/**
+ * Order is relevant. Do not move to start of file!
+ */
+Draw.loadPlugin(function(ui)
+{
+ var w = 100;
+ var h = 100;
+ var stencilPath = "path=https://jgraph.github.io/drawio-libs/libs/f5/;";
+ var s = stencilPath + 'strokeColor=#666666;html=1;labelPosition=right;align=left;spacingLeft=15;shadow=0;dashed=0;fillColor=#ffffff;outlineConnect=0;shape=mxgraph.rackF5Shapes.';
+
+ var gn = 'mxgraph.rackF5Shapes';
+ var dt = '';
+
+ // Avoids having to bind all functions to "this"
+ var sb = ui.sidebar;
+
+ // Default tags
+ var dt = 'rack f5 network ';
+
+ var fns = [
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_1600;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP 1600', null, null, dt + 'big ip 1600'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_1600;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP 1600', null, null, dt + 'big ip 1600'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_2x00;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP 2x00', null, null, dt + 'big ip 2x00'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_2x00;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP 2x00', null, null, dt + 'big ip 2x00'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_3600;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP 3600', null, null, dt + 'big ip 3600'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_3600;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP 3600', null, null, dt + 'big ip 3600'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_3900;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP 3900', null, null, dt + 'big ip 3900'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_3900;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP 3900', null, null, dt + 'big ip 3900'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_4x00;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP 4x00', null, null, dt + 'big ip 4x00'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_4x00;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP 4x00', null, null, dt + 'big ip 4x00'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_5x00;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP 5x00', null, null, dt + 'big ip 5x00'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_5x00;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP 5x00', null, null, dt + 'big ip 5x00'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.em4000;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'EM 4000', null, null, dt + 'em 4000'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.em4000;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'EM 4000', null, null, dt + 'em 4000'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_6900;hasEars=0;isFront=1;isDC=0;',
+ 168, 32, '', 'Big-IP 6900', null, null, dt + 'big ip 6900'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_6900;hasEars=1;isFront=0;isDC=1;',
+ 168, 32, '', 'Big-IP 6900', null, null, dt + 'big ip 6900'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_89x0;hasEars=0;isFront=1;isDC=0;',
+ 168, 32, '', 'Big-IP 89x0', null, null, dt + 'big ip 89x0'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_6900;hasEars=1;isFront=0;isDC=1;',
+ 168, 32, '', 'Big-IP 89x0', null, null, dt + 'big ip 89x0'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_7x00;hasEars=0;isFront=1;isDC=0;',
+ 168, 32, '', 'Big-IP 7x00', null, null, dt + 'big ip 7x00'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_7x00;hasEars=1;isFront=0;isDC=1;',
+ 168, 32, '', 'Big-IP 7x00', null, null, dt + 'big ip 7x00'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_10x00;hasEars=0;isFront=1;isDC=0;',
+ 168, 32, '', 'Big-IP 10x00', null, null, dt + 'big ip 10x00'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_10x00;hasEars=1;isFront=0;isDC=1;',
+ 168, 32, '', 'Big-IP 10x00', null, null, dt + 'big ip 10x00'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_110x0;hasEars=0;isFront=1;isDC=0;',
+ 168, 48, '', 'Big-IP 110x0', null, null, dt + 'big ip 110x0'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_110x0;hasEars=1;isFront=0;isDC=1;',
+ 168, 48, '', 'Big-IP 110x0', null, null, dt + 'big ip 110x0'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.viprion_2400;hasEars=0;isFront=1;isDC=1;bladeNum=4;',
+ 168, 64, '', 'VIPRION 2400', null, null, dt + 'viprion 2400'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.viprion_2400;hasEars=1;isFront=0;isDC=0;bladeNum=4;',
+ 168, 64, '', 'VIPRION 2400', null, null, dt + 'viprion 2400'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.viprion_4400;hasMask=1;bladeType=0;hasEars=0;isFront=1;isDC=1;bladeNum=4;',
+ 168, 112, '', 'VIPRION 4400', null, null, dt + 'viprion 4400'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.viprion_4400;hasMask=1;bladeType=0;hasEars=1;isFront=0;isDC=0;bladeNum=4;',
+ 168, 112, '', 'VIPRION 4400', null, null, dt + 'viprion 4400'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.viprion_4800;hasEars=1;isFront=1;bladeNum=8;',
+ 168, 224, '', 'VIPRION 4800', null, null, dt + 'viprion 4800'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.viprion_4800;hasEars=0;isFront=0;bladeNum=8;',
+ 168, 224, '', 'VIPRION 4800', null, null, dt + 'viprion 4800'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i2000;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP i2000', null, null, dt + 'big ip i2000'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i2000;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP i2000', null, null, dt + 'big ip i2000'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i4000;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP i4000', null, null, dt + 'big ip i4000'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i4000;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP i4000', null, null, dt + 'big ip i4000'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i5000;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP i5000', null, null, dt + 'big ip i5000'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i5000;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP i5000', null, null, dt + 'big ip i5000'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i7000;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP i7000', null, null, dt + 'big ip i7000'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i7000;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP i7000', null, null, dt + 'big ip i7000'),
+
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i10000;hasEars=0;isFront=1;isDC=0;psNum=1;',
+ 168, 16, '', 'Big-IP i10000', null, null, dt + 'big ip i10000'),
+ sb.createVertexTemplateEntry(stencilPath + 'shape=mxgraph.rackF5Shapes.big_ip_i10000;hasEars=1;isFront=0;isDC=1;psNum=2;',
+ 168, 16, '', 'Big-IP i10000', null, null, dt + 'big ip i10000')
+ ];
+
+ ui.sidebar.addPaletteFunctions('rackF5Shapes', 'Rack / F5 v2', true, fns);
+
+ // Collapses default sidebar entry and inserts this before
+ var c = ui.sidebar.container;
+ c.firstChild.click();
+ c.insertBefore(c.lastChild, c.firstChild);
+ c.insertBefore(c.lastChild, c.firstChild);
+});