You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2016/11/23 15:50:49 UTC

svn commit: r1770992 [17/23] - in /myfaces/tobago/trunk: src/site/fml/ tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/ tobago-theme/ tobago-theme/tobago-theme-charlotteville/src/main/resources/META-INF/resources/ tobago-theme/tobago-theme-c...

Added: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/property/tobago_es.properties.xml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/property/tobago_es.properties.xml?rev=1770992&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/property/tobago_es.properties.xml (added)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/property/tobago_es.properties.xml Wed Nov 23 15:50:47 2016
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+
+<properties>
+
+  <!-- Page -->
+  <entry key="pageNoscript">Esta página requiere JavaScript, pero JavaScript no se activa actualmente en su navegador. Para permitir JavaScript usted puede consultar la documentación del navegador.</entry>
+
+  <!-- Client Configuration -->
+  <entry key="configTitle">Configuración cliente del framework Tobago</entry>
+  <entry key="configTheme">Tema</entry>
+  <entry key="configThemeText">¿Que tema debe de ser utilizado?</entry>
+  <entry key="configLocale">Idioma</entry>
+  <entry key="configLocaleText">¿Que idioma debe de ser utilizado?</entry>
+  <entry key="configContentType">Tipo de contenido</entry>
+  <entry key="configContentTypeText">¿Que tipo de contenido debe de ser utilizado?</entry>
+  <entry key="configSubmit">Enviar</entry>
+  <entry key="configButtonText">Configuracion</entry>
+  <entry key="configCachecoverage">Cobertura de cache</entry>
+
+  <!-- File-->
+  <entry key="tobago.file.multiFormat">{} archivos seleccionados</entry>
+
+  <!-- Sheet -->
+  <entry key="sheetFirst">Primera Página</entry>
+  <entry key="sheetPrev">Página Anterior</entry>
+  <entry key="sheetNext">Página Siguiente</entry>
+  <entry key="sheetLast">Última Página</entry>
+  <entry key="sheetToPage">Página {0}</entry>
+  <entry key="sheetTipSorting">Ordenar por esta columna</entry>
+  <entry key="sheetAscending">Ascendente</entry>
+  <entry key="sheetDescending">Descendente</entry>
+  <entry key="sheetPagingInfoRows">Registros {0} {1} de {2}</entry>
+  <entry key="sheetPagingInfoSingleRow">Registro {0} de {2}</entry>
+  <entry key="sheetPagingInfoUndefinedRows">Registros {0} {1}</entry>
+  <entry key="sheetPagingInfoUndefinedSingleRow">Registro {0}</entry>
+  <entry key="sheetPagingInfoEmptyRow">No hay registros disponibles</entry>
+  <entry key="sheetPagingInfoRowPagingTip">Click aqui, para cambiar el primer registro desplegado.</entry>
+  <entry key="sheetPagingInfoPages">Página {0} de {1}</entry>
+  <entry key="sheetPagingInfoSinglePage">Página {0} de {1}</entry>
+  <entry key="sheetPagingInfoUndefinedPages">Página {0}</entry>
+  <entry key="sheetPagingInfoUndefinedSinglePage">Página {0}</entry>
+  <entry key="sheetPagingInfoEmptyPage"/>
+  <entry key="sheetPagingInfoPagePagingTip">Click aquí, para cambiar el nombre desplegado.</entry>
+  <entry key="sheetMenuToggleselect">Invertir seleccion</entry>
+  <entry key="sheetMenuUnselect">Deseleccionar todo</entry>
+  <entry key="sheetMenuSelect">Seleccionar todo</entry>
+
+  <!-- Tree -->
+  <entry key="treeNew">Nuevo</entry>
+  <entry key="treeDelete">Borrar</entry>
+  <entry key="treeEdit">Editar</entry>
+  <entry key="treeCut">Cortar</entry>
+  <entry key="treeCopy">Copiar</entry>
+  <entry key="treePaste">Pegar</entry>
+  <entry key="treeMoveUp">Mover hacia arriba</entry>
+  <entry key="treeMoveDown">Mover hacia abajo</entry>
+  <entry key="treeNodeNew">Nuevo nodo</entry>
+
+  <!-- datePicker -->
+  <entry key="datePickerTitle">Escoger fecha</entry>
+  <entry key="datePickerOk">Enviar</entry>
+  <entry key="datePickerCancel">Cancelar</entry>
+
+  <!-- in - input suggest -->
+  <entry key="tobago.in.inputSuggest.moreElements">Hay más entradas aparejadas…</entry>
+
+  <!-- messages -->
+  <entry key="tobago.message.confirmation.title">Aviso</entry>
+
+  <entry key="tobago.ajax.response.error">Error en el servidor: No hay respuesta del servidor. Probablemente debido a un tiempo agotado de sesion!</entry>
+
+  <entry key="browser.noframe.message.prefix">Tu navegador no soporta frames o está configurado para no desplegar frames. Como sea, puedes visitar el documento relacionado: </entry>
+  <entry key="browser.noframe.message.postfix"></entry>
+
+</properties>

Added: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js?rev=1770992&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js (added)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-calendar.js Wed Nov 23 15:50:47 2016
@@ -0,0 +1,250 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+Tobago.DateTime = {};
+
+Tobago.DateTime.init = function (elements) {
+
+  Tobago.Utils.selectWithJQuery(elements, ".tobago-date")
+      .not("[disabled]")
+      .not("[readonly]")
+      .each(function () {
+        var $date = jQuery(this);
+
+        var analyzed = Tobago.DateTime.analyzePattern($date.data("tobago-pattern"));
+        var options = {
+          format: analyzed,
+          icons: {
+            time: 'fa fa-clock-o',
+            date: 'fa fa-calendar',
+            up: 'fa fa-chevron-up',
+            down: 'fa fa-chevron-down',
+            previous: 'fa fa-chevron-left',
+            next: 'fa fa-chevron-right',
+            today: 'fa fa-calendar-check-o',
+            clear: 'fa fa-trash',
+            close: 'fa fa-times'
+          },
+          widgetParent: '.tobago-page'
+        };
+
+        var i18n = $date.data("tobago-date-time-i18n");
+        if (i18n) {
+          var monthNames = i18n.monthNames;
+          if (monthNames) {
+            moment.localeData()._months = monthNames;
+          }
+          var monthNamesShort = i18n.monthNamesShort;
+          if (monthNamesShort) {
+            moment.localeData()._monthsShort = monthNamesShort;
+          }
+          var dayNames = i18n.dayNames;
+          if (dayNames) {
+            moment.localeData()._weekdays = dayNames;
+          }
+          var dayNamesShort = i18n.dayNamesShort;
+          if (dayNamesShort) {
+            moment.localeData()._weekdaysShort = dayNamesShort;
+          }
+          var dayNamesMin = i18n.dayNamesMin;
+          if (dayNamesMin) {
+            moment.localeData()._weekdaysMin = dayNamesMin;
+          }
+          var firstDay = i18n.firstDay;
+          if (firstDay) {
+            moment.localeData()._week.dow = firstDay;
+          }
+        }
+
+        $date.parent().datetimepicker(options);
+
+        // we need to add the change listener here, because
+        // in line 1307 of bootstrap-datetimepicker.js
+        // the 'stopImmediatePropagation()' stops the change-event
+        // execution of line 686 in tobago.js
+        $date.parent().on('dp.change', function (event) {
+          var commands = jQuery(this).find("input").data("tobago-commands");
+          if (commands && commands.change) {
+            if (commands.change.execute || commands.change.render) {
+              jsf.ajax.request(
+                  jQuery(this).find("input").attr("name"),
+                  event,
+                  {
+                    "javax.faces.behavior.event": "change",
+                    execute: commands.change.execute,
+                    render: commands.change.render
+                  });
+            } else if (commands.change.action) {
+              Tobago.submitAction(this.firstElementChild, commands.change.action, commands.change);
+            }
+          }
+        });
+
+        /*
+         XXX need for fixing wrong positioning of bootstrap datepicker.
+         See https://github.com/Eonasdan/bootstrap-datetimepicker/issues/790 for more information.
+         */
+        $date.parent().on('dp.show', function () {
+          var datepicker = jQuery('.bootstrap-datetimepicker-widget');
+          var $div = jQuery(this);
+          var top, left;
+          if (datepicker.hasClass('bottom')) {
+            top = $div.offset().top + $div.outerHeight() - jQuery("body").offset().top;
+            left = $div.offset().left;
+            datepicker.css({
+              'top': top + 'px',
+              'bottom': 'auto',
+              'left': left + 'px'
+            });
+          }
+          else if (datepicker.hasClass('top')) {
+            top = $div.offset().top - datepicker.outerHeight() - jQuery("body").offset().top;
+            left = $div.offset().left;
+            datepicker.css({
+              'top': top + 'px',
+              'bottom': 'auto',
+              'left': left + 'px'
+            });
+          }
+        });
+      });
+};
+
+/*
+ Get the pattern from the "Java world" (http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)
+ and convert it to 'moment.js'.
+ Attention: Not every pattern char is supported.
+ */
+Tobago.DateTime.analyzePattern = function (pattern) {
+
+  if (!pattern || pattern.length > 100) {
+    console.warn("Pattern not supported: " + pattern);  // @DEV_ONLY
+    pattern = "";
+  }
+
+  var analyzedPattern = "";
+  var nextSegment = "";
+  var escMode = false;
+  for (i = 0; i < pattern.length; i++) {
+    var currentChar = pattern.charAt(i);
+    if (currentChar == "'" && escMode == false) {
+      escMode = true;
+      analyzedPattern += Tobago.DateTime.analyzePatternPart(nextSegment);
+      nextSegment = "";
+    } else if (currentChar == "'" && pattern.charAt(i + 1) == "'") {
+      if (escMode) {
+        nextSegment += "\\";
+      }
+      nextSegment += "'";
+      i++;
+    } else if (currentChar == "'" && escMode == true) {
+      escMode = false;
+      analyzedPattern += nextSegment;
+      nextSegment = "";
+    } else {
+      if (escMode) {
+        nextSegment += "\\";
+      }
+      nextSegment += currentChar;
+    }
+  }
+  if (nextSegment != "") {
+    if (escMode) {
+      analyzedPattern += nextSegment;
+    } else {
+      analyzedPattern += Tobago.DateTime.analyzePatternPart(nextSegment);
+    }
+  }
+
+  return analyzedPattern;
+};
+
+Tobago.DateTime.analyzePatternPart = function (pattern) {
+
+  if (pattern.search("G") > -1 || pattern.search("W") > -1 || pattern.search("F") > -1
+      || pattern.search("K") > -1 || pattern.search("z") > -1 || pattern.search("X") > -1) {
+    console.warn("Pattern chars 'G', 'W', 'F', 'K', 'z' and 'X' are not supported: " + pattern); // @DEV_ONLY
+    pattern = "";
+  }
+
+  if (pattern.search("y") > -1) {
+    pattern = pattern.replace(/y/g, "Y");
+  }
+  if (pattern.search("Y") > -1) {
+    pattern = pattern.replace(/\bY\b/g, "YYYY");
+    pattern = pattern.replace(/\bYYY\b/g, "YY");
+    pattern = pattern.replace(/YYYYYY+/g, "YYYYY");
+  }
+
+  if (pattern.search("MMMMM") > -1) {
+    pattern = pattern.replace(/MMMMM+/g, "MMMM");
+  }
+
+  if (pattern.search("w") > -1) {
+    pattern = pattern.replace(/\bw\b/g, "W");
+    pattern = pattern.replace(/www+/g, "WW");
+  }
+
+  if (pattern.search("D") > -1) {
+    pattern = pattern.replace(/DDD+/g, "DDDD");
+    pattern = pattern.replace(/\bD{1,2}\b/g, "DDD");
+  }
+
+  if (pattern.search("d") > -1) {
+    pattern = pattern.replace(/dd+/g, "DD");
+    pattern = pattern.replace(/\bd\b/g, "D");
+  }
+
+  if (pattern.search("E") > -1) {
+    pattern = pattern.replace(/\bE{1,3}\b/g, "dd");
+    pattern = pattern.replace(/EEEE+/g, "dddd");
+  }
+
+  if (pattern.search("u") > -1) {
+    pattern = pattern.replace(/u+/g, "E");
+  }
+  if (pattern.search("a") > -1) {
+    pattern = pattern.replace(/a+/g, "A");
+  }
+  if (pattern.search("HHH") > -1) {
+    pattern = pattern.replace(/HHH+/g, "HH");
+  }
+  if (pattern.search("kkk") > -1) {
+    pattern = pattern.replace(/kkk+/g, "kk");
+  }
+  if (pattern.search("hhh") > -1) {
+    pattern = pattern.replace(/hhh+/g, "hh");
+  }
+  if (pattern.search("mmm") > -1) {
+    pattern = pattern.replace(/mmm+/g, "mm");
+  }
+  if (pattern.search("sss") > -1) {
+    pattern = pattern.replace(/sss+/g, "ss");
+  }
+  if (pattern.search("SSSS") > -1) {
+    pattern = pattern.replace(/SSSS+/g, "SSS");
+  }
+  if (pattern.search("Z") > -1) {
+    pattern = pattern.replace(/\bZ\b/g, "ZZ");
+    pattern = pattern.replace(/ZZZ+/g, "ZZ");
+  }
+
+  return pattern;
+};
+
+Tobago.registerListener(Tobago.DateTime.init, Tobago.Phase.DOCUMENT_READY);
+Tobago.registerListener(Tobago.DateTime.init, Tobago.Phase.AFTER_UPDATE);

Added: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-console.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-console.js?rev=1770992&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-console.js (added)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-console.js Wed Nov 23 15:50:47 2016
@@ -0,0 +1,306 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This is a "fill-in".
+ * If a browser doesn't support "console", or some of its methods, it will be defined.
+ * So you don't have to worry about browser support of the calls.
+ * This is NOT a wrapper, so stacktraces, and line numbers remain valid.
+ *
+ * You can use, surely the following methods:
+ *
+ * console.log()
+ *
+ * console.debug() // deprecated, use console.log() instead
+ *
+ * console.info()
+ *
+ * console.warn()
+ *
+ * console.error()
+ *
+ * console.assert()
+ *
+ * console.time()
+ *
+ * console.timeEnd()
+ *
+ * console.count()
+ *
+ * console.dir()
+ *
+ * console.exception()
+ *
+ * console.group() // not implemented
+ *
+ * console.groupCollapsed() // not implemented
+ *
+ * console.groupEnd() // not implemented
+ *
+ * console.profile() // not implemented
+ *
+ * console.profileEnd() // not implemented
+ *
+ * console.trace()
+ *
+ * Hint: Should be used for development only!
+ *
+ * Restriction: multi args: printf is not implemented for console.log()
+ */
+
+if (!window.console) {
+  console = {};
+}
+
+if (!console.log) {
+  console.log = function (message, other) {
+    var div = jQuery(".tobago-console");
+    if (! console.isConsoleHidden()) {
+      div.show();
+    }
+    var body = div.children(":last");
+    var parameters = Array.prototype.slice.call(arguments).join(", ");
+    parameters.substr(0, parameters.length - 2);
+
+    // todo: make encoding for all array elements...
+    parameters = parameters.replace(/&/g, "&amp;");
+    parameters = parameters.replace(/</g, "&lt;");
+    parameters = parameters.replace(/>/g, "&gt;");
+    parameters = parameters.replace(/"/g, "&quot;");
+    jQuery("<p>").appendTo(body).html("<pre>" + parameters + "</pre>");
+  };
+
+  jQuery(document).ready(function () {
+    var div = jQuery("<div>").appendTo("body");
+    div.addClass("tobago-console");
+    div.css({
+      border: "2px solid red",
+      padding: "10px",
+      position: "absolute",
+      left: "50px",
+      top: "50px",
+      width: "500px",
+      height: "200px",
+      backgroundColor: "#ffffff",
+      filter: "alpha(opacity=70)",
+      opacity: 0.7,
+      overflow: "auto"
+    });
+    div.hide();
+    var header = jQuery("<div>").appendTo(div);
+    header.css({
+//      border: "1px solid red",
+      padding: "0 15px 5px 0"
+    });
+    var body = jQuery("<div>").appendTo(div);
+    var title = jQuery("<span>simple console replacement</span>").appendTo(header);
+    title.css({fontWeight: "bolder"});
+    var close = jQuery("<button>").appendTo(header);
+    close.attr("type", "button");
+    close.append("Hide");
+    close.click(function (event) {
+      event.preventDefault();
+      event.stopPropagation();
+      div.hide();
+    });
+    var closeForSession = jQuery("<button>").appendTo(header);
+    closeForSession.attr("type", "button");
+    closeForSession.append("Hide for this Session");
+    closeForSession.click(function (event) {
+      event.preventDefault();
+      event.stopPropagation();
+      div.hide();
+      console.hideConsoleForThisSession();
+    });
+    var clear = jQuery("<button>").appendTo(header);
+    clear.attr("type", "button");
+    clear.append("Clear");
+    clear.click(function (event) {
+      event.preventDefault();
+      event.stopPropagation();
+      body.children("p").detach();
+    });
+  });
+}
+
+console.util_array_slice = function (args, drop) {
+  var result = [];
+  for (var i = drop; i < args.length; i++) {
+    result[i - drop] = args[i];
+  }
+  return result;
+};
+
+console.util_stack_trace = function () {
+  var result;
+  var e = new Error();
+  var textarea = jQuery("textarea");
+  textarea.val("Start Logging...");
+  if (e.stack) { // Firefox && WebKit
+    textarea.val(textarea.val() + "\n\n" + e.stack);
+    result = e.stack.split('\n');
+  } else {
+    // poor implementation, but might not better possible
+    var currentFunction = arguments.callee.caller;
+    result = [];
+    var i = 0;
+    while (currentFunction) {
+      result[i++] = currentFunction.toString();
+      currentFunction = currentFunction.caller;
+    }
+  }
+
+  textarea.val(textarea.val() + "\n\n" + result);
+
+  return result;
+};
+
+if (!console.debug) {
+  console.debug = function (message, other) {
+    console.log("DEBUG: " + message, console.util_array_slice(arguments, 1));
+  };
+}
+
+if (!console.info) {
+  console.info = function (message, other) {
+    console.log("INFO: " + message, console.util_array_slice(arguments, 1));
+  };
+}
+
+if (!console.warn) {
+  console.warn = function (message, other) {
+    console.log("WARN: " + message, console.util_array_slice(arguments, 1));
+  };
+}
+
+if (!console.error) {
+  console.error = function (message, other) {
+    console.log("ERROR: " + message, console.util_array_slice(arguments, 1));
+  };
+}
+
+if (!console.assert) {
+  console.assert = function (test, message, other) { // multiargs?
+    if (test == false) {
+      console.log("ASSERTION FAILED: " + message, console.util_array_slice(arguments, 2));
+    }
+  };
+}
+
+if (!console.time) {
+  console.time = function (name) {
+    if (!console.timerMap) {
+      console.timerMap = {};
+    }
+    console.timerMap[name] = new Date().getTime();
+  };
+}
+
+if (!console.timeEnd) {
+  console.timeEnd = function (name) {
+    if (!console.timerMap) {
+      console.timerMap = {};
+    }
+    var start = console.timerMap[name];
+    if (start) {
+      console.info("Timer '" + name + "': " + (new Date().getTime() - start) + " ms");
+      console.timerMap[name] = null;
+    } else {
+      console.warn("Timer '" + name + "' not found!");
+    }
+  };
+}
+
+if (!console.dir) {
+  console.dir = function (name) {
+    // todo
+    console.debug("(dir() not implemented) " + name);
+  };
+}
+
+if (!console.count) {
+  console.count = function (name) {
+    if (!console.counterMap) {
+      console.counterMap = {};
+    }
+    if (typeof console.counterMap[name] == "number") {
+      console.counterMap[name] = console.counterMap[name] + 1;
+    } else {
+      console.counterMap[name] = 1;
+    }
+    console.info(name  + ": " + console.counterMap[name]);
+  };
+}
+
+if (!console.exception) {
+  console.exception = function (other) {
+    console.error(arguments);
+  };
+}
+
+if (!console.group) {
+  console.group = function (other) {
+    // todo
+    console.warn("(group() not implemented)");
+  };
+}
+
+if (!console.groupCollapsed) {
+  console.groupCollapsed = function (other) {
+    // todo
+    console.warn("(groupCollapsed() not implemented)");
+  };
+}
+
+if (!console.groupEnd) {
+  console.groupEnd = function (other) {
+    // todo
+    console.warn("(groupEnd() not implemented)");
+  };
+}
+
+if (!console.profile) {
+  console.profile = function (other) {
+    console.warn("(profile() not implemented)");
+  };
+}
+
+if (!console.profileEnd) {
+  console.profileEnd = function (other) {
+    console.warn("(profileEnd() not implemented)");
+  };
+}
+
+if (!console.trace) {
+  console.trace = function () {
+    console.log("STACK TRACE: " + console.util_stack_trace());
+  };
+}
+
+console.hideConsoleForThisSession = function() {
+  document.cookie = "tobagoHideConsole";
+};
+
+console.isConsoleHidden = function () {
+  var part = document.cookie.split(';');
+  for (var i = 0; i < part.length; i++) {
+    if ("tobagoHideConsole" == part[i]) {
+      return true;
+    }
+  }
+  return false;
+};

Added: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js?rev=1770992&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js (added)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/META-INF/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js Wed Nov 23 15:50:47 2016
@@ -0,0 +1,17 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+