mirror of
https://github.com/Combodo/iTop.git
synced 2026-03-23 18:04:22 +01:00
Compare commits
52 Commits
faf/module
...
feature/75
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
88c19e6624 | ||
|
|
ea86325566 | ||
|
|
000748228f | ||
|
|
a8ac86fca6 | ||
|
|
f08350a72c | ||
|
|
18f9f14dcd | ||
|
|
fbf3dd8cf7 | ||
|
|
01c9e73020 | ||
|
|
0736045b90 | ||
|
|
86776edfb3 | ||
|
|
d78805d8ae | ||
|
|
03e1d46586 | ||
|
|
f3deb8be11 | ||
|
|
981d5c6263 | ||
|
|
e000befc0f | ||
|
|
2eba58998b | ||
|
|
4ed21dc21a | ||
|
|
fa5cad0fdb | ||
|
|
5d28de1636 | ||
|
|
6be9255ca0 | ||
|
|
1f4a2f0f56 | ||
|
|
edbe4974ac | ||
|
|
7e515e7216 | ||
|
|
bf7a756714 | ||
|
|
428d2c6356 | ||
|
|
d589d9d05a | ||
|
|
c0c9ea9287 | ||
|
|
fae2bcc6e9 | ||
|
|
53047d35fe | ||
|
|
8982f7e0e3 | ||
|
|
909469ce97 | ||
|
|
dacb54285c | ||
|
|
5af93ca92a | ||
|
|
3fa500c9c1 | ||
|
|
f0adbbba29 | ||
|
|
bbdb30f421 | ||
|
|
897b5d452e | ||
|
|
fdd1479c8e | ||
|
|
7851109794 | ||
|
|
810e6c1bda | ||
|
|
d164f48cfe | ||
|
|
506def4340 | ||
|
|
08b8e919b7 | ||
|
|
696e2c9565 | ||
|
|
d728be119c | ||
|
|
463869b89d | ||
|
|
1d4c0b8e7f | ||
|
|
bf1b2a5104 | ||
|
|
bb8a09d8e2 | ||
|
|
901f8f2a7b | ||
|
|
ba6fff801b | ||
|
|
50098bad73 |
101
.doc/README.md
101
.doc/README.md
@@ -1,101 +0,0 @@
|
||||
# Phpdoc dokuwiki template
|
||||
This directory contains a template for rendering iTop phpdoc as dokuwiki pages.
|
||||
|
||||
|
||||
Conventional tags that you should use:
|
||||
* `@internal` : exclude from the documentation.
|
||||
* `@api` : it means that a method is an api, thus it may be interacted with.
|
||||
* `@see` : it points to another documented method
|
||||
* `@link` : external url
|
||||
* if you point to another page of the wiki, please use relative links.
|
||||
* `@example` : let you provide example of code
|
||||
* `@param`, `@return`, `@throws`, ...
|
||||
|
||||
|
||||
## Special instructions
|
||||
|
||||
Some iTop specific tags were added :
|
||||
* `@api-advanced`: it means that a method is an `@api` but mark it also as "complex" to use
|
||||
* `@overwritable-hook`: used to mark a method as "designed to be extended"
|
||||
* `@extension-hook`: not used for now
|
||||
* `@phpdoc-tuning-exclude-inherited`: once this tag is present on a class, it's inherited methods won't be showed.
|
||||
|
||||
|
||||
### known limitations:
|
||||
#### `@see` tags must be very specific:
|
||||
* always prefix class members (attributes or methods) with `ClassName::` (do not use self)
|
||||
* for methods always suffix them with `()`,
|
||||
* do not reference variables since they are not documented. If you have to, always prefix them with `$`
|
||||
|
||||
examples:
|
||||
```
|
||||
/**
|
||||
* @see DBObject
|
||||
* @see DBObject::Get()
|
||||
* @see DBObject::$foo
|
||||
*/
|
||||
```
|
||||
|
||||
#### Do not use inline tags, they do not work properly, example:
|
||||
```
|
||||
/**
|
||||
* This is a texts with an inline tag {@see [FQSEN] [<description>]} it must never be used
|
||||
*/
|
||||
```
|
||||
|
||||
#### The `@example` tag must respect this very precise syntax
|
||||
* the sentence in the first line (next to the tag) is the title, it must be enclosed by double quotes
|
||||
* the following lines are the sample code.
|
||||
* 💔 since we simply hack the official tag, this syntax must be respected carefully 💔
|
||||
example:
|
||||
```
|
||||
/**
|
||||
* @example "This is the title of the multiline example"
|
||||
* $foo = DBObject::Get('foo');
|
||||
* DBObject::Set('foo', ++$foo);
|
||||
*/
|
||||
```
|
||||
|
||||
## How content is included into the documentation
|
||||
|
||||
**For a class** those requirements have to be respected:
|
||||
- the file containing the class must be listed in `/phpdoc/files/file[]` of `.doc/phpdoc-objects-manipulation.dist.xml`
|
||||
- the class **must not** have the tag `@internal`
|
||||
- the class **must** have at least one of: `@api`, `@api-advanced`, `@overwritable-hook`, `@extension-hook`
|
||||
|
||||
Then, **for a method** of an eligible class:
|
||||
- **public** methods **must** have at least one of: `@api`, `@api-advanced`, `@overwritable-hook`, `@extension-hook`
|
||||
- **protected** methods **must** have at least one of: `@overwritable-hook`, `@extension-hook`
|
||||
- **private** methods are **always excluded**
|
||||
|
||||
**Class properties** and **constants** are never documented (this is subject to change).
|
||||
|
||||
|
||||
|
||||
|
||||
## A note about the rendering engine
|
||||
|
||||
:notebook: as spaces are used to mark code, the templates (`.doc/phpdoc-templates/combodo-wiki/*`) have very few indentation, thus they are awful to read (sorry).
|
||||
|
||||
## Installation
|
||||
|
||||
Note : PHP7 is required. Migrating to PHP8 requires some additional work which is questionable as an alternative way to generate a documentation is being considered.
|
||||
|
||||
```
|
||||
cd .doc
|
||||
composer require phpdocumentor/phpdocumentor:~2 --dev
|
||||
```
|
||||
|
||||
## Generation
|
||||
|
||||
1. Switch to this directory : `cd /path/to/itop/.doc`
|
||||
2. `composer install`
|
||||
3. `./bin/build-doc-object-manipulation`
|
||||
3. `./bin/build-doc-extensions`
|
||||
4. Get the generated files from `/path/to/itop/data/phpdocumentor/output`
|
||||
|
||||
## Dokuwiki requirements
|
||||
* the template uses the [wrap plugin](https://www.dokuwiki.org/plugin:wrap).
|
||||
* the generated files have to be placed under an arbitrary directory of `[/path/to/dokuwiki]/data/pages`.
|
||||
* the html has to be activated [config:htmlok](https://www.dokuwiki.org/config:htmlok)
|
||||
* the generated files have to be in lowercase
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh -x
|
||||
|
||||
rm -rf /tmp/phpdoc-twig-cache/ && rm -rf data/phpdocumentor/output/extensions/ && rm -rf data/phpdocumentor/temp/extensions/ && ./vendor/bin/phpdoc -c ./phpdoc-extensions.dist.xml -vvv
|
||||
|
||||
# now wee need to lowercase every generated file because dokuwiki can't handle uppercase
|
||||
cd ../data/phpdocumentor/output/extensions/ && for i in $(ls | grep [A-Z]); do mv -i $i $(echo $i | tr 'A-Z' 'a-z'); done
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh -x
|
||||
|
||||
rm -rf /tmp/phpdoc-twig-cache/ && rm -rf ../data/phpdocumentor/output/objects-manipulation/ && rm -rf ../data/phpdocumentor/temp/objects-manipulation/ && ./vendor/bin/phpdoc -c ./phpdoc-objects-manipulation.dist.xml -vvv
|
||||
|
||||
|
||||
# now wee need to lowercase every generated file because dokuwiki can't handle uppercase
|
||||
cd ../data/phpdocumentor/output/objects-manipulation/ && for i in $( ls | grep [A-Z] ); do mv -i $i `echo $i | tr 'A-Z' 'a-z'`; done
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"require-dev": {
|
||||
"phpdocumentor/phpdocumentor": "~2",
|
||||
"jms/serializer": "1.7.*"
|
||||
}
|
||||
}
|
||||
3015
.doc/composer.lock
generated
3015
.doc/composer.lock
generated
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
Before Width: | Height: | Size: 983 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.0 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 4.8 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
@@ -86,19 +86,22 @@ gitGraph
|
||||
commit id: "2024-01-17a" tag: "2.7.10"
|
||||
checkout support/3.0
|
||||
commit id: "2024-01-17b" tag: "3.0.4"
|
||||
checkout support/2.7
|
||||
commit id: "2024-09-28" tag: "2.7.11"
|
||||
checkout support/3.1
|
||||
commit id: "2024-09-27" tag: "3.1.2"
|
||||
checkout support/3.2
|
||||
commit id: "2024-06-25" tag: "3.2.0-beta1" type: REVERSE
|
||||
commit id: "2024-08-07" tag: "3.2.0"
|
||||
commit id: "2024-09-13" tag: "3.2.0-2"
|
||||
checkout support/3.1
|
||||
commit id: "2024-09-27" tag: "3.1.2"
|
||||
checkout support/2.7
|
||||
commit id: "2024-09-28" tag: "2.7.11"
|
||||
checkout support/2.7
|
||||
commit id: "2025-02-25" tag: "2.7.12"
|
||||
checkout support/3.1
|
||||
commit id: "2025-02-25 " tag: "3.1.3"
|
||||
checkout support/3.2
|
||||
commit id: "2025-02-25 " tag: "3.2.1"
|
||||
commit id: "2025-04-08" tag: "3.2.1-1"
|
||||
commit id: "2025-08-19" tag: "3.2.2-1"
|
||||
```
|
||||
|
||||
To learn more, check the [iTop community versions history on the official wiki](https://www.itophub.io/wiki/page?id=latest:release:start).
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<phpdoc>
|
||||
<title><![CDATA[iTop extensions]]></title>
|
||||
|
||||
<parser>
|
||||
<target>../data/phpdocumentor/temp/extensions</target>
|
||||
</parser>
|
||||
|
||||
<transformer>
|
||||
<target>../data/phpdocumentor/output/extensions</target>
|
||||
</transformer>
|
||||
|
||||
<transformations>
|
||||
<template name="phpdoc-templates/combodo-wiki"/>
|
||||
</transformations>
|
||||
|
||||
<files>
|
||||
<file>../application/applicationextension.inc.php</file>
|
||||
</files>
|
||||
</phpdoc>
|
||||
@@ -1,58 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<phpdoc>
|
||||
|
||||
<!--
|
||||
/**
|
||||
The documentation of this file can be found here : https://docs.phpdoc.org/references/configuration.html
|
||||
it has to be completed by the CLI parameters documentation which is more comprehensive: https://docs.phpdoc.org/references/commands/project_run.html#usage
|
||||
|
||||
usage:
|
||||
vendor/bin/phpdoc -c phpdoc-objects-manipulation.dist.xml
|
||||
|
||||
*/
|
||||
-->
|
||||
|
||||
<title><![CDATA[iTop's objects manipulation API]]></title>
|
||||
|
||||
<parser>
|
||||
<default-package-name>iTopORM</default-package-name>
|
||||
<target>../data/phpdocumentor/temp/objects-manipulation</target>
|
||||
<visibility>public,protected</visibility>
|
||||
<markers>
|
||||
<!--<item>TODO</item>-->
|
||||
<!--<item>FIXME</item>-->
|
||||
</markers>
|
||||
<extensions>
|
||||
<extension>php</extension>
|
||||
</extensions>
|
||||
</parser>
|
||||
|
||||
<transformer>
|
||||
<target>../data/phpdocumentor/output/objects-manipulation</target>
|
||||
</transformer>
|
||||
|
||||
<transformations>
|
||||
<template name="phpdoc-templates/combodo-wiki"/>
|
||||
</transformations>
|
||||
|
||||
<!--<logging>-->
|
||||
<!--<level>warn</level>-->
|
||||
<!--<paths>-->
|
||||
<!--<!–<default>data/phpdocumentor/log/objects-manipulation/{DATE}.log</default>–>-->
|
||||
<!--<!–<errors>data/phpdocumentor/log/objects-manipulation/{DATE}.errors.log</errors>–>-->
|
||||
|
||||
<!--<default>{APP_ROOT}/data/log/{DATE}.log</default>-->
|
||||
<!--<errors>{APP_ROOT}/data/log/{DATE}.errors.log</errors>-->
|
||||
<!--</paths>-->
|
||||
<!--</logging>-->
|
||||
|
||||
<files>
|
||||
<file>../core/dbobject.class.php</file>
|
||||
<file>../core/dbobjectsearch.class.php</file>
|
||||
<file>../core/metamodel.class.php</file>
|
||||
<file>../core/dbobjectset.class.php</file>
|
||||
<file>../core/dbsearch.class.php</file>
|
||||
<file>../core/dbunionsearch.class.php</file>
|
||||
</files>
|
||||
|
||||
</phpdoc>
|
||||
@@ -1,136 +0,0 @@
|
||||
{% extends 'layout.txt.twig' %}
|
||||
|
||||
{% block content %}
|
||||
<wrap button>[[start|🔙 Back]]</wrap>
|
||||
|
||||
{% if node.tags['internal'] is defined %}
|
||||
====== {{ node.name }} ======
|
||||
<WRAP alert>This class is "internal", and thus is not documented!</WRAP>
|
||||
{% elseif node.tags['api'] is not defined and node.tags['api-advanced'] is not defined and node.tags['overwritable-hook'] is not defined and node.tags['extension-hook'] is not defined %}
|
||||
====== {{ node.name }} ======
|
||||
<WRAP alert>This class is neither "api", "api-advanced", "overwritable-hook" or "extension-hook", and thus is not documented!</WRAP>
|
||||
{% else %}
|
||||
|
||||
====== {{ node.name }} ======
|
||||
|
||||
{% if node.deprecated %}<wrap danger>deprecated</wrap>{% endif %}
|
||||
{% if node.abstract %}<wrap warning>abstract</wrap>{% endif %}
|
||||
{% if node.final %}<wrap notice>final</wrap>{% endif %}
|
||||
{% include 'includes/wrap-tags.txt.twig' with {structure:node, wrap: 'safety', wrapTags: ['api', 'api-advanced', 'overwritable-hook', 'extension-hook']} %}
|
||||
|
||||
|
||||
|
||||
{% if node.deprecated %}
|
||||
=== **<del>Deprecated</del>**===
|
||||
//{{ node.tags.deprecated[0].description }}//
|
||||
{% endif %}
|
||||
|
||||
|
||||
== {{ node.summary|replace({"\n":""})|raw }} ==
|
||||
<html>{{ node.description|markdown|raw }}</html>
|
||||
|
||||
|
||||
{% include 'includes/code-examples.txt.twig' with {structure:node, title_level: '====='} %}
|
||||
|
||||
|
||||
{% set class = node.parent %}
|
||||
{% block hierarchy_element %}
|
||||
|
||||
{% if class and class.name is defined and class.name|trim != '' %}
|
||||
==== parent ====
|
||||
{% set child = class %}
|
||||
{% set class = class.parent %}
|
||||
{{ block('hierarchy_element') }}
|
||||
[[{{ child.name }}|{{ child.name }}]]
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% for interface in node.interfaces|sort_asc %}
|
||||
{% if loop.first %}
|
||||
==== Implements ====
|
||||
{% endif %}
|
||||
{% if loop.length > 1 %} * {% endif %}{{ interface.fullyQualifiedStructuralElementName ?: interface }}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% for trait in node.usedTraits|sort_asc %}
|
||||
{% if loop.first %}
|
||||
==== Uses traits ====
|
||||
{% endif %}
|
||||
{% if loop.length > 1 %} * {% endif %}{{ trait.fullyQualifiedStructuralElementName ?: trait }}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% include 'includes/see-also.txt.twig' with {structure:node, title_level: '==='} %}
|
||||
|
||||
{% include 'includes/tags.txt.twig' with {structure:node, title_level: '=====', blacklist: ['link', 'see', 'abstract', 'example', 'method', 'property', 'property-read', 'property-write', 'package', 'subpackage', 'phpdoc-tuning-exclude-inherited', 'api', 'api-advanced', 'overwritable-hook', 'extension-hook', 'copyright', 'license', 'code-example']} %}
|
||||
|
||||
{% set methods = node.inheritedMethods.merge(node.methods.merge(node.magicMethods)) %}
|
||||
{% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'api'} %}
|
||||
{% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'api-advanced'} %}
|
||||
{% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'overwritable-hook'} %}
|
||||
{% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'extension-hook'} %}
|
||||
|
||||
|
||||
{% include 'includes/code-examples.txt.twig' with {structure:node, title_level: '=====', sub_title_level: '=='} %}
|
||||
|
||||
<WRAP clear />
|
||||
|
||||
{% for method in methods|sort_asc
|
||||
if method.visibility == 'public'
|
||||
and (
|
||||
method.tags['api'] is defined
|
||||
or method.tags['api-advanced'] is defined
|
||||
or method.tags['overwritable-hook'] is defined
|
||||
or method.tags['extension-hook'] is defined
|
||||
)
|
||||
and (
|
||||
node.tags['phpdoc-tuning-exclude-inherited'] is not defined
|
||||
or method.parent.name == node.name
|
||||
)
|
||||
%}
|
||||
{%- if loop.first %}
|
||||
===== Public methods =====
|
||||
{% endif %}
|
||||
{{ block('method') }}
|
||||
{% endfor %}
|
||||
{% for method in methods|sort_asc if method.visibility == 'protected' and (method.tags['overwritable-hook'] is defined or method.tags['extension-hook'] is defined) %}
|
||||
{%- if loop.first %}
|
||||
===== Protected methods =====
|
||||
{% endif %}
|
||||
{{ block('method') }}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% set constants = node.inheritedConstants.merge(node.constants) %}
|
||||
{% if constants|length > 0 %}
|
||||
===== Constants =====
|
||||
{% for constant in constants|sort_asc %}
|
||||
{{ block('constant') }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{#{% set properties = node.inheritedProperties.merge(node.properties.merge(node.magicProperties)) %}#}
|
||||
{#{% for property in properties|sort_asc if property.visibility == 'public' %}#}
|
||||
{#{%- if loop.first %}#}
|
||||
{#===== Public properties =====#}
|
||||
{#{% endif %}#}
|
||||
{#{{ block('property') }}#}
|
||||
{#{% endfor %}#}
|
||||
{#{% for property in properties|sort_asc if property.visibility == 'protected' %}#}
|
||||
{#{%- if loop.first %}#}
|
||||
{#===== Protected properties =====#}
|
||||
{#{% endif %}#}
|
||||
{#{{ block('property') }}#}
|
||||
{#{% endfor %}#}
|
||||
|
||||
|
||||
{%- endif %} {#{% elseif node.tags['xxx'] is not defined and ... #}
|
||||
|
||||
<wrap button>[[start|🔙 Back]]</wrap>
|
||||
{% endblock %}
|
||||
@@ -1,31 +0,0 @@
|
||||
{% block constant %}
|
||||
|
||||
<WRAP group box >
|
||||
<WRAP twothirds column >
|
||||
==== {{ constant.name }} ====
|
||||
</WRAP>{# twothirds column#}
|
||||
|
||||
<WRAP third column>
|
||||
{% if constant.deprecated %}<wrap danger>deprecated</wrap> {% endif %}
|
||||
{% if (node.parent is not null and constant.parent.fullyQualifiedStructuralElementName != node.fullyQualifiedStructuralElementName) %}<wrap notice>inherited</wrap> {% endif %}
|
||||
</WRAP>{# third column#}
|
||||
|
||||
== {{ constant.summary|replace({"\n":""})|raw }} ==
|
||||
<html>{{ constant.description|markdown|raw }}</html>
|
||||
|
||||
{% if constant.deprecated %}
|
||||
=== Deprecated ===
|
||||
{{ constant.tags.deprecated[0].description|raw }}
|
||||
{% endif %}
|
||||
|
||||
{% include 'includes/inherited-from.txt.twig' with {structure:constant} %}
|
||||
|
||||
{% include 'includes/see-also.txt.twig' with {structure:constant, title_level: '=='} %}
|
||||
|
||||
{% include 'includes/uses.txt.twig' with {structure:constant, title_level: '=='} %}
|
||||
|
||||
{% include 'includes/tags.txt.twig' with {structure:constant, title_level: '==', blacklist: ['link', 'see', 'var', 'deprecated', 'uses', 'package', 'subpackage', 'todo', 'code-example']} %}
|
||||
|
||||
</WRAP>{# group #}
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,95 +0,0 @@
|
||||
{% block method %}
|
||||
|
||||
|
||||
<WRAP group box >
|
||||
<WRAP twothirds column >
|
||||
==== {{ method.name }} ====
|
||||
</WRAP>{# twothirds column#}
|
||||
<WRAP third column >
|
||||
{% include 'includes/wrap-tags.txt.twig' with {structure:method, wrap: 'safety', wrapTags: ['api', 'api-advanced', 'overwritable-hook', 'extension-hook']} %}
|
||||
{% if method.deprecated %}<wrap danger>deprecated</wrap> {% endif %}
|
||||
{% if (node.parent is not null and method.parent.fullyQualifiedStructuralElementName != node.fullyQualifiedStructuralElementName) %}<wrap notice>inherited</wrap> {% endif %}
|
||||
{% if method.abstract %}<wrap warning>abstract</wrap> {% endif %}
|
||||
{% if method.final %}<wrap notice>final</wrap> {% endif %}
|
||||
<wrap notice>{{ method.visibility }}</wrap>
|
||||
{% if method.static %}<wrap warning>static</wrap> {% endif %}
|
||||
</WRAP>{# third column#}
|
||||
|
||||
|
||||
== {{ method.summary|replace({"\n":""})|raw }} ==
|
||||
<html>{{ method.description|markdown|raw }}</html>
|
||||
|
||||
<code php>{% if method.abstract %}abstract {% endif %}{% if method.final %}final {% endif %}{{ method.visibility }} {% if method.static %}static {% endif %}{{ method.name }}({% for argument in method.arguments %}{{ argument.isVariadic ? '...' }}{{ argument.name }}{{ argument.default ? (' = '~argument.default)|raw }}{% if not loop.last %}, {% endif %}{% endfor %})</code>
|
||||
|
||||
<WRAP twothirds column >
|
||||
|
||||
|
||||
=== Parameters ===
|
||||
{% if method.arguments|length > 0 -%}
|
||||
^ types ^ name ^ default ^ description ^
|
||||
{% for argument in method.arguments -%}
|
||||
| **<nowiki>{{ argument.types|join('|')|raw }}</nowiki>** | {{ argument.name }} {{ argument.isVariadic ? '<small style="color: gray">variadic</small>' }} | <nowiki>{{ argument.default|raw }}</nowiki> | {{ argument.description|trim|replace("\n", ' ')|raw }} |{{ "\r\n" }}
|
||||
{%- endfor %}
|
||||
{% else %}
|
||||
//none//
|
||||
{% endif %}
|
||||
|
||||
|
||||
{#=== Parameters ===#}
|
||||
{#{% if method.arguments|length > 0 -%}#}
|
||||
{#{% for argument in method.arguments -%}#}
|
||||
{#== {{ argument.name }} ==#}
|
||||
|
||||
|
||||
{#{% set varDesc %}#}
|
||||
{#<span style="margin:0 10px; 0 20px; font-weight: bold;">{{ argument.types|join('|') }}</span>#}
|
||||
{#{{ argument.isVariadic ? '<small style="color: gray">variadic</small>' }}#}
|
||||
{#{{ argument.description|raw }}#}
|
||||
{#{% endset %}#}
|
||||
{#<html>{{ varDesc|markdown|raw }}</html>#}
|
||||
{#{%- endfor %}#}
|
||||
{#{% else %}#}
|
||||
{#<wrap tip>This method has no parameter</wrap>#}
|
||||
{#{% endif %}#}
|
||||
|
||||
|
||||
{% if method.response and method.response.types|join() != 'void' %}
|
||||
=== Returns ===
|
||||
<html>{{ ('**' ~ method.response.types|join('|')|trim ~ '** ' ~ method.response.description)|markdown|raw }}</html>
|
||||
{% endif %}
|
||||
|
||||
</WRAP>{# twothirds column#}
|
||||
|
||||
<WRAP third column >
|
||||
|
||||
{% if method.tags.throws|length > 0 or method.tags.throw|length > 0 %}
|
||||
=== Throws ===
|
||||
{% for exception in method.tags.throws -%}
|
||||
{% if loop.length > 1 %} * {% endif %}''{{ exception.types|join('|')|raw }}'' <nowiki>{{ exception.description|raw }}</nowiki>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% include 'includes/inherited-from.txt.twig' with {structure:method} %}
|
||||
|
||||
{% include 'includes/see-also.txt.twig' with {structure:method, title_level: '==='} %}
|
||||
|
||||
{% include 'includes/uses.txt.twig' with {structure:method, title_level: '==='} %}
|
||||
|
||||
{% include 'includes/used-by.txt.twig' with {structure:method, title_level: '==='} %}
|
||||
|
||||
{% include 'includes/tags-with-description.txt.twig' with {structure:method, title_level: '===', WRAP: 'info', tagsWithDescription: ['api', 'api-advanced', 'overwritable-hook', 'extension-hook']} %}
|
||||
|
||||
{% include 'includes/tags.txt.twig' with {structure:method, title_level: '===', blacklist: ['todo', 'link', 'see', 'abstract', 'example', 'param', 'return', 'access', 'deprecated', 'throws', 'throw', 'uses', 'api', 'api-advanced', 'overwritable-hook', 'extension-hook', 'used-by', 'inheritdoc', 'code-example']} %}
|
||||
|
||||
</WRAP>{# third column#}
|
||||
|
||||
|
||||
|
||||
{% include 'includes/code-examples.txt.twig' with {structure:method, title_level: '==='} %}
|
||||
|
||||
</WRAP>{# group #}
|
||||
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,49 +0,0 @@
|
||||
{% block property %}
|
||||
|
||||
<WRAP group box>
|
||||
<WRAP twothirds column >
|
||||
==== ${{ property.name }} ====
|
||||
</WRAP>{# twothirds column#}
|
||||
|
||||
<WRAP third column>
|
||||
{% if property.deprecated %}<wrap danger>deprecated</wrap> {% endif %}
|
||||
{% if (node.parent is not null and property.parent.fullyQualifiedStructuralElementName != node.fullyQualifiedStructuralElementName) %}<wrap notice>inherited</wrap> {% endif %}
|
||||
</WRAP>{# third column#}
|
||||
|
||||
|
||||
|
||||
|
||||
== {{ property.summary|replace({"\n":""})|raw }} ==
|
||||
<html>{{ property.description|markdown|raw }}</html>
|
||||
{% if property.var.0.description %}<html>{{ property.var.0.description|markdown|raw }}</html>{% endif %}
|
||||
|
||||
|
||||
|
||||
{#{% if property.types %}#}
|
||||
{#== Type ==#}
|
||||
{#{% for type in property.types %}#}
|
||||
{#{% if loop.length > 1 %} * {% endif %}{{ type|raw }} : {{ type.description|raw }}#}
|
||||
{#{% endfor %}#}
|
||||
{#{{ property.types|join('|')|raw }}#}
|
||||
{#{% endif %}#}
|
||||
|
||||
|
||||
{% if property.deprecated %}
|
||||
== Deprecated ==
|
||||
{{ property.tags.deprecated[0].description }}
|
||||
{% endif %}
|
||||
|
||||
{% include 'includes/inherited-from.txt.twig' with {structure:property} %}
|
||||
|
||||
{% include 'includes/see-also.txt.twig' with {structure:property, title_level: '=='} %}
|
||||
|
||||
{% include 'includes/uses.txt.twig' with {structure:property, title_level: ''} %}
|
||||
|
||||
{% include 'includes/tags.txt.twig' with {structure:property, title_level: '==', blacklist: ['link', 'see', 'access', 'var', 'deprecated', 'uses', 'todo', 'code-example']} %}
|
||||
|
||||
|
||||
<code php>{{ property.visibility }} ${{ property.name }}{% if property.types %} : {{ property.types|join('|')|raw }}{% endif %}</code>
|
||||
|
||||
</WRAP>{# group #}
|
||||
|
||||
{% endblock %}
|
||||
@@ -1 +0,0 @@
|
||||
{{ node.source|raw }}
|
||||
@@ -1,122 +0,0 @@
|
||||
{% extends 'layout.txt.twig' %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{#<section class="row-fluid">#}
|
||||
{#<div class="span2 sidebar">#}
|
||||
{#{% set namespace = project.namespace %}#}
|
||||
{#{{ block('sidebarNamespaces') }}#}
|
||||
{#</div>#}
|
||||
{#</section>#}
|
||||
{#<section class="row-fluid">#}
|
||||
====== {{ node.path|split('/')|slice(0,-1)|join('/') }}{{ node.name }} ======
|
||||
{{ node.summary }}
|
||||
<html>{{ node.description|markdown|raw }}</html>
|
||||
|
||||
{% if node.traits|length > 0 %}
|
||||
|
||||
===== Traits =====
|
||||
{% for trait in node.traits %}
|
||||
<tr>
|
||||
<td>{{ trait|raw }}</td>
|
||||
<td><em>{{ trait.summary }}</em></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if node.interfaces|length > 0 %}
|
||||
===== Interfaces =====
|
||||
{% for interface in node.interfaces %}
|
||||
<tr>
|
||||
<td>{{ interface|raw }}</td>
|
||||
<td><em>{{ interface.summary }}</em></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if node.classes|length > 0 %}
|
||||
===== Classes =====
|
||||
{% for class in node.classes %}
|
||||
{{ class|raw }}
|
||||
<em>{{ class.summary }}</em>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if node.package is not empty and node.package != '\\' %}
|
||||
===== Package =====
|
||||
{{ node.subpackage ? (node.package ~ '\\' ~ node.subpackage) : node.package }}
|
||||
{% endif %}
|
||||
|
||||
{% for tagName,tags in node.tags if tagName in ['link', 'see'] %}
|
||||
{% if loop.first %}
|
||||
===== See also =====
|
||||
{% endif %}
|
||||
{% for tag in tags %}
|
||||
<dd><a href="{{ tag.reference ?: tag.link }}"><div class="namespace-wrapper">{{ tag.description ?: tag.reference }}</div></a></dd>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
<h2>Tags</h2>
|
||||
<table class="table table-condensed">
|
||||
{% for tagName,tags in node.tags if tagName not in ['link', 'see', 'package', 'subpackage'] %}
|
||||
<tr>
|
||||
<th>
|
||||
{{ tagName }}
|
||||
</th>
|
||||
<td>
|
||||
{% for tag in tags %}
|
||||
{{ tag.description|markdown|raw }}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr><td colspan="2"><em>None found</em></td></tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
</aside>
|
||||
</div>
|
||||
|
||||
{% if node.constants|length > 0 %}
|
||||
<div class="row-fluid">
|
||||
<section class="span8 content file">
|
||||
<h2>Constants</h2>
|
||||
</section>
|
||||
<aside class="span4 detailsbar"></aside>
|
||||
</div>
|
||||
|
||||
{% for constant in node.constants %}
|
||||
{{ block('constant') }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if node.functions|length > 0 %}
|
||||
<div class="row-fluid">
|
||||
<section class="span8 content file">
|
||||
<h2>Functions</h2>
|
||||
</section>
|
||||
<aside class="span4 detailsbar"></aside>
|
||||
</div>
|
||||
|
||||
{% for method in node.functions %}
|
||||
{{ block('method') }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 id="source-view-label">{{ node.file.name }}</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<pre data-src="{{ path('files/' ~ node.path ~ '.txt')|raw }}" class="language-php line-numbers"></pre>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,42 +0,0 @@
|
||||
{% extends 'layout.html.twig' %}
|
||||
|
||||
{% block stylesheets %}
|
||||
<link href="{{ path('css/jquery.iviewer.css') }}" rel="stylesheet" media="all"/>
|
||||
<style>
|
||||
#viewer {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.wrapper {
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
<script src="{{ path('js/jquery.mousewheel.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ path('js/jquery.iviewer.js') }}" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
$(window).resize(function(){
|
||||
$("#viewer").height($(window).height() - 100);
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
$("#viewer").iviewer({src: '{{ path('graphs/classes.svg') }}', zoom_animation: false});
|
||||
$('#viewer img').on('dragstart', function(event){
|
||||
event.preventDefault();
|
||||
});
|
||||
$(window).resize();
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row-fluid">
|
||||
<div class="span12">
|
||||
<div class="wrapper">
|
||||
<div id="viewer" class="viewer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,5 +0,0 @@
|
||||
# Fixes a vulnerability in CentOS: http://stackoverflow.com/questions/20533279/prevent-php-from-parsing-non-php-files-such-as-somefile-php-txt
|
||||
<FilesMatch \.php\.txt$>
|
||||
RemoveHandler .php
|
||||
ForceType text/plain
|
||||
</FilesMatch>
|
||||
@@ -1,34 +0,0 @@
|
||||
{% if title_level is not defined %}
|
||||
{%- set title_level = '==' -%}
|
||||
{% endif %}
|
||||
|
||||
{% if sub_title_level is not defined %}
|
||||
{%- set sub_title_level = title_level|slice(1) -%}
|
||||
{% endif %}
|
||||
{% if sub_title_level == '=' %}
|
||||
{%- set sub_title_level = '' -%}
|
||||
{% endif %}
|
||||
|
||||
{#{% for tagName,tags in structure.tags if tagName in ['code-example'] %}#}
|
||||
{#{% if loop.first %}#}
|
||||
{#{{title_level}} Examples {{title_level}}#}
|
||||
{#{% endif %}#}
|
||||
{#{% for tag in tags %}#}
|
||||
{#{%- set descToken = tag.description|split("\n", 2) -%}#}
|
||||
{#{%- set title = descToken[0] -%}#}
|
||||
{#{%- set code = descToken[1] -%}#}
|
||||
{#{{sub_title_level}} {{ title }} {{sub_title_level}}#}
|
||||
{#<code php>{{ code|raw }}</code>#}
|
||||
{#{% endfor %}#}
|
||||
{#{% endfor %}#}
|
||||
|
||||
|
||||
{% for tagName,tags in structure.tags if tagName in ['example'] %}
|
||||
{% if loop.first %}
|
||||
{{title_level}} Examples {{title_level}}
|
||||
{% endif %}
|
||||
{% for tag in tags %}
|
||||
{{ sub_title_level }} {{ tag.filePath|escape }}{{ sub_title_level }}
|
||||
<code php>{{ tag.description|raw }}</code>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
@@ -1,12 +0,0 @@
|
||||
{% if title_level is not defined %}
|
||||
{% set title_level='' %}
|
||||
{% endif %}
|
||||
|
||||
{% if (node.parent is null) %}
|
||||
{{title_level}} File {{ structure.path }} {{title_level}}
|
||||
{% endif %}
|
||||
|
||||
{% if (node.parent is not null and structure.parent.fullyQualifiedStructuralElementName != node.fullyQualifiedStructuralElementName) %}
|
||||
{{title_level}} Inherited from {{title_level}}
|
||||
[[{{structure.parent}}|{{structure.parent}}]]
|
||||
{% endif %}
|
||||
@@ -1,26 +0,0 @@
|
||||
{% for structure in structures|sort_asc if structure.tags['internal'] is not defined and (structure.tags['api'] is defined or structure.tags['api-advanced'] is defined or structure.tags['overwritable-hook'] is defined or structure.tags['extension-hook'] is defined ) %}
|
||||
{#{{ structure|raw }}#}
|
||||
|
||||
{% set structureName = structure|trim('\\', 'left') %}
|
||||
|
||||
<WRAP group box>
|
||||
<WRAP twothirds column >
|
||||
==== {{ structureName }} ====
|
||||
</WRAP>{# twothirds column#}
|
||||
|
||||
<WRAP third column>
|
||||
{% if structure.deprecated %}<wrap danger>deprecated</wrap>{% endif %}
|
||||
{% if structure.abstract %}<wrap warning>abstract</wrap>{% endif %}
|
||||
{% if structure.final %}<wrap notice>final</wrap>{% endif %}
|
||||
{% if (node.parent is not null and structure.parent.fullyQualifiedStructuralElementName != node.fullyQualifiedStructuralElementName) %}<wrap notice>inherited</wrap> {% endif %}
|
||||
{% include 'includes/wrap-tags.txt.twig' with {structure:structure, wrap: 'safety', wrapTags: ['api', 'api-advanced', 'overwritable-hook', 'extension-hook']} %}
|
||||
</WRAP>{# third column#}
|
||||
|
||||
|
||||
{{ structure.summary|raw }}
|
||||
[[{{structureName}}|More information]]
|
||||
|
||||
</WRAP>{# group #}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
{% if title_level is not defined %}
|
||||
{%- set title_level='==' -%}
|
||||
{% endif %}
|
||||
{% for tagName,tags in structure.tags if tagName in ['link', 'see'] %}
|
||||
{% if loop.first %}
|
||||
{{title_level}} See also {{title_level}}
|
||||
{% endif %}
|
||||
{% for tag in tags %}
|
||||
{%- set linkTag = tag.reference|trim('\\', 'left') -%}
|
||||
{% if not('()' in linkTag or '$' in linkTag or node.name in linkTag or '::' in linkTag ) %}
|
||||
{%- set linkTag = linkTag|lower -%}
|
||||
{% elseif node.name~'::' in linkTag %}
|
||||
{%- set linkTag = linkTag|replace({(node.name~'::'): '#'})|lower -%}
|
||||
{% elseif '::' in linkTag -%}
|
||||
{%- set linkTag = linkTag|replace({'::': '#'})|lower -%}
|
||||
{% else %}
|
||||
{%- set linkTag = '#' ~ linkTag|lower -%}
|
||||
{%- endif %}
|
||||
|
||||
{% if loop.length > 1 %} * {% endif %}{% if tag.reference is not empty -%}
|
||||
[[{{linkTag}}|{{ (tag.reference)|trim('\\', 'left') }}]] {% if tag.description|trim is not empty %}: {{ tag.description|trim('\\', 'left') }} {% endif %}
|
||||
{%- else -%}
|
||||
{#{{ tag.description|trim('\\', 'left') }}#}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
@@ -1,56 +0,0 @@
|
||||
{% if tag is not defined -%}
|
||||
{# Do not display @api if @api-advanced is also present #}
|
||||
{%- set tag = "api" -%}
|
||||
{%- endif %}
|
||||
|
||||
{% if hidden_by is not defined -%}
|
||||
{# Do not display @api if @api-advanced is also present #}
|
||||
{%- set hidden_by = {"api" : "api-advanced"} -%}
|
||||
{%- endif %}
|
||||
|
||||
|
||||
|
||||
{% for method in methods|sort_asc
|
||||
if (method.visibility == 'public')
|
||||
and (
|
||||
method.tags[tag] is defined
|
||||
and (
|
||||
hidden_by[tag] is not defined or method.tags[hidden_by[tag]] is not defined
|
||||
)
|
||||
)
|
||||
%}
|
||||
{%- if loop.first %}
|
||||
{% if tag == 'api' %}
|
||||
===== API synthesis =====
|
||||
<WRAP>
|
||||
List of the public API methods.
|
||||
When manipulating {{ node.name }}, You can call those methods:
|
||||
</WRAP>
|
||||
{% elseif tag == 'api-advanced' %}
|
||||
===== Advanced API synthesis =====
|
||||
<WRAP>
|
||||
List of advanced API methods
|
||||
Beware they usage is recommended to advanced users only.
|
||||
</WRAP>
|
||||
{% elseif tag == 'overwritable-hook' %}
|
||||
===== overwritable-hook synthesis =====
|
||||
<WRAP >When inheriting from {{ node.name }},
|
||||
you can overwrite those methods in order to add custom logic:
|
||||
</WRAP>
|
||||
{% elseif tag == 'extension-hook' %}
|
||||
===== extension-hook synthesis =====
|
||||
<WRAP >
|
||||
When inheriting from {{ node.name }},
|
||||
you can extend the behaviour of iTop by implementing:
|
||||
</WRAP>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% set sanitizedMethod = method|trim('\\', 'left')|replace({(node.name~'::'): ''}) %}
|
||||
{% if '::' in sanitizedMethod -%}
|
||||
{%- if node.tags['phpdoc-tuning-exclude-inherited'] is not defined %}
|
||||
* [[{{sanitizedMethod|replace({'::': '#'})|lower}}|↪{{sanitizedMethod}}]] — {{ method.summary|replace({"\n":""})|raw }}
|
||||
{% endif %}
|
||||
{%- else %}
|
||||
* [[#{{sanitizedMethod}}|{{sanitizedMethod}}]] — {{ method.summary|replace({"\n":""})|raw }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
@@ -1,20 +0,0 @@
|
||||
{% if title_level is not defined %}
|
||||
{% set title_level = '==' %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{%- for tagName,tags in structure.tags if tagName in tagsWithDescription -%}
|
||||
{%- for tag in tags -%}
|
||||
{%- if tag.description is not empty -%}
|
||||
{%- if WRAP is defined -%}
|
||||
<WRAP {{WRAP}}>
|
||||
{%- endif -%}
|
||||
{{title_level}} {{ tagName }} {{title_level}}
|
||||
{{ tag.description|escape }}
|
||||
{%- if WRAP is defined -%}
|
||||
</WRAP>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
{% if title_level is not defined %}
|
||||
{% set title_level='=====' %}
|
||||
{% endif %}
|
||||
|
||||
{% if blacklist is not defined %}
|
||||
{% set blacklist =['link', 'see', 'abstract', 'example', 'method', 'property', 'property-read', 'property-write', 'package', 'subpackage', 'api', 'api-advanced', 'todo', 'code-example'] %}
|
||||
{% endif %}
|
||||
{% if hidden_by is not defined -%}
|
||||
{# Do not display @api if @api-advanced is also present #}
|
||||
{%- set hidden_by = {"api" : "api-advanced"} -%}
|
||||
{%- endif %}
|
||||
|
||||
{#^ {% for tagName,tags in structure.tags if tagName not in blacklist -%}#}
|
||||
{#{{ tagName }} ^#}
|
||||
{#{%- endfor %}#}
|
||||
|
||||
{% for tagName,tags in structure.tags if tagName not in blacklist and (hidden_by[tagName] is not defined or structure.tags[hidden_by[tagName]] is not defined) %}
|
||||
{%- if loop.first %}
|
||||
{{title_level}} Tags {{title_level}}
|
||||
{% endif %}
|
||||
^ {{ tagName }} | {% for tag in tags %}{{ tag.version ? tag.version ~ ' ' : '' }}{{ tag.description}}{% endfor %} |
|
||||
{% endfor %}
|
||||
@@ -1,24 +0,0 @@
|
||||
{% if title_level is not defined %}
|
||||
{% set title_level='' %}
|
||||
{% endif %}
|
||||
{% for tagName,tags in structure.tags if tagName in ['used-by'] %}
|
||||
{% if loop.first %}
|
||||
{{title_level}} Used by {{title_level}}
|
||||
{% endif %}
|
||||
{% for tag in tags %}
|
||||
{% if loop.length > 1 %} * {% endif %}{{ tag.reference ?: tag.link }} : {{ tag.description ?: tag.reference }}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{#{% for tagName,tags in method.tags if tagName in ['uses'] %}#}
|
||||
{#{% if loop.first %}#}
|
||||
{#<dt>Uses</dt>#}
|
||||
{#{% endif %}#}
|
||||
{#{% for tag in tags %}#}
|
||||
{#<dd>{{ tag.reference|raw }}</dd>#}
|
||||
{#{% endfor %}#}
|
||||
{#{% endfor %}#}
|
||||
@@ -1,24 +0,0 @@
|
||||
{% if title_level is not defined %}
|
||||
{% set title_level='' %}
|
||||
{% endif %}
|
||||
{% for tagName,tags in structure.tags if tagName in ['uses'] %}
|
||||
{% if loop.first %}
|
||||
{{title_level}} Uses {{title_level}}
|
||||
{% endif %}
|
||||
{% for tag in tags %}
|
||||
{% if loop.length > 1 %} * {% endif %}{{ tag.reference ?: tag.link }} : {{ tag.description ?: tag.reference }}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{#{% for tagName,tags in method.tags if tagName in ['uses'] %}#}
|
||||
{#{% if loop.first %}#}
|
||||
{#<dt>Uses</dt>#}
|
||||
{#{% endif %}#}
|
||||
{#{% for tag in tags %}#}
|
||||
{#<dd>{{ tag.reference|raw }}</dd>#}
|
||||
{#{% endfor %}#}
|
||||
{#{% endfor %}#}
|
||||
@@ -1,11 +0,0 @@
|
||||
{% if wrap is not defined -%}
|
||||
{% set wrap = 'notice' %}
|
||||
{%- endif -%}
|
||||
{% if hidden_by is not defined -%}
|
||||
{# Do not display @api if @api-advanced is also present #}
|
||||
{%- set hidden_by = {"api" : "api-advanced"} -%}
|
||||
{%- endif %}
|
||||
|
||||
{%- for tagName,tags in structure.tags if tagName in wrapTags and (hidden_by[tagName] is not defined or structure.tags[hidden_by[tagName]] is not defined) %}
|
||||
<wrap {{wrap}}>{{tagName}}</wrap>
|
||||
{% endfor %}
|
||||
@@ -1,121 +0,0 @@
|
||||
{% extends 'layout.txt.twig' %}
|
||||
|
||||
{% block content %}
|
||||
<wrap button>[[start|🔙 Back]]</wrap>
|
||||
|
||||
{% if node.tags['internal'] is defined %}
|
||||
====== {{ node.name }} ======
|
||||
<WRAP alert>This interface is "internal", and thus is not documented!</WRAP>
|
||||
{% elseif node.tags['api'] is not defined and node.tags['api-advanced'] is not defined and node.tags['overwritable-hook'] is not defined and node.tags['extension-hook'] is not defined %}
|
||||
====== {{ node.name }} ======
|
||||
<WRAP alert>This interface is neither "api", "overwritable-hook" or "extension-hook", and thus is not documented!</WRAP>
|
||||
{% else %}
|
||||
|
||||
====== {{ node.name }} ======
|
||||
|
||||
{% if node.deprecated %}<wrap danger>deprecated</wrap>{% endif %}
|
||||
{% if node.abstract %}<wrap warning>abstract</wrap>{% endif %}
|
||||
{% if node.final %}<wrap notice>final</wrap>{% endif %}
|
||||
{% include 'includes/wrap-tags.txt.twig' with {structure:node, wrap: 'safety', wrapTags: ['api', 'api-advanced', 'overwritable-hook', 'extension-hook']} %}
|
||||
|
||||
|
||||
|
||||
{% if node.deprecated %}
|
||||
=== **<del>Deprecated</del>**===
|
||||
//{{ node.tags.deprecated[0].description }}//
|
||||
{% endif %}
|
||||
|
||||
|
||||
== {{ node.summary|replace({"\n":""})|raw }} ==
|
||||
<html>{{ node.description|markdown|raw }}</html>
|
||||
|
||||
|
||||
{% include 'includes/code-examples.txt.twig' with {structure:node, title_level: '====='} %}
|
||||
|
||||
|
||||
{% set class = node.parent %}
|
||||
{% block hierarchy_element %}
|
||||
|
||||
{% if class and class.name is defined and class.name|trim != '' %}
|
||||
==== parent ====
|
||||
{% set child = class %}
|
||||
{% set class = class.parent %}
|
||||
{{ block('hierarchy_element') }}
|
||||
[[{{ child.name }}|{{ child.name }}]]
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% for interface in node.interfaces|sort_asc %}
|
||||
{% if loop.first %}
|
||||
==== Implements ====
|
||||
{% endif %}
|
||||
{% if loop.length > 1 %} * {% endif %}{{ interface.fullyQualifiedStructuralElementName ?: interface }}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% for trait in node.usedTraits|sort_asc %}
|
||||
{% if loop.first %}
|
||||
==== Uses traits ====
|
||||
{% endif %}
|
||||
{% if loop.length > 1 %} * {% endif %}{{ trait.fullyQualifiedStructuralElementName ?: trait }}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% include 'includes/see-also.txt.twig' with {structure:node, title_level: '==='} %}
|
||||
|
||||
{% include 'includes/tags.txt.twig' with {structure:node, title_level: '=====', blacklist: ['link', 'see', 'abstract', 'example', 'method', 'property', 'property-read', 'property-write', 'package', 'subpackage', 'phpdoc-tuning-exclude-inherited', 'api', 'api-advanced', 'overwritable-hook', 'extension-hook', 'copyright', 'license', 'code-example']} %}
|
||||
|
||||
|
||||
{% set methods = node.inheritedMethods.merge(node.methods) %}
|
||||
{% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'api'} %}
|
||||
{% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'api-advanced'} %}
|
||||
{% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'overwritable-hook'} %}
|
||||
{% include 'includes/tag-synthesys.txt.twig' with {methods:methods, tag:'extension-hook'} %}
|
||||
|
||||
<WRAP clear />
|
||||
|
||||
|
||||
{% for method in methods|sort_asc if method.visibility == 'public' %}
|
||||
{%- if loop.first %}
|
||||
===== Public methods =====
|
||||
{% endif %}
|
||||
{{ block('method') }}
|
||||
{% endfor %}
|
||||
{% for method in methods|sort_asc if method.visibility == 'protected' %}
|
||||
{%- if loop.first %}
|
||||
===== Protected methods =====
|
||||
{% endif %}
|
||||
{{ block('method') }}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
{% set constants = node.inheritedConstants.merge(node.constants) %}
|
||||
{% if constants|length > 0 %}
|
||||
===== Constants =====
|
||||
{% for constant in constants|sort_asc %}
|
||||
{{ block('constant') }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{#{% set properties = node.inheritedProperties.merge(node.properties) %}#}
|
||||
{#{% for property in properties|sort_asc if property.visibility == 'public' %}#}
|
||||
{#{%- if loop.first %}#}
|
||||
{#===== Public properties =====#}
|
||||
{#{% endif %}#}
|
||||
{#{{ block('property') }}#}
|
||||
{#{% endfor %}#}
|
||||
{#{% for property in properties|sort_asc if property.visibility == 'protected' %}#}
|
||||
{#{%- if loop.first %}#}
|
||||
{#===== Protected properties =====#}
|
||||
{#{% endif %}#}
|
||||
{#{{ block('property') }}#}
|
||||
{#{% endfor %}#}
|
||||
|
||||
|
||||
{%- endif %} {#{% elseif node.tags['xxx'] is not defined and ... #}
|
||||
|
||||
<wrap button>[[start|🔙 Back]]</wrap>
|
||||
{% endblock %}
|
||||
@@ -1,5 +0,0 @@
|
||||
{% use 'elements/constant.txt.twig' %}
|
||||
{% use 'elements/property.txt.twig' %}
|
||||
{% use 'elements/method.txt.twig' %}
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
@@ -1,51 +0,0 @@
|
||||
{% extends 'layout.txt.twig' %}
|
||||
|
||||
{% block content %}
|
||||
{% set namespace = project.namespace %}
|
||||
{{ block('sidebarNamespaces') }}
|
||||
|
||||
{#{{ node.parent|raw }}#}
|
||||
{#====== {{ node.parent.fullyQualifiedStructuralElementName }}{{ node.name }} ======#}
|
||||
|
||||
{% if node.children|length > 0 %}
|
||||
=====Namespaces=====
|
||||
{% include 'includes/namespace-structure-toc.html.twig' with {structures: node.children} %}
|
||||
----
|
||||
{% endif %}
|
||||
|
||||
{% if node.traits|length > 0 %}
|
||||
===== Traits =====
|
||||
{% include 'includes/namespace-structure-toc.html.twig' with {structures: node.traits} %}
|
||||
----
|
||||
{%- endif %}
|
||||
|
||||
{% if node.interfaces|length > 0 %}
|
||||
===== Interfaces =====
|
||||
{% include 'includes/namespace-structure-toc.html.twig' with {structures: node.interfaces} %}
|
||||
----
|
||||
{% endif %}
|
||||
|
||||
{% if node.classes|length > 0 %}
|
||||
===== Classes =====
|
||||
{% include 'includes/namespace-structure-toc.html.twig' with {structures: node.classes} %}
|
||||
----
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
{#{% if node.constants|length > 0 %}#}
|
||||
{#===== Constants =====#}
|
||||
{#{% for constant in node.constants|sort_asc %}#}
|
||||
{# {{ block('constant') }}#}
|
||||
{#{% endfor %}#}
|
||||
{#{% endif %}#}
|
||||
|
||||
{#{% if node.functions|length > 0 %}#}
|
||||
{#===== Functions =====#}
|
||||
|
||||
{#{% for method in node.functions|sort_asc %}#}
|
||||
{# {{ block('method') }}#}
|
||||
{#{% endfor %}#}
|
||||
{#{% endif %}#}
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,49 +0,0 @@
|
||||
|
||||
====== Deprecated elements ======
|
||||
|
||||
{#{% for element in project.indexes.elements if element.deprecated %}#}
|
||||
{#{% if element.file.path != previousPath %}#}
|
||||
{#<li><a href="#{{ element.file.path }}"><i class="icon-file"></i> {{ element.file.path }}</a></li>#}
|
||||
{#{% endif %}#}
|
||||
{#{% set previousPath = element.file.path %}#}
|
||||
{#{% endfor %}#}
|
||||
|
||||
{% for element in project.indexes.elements if element.deprecated %}
|
||||
{% if element.file.path != previousPath %}
|
||||
{% if previousPath %}
|
||||
</WRAP>{# group #}
|
||||
{% endif %}
|
||||
{#<a name="{{ element.file.path }}" id="{{ element.file.path }}"></a>#}
|
||||
===== {{ element.file.path }} ({{ element.tags.deprecated.count }} found)=====
|
||||
|
||||
<WRAP group >
|
||||
<WRAP third column >
|
||||
Element
|
||||
</WRAP>{# third column#}
|
||||
<WRAP third column >
|
||||
Line
|
||||
</WRAP>{# third column#}
|
||||
<WRAP third column >
|
||||
Description
|
||||
</WRAP>{# third column#}
|
||||
|
||||
{% endif %}
|
||||
{% for tag in element.tags.deprecated %}
|
||||
<WRAP group >
|
||||
<WRAP third column >
|
||||
{{ element.fullyQualifiedStructuralElementName }}
|
||||
</WRAP>{# third column#}
|
||||
<WRAP third column >
|
||||
{{ element.line }}
|
||||
</WRAP>{# third column#}
|
||||
<WRAP third column >
|
||||
{{ tag.description }}
|
||||
</WRAP>{# third column#}
|
||||
|
||||
{% endfor %}
|
||||
</WRAP>{# group #}
|
||||
{% set previousPath = element.file.path %}
|
||||
{% else %}
|
||||
<WRAP info>No deprecated elements have been found in this project.</WRAP>
|
||||
{% endfor %}
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<template>
|
||||
<author>Bruno DA SILVA</author>
|
||||
<email>contact [at] combodo.com</email>
|
||||
<version>1.0.0</version>
|
||||
<copyright>Combodo 2018</copyright>
|
||||
<description><![CDATA[
|
||||
|
||||
Forked from the clean theme of https://github.com/phpDocumentor/phpDocumentor2 provided under the MIT licence.
|
||||
The original work is copyright "Mike van Riel".
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
To improve performance you can add the following to your .htaccess:
|
||||
|
||||
<ifModule mod_deflate.c>
|
||||
<filesMatch "\.(js|css|html)$">
|
||||
SetOutputFilter DEFLATE
|
||||
</filesMatch>
|
||||
</ifModule>
|
||||
]]></description>
|
||||
<transformations>
|
||||
<transformation writer="twig" query="namespace" source="templates/combodo-wiki/namespace.txt.twig" artifact="start.txt"/>
|
||||
<transformation writer="twig" query="indexes.classes" source="templates/combodo-wiki/class.txt.twig" artifact="{{name}}.txt"/>
|
||||
<transformation writer="twig" query="indexes.interfaces" source="templates/combodo-wiki/interface.txt.twig" artifact="{{name}}.txt" />
|
||||
</transformations>
|
||||
</template>
|
||||
@@ -7,6 +7,17 @@ Here are some guidelines that will help us integrate your work!
|
||||
|
||||
## Contributions
|
||||
|
||||
|
||||
```
|
||||
_ _ _ _ _ __ _
|
||||
| | | | __ _ ___| | _| |_ ___ | |__ ___ _ __ / _| ___ ___| |_
|
||||
| |_| |/ _` |/ __| |/ / __/ _ \| '_ \ / _ \ '__| |_ / _ \/ __| __|
|
||||
| _ | (_| | (__| <| || (_) | |_) | __/ | | _| __/\__ \ |_
|
||||
|_| |_|\__,_|\___|_|\_\\__\___/|_.__/ \___|_| |_| \___||___/\__|
|
||||
```
|
||||
This repository is part of Hacktoberfest. Contributions are welcome! Feel free to suggest improvements, add translation, fix bugs, or propose new features. Thank you for contributing !
|
||||
|
||||
|
||||
### Subjects
|
||||
You are welcome to create pull requests on any of those subjects:
|
||||
|
||||
@@ -161,4 +172,4 @@ We have one sticker per contribution type. You might get multiple stickers with
|
||||
|
||||
Here is the design of each stickers for year 2024:
|
||||
|
||||

|
||||

|
||||
|
||||
@@ -53,7 +53,7 @@ iTop also offers mass import tools to help you become even more efficient.
|
||||
[4]: https://www.itophub.io/wiki/page?id=latest:install:requirements
|
||||
[5]: https://www.itophub.io/wiki
|
||||
[6]: https://store.itophub.io/en_US/
|
||||
[7]: .doc/itop-version-history.md
|
||||
[7]: itop-version-history.md
|
||||
|
||||
[10]: https://www.itophub.io/wiki/page?id=latest%3Adatamodel%3Astart#configuration_management_cmdb
|
||||
[11]: https://www.itophub.io/wiki/page?id=latest%3Adatamodel%3Astart#ticketing
|
||||
@@ -99,6 +99,7 @@ We would like to give a special thank you 🤗 to the people from the community
|
||||
- Goethals, Stefan
|
||||
- Giuva, Vincenzo Katriel (a.k.a [@DarkNight97boss](https://github.com/DarkNight97boss))
|
||||
- Gumble, David
|
||||
- Håkon, Harnes (a.k.a [@hakonharnes](https://github.com/hakonharnes))
|
||||
- Heloir, Arthur
|
||||
- Janssens, Jelle (a.k.a [@janssensjelle](https://github.com/janssensjelle))
|
||||
- Ji, Leeb (冀利斌) (a.k.a [@chileeb](https://github.com/chileeb))
|
||||
|
||||
@@ -176,6 +176,10 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
|
||||
*/
|
||||
protected $sDisplayMode;
|
||||
protected $aFieldsMap;
|
||||
/**
|
||||
* @var array Store posted values in order to be used in GetAttributeFlag
|
||||
*/
|
||||
protected $aPostedValues = [];
|
||||
|
||||
/**
|
||||
* If true, bypass IsActionAllowedOnAttribute when writing this object
|
||||
@@ -759,10 +763,10 @@ HTML
|
||||
$oPage->SetCurrentTab($sTabCode, $oAttDef->GetLabel().$sCount, $sTabDescription);
|
||||
|
||||
$aArgs = array('this' => $this);
|
||||
|
||||
|
||||
$sEditWhen = $oAttDef->GetEditWhen();
|
||||
// Calculate if edit_when allows to edit based on current $bEditMode
|
||||
$bIsEditableBasedOnEditWhen = ($sEditWhen === LINKSET_EDITWHEN_ALWAYS) ||
|
||||
$bIsEditableBasedOnEditWhen = ($sEditWhen === LINKSET_EDITWHEN_ALWAYS) ||
|
||||
($bEditMode ? $sEditWhen === LINKSET_EDITWHEN_ON_HOST_EDITION : $sEditWhen === LINKSET_EDITWHEN_ON_HOST_DISPLAY);
|
||||
|
||||
$bReadOnly = ($iFlags & (OPT_ATT_READONLY | OPT_ATT_SLAVE)) || !$bIsEditableBasedOnEditWhen;
|
||||
@@ -1218,35 +1222,6 @@ HTML
|
||||
return DataTableUIBlockFactory::MakeForObject($oPage, $sTableId, $oSet, $aExtraParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the HTML fragment corresponding to the display of a table representing a set of objects
|
||||
*
|
||||
* @param WebPage $oPage The page object is used for out-of-band information (mostly scripts) output
|
||||
* @param \DBObjectSet $oSet The set of objects to display
|
||||
* @param array $aExtraParams key used :
|
||||
* <ul>
|
||||
* <li>view_link : if true then for extkey will display links with friendly name and make column sortable, default true
|
||||
* <li>menu : if true prints DisplayBlock menu, default true
|
||||
* <li>display_aliases : list of query aliases that will be printed, defaults to [] (displays all)
|
||||
* <li>zlist : name of the zlist to use, false to disable zlist lookup, default to 'list'
|
||||
* <li>extra_fields : list of <alias>.<attcode> to add to the result, separator ',', defaults to empty string
|
||||
* </ul>
|
||||
*
|
||||
* @return String The HTML fragment representing the table of objects. <b>Warning</b> : no JS added to handled
|
||||
* pagination or table sorting !
|
||||
*
|
||||
* @see DisplayBlock to get a similar table but with the JS for pagination & sorting
|
||||
*
|
||||
* @deprecated 3.0.0 use GetDisplaySetBlock
|
||||
*/
|
||||
public static function GetDisplaySet(WebPage $oPage, DBObjectSet $oSet, $aExtraParams = array())
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use GetDisplaySetBlock');
|
||||
$oPage->AddUiBlock(static::GetDisplaySetBlock($oPage, $oSet, $aExtraParams));
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WebPage $oPage
|
||||
* @param \DBObjectSet $oSet
|
||||
@@ -1420,129 +1395,6 @@ HTML
|
||||
//DataTableUIBlockFactory::MakeForStaticData('', $aHeader, $aRows);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WebPage $oPage
|
||||
* @param \CMDBObjectSet $oSet
|
||||
* @param array $aExtraParams key used :
|
||||
* <ul>
|
||||
* <li>view_link : if true then for extkey will display links with friendly name and make column sortable, default true
|
||||
* <li>menu : if true prints DisplayBlock menu, default true
|
||||
* <li>display_aliases : list of query aliases that will be printed, defaults to [] (displays all)
|
||||
* <li>zlist : name of the zlist to use, false to disable zlist lookup, default to 'list'
|
||||
* <li>extra_fields : list of <alias>.<attcode> to add to the result, separator ',', defaults to empty string
|
||||
* </ul>
|
||||
*
|
||||
* @return string
|
||||
* @throws \CoreException
|
||||
* @throws \DictExceptionMissingString
|
||||
* @throws \MissingQueryArgument
|
||||
* @throws \MySQLException
|
||||
* @throws \MySQLHasGoneAwayException
|
||||
* @deprecated 3.0.0
|
||||
*/
|
||||
public static function GetDisplayExtendedSet(WebPage $oPage, CMDBObjectSet $oSet, $aExtraParams = array())
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod();
|
||||
if (empty($aExtraParams['currentId'])) {
|
||||
$iListId = utils::GetUniqueId(); // Works only if not in an Ajax page !!
|
||||
} else {
|
||||
$iListId = $aExtraParams['currentId'];
|
||||
}
|
||||
$aList = array();
|
||||
|
||||
// Initialize and check the parameters
|
||||
$bViewLink = isset($aExtraParams['view_link']) ? $aExtraParams['view_link'] : true;
|
||||
$bDisplayMenu = isset($aExtraParams['menu']) ? $aExtraParams['menu'] == true : true;
|
||||
// Check if there is a list of aliases to limit the display to...
|
||||
$aDisplayAliases = isset($aExtraParams['display_aliases']) ? explode(',',
|
||||
$aExtraParams['display_aliases']) : array();
|
||||
$sZListName = isset($aExtraParams['zlist']) ? ($aExtraParams['zlist']) : 'list';
|
||||
|
||||
$aExtraFieldsRaw = isset($aExtraParams['extra_fields']) ? explode(',',
|
||||
trim($aExtraParams['extra_fields'])) : array();
|
||||
$aExtraFields = array();
|
||||
$sAttCode = '';
|
||||
foreach($aExtraFieldsRaw as $sFieldName)
|
||||
{
|
||||
// Ignore attributes not of the main queried class
|
||||
if (preg_match('/^(.*)\.(.*)$/', $sFieldName, $aMatches))
|
||||
{
|
||||
$sClassAlias = $aMatches[1];
|
||||
$sAttCode = $aMatches[2];
|
||||
if (array_key_exists($sClassAlias, $oSet->GetSelectedClasses()))
|
||||
{
|
||||
$aExtraFields[$sClassAlias][] = $sAttCode;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$aExtraFields['*'] = $sAttCode;
|
||||
}
|
||||
}
|
||||
|
||||
$aClasses = $oSet->GetFilter()->GetSelectedClasses();
|
||||
$aAuthorizedClasses = array();
|
||||
foreach($aClasses as $sAlias => $sClassName)
|
||||
{
|
||||
if ((UserRights::IsActionAllowed($sClassName, UR_ACTION_READ, $oSet) != UR_ALLOWED_NO) &&
|
||||
((count($aDisplayAliases) == 0) || (in_array($sAlias, $aDisplayAliases))))
|
||||
{
|
||||
$aAuthorizedClasses[$sAlias] = $sClassName;
|
||||
}
|
||||
}
|
||||
foreach($aAuthorizedClasses as $sAlias => $sClassName)
|
||||
{
|
||||
if (array_key_exists($sAlias, $aExtraFields))
|
||||
{
|
||||
$aList[$sAlias] = $aExtraFields[$sAlias];
|
||||
}
|
||||
else
|
||||
{
|
||||
$aList[$sAlias] = array();
|
||||
}
|
||||
if ($sZListName !== false)
|
||||
{
|
||||
$aDefaultList = self::FlattenZList(MetaModel::GetZListItems($sClassName, $sZListName));
|
||||
|
||||
$aList[$sAlias] = array_merge($aDefaultList, $aList[$sAlias]);
|
||||
}
|
||||
|
||||
// Filter the list to removed linked set since we are not able to display them here
|
||||
foreach ($aList[$sAlias] as $index => $sAttCode)
|
||||
{
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClassName, $sAttCode);
|
||||
if ($oAttDef instanceof AttributeLinkedSet)
|
||||
{
|
||||
// Removed from the display list
|
||||
unset($aList[$sAlias][$index]);
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($aList[$sAlias]))
|
||||
{
|
||||
unset($aList[$sAlias], $aAuthorizedClasses[$sAlias]);
|
||||
}
|
||||
}
|
||||
|
||||
$sSelectMode = 'none';
|
||||
|
||||
$oDataTable = new DataTable($iListId, $oSet, $aAuthorizedClasses);
|
||||
|
||||
$oSettings = DataTableSettings::GetDataModelSettings($aAuthorizedClasses, $bViewLink, $aList);
|
||||
|
||||
$bDisplayLimit = isset($aExtraParams['display_limit']) ? $aExtraParams['display_limit'] : true;
|
||||
if ($bDisplayLimit)
|
||||
{
|
||||
$iDefaultPageSize = appUserPreferences::GetPref('default_page_size',
|
||||
MetaModel::GetConfig()->GetMinDisplayLimit());
|
||||
$oSettings->iDefaultPageSize = $iDefaultPageSize;
|
||||
}
|
||||
|
||||
$oSettings->aSortOrder = MetaModel::GetOrderByDefault($sClassName);
|
||||
|
||||
return $oDataTable->Display($oPage, $oSettings, $bDisplayMenu, $sSelectMode, $bViewLink, $aExtraParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param WebPage $oPage
|
||||
* @param \CMDBObjectSet $oSet
|
||||
@@ -1731,7 +1583,7 @@ HTML
|
||||
* @throws \MySQLException
|
||||
* @throws \MySQLHasGoneAwayException
|
||||
* @throws \Exception
|
||||
*
|
||||
*
|
||||
* @internal Only to be used by `/webservices/export.php` : this is a legacy method that produces wrong HTML (no TR on table body rows)
|
||||
*/
|
||||
public static function GetSetAsHTMLSpreadsheet(DBObjectSet $oSet, $aParams = array())
|
||||
@@ -2232,7 +2084,7 @@ JS
|
||||
);
|
||||
|
||||
// test query link
|
||||
$sTestResId = 'query_res_'.$sFieldPrefix.$sAttCode.$sNameSuffix; //$oPage->GetUniqueId();
|
||||
$sTestResId = 'query_res_'.$sFieldPrefix.$sAttCode.$sNameSuffix;
|
||||
$sBaseUrl = utils::GetAbsoluteUrlAppRoot().'pages/run_query.php?expression=';
|
||||
$sTestQueryLbl = Dict::S('UI:Edit:TestQuery');
|
||||
$oTestQueryButton = ButtonUIBlockFactory::MakeIconAction(
|
||||
@@ -2682,7 +2534,7 @@ HTML;
|
||||
}
|
||||
break;
|
||||
}
|
||||
$sPattern = addslashes($oAttDef->GetValidationPattern()); //'^([0-9]+)$';
|
||||
$sPattern = addslashes($oAttDef->GetValidationPattern()); //'^([0-9]+)$';
|
||||
if (!empty($aEventsList))
|
||||
{
|
||||
if (!is_numeric($sNullValue))
|
||||
@@ -3593,15 +3445,13 @@ EOF
|
||||
} else {
|
||||
//we can directly apply the stimuli
|
||||
$sExceptionMessage = null;
|
||||
$bApplyStimulus = false;
|
||||
try {
|
||||
$bApplyStimulus = $this->ApplyStimulus($sStimulus); // will write the object in the DB
|
||||
}
|
||||
catch (Exception $oException) {
|
||||
$bApplyStimulus = $this->ApplyStimulus($sStimulus); // will write the object in the DB
|
||||
} catch (Exception $oException) {
|
||||
// Catch any exception happening during the stimulus
|
||||
$bApplyStimulus = false;
|
||||
$sExceptionMessage = ($oException instanceof CoreCannotSaveObjectException) ? $oException->getHtmlMessage() : $oException->getMessage();
|
||||
}
|
||||
finally {
|
||||
} finally {
|
||||
if ($sOwnershipToken !== null) {
|
||||
// Release the concurrent lock, if any
|
||||
iTopOwnershipLock::ReleaseLock($sClass, $iKey, $sOwnershipToken);
|
||||
@@ -3609,9 +3459,8 @@ EOF
|
||||
if (!$bApplyStimulus) {
|
||||
// Throw an application oriented exception if necessary
|
||||
throw new ApplicationException($sExceptionMessage ?? Dict::S('UI:FailedToApplyStimuli'));
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3851,7 +3700,7 @@ HTML;
|
||||
public function GetHilightClass()
|
||||
{
|
||||
// Possible return values are:
|
||||
// HILIGHT_CLASS_CRITICAL, HILIGHT_CLASS_WARNING, HILIGHT_CLASS_OK, HILIGHT_CLASS_NONE
|
||||
// HILIGHT_CLASS_CRITICAL, HILIGHT_CLASS_WARNING, HILIGHT_CLASS_OK, HILIGHT_CLASS_NONE
|
||||
$current = parent::GetHilightClass(); // Default computation
|
||||
|
||||
// Invoke extensions before the deletion (the deletion will do some cleanup and we might loose some information
|
||||
@@ -4039,7 +3888,33 @@ HTML;
|
||||
return $aWriteableAttList;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* function to test if the posted value or if not exists the existing value matches the expected value
|
||||
* this is used to check the current value in GetAttributeFlag function (useful to manage dynamic readonly attributes)
|
||||
* @param $sAttCode
|
||||
*/
|
||||
public function GetCurrentValueInScreen($sAttCode)
|
||||
{
|
||||
if (array_key_exists($sAttCode, $this->aPostedValues)) {
|
||||
return $this->aPostedValues[$sAttCode];
|
||||
}
|
||||
return $this->Get($sAttCode);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function checks if the value of the attribute has been modified in screen
|
||||
* this is used to check if field has been modified in GetAttributeFlag function (useful to manage dynamic readonly attributes)
|
||||
* @param $sAttCode
|
||||
*/
|
||||
public function IsModifiedValueInScreen($sAttCode)
|
||||
{
|
||||
if (array_key_exists($sAttCode, $this->aPostedValues)) {
|
||||
return $this->aPostedValues[$sAttCode] != $this->Get($sAttCode);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute the attribute flags depending on the object state
|
||||
*/
|
||||
public function GetFormAttributeFlags($sAttCode)
|
||||
@@ -4265,6 +4140,7 @@ HTML;
|
||||
|
||||
$aErrors = array();
|
||||
$aFinalValues = array();
|
||||
$this->aPostedValues = $aValues; // Store the values for later use (e.g. in getAttributeFlag)
|
||||
foreach($this->GetWriteableAttList(array_keys($aValues), $aErrors, $aAttFlags) as $sAttCode => $oAttDef)
|
||||
{
|
||||
$aFinalValues[$sAttCode] = $aValues[$sAttCode];
|
||||
@@ -4801,66 +4677,6 @@ HTML;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sCurrentState
|
||||
* @param $sStimulus
|
||||
* @param $bOnlyNewOnes
|
||||
*
|
||||
* @return array
|
||||
* @throws \ApplicationException
|
||||
* @throws \CoreException
|
||||
* @deprecated Since iTop 2.4, use DBObject::GetTransitionAttributes() instead.
|
||||
*/
|
||||
public function GetExpectedAttributes($sCurrentState, $sStimulus, $bOnlyNewOnes)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('Since iTop 2.4, use DBObject::GetTransitionAttributes() instead');
|
||||
$aTransitions = $this->EnumTransitions();
|
||||
if (!isset($aTransitions[$sStimulus])) {
|
||||
// Invalid stimulus
|
||||
throw new ApplicationException(Dict::Format('UI:Error:Invalid_Stimulus_On_Object_In_State', $sStimulus,
|
||||
$this->GetName(), $this->GetStateLabel()));
|
||||
}
|
||||
$aTransition = $aTransitions[$sStimulus];
|
||||
$sTargetState = $aTransition['target_state'];
|
||||
$aTargetStates = MetaModel::EnumStates(get_class($this));
|
||||
$aTargetState = $aTargetStates[$sTargetState];
|
||||
$aCurrentState = $aTargetStates[$this->GetState()];
|
||||
$aExpectedAttributes = $aTargetState['attribute_list'];
|
||||
$aCurrentAttributes = $aCurrentState['attribute_list'];
|
||||
|
||||
$aComputedAttributes = array();
|
||||
foreach($aExpectedAttributes as $sAttCode => $iExpectCode)
|
||||
{
|
||||
if (!array_key_exists($sAttCode, $aCurrentAttributes))
|
||||
{
|
||||
$aComputedAttributes[$sAttCode] = $iExpectCode;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!($aCurrentAttributes[$sAttCode] & (OPT_ATT_HIDDEN | OPT_ATT_READONLY)))
|
||||
{
|
||||
$iExpectCode = $iExpectCode & ~(OPT_ATT_MUSTPROMPT | OPT_ATT_MUSTCHANGE); // Already prompted/changed, reset the flags
|
||||
}
|
||||
// Later: better check if the attribute is not *null*
|
||||
if (($iExpectCode & OPT_ATT_MANDATORY) && ($this->Get($sAttCode) != ''))
|
||||
{
|
||||
$iExpectCode = $iExpectCode & ~(OPT_ATT_MANDATORY); // If the attribute is present, then no need to request its presence
|
||||
}
|
||||
|
||||
$aComputedAttributes[$sAttCode] = $iExpectCode;
|
||||
}
|
||||
|
||||
$aComputedAttributes[$sAttCode] = $aComputedAttributes[$sAttCode] & ~(OPT_ATT_READONLY | OPT_ATT_HIDDEN); // Don't care about this form now
|
||||
|
||||
if ($aComputedAttributes[$sAttCode] == 0)
|
||||
{
|
||||
unset($aComputedAttributes[$sAttCode]);
|
||||
}
|
||||
}
|
||||
|
||||
return $aComputedAttributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a form for modifying several objects at once
|
||||
* The form will be submitted to the current page, with the specified additional values
|
||||
|
||||
@@ -419,7 +419,7 @@ class DisplayBlock
|
||||
$oSet->OptimizeColumnLoad(array($oSet->GetClassAlias() => array())); // No need to load all the columns just to get the id
|
||||
while($oObject = $oSet->Fetch())
|
||||
{
|
||||
$aKeys[] = $oObject->GetKey();
|
||||
$aKeys[] = $oObject->GetKey();
|
||||
}
|
||||
$oSet->Rewind();
|
||||
if (count($aKeys) > 0)
|
||||
@@ -772,10 +772,6 @@ class DisplayBlock
|
||||
$oBlock = $this->RenderList($aExtraParams, $oPage);
|
||||
break;
|
||||
|
||||
case 'links':
|
||||
$oBlock = $this->RenderLinks($oPage, $aExtraParams);
|
||||
break;
|
||||
|
||||
case static::ENUM_STYLE_ACTIONS:
|
||||
$oBlock = $this->RenderActions($aExtraParams);
|
||||
break;
|
||||
@@ -795,11 +791,11 @@ class DisplayBlock
|
||||
case static::ENUM_STYLE_CHART:
|
||||
$oBlock = $this->RenderChart($sId, $aQueryParams, $aExtraParams);
|
||||
break;
|
||||
|
||||
|
||||
case static::ENUM_STYLE_CHART_AJAX:
|
||||
$oBlock = $this->RenderChartAjax($aExtraParams);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
// Unsupported style, do nothing.
|
||||
$sHtml .= Dict::format('UI:Error:UnsupportedStyleOfBlock', $this->m_sStyle);
|
||||
@@ -897,7 +893,7 @@ JS
|
||||
|
||||
$sClass = $this->m_oFilter->GetClass();
|
||||
$bConditionAdded = false;
|
||||
|
||||
|
||||
// If the condition is an external key with a class having a hierarchy, use a "below" criteria
|
||||
if (MetaModel::IsValidAttCode($sClass, $sFilterCode))
|
||||
{
|
||||
@@ -906,13 +902,13 @@ JS
|
||||
if ($oAttDef->IsExternalKey())
|
||||
{
|
||||
$sHierarchicalKeyCode = MetaModel::IsHierarchicalClass($oAttDef->GetTargetClass());
|
||||
|
||||
|
||||
if ($sHierarchicalKeyCode !== false)
|
||||
{
|
||||
$oFilter = new DBObjectSearch($oAttDef->GetTargetClass());
|
||||
if (($sOpCode == 'IN') && is_array($condition))
|
||||
{
|
||||
$oFilter->AddConditionExpression(self::GetConditionIN($oFilter, 'id', $condition));
|
||||
$oFilter->AddConditionExpression(self::GetConditionIN($oFilter, 'id', $condition));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -935,21 +931,21 @@ JS
|
||||
$bConditionAdded = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// In all other cases, just add the condition directly
|
||||
if (!$bConditionAdded)
|
||||
{
|
||||
$this->m_oFilter->AddCondition($sFilterCode, $condition, null); // Use the default 'loose' operator
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static protected function GetConditionIN($oFilter, $sFilterCode, $condition)
|
||||
{
|
||||
$oField = new FieldExpression($sFilterCode, $oFilter->GetClassAlias());
|
||||
$sListExpr = '('.implode(', ', CMDBSource::Quote($condition)).')';
|
||||
$sOQLCondition = $oField->RenderExpression()." IN $sListExpr";
|
||||
$oNewCondition = Expression::FromOQL($sOQLCondition);
|
||||
return $oNewCondition;
|
||||
return $oNewCondition;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1565,54 +1561,6 @@ JS
|
||||
return $oContentBlock;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated 3.1.0 N°5957
|
||||
*
|
||||
* @param WebPage $oPage
|
||||
* @param array $aExtraParams
|
||||
*
|
||||
* @return \Combodo\iTop\Application\UI\Base\Component\Html\Html|\Combodo\iTop\Application\UI\Base\Layout\UIContentBlock|string
|
||||
* @throws \ApplicationException
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \CoreUnexpectedValue
|
||||
* @throws \DictExceptionMissingString
|
||||
* @throws \MissingQueryArgument
|
||||
* @throws \MySQLException
|
||||
* @throws \MySQLHasGoneAwayException
|
||||
* @throws \OQLException
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
protected function RenderLinks(WebPage $oPage, array $aExtraParams)
|
||||
{
|
||||
// Note: No deprecation ticket yet as we want to wait and see if people / code actually use this method, in which case we might keep it.
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('This method is most likely not used throughout the application and will be removed soon. If you ever see this message, please inform us.');
|
||||
|
||||
$oBlock = null;
|
||||
if (($this->m_oSet->CountWithLimit(1) > 0) && (UserRights::IsActionAllowed($this->m_oSet->GetClass(), UR_ACTION_READ, $this->m_oSet) == UR_ALLOWED_YES)) {
|
||||
$oBlock = cmdbAbstractObject::GetDisplaySetBlock($oPage, $this->m_oSet, $aExtraParams);
|
||||
} else {
|
||||
$sClass = $this->m_oFilter->GetClass();
|
||||
$oAttDef = MetaModel::GetAttributeDef($sClass, $this->m_aParams['target_attr']);
|
||||
$sTargetClass = $oAttDef->GetTargetClass();
|
||||
$oBlock = new Html('<p>'.Dict::Format('UI:NoObject_Class_ToDisplay', MetaModel::GetName($sTargetClass)).'</p>');
|
||||
$bDisplayMenu = isset($this->m_aParams['menu']) ? $this->m_aParams['menu'] == true : true;
|
||||
if ($bDisplayMenu) {
|
||||
if ((UserRights::IsActionAllowed($sClass, UR_ACTION_MODIFY) == UR_ALLOWED_YES)) {
|
||||
$sDefaults = '';
|
||||
if (isset($this->m_aParams['default'])) {
|
||||
foreach ($this->m_aParams['default'] as $sName => $sValue) {
|
||||
$sDefaults .= '&'.urlencode($sName).'='.urlencode($sValue);
|
||||
}
|
||||
}
|
||||
$oBlock->AddHtml("<p><a href=\"".utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=modify_links&class=$sClass&sParams&link_attr=".$aExtraParams['link_attr']."&id=".$aExtraParams['object_id']."&target_class=$sTargetClass&addObjects=true$sDefaults\">".Dict::Format('UI:ClickToCreateNew',
|
||||
Metamodel::GetName($sClass))."</a></p>\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
return $oBlock;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $sChartId
|
||||
* @param array $aQueryParams
|
||||
|
||||
@@ -358,50 +358,6 @@ class ApplicationMenu
|
||||
return $aSubMenuNodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Entry point to display the whole menu into the web page, used by iTopWebPage
|
||||
* @param WebPage $oPage
|
||||
* @param array $aExtraParams
|
||||
* @throws DictExceptionMissingString
|
||||
*
|
||||
* @deprecated Will be removed in 3.0.0, use static::GetMenuGroups() instead
|
||||
*/
|
||||
public static function DisplayMenu($oPage, $aExtraParams)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use static::GetMenuGroups() instead');
|
||||
self::LoadAdditionalMenus();
|
||||
// Sort the root menu based on the rank
|
||||
usort(self::$aRootMenus, array('ApplicationMenu', 'CompareOnRank'));
|
||||
$iAccordion = 0;
|
||||
$iActiveAccordion = $iAccordion;
|
||||
$iActiveMenu = self::GetMenuIndexById(self::GetActiveNodeId());
|
||||
foreach (self::$aRootMenus as $aMenu) {
|
||||
if (!self::CanDisplayMenu($aMenu)) {
|
||||
continue;
|
||||
}
|
||||
$oMenuNode = self::GetMenuNode($aMenu['index']);
|
||||
$oPage->AddToMenu('<h3 id="'.utils::GetSafeId('AccordionMenu_'.$oMenuNode->GetMenuID()).'" class="navigation-menu-group" data-menu-id="'.$oMenuNode->GetMenuId().'">'.$oMenuNode->GetTitle().'</h3>');
|
||||
$oPage->AddToMenu('<div>');
|
||||
$oPage->AddToMenu('<ul>');
|
||||
$aChildren = self::GetChildren($aMenu['index']);
|
||||
$bActive = self::DisplaySubMenu($oPage, $aChildren, $aExtraParams, $iActiveMenu);
|
||||
$oPage->AddToMenu('</ul>');
|
||||
if ($bActive)
|
||||
{
|
||||
$iActiveAccordion = $iAccordion;
|
||||
}
|
||||
$oPage->AddToMenu('</div>');
|
||||
$iAccordion++;
|
||||
}
|
||||
|
||||
$oPage->add_ready_script(
|
||||
<<<EOF
|
||||
// Accordion Menu
|
||||
$("#accordion").css({display:'block'}).accordion({ header: "h3", heightStyle: "content", collapsible: true, active: $iActiveAccordion, icons: false, animate: true }); // collapsible will be enabled once the item will be selected
|
||||
EOF
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively check if the menu and at least one of his sub-menu is enabled
|
||||
* @param array $aMenu menu entry
|
||||
@@ -431,73 +387,6 @@ EOF
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles the display of the sub-menus (called recursively if necessary)
|
||||
*
|
||||
* @param WebPage $oPage
|
||||
* @param array $aMenus
|
||||
* @param array $aExtraParams
|
||||
* @param int $iActiveMenu
|
||||
*
|
||||
* @return bool True if the currently selected menu is one of the submenus
|
||||
* @throws DictExceptionMissingString
|
||||
* @throws \Exception
|
||||
* @deprecated Will be removed in 3.0.0, use static::GetSubMenuNodes() instead
|
||||
*/
|
||||
protected static function DisplaySubMenu($oPage, $aMenus, $aExtraParams, $iActiveMenu = -1)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use static::GetSubMenuNodes() instead');
|
||||
// Sort the menu based on the rank
|
||||
$bActive = false;
|
||||
usort($aMenus, array('ApplicationMenu', 'CompareOnRank'));
|
||||
foreach ($aMenus as $aMenu) {
|
||||
if (!self::CanDisplayMenu($aMenu)) {
|
||||
continue;
|
||||
}
|
||||
$index = $aMenu['index'];
|
||||
$oMenu = self::GetMenuNode($index);
|
||||
if ($oMenu->IsEnabled())
|
||||
{
|
||||
$aChildren = self::GetChildren($index);
|
||||
$aCSSClasses = array('navigation-menu-item');
|
||||
if (count($aChildren) > 0)
|
||||
{
|
||||
$aCSSClasses[] = 'submenu';
|
||||
}
|
||||
$sHyperlink = $oMenu->GetHyperlink($aExtraParams);
|
||||
$sItemHtml = '<li id="'.utils::GetSafeId('AccordionMenu_'.$oMenu->GetMenuID()).'" class="'.implode(' ', $aCSSClasses).'" data-menu-id="'.$oMenu->GetMenuID().'">';
|
||||
if ($sHyperlink != '')
|
||||
{
|
||||
$sLinkTarget = '';
|
||||
if ($oMenu->IsHyperLinkInNewWindow())
|
||||
{
|
||||
$sLinkTarget .= ' target="_blank"';
|
||||
}
|
||||
$sURL = '"'.$oMenu->GetHyperlink($aExtraParams).'"'.$sLinkTarget;
|
||||
$sTitle = utils::HtmlEntities($oMenu->GetTitle());
|
||||
$sItemHtml .= "<a href={$sURL}>{$sTitle}</a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$sItemHtml .= $oMenu->GetTitle();
|
||||
}
|
||||
$sItemHtml .= '</li>';
|
||||
$oPage->AddToMenu($sItemHtml);
|
||||
if ($iActiveMenu == $index)
|
||||
{
|
||||
$bActive = true;
|
||||
}
|
||||
if (count($aChildren) > 0)
|
||||
{
|
||||
$oPage->AddToMenu('<ul>');
|
||||
$bActive |= self::DisplaySubMenu($oPage, $aChildren, $aExtraParams, $iActiveMenu);
|
||||
$oPage->AddToMenu('</ul>');
|
||||
}
|
||||
}
|
||||
}
|
||||
return $bActive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to sort the menus based on their rank
|
||||
* @param array $a
|
||||
|
||||
@@ -2424,19 +2424,6 @@ SQL;
|
||||
return $bRet;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sPath
|
||||
*
|
||||
* @return false|\ormDocument
|
||||
* @throws \Exception
|
||||
*
|
||||
* @deprecated 3.2.1 use utils::GetDocumentFromSelfURL instead
|
||||
*/
|
||||
public static function IsSelfURL($sPath)
|
||||
{
|
||||
return self::GetDocumentFromSelfURL($sPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the given URL is a link to download a document/image on the CURRENT iTop
|
||||
* In such a case we can read the content of the file directly in the database (if the users rights allow) and return the ormDocument
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
// iTop is free software; you can redistribute it and/or modify
|
||||
// iTop is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
@@ -31,7 +31,7 @@ require_once(APPROOT.'/application/uiwizard.class.inc.php');
|
||||
class WizardHelper
|
||||
{
|
||||
protected $m_aData;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
@@ -39,7 +39,7 @@ class WizardHelper
|
||||
* Constructs the PHP target object from the parameters sent to the web page by the wizard
|
||||
* @param boolean $bReadUploadedFiles True to also read any uploaded file (for blob/document fields)
|
||||
* @return object
|
||||
*/
|
||||
*/
|
||||
public function GetTargetObject($bReadUploadedFiles = false)
|
||||
{
|
||||
if (isset($this->m_aData['m_oCurrentValues']['id']))
|
||||
@@ -207,7 +207,7 @@ class WizardHelper
|
||||
else
|
||||
{
|
||||
$oObj->Set($sAttCode, $value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isset($this->m_aData['m_sState']) && !empty($this->m_aData['m_sState']))
|
||||
@@ -217,12 +217,12 @@ class WizardHelper
|
||||
$oObj->DoComputeValues();
|
||||
return $oObj;
|
||||
}
|
||||
|
||||
|
||||
public function GetFieldsForDefaultValue()
|
||||
{
|
||||
return $this->m_aData['m_aDefaultValueRequested'];
|
||||
}
|
||||
|
||||
|
||||
public function SetDefaultValue($sAttCode, $value)
|
||||
{
|
||||
// Protect against a request for a non existing field
|
||||
@@ -247,7 +247,7 @@ class WizardHelper
|
||||
$aData[] = $aRow;
|
||||
}
|
||||
$this->m_aData['m_oDefaultValue'][$sAttCode] = json_encode($aData);
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -256,12 +256,12 @@ class WizardHelper
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function GetFieldsForAllowedValues()
|
||||
{
|
||||
return $this->m_aData['m_aAllowedValuesRequested'];
|
||||
}
|
||||
|
||||
|
||||
public function SetAllowedValuesHtml($sAttCode, $sHtml)
|
||||
{
|
||||
// Protect against a request for a non existing field
|
||||
@@ -270,12 +270,12 @@ class WizardHelper
|
||||
$this->m_aData['m_oAllowedValues'][$sAttCode] = $sHtml;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function ToJSON()
|
||||
{
|
||||
return json_encode($this->m_aData);
|
||||
}
|
||||
|
||||
|
||||
static public function FromJSON($sJSON)
|
||||
{
|
||||
$oWizHelper = new WizardHelper();
|
||||
@@ -283,7 +283,7 @@ class WizardHelper
|
||||
$oWizHelper->m_aData = $aData;
|
||||
return $oWizHelper;
|
||||
}
|
||||
|
||||
|
||||
protected function GetLinkedWizardStructure($oAttDef)
|
||||
{
|
||||
$oWizard = new UIWizard(null, $oAttDef->GetLinkedClass());
|
||||
@@ -310,7 +310,7 @@ class WizardHelper
|
||||
}
|
||||
return $aFields;
|
||||
}
|
||||
|
||||
|
||||
public function GetTargetClass()
|
||||
{
|
||||
return $this->m_aData['m_sClass'];
|
||||
@@ -330,7 +330,7 @@ class WizardHelper
|
||||
{
|
||||
return isset($this->m_aData['m_sStimulus']) ? $this->m_aData['m_sStimulus'] : null;
|
||||
}
|
||||
|
||||
|
||||
public function GetIdForField($sFieldName)
|
||||
{
|
||||
$sResult = '';
|
||||
@@ -375,31 +375,4 @@ JS
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Function with an old pattern of code
|
||||
* @deprecated 3.1.0
|
||||
*/
|
||||
static function ParseJsonSet($oMe, $sLinkClass, $sExtKeyToMe, $sJsonSet)
|
||||
{
|
||||
$aSet = json_decode($sJsonSet, true); // true means hash array instead of object
|
||||
$oSet = CMDBObjectSet::FromScratch($sLinkClass);
|
||||
foreach ($aSet as $aLinkObj) {
|
||||
$oLink = MetaModel::NewObject($sLinkClass);
|
||||
foreach ($aLinkObj as $sAttCode => $value) {
|
||||
$oAttDef = MetaModel::GetAttributeDef($sLinkClass, $sAttCode);
|
||||
if (($oAttDef->IsExternalKey()) && ($value != '') && ($value > 0))
|
||||
{
|
||||
// For external keys: load the target object so that external fields
|
||||
// get filled too
|
||||
$oTargetObj = MetaModel::GetObject($oAttDef->GetTargetClass(), $value);
|
||||
$oLink->Set($sAttCode, $oTargetObj);
|
||||
}
|
||||
$oLink->Set($sAttCode, $value);
|
||||
}
|
||||
$oLink->Set($sExtKeyToMe, $oMe->GetKey());
|
||||
$oSet->AddObject($oLink);
|
||||
}
|
||||
return $oSet;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,26 +15,25 @@
|
||||
"apereo/phpcas": "~1.6.0",
|
||||
"firebase/php-jwt": "^6.4.0",
|
||||
"guzzlehttp/guzzle": "^7.5.1",
|
||||
"laminas/laminas-mail": "^2.11",
|
||||
"laminas/laminas-servicemanager": "^3.5",
|
||||
"league/oauth2-google": "^4.0.1",
|
||||
"nikic/php-parser": "dev-master",
|
||||
"pear/archive_tar": "~1.4.14",
|
||||
"pelago/emogrifier": "^7.2.0",
|
||||
"psr/log": "^3.0.0",
|
||||
"scssphp/scssphp": "^1.12.1",
|
||||
"soundasleep/html2text": "~2.1",
|
||||
"symfony/console": "~6.4.0",
|
||||
"symfony/dotenv": "~6.4.0",
|
||||
"symfony/framework-bundle": "~6.4.0",
|
||||
"symfony/http-foundation": "~6.4.0",
|
||||
"symfony/http-kernel": "~6.4.0",
|
||||
"symfony/mailer": "^6.4",
|
||||
"symfony/runtime": "~6.4.0",
|
||||
"symfony/twig-bundle": "~6.4.0",
|
||||
"symfony/var-dumper": "~6.4.0",
|
||||
"symfony/yaml": "~6.4.0",
|
||||
"tecnickcom/tcpdf": "^6.6.0",
|
||||
"thenetworg/oauth2-azure": "^2.0",
|
||||
"soundasleep/html2text": "~2.1"
|
||||
"thenetworg/oauth2-azure": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/debug-bundle": "~6.4.0",
|
||||
|
||||
1640
composer.lock
generated
1640
composer.lock
generated
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -30,7 +30,7 @@ class BulkExportException extends Exception
|
||||
parent::__construct($message, $code, $previous);
|
||||
$this->sLocalizedMessage = $sLocalizedMessage;
|
||||
}
|
||||
|
||||
|
||||
public function GetLocalizedMessage()
|
||||
{
|
||||
return $this->sLocalizedMessage;
|
||||
@@ -42,7 +42,7 @@ class BulkExportMissingParameterException extends BulkExportException
|
||||
{
|
||||
parent::__construct('Missing parameter: '.$sFieldCode, Dict::Format('Core:BulkExport:MissingParameter_Param', $sFieldCode));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -146,7 +146,7 @@ abstract class BulkExport
|
||||
protected $oBulkExportResult;
|
||||
protected $sTmpFile;
|
||||
protected $bLocalizeOutput;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->oSearch = null;
|
||||
@@ -247,7 +247,7 @@ abstract class BulkExport
|
||||
fclose($hFile);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function GetTmpFilePath()
|
||||
{
|
||||
return $this->sTmpFile;
|
||||
@@ -289,7 +289,7 @@ abstract class BulkExport
|
||||
{
|
||||
$this->bLocalizeOutput = $bLocalizeOutput;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* (non-PHPdoc)
|
||||
* @see iBulkExport::SetObjectList()
|
||||
@@ -299,12 +299,12 @@ abstract class BulkExport
|
||||
$oSearch->SetShowObsoleteData($this->aStatusInfo['show_obsolete_data']);
|
||||
$this->oSearch = $oSearch;
|
||||
}
|
||||
|
||||
|
||||
public function SetFormat($sFormatCode)
|
||||
{
|
||||
$this->sFormatCode = $sFormatCode;
|
||||
$this->sFormatCode = $sFormatCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* (non-PHPdoc)
|
||||
* @see iBulkExport::IsFormatSupported()
|
||||
@@ -322,7 +322,7 @@ abstract class BulkExport
|
||||
{
|
||||
return array(); // return array('csv' => Dict::S('UI:ExportFormatCSV'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function SetHttpHeaders(WebPage $oPage)
|
||||
{
|
||||
@@ -344,7 +344,7 @@ abstract class BulkExport
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
public function SaveState()
|
||||
{
|
||||
if ($this->oBulkExportResult === null)
|
||||
@@ -362,7 +362,7 @@ abstract class BulkExport
|
||||
utils::PopArchiveMode();
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
public function Cleanup()
|
||||
{
|
||||
if (($this->oBulkExportResult && (!$this->oBulkExportResult->IsNew())))
|
||||
@@ -383,16 +383,6 @@ abstract class BulkExport
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated 3.0.0 use GetFormPart instead
|
||||
*/
|
||||
public function DisplayFormPart(WebPage $oP, $sPartId)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use GetFormPart instead');
|
||||
$oP->AddSubBlock($this->GetFormPart($oP, $sPartId));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param WebPage $oP
|
||||
* @param $sPartId
|
||||
@@ -412,14 +402,14 @@ abstract class BulkExport
|
||||
{
|
||||
$this->bLocalizeOutput = !((bool)utils::ReadParam('no_localize', 0, true, 'integer'));
|
||||
}
|
||||
|
||||
|
||||
public function GetResultAsHtml()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
public function GetRawResult()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -441,17 +431,17 @@ abstract class BulkExport
|
||||
{
|
||||
return 'UTF-8';
|
||||
}
|
||||
|
||||
|
||||
public function GetStatistics()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function SetFields($sFields)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function GetDownloadFileName()
|
||||
{
|
||||
return Dict::Format('Core:BulkExportOf_Class', MetaModel::GetName($this->oSearch->GetClass())).'.'.$this->GetFileExtension();
|
||||
@@ -461,7 +451,7 @@ abstract class BulkExport
|
||||
{
|
||||
$this->aStatusInfo = $aStatusInfo;
|
||||
}
|
||||
|
||||
|
||||
public function GetStatusInfo()
|
||||
{
|
||||
return $this->aStatusInfo;
|
||||
@@ -493,7 +483,7 @@ abstract class BulkExport
|
||||
$hFile = @fopen($sFileName, 'x');
|
||||
}
|
||||
while($hFile === false);
|
||||
|
||||
|
||||
fclose($hFile);
|
||||
return $sFileName;
|
||||
}
|
||||
|
||||
@@ -42,11 +42,6 @@ class CMDBSource
|
||||
const ENUM_DB_VENDOR_MARIADB = 'MariaDB';
|
||||
const ENUM_DB_VENDOR_PERCONA = 'Percona';
|
||||
|
||||
/**
|
||||
* @since 2.7.10 3.0.4 3.1.2 3.0.2 N°6889 constant creation
|
||||
* @internal will be removed in a future version
|
||||
*/
|
||||
const MYSQL_DEFAULT_PORT = 3306;
|
||||
|
||||
/**
|
||||
* Error: 1205 SQLSTATE: HY000 (ER_LOCK_WAIT_TIMEOUT)
|
||||
@@ -220,7 +215,7 @@ class CMDBSource
|
||||
* @param string $sServer server variable to update
|
||||
* @param int|null $iPort port variable to update, will return null if nothing is specified in $sDbHost
|
||||
*
|
||||
* @since 2.7.10 3.0.4 3.1.2 3.2.0 N°6889 will return null in $iPort if port isn't present in $sDbHost. Use {@see MYSQL_DEFAULT_PORT} if needed
|
||||
* @since 2.7.10 3.0.4 3.1.2 3.2.0 N°6889 will return null in $iPort if port isn't present in $sDbHost.
|
||||
*
|
||||
* @link http://php.net/manual/en/mysqli.persistconns.php documentation for the "p:" prefix (persistent connexion)
|
||||
*/
|
||||
@@ -363,15 +358,6 @@ class CMDBSource
|
||||
return static::QueryToScalar('SELECT VERSION()', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use `CMDBSource::GetDBVersion` instead.
|
||||
* @uses mysqli_get_server_info
|
||||
*/
|
||||
public static function GetServerInfo()
|
||||
{
|
||||
return mysqli_get_server_info(DbConnectionWrapper::GetDbConnection());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the DB vendor between MySQL and its main forks
|
||||
* @return string
|
||||
|
||||
@@ -62,7 +62,7 @@ require_once('mutex.class.inc.php');
|
||||
|
||||
|
||||
/**
|
||||
* A persistent object, as defined by the metamodel
|
||||
* A persistent object, as defined by the metamodel
|
||||
*
|
||||
* @package iTopORM
|
||||
* @api
|
||||
@@ -314,9 +314,9 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Whether the object is already persisted in DB or not.
|
||||
*
|
||||
*
|
||||
* @api
|
||||
*
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function IsNew()
|
||||
@@ -326,9 +326,9 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Returns an Id for memory objects
|
||||
*
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
*
|
||||
* @param string $sClass
|
||||
*
|
||||
* @return int
|
||||
@@ -365,7 +365,7 @@ abstract class DBObject implements iDisplay
|
||||
$sRet .= "<b title=\"$sRootClass\">$sClass</b>::$iPKey ($sFriendlyname)<br/>\n";
|
||||
return $sRet;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Alias of DBObject::Reload()
|
||||
*
|
||||
@@ -388,7 +388,7 @@ abstract class DBObject implements iDisplay
|
||||
*
|
||||
* @internal
|
||||
* @see m_bFullyLoaded
|
||||
*
|
||||
*
|
||||
* @return bool
|
||||
* @throws CoreException
|
||||
*/
|
||||
@@ -411,11 +411,9 @@ abstract class DBObject implements iDisplay
|
||||
* This is mostly used after a lazy load (automatically performed by the framework)
|
||||
* This will erase any pending changes.
|
||||
*
|
||||
* @param bool $bAllowAllData @deprecated This parameter is ignored!!
|
||||
*
|
||||
* @throws CoreException
|
||||
*/
|
||||
public function Reload($bAllowAllData = false)
|
||||
public function Reload()
|
||||
{
|
||||
assert($this->m_bIsInDB);
|
||||
$this->FireEvent(EVENT_DB_OBJECT_RELOAD);
|
||||
@@ -511,7 +509,7 @@ abstract class DBObject implements iDisplay
|
||||
{
|
||||
$aAttList = $aAttToLoad[$sClassAlias];
|
||||
}
|
||||
|
||||
|
||||
foreach($aAttList as $sAttCode=>$oAttDef)
|
||||
{
|
||||
// Skip links (could not be loaded by the mean of this query)
|
||||
@@ -571,7 +569,7 @@ abstract class DBObject implements iDisplay
|
||||
$bFullyLoaded = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Load extended data
|
||||
if ($aExtendedDataSpec != null)
|
||||
{
|
||||
@@ -595,7 +593,7 @@ abstract class DBObject implements iDisplay
|
||||
*
|
||||
* @internal
|
||||
* @see Set()
|
||||
*
|
||||
*
|
||||
* @param string $sAttCode
|
||||
* @param mixed $value
|
||||
*/
|
||||
@@ -850,11 +848,11 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Get the label of an attribute.
|
||||
*
|
||||
*
|
||||
* Shortcut to the field's AttributeDefinition->GetLabel()
|
||||
*
|
||||
* @api
|
||||
*
|
||||
*
|
||||
* @param string $sAttCode
|
||||
*
|
||||
* @return string
|
||||
@@ -927,7 +925,7 @@ abstract class DBObject implements iDisplay
|
||||
*
|
||||
* @internal
|
||||
* @see Get
|
||||
*
|
||||
*
|
||||
* @param string $sAttCode
|
||||
*
|
||||
* @return int|mixed|null
|
||||
@@ -1032,7 +1030,7 @@ abstract class DBObject implements iDisplay
|
||||
* Returns the default value of the $sAttCode.
|
||||
*
|
||||
* Returns the default value of the given attribute.
|
||||
*
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @param string $sAttCode
|
||||
@@ -1053,12 +1051,12 @@ abstract class DBObject implements iDisplay
|
||||
* @internal
|
||||
*
|
||||
* @return array|null
|
||||
*/
|
||||
*/
|
||||
public function GetExtendedData()
|
||||
{
|
||||
return $this->m_aExtendedData;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the HighlightCode
|
||||
*
|
||||
@@ -1080,7 +1078,7 @@ abstract class DBObject implements iDisplay
|
||||
{
|
||||
$fCurrentRank = $aHighlightScale[$this->m_sHighlightCode]['rank'];
|
||||
}
|
||||
|
||||
|
||||
if (array_key_exists($sCode, $aHighlightScale))
|
||||
{
|
||||
$fRank = $aHighlightScale[$sCode]['rank'];
|
||||
@@ -1090,13 +1088,13 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the current HighlightCode
|
||||
*
|
||||
*
|
||||
* @internal
|
||||
* @used-by DBObject::ComputeHighlightCode()
|
||||
*
|
||||
*
|
||||
* @return string|null The Hightlight code (null if none set, meaning rank = 0)
|
||||
*/
|
||||
protected function GetHighlightCode()
|
||||
@@ -1145,7 +1143,7 @@ abstract class DBObject implements iDisplay
|
||||
* corresponding to the external key and getting the value from it
|
||||
*
|
||||
* UNUSED ?
|
||||
*
|
||||
*
|
||||
* @internal
|
||||
* @todo: check if this is dead code.
|
||||
*
|
||||
@@ -1216,7 +1214,7 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* @api
|
||||
*
|
||||
*
|
||||
* @param string $sAttCode
|
||||
* @param bool $bLocalize
|
||||
*
|
||||
@@ -1262,11 +1260,11 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Get the value as it must be in the edit areas (forms)
|
||||
*
|
||||
*
|
||||
* Makes a raw text representation of the value.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
*
|
||||
* @param string $sAttCode
|
||||
*
|
||||
* @return int|mixed|string
|
||||
@@ -1296,7 +1294,7 @@ abstract class DBObject implements iDisplay
|
||||
else
|
||||
{
|
||||
$sEditValue = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1312,14 +1310,14 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Get $sAttCode formatted as XML
|
||||
*
|
||||
*
|
||||
* The returned value is a text that is suitable for insertion into an XML node.
|
||||
* Depending on the type of attribute, the returned text is either:
|
||||
* * A literal, with XML entities already escaped,
|
||||
* * XML
|
||||
*
|
||||
* @api
|
||||
*
|
||||
*
|
||||
* @param string $sAttCode
|
||||
* @param bool $bLocalize
|
||||
*
|
||||
@@ -1357,10 +1355,10 @@ abstract class DBObject implements iDisplay
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @see GetAsHTML()
|
||||
* @see GetOriginal()
|
||||
*
|
||||
*
|
||||
* @param string $sAttCode
|
||||
* @param bool $bLocalize
|
||||
*
|
||||
@@ -1535,7 +1533,7 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
*
|
||||
* @param string $sClass
|
||||
*
|
||||
* @return mixed
|
||||
@@ -1590,7 +1588,7 @@ abstract class DBObject implements iDisplay
|
||||
* Get the id
|
||||
*
|
||||
* @api
|
||||
*
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function GetKey()
|
||||
@@ -1601,7 +1599,7 @@ abstract class DBObject implements iDisplay
|
||||
/**
|
||||
* Primary key Setter
|
||||
* Usable only for not yet persisted DBObjects
|
||||
*
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @param int $iNewKey the desired identifier
|
||||
@@ -1614,7 +1612,7 @@ abstract class DBObject implements iDisplay
|
||||
{
|
||||
throw new CoreException("An object id must be an integer value ($iNewKey)");
|
||||
}
|
||||
|
||||
|
||||
if ($this->m_bIsInDB && !empty($this->m_iKey) && ($this->m_iKey != $iNewKey))
|
||||
{
|
||||
throw new CoreException("Changing the key ({$this->m_iKey} to $iNewKey) on an object (class {".get_class($this).") wich already exists in the Database");
|
||||
@@ -1624,7 +1622,7 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Get the icon representing this object
|
||||
*
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @param boolean $bImgTag If true the result is a full IMG tag (or an empty string if no icon is defined)
|
||||
@@ -1714,7 +1712,7 @@ abstract class DBObject implements iDisplay
|
||||
*
|
||||
* Returns the label as defined in the dictionary for the language of the current user
|
||||
*
|
||||
* @api
|
||||
* @api
|
||||
*
|
||||
* @return string (empty for default name scheme)
|
||||
*/
|
||||
@@ -1781,7 +1779,7 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Helper to get the state
|
||||
*
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @return mixed|string '' if no state attribute, object representing its value otherwise
|
||||
@@ -1803,9 +1801,9 @@ abstract class DBObject implements iDisplay
|
||||
/**
|
||||
* Get the label (raw text) of the current state
|
||||
* helper for MetaModel::GetStateLabel()
|
||||
*
|
||||
*
|
||||
* @api
|
||||
*
|
||||
*
|
||||
* @return mixed|string
|
||||
*
|
||||
* @throws ArchivedObjectException
|
||||
@@ -1852,7 +1850,7 @@ abstract class DBObject implements iDisplay
|
||||
* Define attributes read-only from the end-user perspective
|
||||
*
|
||||
* @return array|null List of attcodes
|
||||
*/
|
||||
*/
|
||||
public static function GetReadOnlyAttributes()
|
||||
{
|
||||
return null;
|
||||
@@ -1861,14 +1859,14 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* Get predefined objects
|
||||
*
|
||||
*
|
||||
* The predefined objects will be synchronized with the DB at each install/upgrade
|
||||
* As soon as a class has predefined objects, then nobody can create nor delete objects
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @return array An array of id => array of attcode => php value(so-called "real value": integer, string, ormDocument, DBObjectSet, etc.)
|
||||
*/
|
||||
*/
|
||||
public static function GetPredefinedObjects()
|
||||
{
|
||||
return null;
|
||||
@@ -1997,7 +1995,7 @@ abstract class DBObject implements iDisplay
|
||||
* Note: Attributes (and flags) from the target state and the transition are combined.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
*
|
||||
* @param string $sStimulus
|
||||
* @param string $sOriginState Default is current state
|
||||
*
|
||||
@@ -2197,7 +2195,7 @@ abstract class DBObject implements iDisplay
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @throws \OQLException
|
||||
*
|
||||
@@ -5323,7 +5321,7 @@ abstract class DBObject implements iDisplay
|
||||
// Keep track of link changes
|
||||
//
|
||||
if (($oLinkSet->GetTrackingLevel() & LINKSET_TRACKING_DETAILS) == 0) continue;
|
||||
|
||||
|
||||
$iLinkSetOwnerId = $this->Get($sExtKeyAttCode);
|
||||
$oMyChangeOp = $this->PrepareChangeOpLinkSet($iLinkSetOwnerId, $oLinkSet, 'CMDBChangeOpSetAttributeLinksTune');
|
||||
if ($oMyChangeOp)
|
||||
@@ -5520,27 +5518,6 @@ abstract class DBObject implements iDisplay
|
||||
set_time_limit(intval($iPreviousTimeLimit));
|
||||
}
|
||||
|
||||
/**
|
||||
* Caching relying on an object set is not efficient since 2.0.3
|
||||
* Use GetSynchroData instead
|
||||
*
|
||||
* Get all the synchro replica related to this object
|
||||
*
|
||||
* @internal
|
||||
* @deprecated
|
||||
*
|
||||
* @return DBObjectSet Set with two columns: R=SynchroReplica S=SynchroDataSource
|
||||
* @throws \OQLException
|
||||
*/
|
||||
public function GetMasterReplica()
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod();
|
||||
$sOQL = "SELECT replica,datasource FROM SynchroReplica AS replica JOIN SynchroDataSource AS datasource ON replica.sync_source_id=datasource.id WHERE replica.dest_class = :dest_class AND replica.dest_id = :dest_id";
|
||||
$oReplicaSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL), array() /* order by*/, array('dest_class' => get_class($this), 'dest_id' => $this->GetKey()));
|
||||
|
||||
return $oReplicaSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the synchro data related to this object
|
||||
*
|
||||
|
||||
@@ -236,78 +236,6 @@ abstract class DBSearch
|
||||
*/
|
||||
abstract public function IsAny();
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @deprecated use ToOQL() instead
|
||||
* @return string
|
||||
*/
|
||||
public function Describe()
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use ToOQL() instead');
|
||||
|
||||
return 'deprecated - use ToOQL() instead';
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @deprecated use ToOQL() instead
|
||||
* @return string
|
||||
*/
|
||||
public function DescribeConditionPointTo($sExtKeyAttCode, $aPointingTo)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use ToOQL() instead');
|
||||
|
||||
return 'deprecated - use ToOQL() instead';
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @deprecated use ToOQL() instead
|
||||
* @return string
|
||||
*/
|
||||
public function DescribeConditionRefBy($sForeignClass, $sForeignExtKeyAttCode)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use ToOQL() instead');
|
||||
|
||||
return 'deprecated - use ToOQL() instead';
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @deprecated use ToOQL() instead
|
||||
* @return string
|
||||
*/
|
||||
public function DescribeConditionRelTo($aRelInfo)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use ToOQL() instead');
|
||||
|
||||
return 'deprecated - use ToOQL() instead';
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @deprecated use ToOQL() instead
|
||||
* @return string
|
||||
*/
|
||||
public function DescribeConditions()
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use ToOQL() instead');
|
||||
|
||||
return 'deprecated - use ToOQL() instead';
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @deprecated use ToOQL() instead
|
||||
* @return string
|
||||
*/
|
||||
public function __DescribeHTML()
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use ToOQL() instead');
|
||||
|
||||
return 'deprecated - use ToOQL() instead';
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @return mixed
|
||||
@@ -1716,16 +1644,6 @@ abstract class DBSearch
|
||||
return $this->ToOQL(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array{\VariableExpression}
|
||||
*
|
||||
* @deprecated use DBSearch::GetExpectedArguments() instead
|
||||
*/
|
||||
public function ListParameters(): array
|
||||
{
|
||||
return $this->GetExpectedArguments();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get parameters from the condition expression(s)
|
||||
*
|
||||
|
||||
@@ -114,9 +114,6 @@ class EMail implements iEMail
|
||||
* @param string $sSerializedMessage The serialized representation of the message
|
||||
*
|
||||
* @return \Email
|
||||
* @throws \ArchivedObjectException
|
||||
* @throws \CoreException
|
||||
* @throws \Symfony\Component\CssSelector\Exception\SyntaxErrorException
|
||||
*/
|
||||
public static function UnSerializeV2($sSerializedMessage)
|
||||
{
|
||||
|
||||
@@ -110,7 +110,7 @@ class InlineImage extends DBObject
|
||||
$aCallSpec = array($sClass, 'MapContextParam');
|
||||
if (is_callable($aCallSpec))
|
||||
{
|
||||
$sAttCode = call_user_func($aCallSpec, 'org_id'); // Returns null when there is no mapping for this parameter
|
||||
$sAttCode = call_user_func($aCallSpec, 'org_id'); // Returns null when there is no mapping for this parameter
|
||||
if (MetaModel::IsValidAttCode($sClass, $sAttCode))
|
||||
{
|
||||
$iOrgId = $oItem->Get($sAttCode);
|
||||
@@ -146,7 +146,7 @@ class InlineImage extends DBObject
|
||||
$aCallSpec = array($sClass, 'MapContextParam');
|
||||
if (is_callable($aCallSpec))
|
||||
{
|
||||
$sAttCode = call_user_func($aCallSpec, 'org_id'); // Returns null when there is no mapping for this parameter
|
||||
$sAttCode = call_user_func($aCallSpec, 'org_id'); // Returns null when there is no mapping for this parameter
|
||||
if (MetaModel::IsValidAttCode($sClass, $sAttCode))
|
||||
{
|
||||
// Second: check that the organization CAN be fetched from the current user
|
||||
@@ -156,7 +156,7 @@ class InlineImage extends DBObject
|
||||
$aCallSpec = array($sClass, 'MapContextParam');
|
||||
if (is_callable($aCallSpec))
|
||||
{
|
||||
$sAttCode = call_user_func($aCallSpec, 'org_id'); // Returns null when there is no mapping for this parameter
|
||||
$sAttCode = call_user_func($aCallSpec, 'org_id'); // Returns null when there is no mapping for this parameter
|
||||
if (MetaModel::IsValidAttCode($sClass, $sAttCode))
|
||||
{
|
||||
// OK - try it
|
||||
@@ -192,7 +192,7 @@ class InlineImage extends DBObject
|
||||
if (!is_null($iTransactionId))
|
||||
{
|
||||
// Attach new (temporary) inline images
|
||||
|
||||
|
||||
$sTempId = utils::GetUploadTempId($iTransactionId);
|
||||
// The object is being created from a form, check if there are pending inline images for this object
|
||||
$sOQL = 'SELECT InlineImage WHERE temp_id = :temp_id';
|
||||
@@ -366,10 +366,10 @@ CombodoInlineImage.FixImagesWidth();
|
||||
JS
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
return $sJS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if an the given mimeType is an image that can be processed by the system
|
||||
*
|
||||
@@ -382,7 +382,7 @@ JS
|
||||
public static function IsImage($sMimeType)
|
||||
{
|
||||
if (!function_exists('gd_info')) return false; // no image processing capability on this system
|
||||
|
||||
|
||||
$bRet = false;
|
||||
$aInfo = gd_info(); // What are the capabilities
|
||||
switch($sMimeType)
|
||||
@@ -390,19 +390,19 @@ JS
|
||||
case 'image/gif':
|
||||
return $aInfo['GIF Read Support'];
|
||||
break;
|
||||
|
||||
|
||||
case 'image/jpeg':
|
||||
return $aInfo['JPEG Support'];
|
||||
break;
|
||||
|
||||
|
||||
case 'image/png':
|
||||
return $aInfo['PNG Support'];
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
return $bRet;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Resize an image so that it fits the maximum width/height defined in the config file
|
||||
* @param ormDocument $oImage The original image stored as an array (content / mimetype / filename)
|
||||
@@ -444,7 +444,7 @@ JS
|
||||
}
|
||||
return $sRet;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the fragment of javascript needed to complete the initialization of
|
||||
* CKEditor when creating/modifying an object
|
||||
|
||||
@@ -2105,55 +2105,6 @@ abstract class MetaModel
|
||||
*/
|
||||
private static $m_aRelationInfos = array();
|
||||
|
||||
/**
|
||||
* @deprecated Use EnumRelationsEx instead
|
||||
*
|
||||
* @param string $sClass
|
||||
*
|
||||
* @return array multitype:string unknown |Ambigous <string, multitype:>
|
||||
* @throws \CoreException
|
||||
* @throws \Exception
|
||||
* @throws \OQLException
|
||||
*/
|
||||
public static function EnumRelations($sClass = '')
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('Use EnumRelationsEx instead');
|
||||
$aResult = array_keys(self::$m_aRelationInfos);
|
||||
if (!empty($sClass)) {
|
||||
// Return only the relations that have a meaning (i.e. for which at least one query is defined)
|
||||
// for the specified class
|
||||
$aClassRelations = array();
|
||||
foreach ($aResult as $sRelCode) {
|
||||
$aQueriesDown = self::EnumRelationQueries($sClass, $sRelCode);
|
||||
if (count($aQueriesDown) > 0) {
|
||||
$aClassRelations[] = $sRelCode;
|
||||
}
|
||||
// Temporary patch: until the impact analysis GUI gets rewritten,
|
||||
// let's consider that "depends on" is equivalent to "impacts/up"
|
||||
// The current patch has been implemented in DBObject and MetaModel
|
||||
if ($sRelCode == 'impacts') {
|
||||
$aQueriesUp = self::EnumRelationQueries($sClass, 'impacts', false);
|
||||
if (count($aQueriesUp) > 0)
|
||||
{
|
||||
$aClassRelations[] = 'depends on';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $aClassRelations;
|
||||
}
|
||||
|
||||
// Temporary patch: until the impact analysis GUI gets rewritten,
|
||||
// let's consider that "depends on" is equivalent to "impacts/up"
|
||||
// The current patch has been implemented in DBObject and MetaModel
|
||||
if (in_array('impacts', $aResult))
|
||||
{
|
||||
$aResult[] = 'depends on';
|
||||
}
|
||||
|
||||
return $aResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sClass
|
||||
*
|
||||
@@ -5143,7 +5094,7 @@ abstract class MetaModel
|
||||
*/
|
||||
protected static function DBCreateViews()
|
||||
{
|
||||
[$aErrors, $aSugFix] = self::DBCheckViews();
|
||||
[$aErrors, $aSugFix] = self::DBCleanLegacyViews();
|
||||
|
||||
foreach($aSugFix as $sClass => $aTarget)
|
||||
{
|
||||
@@ -5789,18 +5740,18 @@ abstract class MetaModel
|
||||
|
||||
|
||||
/**
|
||||
* @deprecated 2.7.0 N°2369 Method will not be removed any time soon as we still need to drop view if the instance is migrating from an iTop 2.x to an iTop 3.0 or newer, even if they skip iTop 3.0.
|
||||
* @since 3.0.0 Does not recreate SQL views, only drops them. Method has not been renamed to avoid regressions
|
||||
* @internal
|
||||
* @deprecated will be remove when 2.7 will not be supported anymore
|
||||
*
|
||||
* @return array
|
||||
* @throws \CoreException
|
||||
* @throws \Exception
|
||||
* @throws \MissingQueryArgument
|
||||
*/
|
||||
public static function DBCheckViews()
|
||||
public static function DBCleanLegacyViews()
|
||||
{
|
||||
$aErrors = array();
|
||||
$aSugFix = array();
|
||||
$aErrors = [];
|
||||
$aSugFix = [];
|
||||
|
||||
// Reporting views (must be created after any other table)
|
||||
//
|
||||
@@ -5815,7 +5766,7 @@ abstract class MetaModel
|
||||
}
|
||||
}
|
||||
|
||||
return array($aErrors, $aSugFix);
|
||||
return [$aErrors, $aSugFix];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -7509,42 +7460,6 @@ abstract class MetaModel
|
||||
SetupUtils::rrmdir(utils::GetCachePath($sEnvironment));
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @param string $sEnvironmentId
|
||||
* @deprecated 3.2.1
|
||||
*/
|
||||
public static function ResetCache($sEnvironmentId = null)
|
||||
{
|
||||
if (is_null($sEnvironmentId))
|
||||
{
|
||||
$sEnvironmentId = MetaModel::GetEnvironmentId();
|
||||
}
|
||||
|
||||
$sAppIdentity = 'itop-'.$sEnvironmentId;
|
||||
require_once(APPROOT.'/core/dict.class.inc.php');
|
||||
Dict::ResetCache($sAppIdentity);
|
||||
|
||||
if (function_exists('apc_delete'))
|
||||
{
|
||||
foreach(self::GetCacheEntries($sEnvironmentId) as $sKey => $aAPCInfo)
|
||||
{
|
||||
$sAPCKey = $aAPCInfo['info'];
|
||||
apc_delete($sAPCKey);
|
||||
}
|
||||
}
|
||||
|
||||
require_once(APPROOT.'core/userrights.class.inc.php');
|
||||
UserRights::FlushPrivileges();
|
||||
|
||||
// Reset the opcache since otherwise the PHP "model" files may still be cached !!
|
||||
if (function_exists('opcache_reset'))
|
||||
{
|
||||
// Zend opcode cache
|
||||
opcache_reset();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a field spec, get the most relevant (unique) representation
|
||||
* Examples for a user request:
|
||||
|
||||
@@ -495,8 +495,8 @@ class OqlObjectQuery extends OqlQuery
|
||||
{
|
||||
throw new OqlNormalizeException('Unknown class in join condition (right expression)', $sSourceQuery, $oRightField->GetParentDetails(), array_keys($aAliases));
|
||||
}
|
||||
$aExtKeys = $oModelReflection->ListAttributes($aAliases[$sFromClass], 'AttributeExternalKey');
|
||||
$aObjKeys = $oModelReflection->ListAttributes($aAliases[$sFromClass], 'AttributeObjectKey');
|
||||
$aExtKeys = $oModelReflection->ListAttributes($aAliases[$sFromClass], \Combodo\iTop\Core\AttributeDefinition\AttributeExternalKey::class);
|
||||
$aObjKeys = $oModelReflection->ListAttributes($aAliases[$sFromClass], \Combodo\iTop\Core\AttributeDefinition\AttributeObjectKey::class);
|
||||
$aAllKeys = array_merge($aExtKeys, $aObjKeys);
|
||||
if (!array_key_exists($sExtKeyAttCode, $aAllKeys))
|
||||
{
|
||||
@@ -557,7 +557,7 @@ class OqlObjectQuery extends OqlQuery
|
||||
}
|
||||
$aAttList = $oModelReflection->ListAttributes($aAliases[$sFromClass]);
|
||||
$sAttType = $aAttList[$sExtKeyAttCode];
|
||||
if(($iOperatorCode != TREE_OPERATOR_EQUALS) && !is_subclass_of($sAttType, 'AttributeHierarchicalKey') && ($sAttType != 'AttributeHierarchicalKey'))
|
||||
if(($iOperatorCode != TREE_OPERATOR_EQUALS) && !is_subclass_of($sAttType, \Combodo\iTop\Core\AttributeDefinition\AttributeHierarchicalKey::class) && ($sAttType != \Combodo\iTop\Core\AttributeDefinition\AttributeHierarchicalKey::class))
|
||||
{
|
||||
throw new OqlNormalizeException("The specified tree operator $sOperator is not applicable to the key", $sSourceQuery, $oLeftField->GetNameDetails());
|
||||
}
|
||||
|
||||
@@ -240,25 +240,6 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
return $aRet;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $bWithId
|
||||
* @return array
|
||||
* @deprecated Since iTop 2.4, use foreach($this as $oItem){} instead
|
||||
*/
|
||||
public function ToArray($bWithId = true)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use foreach($this as $oItem){} instead');
|
||||
$aRet = array();
|
||||
foreach ($this as $oItem) {
|
||||
if ($bWithId) {
|
||||
$aRet[$oItem->GetKey()] = $oItem;
|
||||
} else {
|
||||
$aRet[] = $oItem;
|
||||
}
|
||||
}
|
||||
return $aRet;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sAttCode
|
||||
* @param bool $bWithId
|
||||
@@ -532,6 +513,17 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
{
|
||||
$bUpdateFromDelta = true;
|
||||
}
|
||||
} else {
|
||||
//@since 3.2.2 N°2364 - API : remove old linkedset persistance
|
||||
/* Goo pattern to use:
|
||||
* $oCISet = $oTicket->Get(‘functioncis_list’);
|
||||
* $oCISet->AddItem(MetaModel::NewObject(‘lnkFunctionCIToTicket’, array(‘ci_id’=> 12345));
|
||||
* $oCISet->RemoveItem(123456);
|
||||
* $oTicket->Set(‘functionalcis_list’, $oCISet);
|
||||
*/
|
||||
if (ContextTag::Check(ContextTag::TAG_PORTAL) || ContextTag::Check(ContextTag::TAG_CONSOLE) ) {
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('old pattern - please get previous value of the linked set, modify it and set it back to the host object');
|
||||
}
|
||||
}
|
||||
|
||||
if ($bUpdateFromDelta)
|
||||
@@ -547,7 +539,6 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
else
|
||||
{
|
||||
// For backward compatibility reasons, let's rebuild a delta...
|
||||
|
||||
// Reset the delta
|
||||
$this->iCursor = 0;
|
||||
$this->aAdded = array();
|
||||
|
||||
@@ -142,7 +142,9 @@ abstract class UserRightsAddOnAPI
|
||||
$oFilter = new DBObjectSearch($sClass);
|
||||
$oListExpr = ListExpression::FromScalars($aAllowedOrgs);
|
||||
|
||||
$oCondition = new BinaryExpression($oExpression, 'IN', $oListExpr);
|
||||
$oNullCondition = new FunctionExpression('ISNULL', [$oExpression]);
|
||||
$oInCondition = new BinaryExpression($oExpression, 'IN', $oListExpr);
|
||||
$oCondition = $oNullCondition->LogOr($oInCondition);
|
||||
$oFilter->AddConditionExpression($oCondition);
|
||||
|
||||
if ($this->HasSharing())
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
// iTop is free software; you can redistribute it and/or modify
|
||||
// iTop is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
@@ -105,7 +105,7 @@ abstract class ValueSetDefinition
|
||||
|
||||
|
||||
/**
|
||||
* Set of existing values for an attribute, given a search filter
|
||||
* Set of existing values for an attribute, given a search filter
|
||||
*
|
||||
* @package iTopORM
|
||||
*/
|
||||
@@ -125,7 +125,7 @@ class ValueSetObjects extends ValueSetDefinition
|
||||
|
||||
/**
|
||||
* @param hash $aOrderBy Array of '[<classalias>.]attcode' => bAscending
|
||||
*/
|
||||
*/
|
||||
public function __construct($sFilterExp, $sValueAttCode = '', $aOrderBy = array(), $bAllowAllData = false, $aModifierProperties = array())
|
||||
{
|
||||
$this->m_sContains = '';
|
||||
@@ -146,17 +146,6 @@ class ValueSetObjects extends ValueSetDefinition
|
||||
$this->m_bIsLoaded = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use SetCondition instead
|
||||
*
|
||||
* @param \DBSearch $oFilter
|
||||
*/
|
||||
public function AddCondition(DBSearch $oFilter)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('use SetCondition instead');
|
||||
$this->SetCondition($oFilter);
|
||||
}
|
||||
|
||||
public function SetCondition(DBSearch $oFilter)
|
||||
{
|
||||
$this->m_oExtraCondition = $oFilter;
|
||||
@@ -457,7 +446,7 @@ class ValueSetObjects extends ValueSetDefinition
|
||||
|
||||
|
||||
/**
|
||||
* Fixed set values (could be hardcoded in the business model)
|
||||
* Fixed set values (could be hardcoded in the business model)
|
||||
*
|
||||
* @package iTopORM
|
||||
*/
|
||||
@@ -542,7 +531,7 @@ class ValueSetEnum extends ValueSetDefinition
|
||||
foreach (explode(",", $this->m_values) as $sVal)
|
||||
{
|
||||
$sVal = trim($sVal);
|
||||
$sKey = $sVal;
|
||||
$sKey = $sVal;
|
||||
$aValues[$sKey] = $sVal;
|
||||
}
|
||||
}
|
||||
@@ -613,7 +602,7 @@ class ValueSetRange extends ValueSetDefinition
|
||||
|
||||
|
||||
/**
|
||||
* Data model classes
|
||||
* Data model classes
|
||||
*
|
||||
* @package iTopORM
|
||||
*/
|
||||
@@ -631,7 +620,7 @@ class ValueSetEnumClasses extends ValueSetEnum
|
||||
{
|
||||
// Call the parent to parse the additional values...
|
||||
parent::LoadValues($aArgs);
|
||||
|
||||
|
||||
// Translate the labels of the additional values
|
||||
foreach($this->m_aValues as $sClass => $void)
|
||||
{
|
||||
|
||||
@@ -26,7 +26,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:UserLocal/Attribute:expiration/Value:otp_expire+' => 'Senha não pode ser alterada pelo usuário',
|
||||
'Class:UserLocal/Attribute:password_renewed_date' => 'Data da última alteração de senha',
|
||||
'Class:UserLocal/Attribute:password_renewed_date+' => 'Quando a senha foi alterada anteriormente',
|
||||
'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'A senha deve ter no mínimo 8 caracteres e incluir letras maiúsculas, minúsculas, números e símbolos',
|
||||
'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'A senha deve conter no mínimo 8 caracteres e incluir letras maiúsculas, minúsculas, números e símbolos',
|
||||
'UserLocal:password:expiration' => 'O campo abaixo requer uma extensão',
|
||||
'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Definir a expiração da senha para One-Time Password (OTP) não é permitido para o seu próprio usuário',
|
||||
));
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
//
|
||||
// This file is part of iTop.
|
||||
//
|
||||
// iTop is free software; you can redistribute it and/or modify
|
||||
// iTop is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
@@ -84,7 +84,7 @@ class DBRestore extends DBBackup
|
||||
{
|
||||
$this->LogError("mysql said: $sLine");
|
||||
}
|
||||
if (count($aOutput) == 1)
|
||||
if (count($aOutput) == 1)
|
||||
{
|
||||
$sMoreInfo = trim($aOutput[0]);
|
||||
}
|
||||
@@ -96,18 +96,6 @@ class DBRestore extends DBBackup
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use RestoreFromCompressedBackup instead
|
||||
*
|
||||
* @param $sZipFile
|
||||
* @param string $sEnvironment
|
||||
*/
|
||||
public function RestoreFromZip($sZipFile, $sEnvironment = 'production')
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('Use RestoreFromCompressedBackup instead');
|
||||
$this->RestoreFromCompressedBackup($sZipFile, $sEnvironment);
|
||||
}
|
||||
|
||||
/**
|
||||
* <strong>Warning</strong> : can't be called with a loaded DataModel as we're compiling after restore
|
||||
*
|
||||
@@ -180,7 +168,7 @@ class DBRestore extends DBBackup
|
||||
@chmod($sConfigFile, 0770); // Allow overwriting the file
|
||||
rename($sDataDir.'/config-itop.php', $sConfigFile);
|
||||
@chmod($sConfigFile, 0440); // Read-only
|
||||
|
||||
|
||||
$aExtraFiles = $this->ListExtraFiles($sDataDir);
|
||||
foreach($aExtraFiles as $sSourceFilePath => $sDestinationFilePath) {
|
||||
SetupUtils::builddir(dirname($sDestinationFilePath));
|
||||
|
||||
@@ -22,6 +22,7 @@ use Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSet;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Spinner\SpinnerUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory;
|
||||
use Combodo\iTop\Application\UI\Base\Layout\UIContentBlock;
|
||||
use Combodo\iTop\Application\UI\Base\UIBlock;
|
||||
@@ -409,6 +410,9 @@ JS
|
||||
|
||||
$sEnvironment = addslashes(utils::GetCurrentEnvironment());
|
||||
|
||||
$oModalSpinner = SpinnerUIBlockFactory::MakeMedium(null, $sPleaseWaitBackup);
|
||||
$sModalSpinnerHtml = BlockRenderer::RenderBlockTemplates($oModalSpinner);
|
||||
|
||||
$oP->add_script(
|
||||
<<<JS
|
||||
function LaunchBackupNow()
|
||||
@@ -420,7 +424,7 @@ function LaunchBackupNow()
|
||||
{
|
||||
const oModal = CombodoModal.OpenModal({
|
||||
title: '$sBackUpNow',
|
||||
content: '<i class="ajax-spin fas fa-sync-alt fa-spin"></i> $sPleaseWaitBackup'
|
||||
content: `$sModalSpinnerHtml`
|
||||
});
|
||||
|
||||
var oParams = {};
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*
|
||||
*/
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkFunctionalCIToTicket' => 'Link IC / Solicitação',
|
||||
'Class:lnkFunctionalCIToTicket' => 'Relação entre IC / Solicitação',
|
||||
'Class:lnkFunctionalCIToTicket+' => '',
|
||||
'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Solicitação',
|
||||
@@ -37,5 +37,5 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:FunctionalCI/Attribute:tickets_list' => 'Solicitações',
|
||||
'Class:FunctionalCI/Attribute:tickets_list+' => 'Todos as solicitações para este item de configuração',
|
||||
'Class:FunctionalCI/Attribute:tickets_list+' => 'Todas as Solicitações associadas à este Item de Configuração (IC)',
|
||||
));
|
||||
|
||||
@@ -18,8 +18,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Relation:depends on/Description' => 'Elementos estes, que dependem deste elemento',
|
||||
'Relation:depends on/DownStream' => 'Depende de...',
|
||||
'Relation:depends on/UpStream' => 'Impactos...',
|
||||
'Relation:impacts/LoadData' => 'Load data~~',
|
||||
'Relation:impacts/NoFilteredData' => 'please select objects and load data~~',
|
||||
'Relation:impacts/LoadData' => 'Carregando dados',
|
||||
'Relation:impacts/NoFilteredData' => 'Por favor, selecione os objetos na tag de visualização Gráfica',
|
||||
'Relation:impacts/FilteredData' => 'Filtered data~~',
|
||||
));
|
||||
|
||||
@@ -66,7 +66,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkContactToFunctionalCI' => 'Link Contato / IC',
|
||||
'Class:lnkContactToFunctionalCI' => 'Relação entre Contato / IC',
|
||||
'Class:lnkContactToFunctionalCI+' => '',
|
||||
'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkContactToFunctionalCI/Attribute:functionalci_id' => 'ICs',
|
||||
@@ -105,16 +105,16 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:FunctionalCI/Attribute:move2production' => 'Data de migração para produção',
|
||||
'Class:FunctionalCI/Attribute:move2production+' => '',
|
||||
'Class:FunctionalCI/Attribute:contacts_list' => 'Contatos',
|
||||
'Class:FunctionalCI/Attribute:contacts_list+' => 'Todos os contatos associados a este item de configuração',
|
||||
'Class:FunctionalCI/Attribute:contacts_list+' => 'Todos os Contatos associados à este Item de Configuração (IC)',
|
||||
'Class:FunctionalCI/Attribute:documents_list' => 'Documentos',
|
||||
'Class:FunctionalCI/Attribute:documents_list+' => 'Todos os documentos associados a este item de configuração',
|
||||
'Class:FunctionalCI/Attribute:documents_list+' => 'Todos os Documentos associados à este Item de Configuração (IC)',
|
||||
'Class:FunctionalCI/Attribute:applicationsolution_list' => 'Soluções de aplicação',
|
||||
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'Todas as soluções de aplicação dependentes desse item de configuração',
|
||||
'Class:FunctionalCI/Attribute:applicationsolution_list+' => 'Todas as Soluções de Aplicação dependentes deste Item de Configuração (IC)',
|
||||
'Class:FunctionalCI/Attribute:softwares_list' => 'Softwares',
|
||||
'Class:FunctionalCI/Attribute:softwares_list+' => 'Todos os softwares instalados neste item de configuração',
|
||||
'Class:FunctionalCI/Attribute:softwares_list+' => 'Todos os Softwares instalados neste Item de Configuração (IC)',
|
||||
'Class:FunctionalCI/Attribute:finalclass' => 'Tipo de IC',
|
||||
'Class:FunctionalCI/Attribute:finalclass+' => '',
|
||||
'Class:FunctionalCI/Tab:OpenedTickets' => 'Solicitações Ativas',
|
||||
'Class:FunctionalCI/Tab:OpenedTickets' => 'Solicitações ativas',
|
||||
'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~',
|
||||
));
|
||||
|
||||
@@ -123,7 +123,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:PhysicalDevice' => 'Dispositivo Físico',
|
||||
'Class:PhysicalDevice' => 'Dispositivo físico',
|
||||
'Class:PhysicalDevice+' => 'Lista de Dispositivos Físicos',
|
||||
'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:PhysicalDevice/Attribute:serialnumber' => 'Número serial',
|
||||
@@ -169,9 +169,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Rack/Attribute:nb_u' => 'Unidades',
|
||||
'Class:Rack/Attribute:nb_u+' => '',
|
||||
'Class:Rack/Attribute:device_list' => 'Dispositivos',
|
||||
'Class:Rack/Attribute:device_list+' => 'Todos os dispositivos físicos empilhados neste rack',
|
||||
'Class:Rack/Attribute:device_list+' => 'Todos os Dispositivos físicos empilhados neste Rack',
|
||||
'Class:Rack/Attribute:enclosure_list' => 'Gavetas',
|
||||
'Class:Rack/Attribute:enclosure_list+' => 'Todas as gavetas neste rack',
|
||||
'Class:Rack/Attribute:enclosure_list+' => 'Todas as Gavetas neste Rack',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -234,9 +234,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ConnectableCI+' => 'Físico',
|
||||
'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:ConnectableCI/Attribute:networkdevice_list' => 'Dispositivo de rede',
|
||||
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Todos os dispositivos de rede conectados neste dispositivo',
|
||||
'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Todos os Dispositivos de rede conectados neste dispositivo',
|
||||
'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Interface de rede',
|
||||
'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Todas as interfaces de rede',
|
||||
'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Todas as Interfaces de rede presentes neste dispositivo',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -268,9 +268,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:DatacenterDevice/Attribute:powerB_name' => 'Nome da fonte energia B',
|
||||
'Class:DatacenterDevice/Attribute:powerB_name+' => '',
|
||||
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list' => 'Portas FC',
|
||||
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => 'Todas as portas Fiber Channel para esse dispositivo',
|
||||
'Class:DatacenterDevice/Attribute:fiberinterfacelist_list+' => 'Todas as portas Fiber Channel (FC) para este Dispositivo de datacenter',
|
||||
'Class:DatacenterDevice/Attribute:san_list' => 'SANs',
|
||||
'Class:DatacenterDevice/Attribute:san_list+' => 'Todos os switches SAN associados a este dispositivo',
|
||||
'Class:DatacenterDevice/Attribute:san_list+' => 'Todos os Switches SAN associados à este Dispositivo de datacenter',
|
||||
'Class:DatacenterDevice/Attribute:redundancy' => 'Redundância',
|
||||
'Class:DatacenterDevice/Attribute:redundancy/count' => 'O dispositivo está ativo se pelo menos uma conexão de energia (A ou B) estiver ativa',
|
||||
'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'O dispositivo está ativo se todas as conexões de energia estiverem ativadas',
|
||||
@@ -285,15 +285,15 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:NetworkDevice' => 'Dispositivo de Rede',
|
||||
'Class:NetworkDevice+' => '',
|
||||
'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_id' => 'Tipo de rede',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_id' => 'Tipo de dispositivo de rede',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_id+' => '',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'Nome do tipo de rede',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_name' => 'Nome do tipo de dispositivo de rede',
|
||||
'Class:NetworkDevice/Attribute:networkdevicetype_name+' => '',
|
||||
'Class:NetworkDevice/Attribute:connectablecis_list' => 'Dispositivos',
|
||||
'Class:NetworkDevice/Attribute:connectablecis_list+' => 'Todos os dispositivos associados a este dispositivo de rede',
|
||||
'Class:NetworkDevice/Attribute:iosversion_id' => 'Versão do IOS',
|
||||
'Class:NetworkDevice/Attribute:connectablecis_list' => 'ICs',
|
||||
'Class:NetworkDevice/Attribute:connectablecis_list+' => 'Todos os Itens de configuração (ICs) associados à este Dispositivo de rede',
|
||||
'Class:NetworkDevice/Attribute:iosversion_id' => 'Versão do SO',
|
||||
'Class:NetworkDevice/Attribute:iosversion_id+' => '',
|
||||
'Class:NetworkDevice/Attribute:iosversion_name' => 'Nome da versão do IOS',
|
||||
'Class:NetworkDevice/Attribute:iosversion_name' => 'Nome da versão do SO',
|
||||
'Class:NetworkDevice/Attribute:iosversion_name+' => '',
|
||||
'Class:NetworkDevice/Attribute:ram' => 'RAM',
|
||||
'Class:NetworkDevice/Attribute:ram+' => '',
|
||||
@@ -324,7 +324,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Server/Attribute:ram' => 'RAM',
|
||||
'Class:Server/Attribute:ram+' => '',
|
||||
'Class:Server/Attribute:logicalvolumes_list' => 'Volumes lógicos',
|
||||
'Class:Server/Attribute:logicalvolumes_list+' => 'Todos os volumoes lógicos associados a este servidor',
|
||||
'Class:Server/Attribute:logicalvolumes_list+' => 'Todos os Volumes lógicos associados à este Servidor',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -336,7 +336,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:StorageSystem+' => '',
|
||||
'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:StorageSystem/Attribute:logicalvolume_list' => 'Volumes lógicos',
|
||||
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Todos os volumes lógicos neste sistema storage',
|
||||
'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Todos os Volumes lógicos neste Sistema de storage',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -348,7 +348,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:SANSwitch+' => '',
|
||||
'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Dispositivos',
|
||||
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Todos os dispositivos associados a este switch SAN',
|
||||
'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Todos os Dispositivos associados à este Switch SAN',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -360,7 +360,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:TapeLibrary+' => '',
|
||||
'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:TapeLibrary/Attribute:tapes_list' => 'Fitas',
|
||||
'Class:TapeLibrary/Attribute:tapes_list+' => 'Todas as fitas associadas à esta biblioteca de fitas',
|
||||
'Class:TapeLibrary/Attribute:tapes_list+' => 'Todas as Fitas associadas à esta Biblioteca de fitas',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -372,7 +372,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:NAS+' => '',
|
||||
'Class:NAS/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:NAS/Attribute:nasfilesystem_list' => 'Sistemas de arquivos',
|
||||
'Class:NAS/Attribute:nasfilesystem_list+' => 'Todos os sistemas de arquivos para esse NAS',
|
||||
'Class:NAS/Attribute:nasfilesystem_list+' => 'Todos os Sistemas de arquivos para este NAS',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -432,7 +432,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:PowerSource+' => '',
|
||||
'Class:PowerSource/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:PowerSource/Attribute:pdus_list' => 'PDUs',
|
||||
'Class:PowerSource/Attribute:pdus_list+' => 'Todos os PDUs utilizando essa fonte de energia',
|
||||
'Class:PowerSource/Attribute:pdus_list+' => 'Todos os PDUs utilizando esta Fonte de energia',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -478,7 +478,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Enclosure/Attribute:nb_u' => 'Unidades',
|
||||
'Class:Enclosure/Attribute:nb_u+' => '',
|
||||
'Class:Enclosure/Attribute:device_list' => 'Dispositivos',
|
||||
'Class:Enclosure/Attribute:device_list+' => 'Todos os dispositivos para essa gaveta',
|
||||
'Class:Enclosure/Attribute:device_list+' => 'Todos os Dispositivos presentes nesta Gaveta',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -489,9 +489,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ApplicationSolution' => 'Solução de Aplicação',
|
||||
'Class:ApplicationSolution+' => '',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list' => 'ICs',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'Todos os itens de configuração que compõem essa solução de aplicação',
|
||||
'Class:ApplicationSolution/Attribute:functionalcis_list+' => 'Todos os Itens de configuração (IC) que compõem esta Solução de aplicação',
|
||||
'Class:ApplicationSolution/Attribute:businessprocess_list' => 'Processos de negócio',
|
||||
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'Todos os processos do negócio dependente para essa solução de aplicação',
|
||||
'Class:ApplicationSolution/Attribute:businessprocess_list+' => 'Todos os Processos de negócio dependentes desta Solução de aplicação',
|
||||
'Class:ApplicationSolution/Attribute:status' => 'Status',
|
||||
'Class:ApplicationSolution/Attribute:status+' => '',
|
||||
'Class:ApplicationSolution/Attribute:status/Value:active' => 'Ativo',
|
||||
@@ -499,9 +499,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ApplicationSolution/Attribute:status/Value:inactive' => 'Inativo',
|
||||
'Class:ApplicationSolution/Attribute:status/Value:inactive+' => '',
|
||||
'Class:ApplicationSolution/Attribute:redundancy' => 'Análise de impacto: configuração de redundância',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'A solução está funcionando se todos os ICs estiverem funcionando',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/count' => 'A solução está funcionando se no mínimo %1$s IC(s) estiver(em) funcionando',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/percent' => 'A solução está funcionando se no mínimo %1$s %% dos ICs estiverem funcionando',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'A Solução de aplicação está funcionando se todos os Itens de configuração (ICs) estiverem funcionando',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/count' => 'A Solução de aplicação está funcionando se no mínimo %1$s Item(ns) de configuração (IC(s)) estiver(em) funcionando',
|
||||
'Class:ApplicationSolution/Attribute:redundancy/percent' => 'A Solução de aplicação está funcionando se no mínimo %1$s %% dos Itens de configuração (ICs) estiverem funcionando',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -568,8 +568,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:DBServer' => 'Servidor de DB',
|
||||
'Class:DBServer+' => '',
|
||||
'Class:DBServer/Attribute:dbschema_list' => 'Esquemas de DB',
|
||||
'Class:DBServer/Attribute:dbschema_list+' => 'Todos os esquemas para esse servidor de banco de dados',
|
||||
'Class:DBServer/Attribute:dbschema_list' => 'Esquemas de BD',
|
||||
'Class:DBServer/Attribute:dbschema_list+' => 'Todos os Esquemas de BD para este Servidor de Banco de Dados (BD)',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -580,7 +580,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:WebServer' => 'Servidor Web',
|
||||
'Class:WebServer+' => '',
|
||||
'Class:WebServer/Attribute:webapp_list' => 'Aplicações Web',
|
||||
'Class:WebServer/Attribute:webapp_list+' => 'Todas as aplicações web disponíveis para esse servidor web',
|
||||
'Class:WebServer/Attribute:webapp_list+' => 'Todas as Aplicações Web disponíveis para este Servidor Web',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -620,7 +620,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:DatabaseSchema' => 'Esquema de DB',
|
||||
'Class:DatabaseSchema' => 'Esquema de Banco de Dados (BD)',
|
||||
'Class:DatabaseSchema+' => '',
|
||||
'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:DatabaseSchema/Attribute:dbserver_id' => 'Servidor de DB',
|
||||
@@ -664,7 +664,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:VirtualDevice/Attribute:status/Value:stock' => 'Suporte',
|
||||
'Class:VirtualDevice/Attribute:status/Value:stock+' => 'Suporte',
|
||||
'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Volume lógico',
|
||||
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Todos os volumes lógicos associados a este dispositivo',
|
||||
'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Todos os Volumes lógicos associados à este Dispositivo virtual',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -674,8 +674,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:VirtualHost' => 'Host Virtual',
|
||||
'Class:VirtualHost+' => '',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list' => 'Máquinas Virtuais',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Todas as máquinas virtuais hospedadas neste Host',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list' => 'Máquinas virtuais (VMs)',
|
||||
'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Todas as Máquinas virtuais (VMs) hospedadas neste Host virtual',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -703,11 +703,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Farm' => 'Cluster/HA',
|
||||
'Class:Farm+' => '',
|
||||
'Class:Farm/Attribute:hypervisor_list' => 'Hypervisors',
|
||||
'Class:Farm/Attribute:hypervisor_list+' => 'Todos os hypervisors que compõem esse Cluster/HA',
|
||||
'Class:Farm/Attribute:hypervisor_list+' => 'Todos os Hypervisors que compõem este Cluster/HA',
|
||||
'Class:Farm/Attribute:redundancy' => 'Alta disponibilidade',
|
||||
'Class:Farm/Attribute:redundancy/disabled' => 'O farm está ativo se todos os hipervisores estiverem em alta',
|
||||
'Class:Farm/Attribute:redundancy/count' => 'O farm está ativo se pelo menos %1$s hypervisor(es) estiver (ão) para cima',
|
||||
'Class:Farm/Attribute:redundancy/percent' => 'O farm está ativo se pelo menos %1$s %% dos hipervisores estiverem em alta',
|
||||
'Class:Farm/Attribute:redundancy/disabled' => 'O farm está ativo se todos os hypervisors estiverem disponíveis',
|
||||
'Class:Farm/Attribute:redundancy/count' => 'O farm está ativo se pelo menos %1$s hypervisor(s) estiver(em) disponíveis',
|
||||
'Class:Farm/Attribute:redundancy/percent' => 'O farm está ativo se pelo menos %1$s %% dos hypervisors estiverem disponíveis',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -740,8 +740,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:VirtualMachine/Attribute:ram+' => '',
|
||||
'Class:VirtualMachine/Attribute:managementip' => 'IP',
|
||||
'Class:VirtualMachine/Attribute:managementip+' => '',
|
||||
'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Placas de rede',
|
||||
'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Todas as placas de rede',
|
||||
'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Interfaces de rede',
|
||||
'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Todas as interfaces de rede',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -749,7 +749,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:LogicalVolume' => 'Volume lógico',
|
||||
'Class:LogicalVolume' => 'Volume Lógico',
|
||||
'Class:LogicalVolume+' => '',
|
||||
'Class:LogicalVolume/Attribute:name' => 'Nome',
|
||||
'Class:LogicalVolume/Attribute:name+' => '',
|
||||
@@ -757,7 +757,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:LogicalVolume/Attribute:lun_id+' => '',
|
||||
'Class:LogicalVolume/Attribute:description' => 'Descrição',
|
||||
'Class:LogicalVolume/Attribute:description+' => '',
|
||||
'Class:LogicalVolume/Attribute:raid_level' => 'Nível RAID',
|
||||
'Class:LogicalVolume/Attribute:raid_level' => 'Nível de RAID',
|
||||
'Class:LogicalVolume/Attribute:raid_level+' => '',
|
||||
'Class:LogicalVolume/Attribute:size' => 'Tamanho',
|
||||
'Class:LogicalVolume/Attribute:size+' => '',
|
||||
@@ -766,9 +766,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:LogicalVolume/Attribute:storagesystem_name' => 'Nome do sistema de arquivos',
|
||||
'Class:LogicalVolume/Attribute:storagesystem_name+' => '',
|
||||
'Class:LogicalVolume/Attribute:servers_list' => 'Servidores',
|
||||
'Class:LogicalVolume/Attribute:servers_list+' => 'Todos os servidores usando esse volume',
|
||||
'Class:LogicalVolume/Attribute:servers_list+' => 'Todos os Servidores usando este Volume lógico',
|
||||
'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Dispositivos virtuais',
|
||||
'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Todos os dispositivos virtuais usando esse volume',
|
||||
'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Todos os Dispositivos virtuais usando este Volume lógico',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -776,7 +776,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkServerToVolume' => 'Link Servidor / Volume',
|
||||
'Class:lnkServerToVolume' => 'Relação entre Servidor / Volume',
|
||||
'Class:lnkServerToVolume+' => '',
|
||||
'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkServerToVolume/Attribute:volume_id' => 'Volume',
|
||||
@@ -796,7 +796,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkVirtualDeviceToVolume' => 'Link Dispositivo Virtual / Volume',
|
||||
'Class:lnkVirtualDeviceToVolume' => 'Relação entre Dispositivo virtual / Volume',
|
||||
'Class:lnkVirtualDeviceToVolume+' => '',
|
||||
'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkVirtualDeviceToVolume/Attribute:volume_id' => 'Volume',
|
||||
@@ -816,7 +816,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkSanToDatacenterDevice' => 'Link SAN / Dispositivo Datacenter',
|
||||
'Class:lnkSanToDatacenterDevice' => 'Relação entre Switch SAN / Dispositivo de datacenter',
|
||||
'Class:lnkSanToDatacenterDevice+' => '',
|
||||
'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:san_id' => 'Switch SAN',
|
||||
@@ -827,9 +827,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_id+' => '',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_name' => 'Nome do dispositivo',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_name+' => '',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:san_port' => 'FC SAN',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:san_port' => 'FC do SAN',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Dispositivo de FC',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'FC do dispositivo',
|
||||
'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '',
|
||||
));
|
||||
|
||||
@@ -888,7 +888,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Software/Attribute:version' => 'Versão',
|
||||
'Class:Software/Attribute:version+' => '',
|
||||
'Class:Software/Attribute:documents_list' => 'Documentos',
|
||||
'Class:Software/Attribute:documents_list+' => 'Todos os documentos associados a este software',
|
||||
'Class:Software/Attribute:documents_list+' => 'Todos os Documentos associados a este Software',
|
||||
'Class:Software/Attribute:type' => 'Tipo',
|
||||
'Class:Software/Attribute:type+' => '',
|
||||
'Class:Software/Attribute:type/Value:DBServer' => 'Servidor de DB',
|
||||
@@ -902,11 +902,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Software/Attribute:type/Value:WebServer' => 'Servidor Web',
|
||||
'Class:Software/Attribute:type/Value:WebServer+' => 'Servidor Web',
|
||||
'Class:Software/Attribute:softwareinstance_list' => 'Instâncias de Software',
|
||||
'Class:Software/Attribute:softwareinstance_list+' => 'Todas as instâncias software para esse software',
|
||||
'Class:Software/Attribute:softwareinstance_list+' => 'Todas as Instâncias de software para este Software',
|
||||
'Class:Software/Attribute:softwarepatch_list' => 'Atualizações de software',
|
||||
'Class:Software/Attribute:softwarepatch_list+' => 'Todas as atualizações para esse software',
|
||||
'Class:Software/Attribute:softwarelicence_list' => 'Licenças de Software',
|
||||
'Class:Software/Attribute:softwarelicence_list+' => 'Todas as licenças software para esse software',
|
||||
'Class:Software/Attribute:softwarepatch_list+' => 'Todas as Atualizações para este Software',
|
||||
'Class:Software/Attribute:softwarelicence_list' => 'Licenças de software',
|
||||
'Class:Software/Attribute:softwarelicence_list+' => 'Todas as Licenças de software para este Software',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -919,7 +919,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Patch/Attribute:name' => 'Nome',
|
||||
'Class:Patch/Attribute:name+' => '',
|
||||
'Class:Patch/Attribute:documents_list' => 'Documentos',
|
||||
'Class:Patch/Attribute:documents_list+' => 'Todos os documentos associados à esta atualização',
|
||||
'Class:Patch/Attribute:documents_list+' => 'Todos os Documentos associados à esta Atualização',
|
||||
'Class:Patch/Attribute:description' => 'Descrição',
|
||||
'Class:Patch/Attribute:description+' => '',
|
||||
'Class:Patch/Attribute:finalclass' => 'Tipo',
|
||||
@@ -934,7 +934,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:OSPatch' => 'Atualização de SO',
|
||||
'Class:OSPatch+' => '',
|
||||
'Class:OSPatch/Attribute:functionalcis_list' => 'Dispositivos',
|
||||
'Class:OSPatch/Attribute:functionalcis_list+' => 'Todos os sistemas onde essa atualização está instalada',
|
||||
'Class:OSPatch/Attribute:functionalcis_list+' => 'Todos os sistemas onde essa Atualização de SO está instalada',
|
||||
'Class:OSPatch/Attribute:osversion_id' => 'Versão do SO',
|
||||
'Class:OSPatch/Attribute:osversion_id+' => '',
|
||||
'Class:OSPatch/Attribute:osversion_name' => 'Nome da versão do SO',
|
||||
@@ -952,8 +952,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:SoftwarePatch/Attribute:software_id+' => '',
|
||||
'Class:SoftwarePatch/Attribute:software_name' => 'Nome do software',
|
||||
'Class:SoftwarePatch/Attribute:software_name+' => '',
|
||||
'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Instâncias do Software',
|
||||
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Todos os sistemas onde essa atualização de software está instalada',
|
||||
'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Instâncias de software',
|
||||
'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Todos os sistemas onde essa Atualização de software está instalada',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -966,7 +966,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Licence/Attribute:name' => 'Nome',
|
||||
'Class:Licence/Attribute:name+' => '',
|
||||
'Class:Licence/Attribute:documents_list' => 'Documentos',
|
||||
'Class:Licence/Attribute:documents_list+' => 'Todos os documentos associados à esta licença',
|
||||
'Class:Licence/Attribute:documents_list+' => 'Todos os Documentos associados à esta Licença',
|
||||
'Class:Licence/Attribute:org_id' => 'Organização',
|
||||
'Class:Licence/Attribute:org_id+' => '',
|
||||
'Class:Licence/Attribute:organization_name' => 'Nome da organização',
|
||||
@@ -1003,10 +1003,10 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:OSLicence/Attribute:osversion_id+' => '',
|
||||
'Class:OSLicence/Attribute:osversion_name' => 'Nome da versão do SO',
|
||||
'Class:OSLicence/Attribute:osversion_name+' => '',
|
||||
'Class:OSLicence/Attribute:virtualmachines_list' => 'Máquinas virtuais',
|
||||
'Class:OSLicence/Attribute:virtualmachines_list+' => 'Todas as máquinas virtuais onde essa licença é utilizada',
|
||||
'Class:OSLicence/Attribute:servers_list' => 'servidores',
|
||||
'Class:OSLicence/Attribute:servers_list+' => 'Todos os servidores onde essa licença é utilizada',
|
||||
'Class:OSLicence/Attribute:virtualmachines_list' => 'Máquinas virtuais (VMs)',
|
||||
'Class:OSLicence/Attribute:virtualmachines_list+' => 'Todas as Máquinas virtuais (VMs) onde essa Licença é utilizada',
|
||||
'Class:OSLicence/Attribute:servers_list' => 'Servidores',
|
||||
'Class:OSLicence/Attribute:servers_list+' => 'Todos os Servidores onde essa Licença é utilizada',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1014,15 +1014,15 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:SoftwareLicence' => 'Licença de software',
|
||||
'Class:SoftwareLicence' => 'Licença de Software',
|
||||
'Class:SoftwareLicence+' => '',
|
||||
'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:SoftwareLicence/Attribute:software_id' => 'Software',
|
||||
'Class:SoftwareLicence/Attribute:software_id+' => '',
|
||||
'Class:SoftwareLicence/Attribute:software_name' => 'Nome do software',
|
||||
'Class:SoftwareLicence/Attribute:software_name+' => '',
|
||||
'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Instâncias do software',
|
||||
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Todos os sistemas onde essa licença é utilizada',
|
||||
'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Instâncias de software',
|
||||
'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Todos os sistemas onde esta Licença é utilizada',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1030,7 +1030,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDocumentToLicence' => 'Link Documento / Licença',
|
||||
'Class:lnkDocumentToLicence' => 'Relação entre Documento / Licença',
|
||||
'Class:lnkDocumentToLicence+' => '',
|
||||
'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDocumentToLicence/Attribute:licence_id' => 'Licença',
|
||||
@@ -1075,7 +1075,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Brand/Attribute:logo' => 'Logo~~',
|
||||
'Class:Brand/Attribute:logo+' => '~~',
|
||||
'Class:Brand/Attribute:physicaldevices_list' => 'Dispositivos físicos',
|
||||
'Class:Brand/Attribute:physicaldevices_list+' => 'Todos os dispositivos físicos correspondentes a esse(a) fabricante',
|
||||
'Class:Brand/Attribute:physicaldevices_list+' => 'Todos os Dispositivos físicos correspondentes a esse(a) Fabricante',
|
||||
'Class:Brand/UniquenessRule:name+' => 'O nome do(a) fabricante deve ser único',
|
||||
'Class:Brand/UniquenessRule:name' => 'Esse(a) fabricante já existe',
|
||||
));
|
||||
@@ -1133,7 +1133,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Model/Attribute:type/Value:Phone' => 'Telefone',
|
||||
'Class:Model/Attribute:type/Value:Phone+' => '',
|
||||
'Class:Model/Attribute:physicaldevices_list' => 'Dispositivo físico',
|
||||
'Class:Model/Attribute:physicaldevices_list+' => 'Todos os dispositivos físicos correspondentes a este modelo',
|
||||
'Class:Model/Attribute:physicaldevices_list+' => 'Todos os Dispositivos físicos correspondentes à este Modelo',
|
||||
'Class:Model/UniquenessRule:name_brand+' => 'O nome do modelo deve ser único',
|
||||
'Class:Model/UniquenessRule:name_brand' => 'Este modelo já existe',
|
||||
));
|
||||
@@ -1145,8 +1145,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:NetworkDeviceType' => 'Tipo de dispositivo de rede',
|
||||
'Class:NetworkDeviceType+' => '',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Dispositivo de rede',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Todos os dispositivo de rede correspondentes a este tipo',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Dispositivos de rede',
|
||||
'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Todos os Dispositivos de rede correspondentes a este Tipo',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -1154,7 +1154,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:IOSVersion' => 'Versão do IOS',
|
||||
'Class:IOSVersion' => 'Versão do SO',
|
||||
'Class:IOSVersion+' => '',
|
||||
'Class:IOSVersion/Attribute:brand_id' => 'Fabricante',
|
||||
'Class:IOSVersion/Attribute:brand_id+' => '',
|
||||
@@ -1167,7 +1167,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDocumentToPatch' => 'Link Documento / Atualização',
|
||||
'Class:lnkDocumentToPatch' => 'Relação entre Documento / Atualização',
|
||||
'Class:lnkDocumentToPatch+' => '',
|
||||
'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDocumentToPatch/Attribute:patch_id' => 'Atualização',
|
||||
@@ -1185,7 +1185,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Link Instância de Software / Atualização de Software',
|
||||
'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Relação entre Instância de software / Atualização de software',
|
||||
'Class:lnkSoftwareInstanceToSoftwarePatch+' => '',
|
||||
'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwarepatch_id' => 'Atualização de software',
|
||||
@@ -1203,7 +1203,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkFunctionalCIToOSPatch' => 'Link IC / Atualização de SO',
|
||||
'Class:lnkFunctionalCIToOSPatch' => 'Relação entre IC / Atualização de SO',
|
||||
'Class:lnkFunctionalCIToOSPatch+' => '',
|
||||
'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkFunctionalCIToOSPatch/Attribute:ospatch_id' => 'Atualização de SO',
|
||||
@@ -1221,7 +1221,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDocumentToSoftware' => 'Link Documento / Software',
|
||||
'Class:lnkDocumentToSoftware' => 'Relação entre Documento / Software',
|
||||
'Class:lnkDocumentToSoftware+' => '',
|
||||
'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDocumentToSoftware/Attribute:software_id' => 'Software',
|
||||
@@ -1285,7 +1285,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkSubnetToVLAN' => 'Link Sub-rede / VLAN',
|
||||
'Class:lnkSubnetToVLAN' => 'Relação entre Sub-rede / VLAN',
|
||||
'Class:lnkSubnetToVLAN+' => '',
|
||||
'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkSubnetToVLAN/Attribute:subnet_id' => 'Sub-rede',
|
||||
@@ -1305,7 +1305,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:NetworkInterface' => 'Placa de Rede',
|
||||
'Class:NetworkInterface' => 'Adaptador de Rede',
|
||||
'Class:NetworkInterface+' => '',
|
||||
'Class:NetworkInterface/Attribute:name' => 'Nome',
|
||||
'Class:NetworkInterface/Attribute:name+' => '',
|
||||
@@ -1355,7 +1355,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkPhysicalInterfaceToVLAN' => 'Link Interfaces físicas / VLAN',
|
||||
'Class:lnkPhysicalInterfaceToVLAN' => 'Relação entre Interface física / VLAN',
|
||||
'Class:lnkPhysicalInterfaceToVLAN+' => '',
|
||||
'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~',
|
||||
'Class:lnkPhysicalInterfaceToVLAN/Attribute:physicalinterface_id' => 'Interface física',
|
||||
@@ -1410,7 +1410,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkConnectableCIToNetworkDevice' => 'Link ConnectableCI / NetworkDevice',
|
||||
'Class:lnkConnectableCIToNetworkDevice' => 'Relação entre Dispositivo conectado / Dispositivo de rede',
|
||||
'Class:lnkConnectableCIToNetworkDevice+' => '',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkConnectableCIToNetworkDevice/Attribute:networkdevice_id' => 'Dispositivo de rede',
|
||||
@@ -1438,7 +1438,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkApplicationSolutionToFunctionalCI' => 'Link Solução de Aplicação / IC',
|
||||
'Class:lnkApplicationSolutionToFunctionalCI' => 'Relação entre Solução de aplicação / IC',
|
||||
'Class:lnkApplicationSolutionToFunctionalCI+' => '',
|
||||
'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkApplicationSolutionToFunctionalCI/Attribute:applicationsolution_id' => 'Solução de aplicação',
|
||||
@@ -1456,7 +1456,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkApplicationSolutionToBusinessProcess' => 'Link ApplicationSolution / BusinessProcess',
|
||||
'Class:lnkApplicationSolutionToBusinessProcess' => 'Relação entre Solução de aplicação / Processo de negócio',
|
||||
'Class:lnkApplicationSolutionToBusinessProcess+' => '',
|
||||
'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkApplicationSolutionToBusinessProcess/Attribute:businessprocess_id' => 'Processo de negócio',
|
||||
@@ -1500,7 +1500,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Group/Attribute:parent_name' => 'Nome',
|
||||
'Class:Group/Attribute:parent_name+' => '',
|
||||
'Class:Group/Attribute:ci_list' => 'ICs relacionados',
|
||||
'Class:Group/Attribute:ci_list+' => 'Todos os itens de configuração associados a este grupo',
|
||||
'Class:Group/Attribute:ci_list+' => 'Todos os Itens de configuração (IC) associados à este Grupo',
|
||||
'Class:Group/Attribute:parent_id_friendlyname' => 'Grupo pai',
|
||||
'Class:Group/Attribute:parent_id_friendlyname+' => '',
|
||||
));
|
||||
@@ -1510,7 +1510,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkGroupToCI' => 'Link Grupo / IC',
|
||||
'Class:lnkGroupToCI' => 'Relação entre Grupo / IC',
|
||||
'Class:lnkGroupToCI+' => '',
|
||||
'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkGroupToCI/Attribute:group_id' => 'Grupo',
|
||||
@@ -1548,10 +1548,10 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDocumentToFunctionalCI' => 'Link de Documento / IC',
|
||||
'Class:lnkDocumentToFunctionalCI' => 'Relação entre Documento / IC',
|
||||
'Class:lnkDocumentToFunctionalCI+' => '',
|
||||
'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDocumentToFunctionalCI/Attribute:functionalci_id' => 'ICs',
|
||||
'Class:lnkDocumentToFunctionalCI/Attribute:functionalci_id' => 'IC',
|
||||
'Class:lnkDocumentToFunctionalCI/Attribute:functionalci_id+' => '',
|
||||
'Class:lnkDocumentToFunctionalCI/Attribute:functionalci_name' => 'Nome do IC',
|
||||
'Class:lnkDocumentToFunctionalCI/Attribute:functionalci_name+' => '',
|
||||
@@ -1579,7 +1579,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:Licence+' => 'Lista de Licenças',
|
||||
'Menu:Patch' => 'Atualizações',
|
||||
'Menu:Patch+' => 'Lista de Atualizações',
|
||||
'Menu:ApplicationInstance' => 'Softwares Instalados',
|
||||
'Menu:ApplicationInstance' => 'Softwares instalados',
|
||||
'Menu:ApplicationInstance+' => 'Serviços de aplicações e servidores de banco de dados',
|
||||
'Menu:ConfigManagementHardware' => 'Gerenciamento de Infraestrutura',
|
||||
'Menu:Subnet' => 'Sub-redes',
|
||||
@@ -1595,9 +1595,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:PC' => 'Estação de Trabalho',
|
||||
'Menu:PC+' => 'Lista de Estações de Trabalho',
|
||||
'Menu:NewCI' => 'Novo IC',
|
||||
'Menu:NewCI+' => '',
|
||||
'Menu:NewCI+' => 'Novo Item de Configuração (IC)',
|
||||
'Menu:SearchCIs' => 'Pesquisar por ICs',
|
||||
'Menu:SearchCIs+' => '',
|
||||
'Menu:SearchCIs+' => 'Pesquisar por Itens de Configuração (ICs)',
|
||||
'Menu:ConfigManagement:Devices' => 'Dispositivos',
|
||||
'Menu:ConfigManagement:AllDevices' => 'Infraestrutura',
|
||||
'Menu:ConfigManagement:virtualization' => 'Virtualização',
|
||||
@@ -1605,7 +1605,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:ConfigManagement:SWAndApps' => 'Softwares e aplicações',
|
||||
'Menu:ConfigManagement:Misc' => 'Diversos',
|
||||
'Menu:Group' => 'Grupos de ICs',
|
||||
'Menu:Group+' => 'Lista de Grupos de ICs',
|
||||
'Menu:Group+' => 'Lista de Grupos de Itens de Configuração (ICs)',
|
||||
'Menu:OSVersion' => 'Versão do SO',
|
||||
'Menu:OSVersion+' => 'Lista de Versões do SO',
|
||||
'Menu:Software' => 'Catálogo de Software',
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:ConfigFileEditor' => 'Plain text editor~~',
|
||||
'Menu:ConfigFileEditor' => 'Configurações',
|
||||
'config-edit-title' => 'Editor do arquivo de configuração',
|
||||
'config-edit-intro' => 'Tenha cuidado ao editar o arquivo de configuração',
|
||||
'Menu:ConfigEditor' => 'Configurações',
|
||||
|
||||
@@ -10,8 +10,16 @@
|
||||
*
|
||||
*/
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'iTopUpdate:UI:PageTitle' => 'Atualização do '.ITOP_APPLICATION_SHORT, 'itop-core-update:UI:SelectUpdateFile' => 'Atualização do '.ITOP_APPLICATION_SHORT, 'itop-core-update:UI:ConfirmUpdate' => 'Atualização do '.ITOP_APPLICATION_SHORT, 'itop-core-update:UI:UpdateCoreFiles' => 'Atualização do '.ITOP_APPLICATION_SHORT, 'iTopUpdate:UI:MaintenanceModeActive' => 'O '.ITOP_APPLICATION_SHORT.' encontra-se em manutenção, nenhum usuário pode acessar a aplicação. Você precisa rodar o Setup ou restaurar os arquivos da aplicação para voltar ao modo normal',
|
||||
'itop-core-update:UI:UpdateDone' => 'Atualização do '.ITOP_APPLICATION_SHORT, 'itop-core-update/Operation:SelectUpdateFile/Title' => 'Atualização do '.ITOP_APPLICATION_SHORT, 'itop-core-update/Operation:ConfirmUpdate/Title' => 'Confirmar Atualização do '.ITOP_APPLICATION_SHORT, 'itop-core-update/Operation:UpdateCoreFiles/Title' => 'Aplicação em Atualização',
|
||||
'iTopUpdate:UI:PageTitle' => 'Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
'itop-core-update:UI:SelectUpdateFile' => 'Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
'itop-core-update:UI:ConfirmUpdate' => 'Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
'itop-core-update:UI:UpdateCoreFiles' => 'Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
'iTopUpdate:UI:MaintenanceModeActive' => 'O '.ITOP_APPLICATION_SHORT.' encontra-se em manutenção, nenhum usuário pode acessar a aplicação. Você precisa rodar o Setup ou restaurar os arquivos da aplicação para voltar ao modo normal',
|
||||
'itop-core-update:UI:UpdateDone' => 'Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
|
||||
'itop-core-update/Operation:SelectUpdateFile/Title' => 'Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
'itop-core-update/Operation:ConfirmUpdate/Title' => 'Confirmar Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
'itop-core-update/Operation:UpdateCoreFiles/Title' => 'Aplicação em Atualização',
|
||||
'itop-core-update/Operation:UpdateDone/Title' => 'Atualização do '.ITOP_APPLICATION_SHORT.' finalizada',
|
||||
'iTopUpdate:UI:SelectUpdateFile' => 'Escolha o arquivo de atualização para enviar',
|
||||
'iTopUpdate:UI:CheckUpdate' => 'Verificando arquivo de atualização',
|
||||
@@ -23,7 +31,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'iTopUpdate:UI:Cancel' => 'Cancelar',
|
||||
'iTopUpdate:UI:CannotUpdateNewModules' => '<b>Alguns módulos novos foram detectados</b>, uma atualização parcial não pode ser executada.</br>Siga o <a target="_blank" href="%2$s"> procedimento</a> para atualizar manualmente seu iTop. Você deve usar o <a href="%1$s">Setup</a> para atualizar a aplicação.',
|
||||
'iTopUpdate:UI:Continue' => 'Continuar',
|
||||
'iTopUpdate:UI:RunSetup' => 'Rodar Setup',
|
||||
'iTopUpdate:UI:RunSetup' => 'Executar Setup',
|
||||
'iTopUpdate:UI:WithDBBackup' => 'Backup do banco de dados',
|
||||
'iTopUpdate:UI:WithFilesBackup' => 'Backup dos arquivos da aplicação',
|
||||
'iTopUpdate:UI:WithoutBackup' => 'Backup não planejado',
|
||||
@@ -40,7 +48,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'iTopUpdate:UI:DoBackup:Label' => 'Backup de arquivos e banco de dados',
|
||||
'iTopUpdate:UI:DoBackup:Warning' => 'Backup não recomendado devido ao espaço em disco limitado',
|
||||
'iTopUpdate:UI:DiskFreeSpace' => 'Espaço em disco disponível',
|
||||
'iTopUpdate:UI:ItopDiskSpace' => 'Espaço em disco do '.ITOP_APPLICATION_SHORT, 'iTopUpdate:UI:DBDiskSpace' => 'Espaço em disco do banco de dados',
|
||||
'iTopUpdate:UI:ItopDiskSpace' => 'Espaço em disco do '.ITOP_APPLICATION_SHORT,
|
||||
'iTopUpdate:UI:DBDiskSpace' => 'Espaço em disco do banco de dados',
|
||||
'iTopUpdate:UI:FileUploadMaxSize' => 'Tamanho máximo de envio de arquivos',
|
||||
'iTopUpdate:UI:PostMaxSize' => 'PHP ini post_max_size: %1$s',
|
||||
'iTopUpdate:UI:UploadMaxFileSize' => 'PHP ini upload_max_filesize: %1$s',
|
||||
@@ -81,7 +90,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'iTopUpdate:UI:RestoreArchive' => 'Você pode restaurar sua aplicação com o arquivo \'%1$s\'',
|
||||
'iTopUpdate:UI:RestoreBackup' => 'Você pode restaurar seu banco de dados com \'%1$s\'',
|
||||
'iTopUpdate:UI:UpdateDone' => 'Atualizado com sucesso',
|
||||
'Menu:iTopUpdate' => 'Atualização do '.ITOP_APPLICATION_SHORT, 'Menu:iTopUpdate+' => 'Atualização do '.ITOP_APPLICATION_SHORT, 'Class:ModuleInstallation/Attribute:installed' => 'Instalado em',
|
||||
'Menu:iTopUpdate' => 'Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
'Menu:iTopUpdate+' => 'Atualização do '.ITOP_APPLICATION_SHORT,
|
||||
'Class:ModuleInstallation/Attribute:installed' => 'Instalado em',
|
||||
'Class:ModuleInstallation/Attribute:name' => 'Nome',
|
||||
'Class:ModuleInstallation/Attribute:version' => 'Versão',
|
||||
'Class:ModuleInstallation/Attribute:comment' => 'Comentário'
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'FilesInformation:Error:MissingFile' => 'Arquivo ausente: %1$s',
|
||||
'FilesInformation:Error:CorruptedFile' => 'Arquivo %1$s está corrompido',
|
||||
'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s ~~',
|
||||
'FilesInformation:Error:ListCorruptedFile' => 'Arquivo(s) corrompido(s): %1$s ',
|
||||
'FilesInformation:Error:CantWriteToFile' => 'Sem permissão de escrita no arquivo %1$s',
|
||||
));
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:iTopHub:Register' => 'Conectar ao iTop Hub',
|
||||
'Menu:iTopHub:Register+' => 'Vá para o iTop Hub para atualizar sua instância '.ITOP_APPLICATION_SHORT,
|
||||
'Menu:iTopHub:Register:Description' => '<p>Obtenha acesso à sua plataforma da comunidade iTop Hub!</br>Encontre todos os conteúdos e informações necessárias, gerencie suas instâncias '.ITOP_APPLICATION_SHORT.' por meio de ferramentas personalizadas & instale mais extensões.</br><br/>Ao conectar-se ao iTop hub a partir desta página, você enviará informações da sua instância '.ITOP_APPLICATION_SHORT.' ao iTop Hub.</p>',
|
||||
'Menu:iTopHub:MyExtensions' => 'Extensões Implantadas',
|
||||
'Menu:iTopHub:MyExtensions+' => 'Veja a lista de extensões implantadas nesta instância do '.ITOP_APPLICATION_SHORT,
|
||||
'Menu:iTopHub:MyExtensions' => 'Extensões Instaladas',
|
||||
'Menu:iTopHub:MyExtensions+' => 'Veja a lista de extensões instaladas nesta instância do '.ITOP_APPLICATION_SHORT,
|
||||
'Menu:iTopHub:BrowseExtensions' => 'Obter Extensões do iTop Hub',
|
||||
'Menu:iTopHub:BrowseExtensions+' => 'Navegue por mais extensões no iTop Hub',
|
||||
'Menu:iTopHub:BrowseExtensions:Description' => '<p>Visite a loja do iTop Hub, seu único lugar para encontrar extensões maravilhosas do '.ITOP_APPLICATION_SHORT.' !</br>Encontre as extensões que irão ajudá-lo a personalizar e adaptar o '.ITOP_APPLICATION_SHORT.' aos seus processos.</br><br/>Ao conectar-se ao iTop hub a partir desta página, você enviará informações da sua instância '.ITOP_APPLICATION_SHORT.' ao iTop Hub.</p>',
|
||||
@@ -65,5 +65,3 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'iTopHub:InstallationStatus:Installed' => 'Instalado',
|
||||
'iTopHub:InstallationStatus:Version_NotInstalled' => 'Versão %1$s <b>NÃO</b> instalada',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Incident/Attribute:related_request_list' => 'Solicitações filhas',
|
||||
'Class:Incident/Attribute:related_request_list+' => '',
|
||||
'Class:Incident/Attribute:child_incidents_list' => 'Incidentes filhos',
|
||||
'Class:Incident/Attribute:child_incidents_list+' => 'Todos os subincidentes associados a este incidente',
|
||||
'Class:Incident/Attribute:child_incidents_list+' => 'Todos os Subincidentes associados à este Incidente',
|
||||
'Class:Incident/Attribute:public_log' => 'Log público',
|
||||
'Class:Incident/Attribute:public_log+' => '',
|
||||
'Class:Incident/Attribute:user_satisfaction' => 'Satisfação do usuário',
|
||||
|
||||
@@ -22,7 +22,7 @@ Dict::Add('FR FR', 'French', 'Français', array(
|
||||
'Class:KnownError/Attribute:problem_id+' => '',
|
||||
'Class:KnownError/Attribute:problem_ref' => 'Rérérence problème lié',
|
||||
'Class:KnownError/Attribute:problem_ref+' => '',
|
||||
'Class:KnownError/Attribute:symptom' => 'Symptome',
|
||||
'Class:KnownError/Attribute:symptom' => 'Symptôme',
|
||||
'Class:KnownError/Attribute:symptom+' => '',
|
||||
'Class:KnownError/Attribute:root_cause' => 'Cause première',
|
||||
'Class:KnownError/Attribute:root_cause+' => '',
|
||||
|
||||
@@ -20,7 +20,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:KnownError/Attribute:cust_name+' => '',
|
||||
'Class:KnownError/Attribute:problem_id' => 'Problema relacionado',
|
||||
'Class:KnownError/Attribute:problem_id+' => '',
|
||||
'Class:KnownError/Attribute:problem_ref' => 'Ref. Problema relacionado',
|
||||
'Class:KnownError/Attribute:problem_ref' => 'Ref. problema relacionado',
|
||||
'Class:KnownError/Attribute:problem_ref+' => '',
|
||||
'Class:KnownError/Attribute:symptom' => 'Sintoma do erro',
|
||||
'Class:KnownError/Attribute:symptom+' => '',
|
||||
@@ -49,9 +49,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:KnownError/Attribute:version' => 'Versão',
|
||||
'Class:KnownError/Attribute:version+' => '',
|
||||
'Class:KnownError/Attribute:ci_list' => 'ICs',
|
||||
'Class:KnownError/Attribute:ci_list+' => 'Todos os itens de configuração associados a este erro conhecido',
|
||||
'Class:KnownError/Attribute:ci_list+' => 'Todos os Itens de Configuração (ICs) associados à este Erro conhecido',
|
||||
'Class:KnownError/Attribute:document_list' => 'Documentos',
|
||||
'Class:KnownError/Attribute:document_list+' => 'Todos os documentos associados a este erro conhecido',
|
||||
'Class:KnownError/Attribute:document_list+' => 'Todos os Documentos associados à este Erro conhecido',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -59,8 +59,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkErrorToFunctionalCI' => 'Link Erro Conhecido / IC',
|
||||
'Class:lnkErrorToFunctionalCI+' => 'Infraestrutura associada a este erro conhecido',
|
||||
'Class:lnkErrorToFunctionalCI' => 'Relação entre Erro conhecido / IC',
|
||||
'Class:lnkErrorToFunctionalCI+' => 'Itens de configuração (IC) associados à este Erro conhecido',
|
||||
'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id' => 'ICs',
|
||||
'Class:lnkErrorToFunctionalCI/Attribute:functionalci_id+' => '',
|
||||
@@ -79,7 +79,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDocumentToError' => 'Link Documentos / Erros',
|
||||
'Class:lnkDocumentToError' => 'Relação entre Documento / Erro',
|
||||
'Class:lnkDocumentToError+' => 'Uma ligação entre um documento e um erro conhecido',
|
||||
'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDocumentToError/Attribute:document_id' => 'Documento',
|
||||
|
||||
@@ -114,47 +114,6 @@ class ManageBrick extends PortalBrick
|
||||
self::ENUM_TILE_MODE_TOP,
|
||||
);
|
||||
|
||||
/** @var array $aPresentationData
|
||||
* @deprecated since 3.2.1
|
||||
*/
|
||||
public static $aPresentationData = array(
|
||||
self::ENUM_TILE_MODE_BADGE => array(
|
||||
'decorationCssClass' => 'fas fa-id-card fa-2x',
|
||||
'tileTemplate' => 'itop-portal-base/portal/templates/bricks/manage/tile-badge.html.twig',
|
||||
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_TABLE,
|
||||
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_LIST,
|
||||
'need_details' => true,
|
||||
),
|
||||
self::ENUM_TILE_MODE_TOP => array(
|
||||
'decorationCssClass' => 'fas fa-signal fa-rotate-270 fa-2x',
|
||||
'tileTemplate' => 'itop-portal-base/portal/templates/bricks/manage/tile-top-list.html.twig',
|
||||
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_TABLE,
|
||||
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_LIST,
|
||||
'need_details' => true,
|
||||
),
|
||||
self::ENUM_TILE_MODE_PIE => array(
|
||||
'decorationCssClass' => 'fas fa-chart-pie fa-2x',
|
||||
'tileTemplate' => 'itop-portal-base/portal/templates/bricks/manage/tile-chart.html.twig',
|
||||
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_CHART,
|
||||
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_PIE,
|
||||
'need_details' => false,
|
||||
),
|
||||
self::ENUM_TILE_MODE_BAR => array(
|
||||
'decorationCssClass' => 'fas fa-chart-bar fa-2x',
|
||||
'tileTemplate' => 'itop-portal-base/portal/templates/bricks/manage/tile-chart.html.twig',
|
||||
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_CHART,
|
||||
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_BAR,
|
||||
'need_details' => false,
|
||||
),
|
||||
self::ENUM_TILE_MODE_TEXT => array(
|
||||
'decorationCssClass' => 'fas fa-pen-square fa-2x',
|
||||
'tileTemplate' => self::DEFAULT_TILE_TEMPLATE_PATH,
|
||||
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_TABLE,
|
||||
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_LIST,
|
||||
'need_details' => true,
|
||||
),
|
||||
);
|
||||
|
||||
/** @var array $aDefaultTileData */
|
||||
private static array $aDefaultTileData = [
|
||||
self::ENUM_TILE_MODE_BADGE => [
|
||||
@@ -261,31 +220,6 @@ class ManageBrick extends PortalBrick
|
||||
$this->AddGrouping('areas', array('attribute' => 'finalclass'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the $sDisplayMode need objects details for rendering.
|
||||
*
|
||||
* @deprecated since 3.2.1
|
||||
*
|
||||
* @param string $sDisplayMode
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
static public function AreDetailsNeededForDisplayMode($sDisplayMode)
|
||||
{
|
||||
$bNeedDetails = false;
|
||||
foreach (static::$aPresentationData as $aData)
|
||||
{
|
||||
if ($aData['layoutDisplayMode'] === $sDisplayMode)
|
||||
{
|
||||
$bNeedDetails = $aData['need_details'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $bNeedDetails;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns if the $sLayoutMode need objects details for rendering.
|
||||
*
|
||||
@@ -300,29 +234,6 @@ class ManageBrick extends PortalBrick
|
||||
return static::$aDefaultLayoutData[$sLayoutMode]['need_details'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the page template path for the $sDisplayMode
|
||||
*
|
||||
* @deprecated since 3.2.1
|
||||
*
|
||||
* @param string $sDisplayMode
|
||||
* @return string
|
||||
*/
|
||||
static public function GetPageTemplateFromDisplayMode($sDisplayMode)
|
||||
{
|
||||
$sTemplate = static::DEFAULT_PAGE_TEMPLATE_PATH;
|
||||
foreach (static::$aPresentationData as $aData)
|
||||
{
|
||||
if ($aData['layoutDisplayMode'] === $sDisplayMode)
|
||||
{
|
||||
$sTemplate = $aData['layoutTemplate'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $sTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the page template path for the $sDisplayMode
|
||||
*
|
||||
@@ -450,14 +361,6 @@ class ManageBrick extends PortalBrick
|
||||
return $this->sTileMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 3.2.1
|
||||
*/
|
||||
public function GetDecorationCssClass()
|
||||
{
|
||||
return static::$aPresentationData[$this->sTileMode]['decorationCssClass'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 3.2.1
|
||||
*
|
||||
@@ -482,23 +385,6 @@ class ManageBrick extends PortalBrick
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since 3.2.1
|
||||
*
|
||||
* @param string $sTileMode
|
||||
*
|
||||
* @return string[] parameters for specified type, default parameters if type is invalid
|
||||
*/
|
||||
public function GetPresentationDataForTileMode($sTileMode)
|
||||
{
|
||||
if (isset(static::$aPresentationData[$sTileMode]))
|
||||
{
|
||||
return static::$aPresentationData[$sTileMode];
|
||||
}
|
||||
|
||||
return static::$aPresentationData[static::DEFAULT_TILE_MODE];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
@@ -587,7 +473,7 @@ class ManageBrick extends PortalBrick
|
||||
|
||||
/**
|
||||
* Returns the default lists length to display
|
||||
*
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function GetDefaultListLength()
|
||||
@@ -597,9 +483,9 @@ class ManageBrick extends PortalBrick
|
||||
|
||||
/**
|
||||
* Sets the default lists length to display
|
||||
*
|
||||
*
|
||||
* @param int $iDefaultListLength
|
||||
*
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetDefaultListLength($iDefaultListLength) {
|
||||
|
||||
@@ -86,8 +86,6 @@ abstract class PortalBrick extends AbstractBrick
|
||||
protected $sDecorationClassHome;
|
||||
/** @var string $sDecorationClassNavigationMenu */
|
||||
protected $sDecorationClassNavigationMenu;
|
||||
/** @var string $sTileTemplatePath @deprecated since 3.2.1 */
|
||||
protected $sTileTemplatePath;
|
||||
/** @var string|null $sTileControllerAction */
|
||||
protected $sTileControllerAction;
|
||||
/** @var string $sOpeningTarget */
|
||||
@@ -136,9 +134,6 @@ abstract class PortalBrick extends AbstractBrick
|
||||
$this->bVisibleNavigationMenu = static::DEFAULT_VISIBLE_NAVIGATION_MENU;
|
||||
$this->sDecorationClassHome = static::DEFAULT_DECORATION_CLASS_HOME;
|
||||
$this->sDecorationClassNavigationMenu = static::DEFAULT_DECORATION_CLASS_NAVIGATION_MENU;
|
||||
// BEGIN cleaning 3.2.1 deprecated
|
||||
$this->sTileTemplatePath = static::DEFAULT_TILE_TEMPLATE_PATH;
|
||||
// END cleaning 3.2.1 deprecated
|
||||
$this->sTileControllerAction = static::DEFAULT_TILE_CONTROLLER_ACTION;
|
||||
$this->sOpeningTarget = static::DEFAULT_OPENING_TARGET;
|
||||
}
|
||||
@@ -263,18 +258,6 @@ abstract class PortalBrick extends AbstractBrick
|
||||
return $this->sTileControllerAction;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the brick tile template path
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @deprecated since 3.2.1 use GetTemplatePath('tile') instead
|
||||
*/
|
||||
public function GetTileTemplatePath()
|
||||
{
|
||||
return $this->GetTemplatePath('tile');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the brick's objects opening target (modal, new tab, current window)
|
||||
*
|
||||
@@ -439,23 +422,6 @@ abstract class PortalBrick extends AbstractBrick
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the brick tile template path
|
||||
*
|
||||
* @param string $sTileTemplatePath
|
||||
*
|
||||
* @return \Combodo\iTop\Portal\Brick\PortalBrick
|
||||
*
|
||||
* @deprecated since 3.2.1 use SetTemplatePath('tile') instead
|
||||
*/
|
||||
public function SetTileTemplatePath($sTileTemplatePath)
|
||||
{
|
||||
$this->sTileTemplatePath = $sTileTemplatePath;
|
||||
$this->SetTemplatePath('tile', $sTileTemplatePath);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the brick tile controller action
|
||||
*
|
||||
|
||||
@@ -49,45 +49,6 @@ class ApplicationHelper
|
||||
/** @var bool FORM_DEFAULT_ALWAYS_SHOW_SUBMIT */
|
||||
const FORM_DEFAULT_ALWAYS_SHOW_SUBMIT = false;
|
||||
|
||||
/**
|
||||
* Loads classes from the base portal
|
||||
*
|
||||
* @param string $sScannedDir Directory to load the files from
|
||||
* @param string $sFilePattern Pattern of files to load
|
||||
* @param string $sType Type of files to load, used only in the Exception message, can be anything
|
||||
*
|
||||
* @throws \Exception
|
||||
* @deprecated Since 2.7.0
|
||||
*
|
||||
*/
|
||||
public static function LoadClasses($sScannedDir, $sFilePattern, $sType)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod();
|
||||
@trigger_error(
|
||||
sprintf(
|
||||
'Usage of legacy LoadClasses is deprecated. You should rely on autoloading (and therefore follow PSR4).',
|
||||
__FILE__
|
||||
),
|
||||
E_USER_DEPRECATED
|
||||
);
|
||||
|
||||
// Loading classes from base portal
|
||||
foreach (scandir($sScannedDir) as $sFile)
|
||||
{
|
||||
if (strpos($sFile, $sFilePattern) !== false && file_exists($sFilepath = $sScannedDir.'/'.$sFile))
|
||||
{
|
||||
try
|
||||
{
|
||||
require_once $sFilepath;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
throw new Exception('Error while trying to load '.$sType.' '.$sFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the brick's security from the OQL queries to profiles arrays
|
||||
*
|
||||
|
||||
@@ -105,22 +105,4 @@ class Kernel extends BaseKernel
|
||||
$routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS);
|
||||
$routes->import($confDir.'/{routes}'.self::CONFIG_EXTS);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if a given class name belongs to an active bundle.
|
||||
*
|
||||
* @param string $class A class name
|
||||
*
|
||||
* @return void true if the class belongs to an active bundle, false otherwise
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @deprecated Deprecated since version 2.6, to be removed in 3.0.
|
||||
*/
|
||||
public function isClassInActiveBundle($class)
|
||||
{
|
||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod();
|
||||
// TODO: Implement isClassInActiveBundle() method.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,8 @@
|
||||
{% if aTilesRendering[brick.GetId] is defined %}
|
||||
{{ aTilesRendering[brick.GetId]|raw }}
|
||||
{% else %}
|
||||
{% include '' ~ brick.GetTileTemplatePath with {brick: brick} %}
|
||||
{% set twigPath = brick.GetTemplatePath('tile') %}
|
||||
{% include '' ~ twigPath with {brick: brick} %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
@@ -162,6 +162,8 @@
|
||||
<script type="text/javascript" src="{{ app['combodo.portal.base.absolute_url'] ~ 'js/portal-clipboard.js'|add_itop_version }}"></script>
|
||||
{# User Preferences #}
|
||||
<script type="text/javascript" src="{{ app['combodo.portal.base.absolute_url'] ~ 'js/user_preferences.js'|add_itop_version }}"></script>
|
||||
{# Polyfill for custom elements #}
|
||||
<script type="text/javascript" src="{{ app['combodo.absolute_url'] ~ 'node_modules/@ungap/custom-elements/es.js'|add_itop_version }}"></script>
|
||||
{# custom elements #}
|
||||
<script type="text/javascript" src="{{ app['combodo.portal.base.absolute_url'] ~ 'js/custom_elements/base_element.js'|add_itop_version }}"></script>
|
||||
<script type="text/javascript" src="{{ app['combodo.portal.base.absolute_url'] ~ 'js/custom_elements/tile_element.js'|add_itop_version }}"></script>
|
||||
|
||||
@@ -97,11 +97,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Problem/Attribute:resolution_date' => 'Data de solução',
|
||||
'Class:Problem/Attribute:resolution_date+' => '',
|
||||
'Class:Problem/Attribute:knownerrors_list' => 'Erros conhecidos',
|
||||
'Class:Problem/Attribute:knownerrors_list+' => 'Todos os erros conhecidos associados a este problema',
|
||||
'Class:Problem/Attribute:knownerrors_list+' => 'Todos os Erros conhecidos associados à este Problema',
|
||||
'Class:Problem/Attribute:related_request_list' => 'Solicitações relacionadas',
|
||||
'Class:Problem/Attribute:related_request_list+' => 'Todas as solicitações associadas a este problema',
|
||||
'Class:Problem/Attribute:related_request_list+' => 'Todas as Solicitações associados à este Problema',
|
||||
'Class:Problem/Attribute:related_incident_list' => 'Incidentes relacionados',
|
||||
'Class:Problem/Attribute:related_incident_list+' => 'Todos os incidentes associados a este problema',
|
||||
'Class:Problem/Attribute:related_incident_list+' => 'Todos os Incidentes associados à este Problema',
|
||||
'Class:Problem/Stimulus:ev_assign' => 'Atribuir',
|
||||
'Class:Problem/Stimulus:ev_assign+' => '',
|
||||
'Class:Problem/Stimulus:ev_reassign' => 'Reatribuir',
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
*/
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:RequestManagement' => 'Gerenciamento de Solicitações',
|
||||
'Menu:RequestManagement+' => 'Gerenciamento de Solicitações',
|
||||
'Menu:RequestManagementProvider' => 'Solicitações a provedores',
|
||||
'Menu:RequestManagementProvider+' => 'Solicitações a provedores',
|
||||
'Menu:RequestManagement+' => '',
|
||||
'Menu:RequestManagementProvider' => 'Solicitações a provedores(as)',
|
||||
'Menu:RequestManagementProvider+' => '',
|
||||
'Menu:UserRequest:Provider' => 'Solicitações abertas transferidas a provedores',
|
||||
'Menu:UserRequest:Provider+' => 'Solicitações abertas transferidas a provedores',
|
||||
'Menu:UserRequest:Provider+' => '',
|
||||
'Menu:UserRequest:Overview' => 'Visão geral',
|
||||
'Menu:UserRequest:Overview+' => 'Visão geral',
|
||||
'Menu:NewUserRequest' => 'Nova solicitação',
|
||||
@@ -24,8 +24,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:SearchUserRequests+' => 'Pesquisar por solicitações',
|
||||
'Menu:UserRequest:Shortcuts' => 'Atalhos',
|
||||
'Menu:UserRequest:Shortcuts+' => '',
|
||||
'Menu:UserRequest:MyRequests' => 'Solicitações abertas por mim',
|
||||
'Menu:UserRequest:MyRequests+' => 'Solicitações abertas por mim (como Agente)',
|
||||
'Menu:UserRequest:MyRequests' => 'Solicitações atribuídas a mim',
|
||||
'Menu:UserRequest:MyRequests+' => 'Solicitações atribuídas a mim (como Agente)',
|
||||
'Menu:UserRequest:MySupportRequests' => 'Minhas solicitações de suporte',
|
||||
'Menu:UserRequest:MySupportRequests+' => 'Minhas solicitações de suporte',
|
||||
'Menu:UserRequest:EscalatedRequests' => 'Solicitações escalonados',
|
||||
@@ -159,7 +159,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:UserRequest/Attribute:tto' => 'TTO',
|
||||
'Class:UserRequest/Attribute:tto+' => 'Tempo para atribuição (TTO)',
|
||||
'Class:UserRequest/Attribute:ttr' => 'TTR',
|
||||
'Class:UserRequest/Attribute:ttr+' => 'Tempo para solução (TTR)',
|
||||
'Class:UserRequest/Attribute:ttr+' => 'Tempo para resolução (TTR)',
|
||||
'Class:UserRequest/Attribute:tto_escalation_deadline' => 'Prazo determinado de atribuição (TTO)',
|
||||
'Class:UserRequest/Attribute:tto_escalation_deadline+' => 'Prazo determinado de Tempo para atribuição (TTO)',
|
||||
'Class:UserRequest/Attribute:sla_tto_passed' => 'SLA TTO superado',
|
||||
@@ -172,7 +172,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:UserRequest/Attribute:sla_ttr_passed+' => 'Tempo para solução (TTR) do Acordo de Nível de Serviço (ANS) superado',
|
||||
'Class:UserRequest/Attribute:sla_ttr_over' => 'SLA TTR ultrapassado',
|
||||
'Class:UserRequest/Attribute:sla_ttr_over+' => 'Tempo para solução (TTR) do Acordo de Nível de Serviço (ANS) ultrapassado',
|
||||
'Class:UserRequest/Attribute:time_spent' => 'Tempo de solução',
|
||||
'Class:UserRequest/Attribute:time_spent' => 'Tempo de resolução',
|
||||
'Class:UserRequest/Attribute:time_spent+' => '',
|
||||
'Class:UserRequest/Attribute:resolution_code' => 'Código da solução',
|
||||
'Class:UserRequest/Attribute:resolution_code+' => '',
|
||||
@@ -198,17 +198,17 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:UserRequest/Attribute:parent_request_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_incident_id' => 'Incidente pai',
|
||||
'Class:UserRequest/Attribute:parent_incident_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_ref' => 'Ref. Solitação pai',
|
||||
'Class:UserRequest/Attribute:parent_request_ref' => 'Ref. solitação pai',
|
||||
'Class:UserRequest/Attribute:parent_request_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_problem_id' => 'Problema pai',
|
||||
'Class:UserRequest/Attribute:parent_problem_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref' => 'Ref. Problema pai',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref' => 'Ref. problema pai',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_change_id' => 'Mudança pai',
|
||||
'Class:UserRequest/Attribute:parent_change_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_change_ref' => 'Ref. Mudança pai',
|
||||
'Class:UserRequest/Attribute:parent_change_ref' => 'Ref. mudança pai',
|
||||
'Class:UserRequest/Attribute:parent_change_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_incident_ref' => 'Ref. Incidente pai',
|
||||
'Class:UserRequest/Attribute:parent_incident_ref' => 'Ref. incidente pai',
|
||||
'Class:UserRequest/Attribute:parent_incident_ref+' => '',
|
||||
'Class:UserRequest/Attribute:related_request_list' => 'Subsolicitações',
|
||||
'Class:UserRequest/Attribute:related_request_list+' => 'Todas as solicitações associadas à esta solicitação pai',
|
||||
@@ -253,8 +253,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Aguardar por aprovação',
|
||||
'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '',
|
||||
'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Não é possível atribuir a solicitação pai a própria solicitação',
|
||||
'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets',
|
||||
'Class:UserRequest/Method:ResolveChildTickets+' => 'Conecte a solução a pedidos filhos (ev_autoresolve) e alinhe as seguintes características da requisição: serviço, equipe, agente, info de solução',
|
||||
'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets (resolver solicitações filhas)',
|
||||
'Class:UserRequest/Method:ResolveChildTickets+' => 'Conecte a solução a solicitações filhas (ev_autoresolve) e alinhe as seguintes características da requisição: serviço, equipe, agente, info de solução',
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
*/
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:RequestManagement' => 'Gerenciamento de Solicitações',
|
||||
'Menu:RequestManagement+' => 'Gerenciamento de Solicitações',
|
||||
'Menu:RequestManagementProvider' => 'Solicitações a provedores',
|
||||
'Menu:RequestManagementProvider+' => 'Solicitações a provedores',
|
||||
'Menu:RequestManagement+' => '',
|
||||
'Menu:RequestManagementProvider' => 'Solicitações a provedores(as)',
|
||||
'Menu:RequestManagementProvider+' => '',
|
||||
'Menu:UserRequest:Provider' => 'Solicitações abertas transferidas a provedores',
|
||||
'Menu:UserRequest:Provider+' => 'Solicitações abertas transferidas a provedores',
|
||||
'Menu:UserRequest:Overview' => 'Visão geral',
|
||||
@@ -24,8 +24,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:SearchUserRequests+' => 'Pesquisar por solicitações',
|
||||
'Menu:UserRequest:Shortcuts' => 'Atalhos',
|
||||
'Menu:UserRequest:Shortcuts+' => '',
|
||||
'Menu:UserRequest:MyRequests' => 'Solicitações abertas por mim',
|
||||
'Menu:UserRequest:MyRequests+' => 'Solicitações abertas por mim (como Agente)',
|
||||
'Menu:UserRequest:MyRequests' => 'Solicitações atribuídas a mim',
|
||||
'Menu:UserRequest:MyRequests+' => 'Solicitações atribuídas a mim (como Agente)',
|
||||
'Menu:UserRequest:MySupportRequests' => 'Minhas solicitações de suporte',
|
||||
'Menu:UserRequest:MySupportRequests+' => 'Minhas solicitações de suporte',
|
||||
'Menu:UserRequest:EscalatedRequests' => 'Solicitações escalonadas',
|
||||
@@ -165,7 +165,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:UserRequest/Attribute:tto' => 'TTO',
|
||||
'Class:UserRequest/Attribute:tto+' => 'Tempo para atribuição (Time To Own)',
|
||||
'Class:UserRequest/Attribute:ttr' => 'TTR',
|
||||
'Class:UserRequest/Attribute:ttr+' => 'Tempo para solução (Time To Resolution)',
|
||||
'Class:UserRequest/Attribute:ttr+' => 'Tempo para resolução (Time To Resolution)',
|
||||
'Class:UserRequest/Attribute:tto_escalation_deadline' => 'Prazo determinado de atribuição (TTO)',
|
||||
'Class:UserRequest/Attribute:tto_escalation_deadline+' => 'Prazo determinado de Tempo para atribuição (TTO)',
|
||||
'Class:UserRequest/Attribute:sla_tto_passed' => 'SLA TTO superado',
|
||||
@@ -202,15 +202,15 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:UserRequest/Attribute:pending_reason+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_id' => 'Solicitação pai',
|
||||
'Class:UserRequest/Attribute:parent_request_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_request_ref' => 'Ref. Solicitação pai',
|
||||
'Class:UserRequest/Attribute:parent_request_ref' => 'Ref. solicitação pai',
|
||||
'Class:UserRequest/Attribute:parent_request_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_problem_id' => 'Problema pai',
|
||||
'Class:UserRequest/Attribute:parent_problem_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref' => 'Ref. Problema pai',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref' => 'Ref. problema pai',
|
||||
'Class:UserRequest/Attribute:parent_problem_ref+' => '',
|
||||
'Class:UserRequest/Attribute:parent_change_id' => 'Mudança pai',
|
||||
'Class:UserRequest/Attribute:parent_change_id+' => '',
|
||||
'Class:UserRequest/Attribute:parent_change_ref' => 'Ref. Mudança pai',
|
||||
'Class:UserRequest/Attribute:parent_change_ref' => 'Ref. mudança',
|
||||
'Class:UserRequest/Attribute:parent_change_ref+' => '',
|
||||
'Class:UserRequest/Attribute:related_request_list' => 'Subsolicitações',
|
||||
'Class:UserRequest/Attribute:related_request_list+' => 'Todas as solicitações associadas à esta solicitação pai',
|
||||
|
||||
@@ -17,7 +17,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Contratos por nível serviço',
|
||||
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contratos por status',
|
||||
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contratos terminando em menos de 30 dias',
|
||||
'Menu:ProviderContract' => 'Contratos de provedores',
|
||||
'Menu:ProviderContract' => 'Contratos de provedores(as)',
|
||||
'Menu:ProviderContract+' => '',
|
||||
'Menu:CustomerContract' => 'Contratos de clientes',
|
||||
'Menu:CustomerContract+' => '',
|
||||
@@ -86,9 +86,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Contract/Attribute:organization_name' => 'Nome da organização',
|
||||
'Class:Contract/Attribute:organization_name+' => 'Nome comum',
|
||||
'Class:Contract/Attribute:contacts_list' => 'Contatos',
|
||||
'Class:Contract/Attribute:contacts_list+' => 'Todos os contatos para este contrato de cliente',
|
||||
'Class:Contract/Attribute:contacts_list+' => 'Todos os Contatos associados à este Contrato',
|
||||
'Class:Contract/Attribute:documents_list' => 'Documentos',
|
||||
'Class:Contract/Attribute:documents_list+' => 'Todos os documentos para este contrato de cliente',
|
||||
'Class:Contract/Attribute:documents_list+' => 'Todos os Documentos associados à este Contrato',
|
||||
'Class:Contract/Attribute:description' => 'Descrição',
|
||||
'Class:Contract/Attribute:description+' => '',
|
||||
'Class:Contract/Attribute:start_date' => 'Data de início',
|
||||
@@ -135,11 +135,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:CustomerContract' => 'Contrato de cliente',
|
||||
'Class:CustomerContract+' => '',
|
||||
'Class:CustomerContract/Attribute:services_list' => 'Serviços',
|
||||
'Class:CustomerContract/Attribute:services_list+' => 'Todos os serviços contratados para este contrato',
|
||||
'Class:CustomerContract/Attribute:services_list+' => 'Todos os Serviços contratados para este Contrato de cliente',
|
||||
'Class:CustomerContract/Attribute:functionalcis_list' => 'ICs',
|
||||
'Class:CustomerContract/Attribute:functionalcis_list+' => 'Todos os itens de configuração que são utilizados para a prestação deste contrato',
|
||||
'Class:CustomerContract/Attribute:functionalcis_list+' => 'Todos os Itens de Configuração (IC) que são utilizados para a prestação deste Contrato de cliente',
|
||||
'Class:CustomerContract/Attribute:providercontracts_list' => 'Contratos de provedores',
|
||||
'Class:CustomerContract/Attribute:providercontracts_list+' => 'Todos os contratos de provedores para suportar este contrato de cliente',
|
||||
'Class:CustomerContract/Attribute:providercontracts_list+' => 'Todos os Contratos de provedores para suportar este Contrato de cliente',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -147,10 +147,10 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ProviderContract' => 'Contrato de Provedor',
|
||||
'Class:ProviderContract' => 'Contrato de provedor',
|
||||
'Class:ProviderContract+' => '',
|
||||
'Class:ProviderContract/Attribute:functionalcis_list' => 'ICs',
|
||||
'Class:ProviderContract/Attribute:functionalcis_list+' => 'Todos os itens de configuração abrangidos por esse contrato',
|
||||
'Class:ProviderContract/Attribute:functionalcis_list+' => 'Todos os Itens de Configuração (IC) abrangidos por este Contrato',
|
||||
'Class:ProviderContract/Attribute:sla' => 'SLA',
|
||||
'Class:ProviderContract/Attribute:sla+' => 'Acordo de Nível de Serviço (ANS)',
|
||||
'Class:ProviderContract/Attribute:coverage' => 'Horário de serviço',
|
||||
@@ -162,7 +162,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkContactToContract' => 'Link Contato / Contrato',
|
||||
'Class:lnkContactToContract' => 'Relação entre Contato / Contrato',
|
||||
'Class:lnkContactToContract+' => '',
|
||||
'Class:lnkContactToContract/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkContactToContract/Attribute:contract_id' => 'Contrato',
|
||||
@@ -180,7 +180,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkContractToDocument' => 'Link Contrato / Documento',
|
||||
'Class:lnkContractToDocument' => 'Relação entre Contrato / Documento',
|
||||
'Class:lnkContractToDocument+' => '',
|
||||
'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkContractToDocument/Attribute:contract_id' => 'Contrato',
|
||||
@@ -198,7 +198,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkFunctionalCIToProviderContract' => 'Link IC / Contrato de provedor',
|
||||
'Class:lnkFunctionalCIToProviderContract' => 'Relação entre IC / Contrato de provedor',
|
||||
'Class:lnkFunctionalCIToProviderContract+' => '',
|
||||
'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkFunctionalCIToProviderContract/Attribute:providercontract_id' => 'Contrato de provedor',
|
||||
@@ -223,7 +223,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ServiceFamily/Attribute:icon' => 'Ícone',
|
||||
'Class:ServiceFamily/Attribute:icon+' => '',
|
||||
'Class:ServiceFamily/Attribute:services_list' => 'Serviços',
|
||||
'Class:ServiceFamily/Attribute:services_list+' => 'Todos os serviços para essa categoria',
|
||||
'Class:ServiceFamily/Attribute:services_list+' => 'Todos os Serviços associados à esta Família de serviços',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -236,10 +236,10 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Service/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:Service/Attribute:name' => 'Nome',
|
||||
'Class:Service/Attribute:name+' => '',
|
||||
'Class:Service/Attribute:org_id' => 'Organização',
|
||||
'Class:Service/Attribute:org_id' => 'Provedor',
|
||||
'Class:Service/Attribute:org_id+' => '',
|
||||
'Class:Service/Attribute:organization_name' => 'Nome',
|
||||
'Class:Service/Attribute:organization_name+' => 'Nome comum',
|
||||
'Class:Service/Attribute:organization_name' => 'Nome do provedor',
|
||||
'Class:Service/Attribute:organization_name+' => '',
|
||||
'Class:Service/Attribute:description' => 'Descrição',
|
||||
'Class:Service/Attribute:description+' => '',
|
||||
'Class:Service/Attribute:servicefamily_id' => 'Família de serviços',
|
||||
@@ -247,23 +247,23 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Service/Attribute:servicefamily_name' => 'Nome da família de serviços',
|
||||
'Class:Service/Attribute:servicefamily_name+' => '',
|
||||
'Class:Service/Attribute:documents_list' => 'Documentos',
|
||||
'Class:Service/Attribute:documents_list+' => 'Todos os documentos associados a este serviço',
|
||||
'Class:Service/Attribute:documents_list+' => 'Todos os Documentos associados à este Serviço',
|
||||
'Class:Service/Attribute:contacts_list' => 'Contatos',
|
||||
'Class:Service/Attribute:contacts_list+' => 'Todos os contatos associados a este serviço',
|
||||
'Class:Service/Attribute:contacts_list+' => 'Todos os Contatos associados à este Serviço',
|
||||
'Class:Service/Attribute:status' => 'Status',
|
||||
'Class:Service/Attribute:status+' => '',
|
||||
'Class:Service/Attribute:status/Value:implementation' => 'Em homologação',
|
||||
'Class:Service/Attribute:status/Value:implementation+' => 'Em homologação',
|
||||
'Class:Service/Attribute:status/Value:implementation+' => '',
|
||||
'Class:Service/Attribute:status/Value:obsolete' => 'Obsoleto',
|
||||
'Class:Service/Attribute:status/Value:obsolete+' => '',
|
||||
'Class:Service/Attribute:status/Value:production' => 'Em produção',
|
||||
'Class:Service/Attribute:status/Value:production+' => '',
|
||||
'Class:Service/Attribute:icon' => 'Icon',
|
||||
'Class:Service/Attribute:icon' => 'Ícone',
|
||||
'Class:Service/Attribute:icon+' => '',
|
||||
'Class:Service/Attribute:customercontracts_list' => 'Contratos de clientes',
|
||||
'Class:Service/Attribute:customercontracts_list+' => 'Todos os contratos de clientes que contrataram esse serviço',
|
||||
'Class:Service/Attribute:customercontracts_list+' => 'Todos os Contratos de clientes que contrataram este Serviço',
|
||||
'Class:Service/Attribute:servicesubcategories_list' => 'Subcategorias de serviço',
|
||||
'Class:Service/Attribute:servicesubcategories_list+' => 'Todas as subcategorias associadas a esse serviço',
|
||||
'Class:Service/Attribute:servicesubcategories_list+' => 'Todas as Subcategorias de serviço associadas à este Serviço',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -271,7 +271,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDocumentToService' => 'Link Documento / Serviço',
|
||||
'Class:lnkDocumentToService' => 'Relação entre Documento / Serviço',
|
||||
'Class:lnkDocumentToService+' => '',
|
||||
'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDocumentToService/Attribute:service_id' => 'Serviço',
|
||||
@@ -289,7 +289,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkContactToService' => 'Link Contato / Serviço',
|
||||
'Class:lnkContactToService' => 'Relação entre Contato / Serviço',
|
||||
'Class:lnkContactToService+' => '',
|
||||
'Class:lnkContactToService/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkContactToService/Attribute:service_id' => 'Serviço',
|
||||
@@ -352,10 +352,10 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:SLA/Attribute:organization_name' => 'Nome da organização',
|
||||
'Class:SLA/Attribute:organization_name+' => '',
|
||||
'Class:SLA/Attribute:slts_list' => 'SLTs',
|
||||
'Class:SLA/Attribute:slts_list+' => 'Todos os Níveis Mínimos de Serviço (SLTs) para esse Acordo de Nível de Serviço (SLA)',
|
||||
'Class:SLA/Attribute:slts_list+' => 'Todos os Níveis Mínimos de Serviço (SLTs) para este Acordo de Nível de Serviço (SLA)',
|
||||
'Class:SLA/Attribute:customercontracts_list' => 'Contratos de clientes',
|
||||
'Class:SLA/Attribute:customercontracts_list+' => 'Todos os contratos de clientes utilizando esse Acordo de Nível de Serviço (SLA)',
|
||||
'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Não foi possível salvar o vínculo entre o Contrato do Cliente %1$s e Serviço %2$s : SLA já existe',
|
||||
'Class:SLA/Attribute:customercontracts_list+' => 'Todos os Contratos de clientes utilizando este Acordo de Nível de Serviço (SLA)',
|
||||
'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Não foi possível salvar o vínculo entre o Contrato de cliente %1$s e o Serviço %2$s : SLA já existe',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -404,7 +404,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkSLAToSLT' => 'Link SLA / SLT',
|
||||
'Class:lnkSLAToSLT' => 'Relação entre SLA / SLT',
|
||||
'Class:lnkSLAToSLT+' => '',
|
||||
'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkSLAToSLT/Attribute:sla_id' => 'SLA',
|
||||
@@ -432,7 +432,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkCustomerContractToService' => 'Link Contrato de cliente / Serviço',
|
||||
'Class:lnkCustomerContractToService' => 'Relação entre Contrato de cliente / Serviço',
|
||||
'Class:lnkCustomerContractToService+' => '',
|
||||
'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkCustomerContractToService/Attribute:customercontract_id' => 'Contrato de cliente',
|
||||
@@ -454,7 +454,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkCustomerContractToProviderContract' => 'Link Contrato de cliente / Contrato de provedor',
|
||||
'Class:lnkCustomerContractToProviderContract' => 'Relação entre Contrato de cliente / Contrato de provedor',
|
||||
'Class:lnkCustomerContractToProviderContract+' => '',
|
||||
'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkCustomerContractToProviderContract/Attribute:customercontract_id' => 'Contrato de cliente',
|
||||
@@ -472,7 +472,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkCustomerContractToFunctionalCI' => 'Link Contrato de cliente / IC',
|
||||
'Class:lnkCustomerContractToFunctionalCI' => 'Relação entre Contrato de cliente / IC',
|
||||
'Class:lnkCustomerContractToFunctionalCI+' => '',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkCustomerContractToFunctionalCI/Attribute:customercontract_id' => 'Contrato de cliente',
|
||||
@@ -494,16 +494,16 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:DeliveryModel+' => '',
|
||||
'Class:DeliveryModel/Attribute:name' => 'Nome',
|
||||
'Class:DeliveryModel/Attribute:name+' => '',
|
||||
'Class:DeliveryModel/Attribute:org_id' => 'Organização',
|
||||
'Class:DeliveryModel/Attribute:org_id' => 'Provedor',
|
||||
'Class:DeliveryModel/Attribute:org_id+' => '',
|
||||
'Class:DeliveryModel/Attribute:organization_name' => 'Nome da organização',
|
||||
'Class:DeliveryModel/Attribute:organization_name+' => '',
|
||||
'Class:DeliveryModel/Attribute:description' => 'Descrição',
|
||||
'Class:DeliveryModel/Attribute:description+' => '',
|
||||
'Class:DeliveryModel/Attribute:contacts_list' => 'Contatos',
|
||||
'Class:DeliveryModel/Attribute:contacts_list+' => 'Todos os contatos (Equipe e Pessoa) para esse Modelo de entrega',
|
||||
'Class:DeliveryModel/Attribute:contacts_list+' => 'Todos os Contatos (Equipes e Pessoas) associados à este Modelo de entrega',
|
||||
'Class:DeliveryModel/Attribute:customers_list' => 'Clientes',
|
||||
'Class:DeliveryModel/Attribute:customers_list+' => 'Todos os clientes com esse Modelo de entrega',
|
||||
'Class:DeliveryModel/Attribute:customers_list+' => 'Todos os clientes atendidos por este Modelo de entrega',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -511,7 +511,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDeliveryModelToContact' => 'Link Modelo de entrega / Contato',
|
||||
'Class:lnkDeliveryModelToContact' => 'Relação entre Modelo de entrega / Contato',
|
||||
'Class:lnkDeliveryModelToContact+' => '',
|
||||
'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Modelo de entrega',
|
||||
|
||||
@@ -17,8 +17,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Contratos por nível de serviço',
|
||||
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contratos por status',
|
||||
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contratos finalizando em menos de 30 dias',
|
||||
'Menu:ProviderContract' => 'Contratos de provedores',
|
||||
'Menu:ProviderContract+' => 'Lista de contratos de provedores',
|
||||
'Menu:ProviderContract' => 'Contratos de provedores(as)',
|
||||
'Menu:ProviderContract+' => 'Lista de contratos de provedores(as)',
|
||||
'Menu:CustomerContract' => 'Contratos de clientes',
|
||||
'Menu:CustomerContract+' => 'Lista de contratos de clientes',
|
||||
'Menu:ServiceSubcategory' => 'Subcategorias de serviços',
|
||||
@@ -77,9 +77,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Contract/Attribute:organization_name' => 'Nome da organização',
|
||||
'Class:Contract/Attribute:organization_name+' => '',
|
||||
'Class:Contract/Attribute:contacts_list' => 'Contatos',
|
||||
'Class:Contract/Attribute:contacts_list+' => 'Todos os contatos para este contrato com o cliente',
|
||||
'Class:Contract/Attribute:contacts_list+' => 'Todos os contatos associados à este contrato',
|
||||
'Class:Contract/Attribute:documents_list' => 'Documentos',
|
||||
'Class:Contract/Attribute:documents_list+' => 'Todos os documentos para este contrato com o cliente',
|
||||
'Class:Contract/Attribute:documents_list+' => 'Todos os documentos associados à este contrato',
|
||||
'Class:Contract/Attribute:description' => 'Descrição',
|
||||
'Class:Contract/Attribute:description+' => '',
|
||||
'Class:Contract/Attribute:start_date' => 'Data de início',
|
||||
@@ -125,7 +125,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:CustomerContract' => 'Contrato de Cliente',
|
||||
'Class:CustomerContract+' => '',
|
||||
'Class:CustomerContract/Attribute:services_list' => 'Serviços',
|
||||
'Class:CustomerContract/Attribute:services_list+' => 'Todos os serviços contratados para o presente contrato',
|
||||
'Class:CustomerContract/Attribute:services_list+' => 'Todos os serviços contratados para este contrato de cliente',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -136,7 +136,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ProviderContract' => 'Contrato de provedor',
|
||||
'Class:ProviderContract+' => '',
|
||||
'Class:ProviderContract/Attribute:functionalcis_list' => 'ICs',
|
||||
'Class:ProviderContract/Attribute:functionalcis_list+' => 'Todos os itens de configuração associados a este contrato',
|
||||
'Class:ProviderContract/Attribute:functionalcis_list+' => 'Todos os itens de configuração (ICs) associados a este contrato',
|
||||
'Class:ProviderContract/Attribute:sla' => 'SLA',
|
||||
'Class:ProviderContract/Attribute:sla+' => '',
|
||||
'Class:ProviderContract/Attribute:coverage' => 'Horário de serviço',
|
||||
@@ -154,7 +154,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkContactToContract' => 'Link Contato / Contrato',
|
||||
'Class:lnkContactToContract' => 'Relação entre Contato / Contrato',
|
||||
'Class:lnkContactToContract+' => '',
|
||||
'Class:lnkContactToContract/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkContactToContract/Attribute:contract_id' => 'Contrato',
|
||||
@@ -172,7 +172,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkContractToDocument' => 'Link Contrato / Documento',
|
||||
'Class:lnkContractToDocument' => 'Relação entre Contrato / Documento',
|
||||
'Class:lnkContractToDocument+' => '',
|
||||
'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkContractToDocument/Attribute:contract_id' => 'Contrato',
|
||||
@@ -190,14 +190,14 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ServiceFamily' => 'Família de Serviços',
|
||||
'Class:ServiceFamily' => 'Família de serviços',
|
||||
'Class:ServiceFamily+' => '',
|
||||
'Class:ServiceFamily/Attribute:name' => 'Nome',
|
||||
'Class:ServiceFamily/Attribute:name+' => '',
|
||||
'Class:ServiceFamily/Attribute:icon' => 'Ícone',
|
||||
'Class:ServiceFamily/Attribute:icon+' => '',
|
||||
'Class:ServiceFamily/Attribute:services_list' => 'Serviços',
|
||||
'Class:ServiceFamily/Attribute:services_list+' => 'Todos os serviços para essa categoria',
|
||||
'Class:ServiceFamily/Attribute:services_list+' => 'Todos os serviços associados à esta família de serviços',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -221,9 +221,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Service/Attribute:description' => 'Descrição',
|
||||
'Class:Service/Attribute:description+' => '',
|
||||
'Class:Service/Attribute:documents_list' => 'Documentos',
|
||||
'Class:Service/Attribute:documents_list+' => 'Todos os documentos associados a este serviço',
|
||||
'Class:Service/Attribute:documents_list+' => 'Todos os documentos associados à este serviço',
|
||||
'Class:Service/Attribute:contacts_list' => 'Contatos',
|
||||
'Class:Service/Attribute:contacts_list+' => 'Todos os contatos associados a este serviço',
|
||||
'Class:Service/Attribute:contacts_list+' => 'Todos os contatos associados à este serviço',
|
||||
'Class:Service/Attribute:status' => 'Status',
|
||||
'Class:Service/Attribute:status+' => '',
|
||||
'Class:Service/Attribute:status/Value:implementation' => 'Em homologação',
|
||||
@@ -239,9 +239,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Service/Attribute:providercontracts_list' => 'Contratos de provedores',
|
||||
'Class:Service/Attribute:providercontracts_list+' => 'Todos os contratos de provedores para suportar esse serviço',
|
||||
'Class:Service/Attribute:functionalcis_list' => 'Dependências de ICs',
|
||||
'Class:Service/Attribute:functionalcis_list+' => 'Todos os itens de configuração que são utilizados para a prestação deste serviço',
|
||||
'Class:Service/Attribute:functionalcis_list+' => 'Todos os itens de configuração (ICs) que são utilizados para a prestação deste serviço',
|
||||
'Class:Service/Attribute:servicesubcategories_list' => 'Subcategorias de serviço',
|
||||
'Class:Service/Attribute:servicesubcategories_list+' => 'Todas as subcategorias para esse serviço',
|
||||
'Class:Service/Attribute:servicesubcategories_list+' => 'Todas as subcategorias de serviço para esse serviço',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -249,7 +249,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDocumentToService' => 'Link Documento / Serviço',
|
||||
'Class:lnkDocumentToService' => 'Relação entre Documento / Serviço',
|
||||
'Class:lnkDocumentToService+' => '',
|
||||
'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDocumentToService/Attribute:service_id' => 'Serviço',
|
||||
@@ -267,7 +267,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkContactToService' => 'Link Contato / Serviço',
|
||||
'Class:lnkContactToService' => 'Relação entre Contato / Serviço',
|
||||
'Class:lnkContactToService+' => '',
|
||||
'Class:lnkContactToService/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkContactToService/Attribute:service_id' => 'Serviço',
|
||||
@@ -285,7 +285,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ServiceSubcategory' => 'Subcategorias de serviço',
|
||||
'Class:ServiceSubcategory' => 'Subcategoria de serviço',
|
||||
'Class:ServiceSubcategory+' => '',
|
||||
'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:ServiceSubcategory/Attribute:name' => 'Nome',
|
||||
@@ -323,15 +323,15 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:SLA/Attribute:name+' => '',
|
||||
'Class:SLA/Attribute:description' => 'Descrição',
|
||||
'Class:SLA/Attribute:description+' => '',
|
||||
'Class:SLA/Attribute:org_id' => 'Organização',
|
||||
'Class:SLA/Attribute:org_id' => 'Provedor',
|
||||
'Class:SLA/Attribute:org_id+' => '',
|
||||
'Class:SLA/Attribute:organization_name' => 'Nome da organização',
|
||||
'Class:SLA/Attribute:organization_name+' => '',
|
||||
'Class:SLA/Attribute:slts_list' => 'SLTs',
|
||||
'Class:SLA/Attribute:slts_list+' => 'Todos os Níveis Mínimos de Serviço (SLTs) para esse Acordo de Nível de Serviço (SLA)',
|
||||
'Class:SLA/Attribute:customercontracts_list' => 'Contratos de clientes',
|
||||
'Class:SLA/Attribute:customercontracts_list+' => 'Todos os contratos de clientes utilizando esse Acordo de Nível de Serviço (SLA)',
|
||||
'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Não foi possível salvar o vínculo entre o Contrato do Cliente "%1$s" e Serviço "%2$s": SLA já existe',
|
||||
'Class:SLA/Attribute:customercontracts_list+' => 'Todos os Contratos de clientes utilizando esse Acordo de Nível de Serviço (SLA)',
|
||||
'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Não foi possível salvar o vínculo entre o Contrato de cliente "%1$s" e o Serviço "%2$s": SLA já existe',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -382,7 +382,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkSLAToSLT' => 'Link SLA / SLT',
|
||||
'Class:lnkSLAToSLT' => 'Relação entre SLA / SLT',
|
||||
'Class:lnkSLAToSLT+' => '',
|
||||
'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkSLAToSLT/Attribute:sla_id' => 'SLA',
|
||||
@@ -410,7 +410,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkCustomerContractToService' => 'Link Contrato de cliente / Serviço',
|
||||
'Class:lnkCustomerContractToService' => 'Relação entre Contrato de cliente / Serviço',
|
||||
'Class:lnkCustomerContractToService+' => '',
|
||||
'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkCustomerContractToService/Attribute:customercontract_id' => 'Contrato de cliente',
|
||||
@@ -432,7 +432,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkProviderContractToService' => 'Link Contrato de provedor / Serviço',
|
||||
'Class:lnkProviderContractToService' => 'Relação entre Contrato de provedor / Serviço',
|
||||
'Class:lnkProviderContractToService+' => '',
|
||||
'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkProviderContractToService/Attribute:service_id' => 'Serviço',
|
||||
@@ -450,20 +450,20 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:DeliveryModel' => 'Modelo de Entrega',
|
||||
'Class:DeliveryModel' => 'Modelo de entrega',
|
||||
'Class:DeliveryModel+' => '',
|
||||
'Class:DeliveryModel/Attribute:name' => 'Nome',
|
||||
'Class:DeliveryModel/Attribute:name+' => 'Don\'t forget to add teams to this delivery model~~',
|
||||
'Class:DeliveryModel/Attribute:org_id' => 'Organização',
|
||||
'Class:DeliveryModel/Attribute:org_id' => 'Provedor',
|
||||
'Class:DeliveryModel/Attribute:org_id+' => 'Usually the organization that provides the services~~',
|
||||
'Class:DeliveryModel/Attribute:organization_name' => 'Nome da organização',
|
||||
'Class:DeliveryModel/Attribute:organization_name+' => 'Nome comum',
|
||||
'Class:DeliveryModel/Attribute:description' => 'Descrição',
|
||||
'Class:DeliveryModel/Attribute:description+' => '',
|
||||
'Class:DeliveryModel/Attribute:contacts_list' => 'Contatos',
|
||||
'Class:DeliveryModel/Attribute:contacts_list+' => 'Todos os Contatos (Equipe e Pessoa) para esse Modelo de entrega',
|
||||
'Class:DeliveryModel/Attribute:contacts_list+' => 'Todos os Contatos (Equipes e Pessoas) associados à este Modelo de entrega',
|
||||
'Class:DeliveryModel/Attribute:customers_list' => 'Clientes',
|
||||
'Class:DeliveryModel/Attribute:customers_list+' => 'Todos os Clientes com esse Modelo de entrega',
|
||||
'Class:DeliveryModel/Attribute:customers_list+' => 'Todos os clientes atendidos por este Modelo de entrega',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -471,7 +471,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkDeliveryModelToContact' => 'Link Modelo de entrega / Contato',
|
||||
'Class:lnkDeliveryModelToContact' => 'Relação entre Modelo de entrega / Contato',
|
||||
'Class:lnkDeliveryModelToContact+' => '',
|
||||
'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkDeliveryModelToContact/Attribute:deliverymodel_id' => 'Modelo de entrega',
|
||||
|
||||
@@ -23,7 +23,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Organization/Attribute:status/Value:active+' => '',
|
||||
'Class:Organization/Attribute:status/Value:inactive' => 'Inativo',
|
||||
'Class:Organization/Attribute:status/Value:inactive+' => '',
|
||||
'Class:Organization/Attribute:parent_id' => 'Pai',
|
||||
'Class:Organization/Attribute:parent_id' => 'Organização pai',
|
||||
'Class:Organization/Attribute:parent_id+' => 'Organização pai',
|
||||
'Class:Organization/Attribute:parent_name' => 'Organização pai',
|
||||
'Class:Organization/Attribute:parent_name+' => 'Nome da organização pai',
|
||||
@@ -31,12 +31,12 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Organization/Attribute:deliverymodel_id+' => '',
|
||||
'Class:Organization/Attribute:deliverymodel_name' => 'Nome do modelo de entrega',
|
||||
'Class:Organization/Attribute:deliverymodel_name+' => '',
|
||||
'Class:Organization/Attribute:parent_id_friendlyname' => 'Pai (nome amigável)',
|
||||
'Class:Organization/Attribute:parent_id_friendlyname' => 'Organização pai (nome amigável)',
|
||||
'Class:Organization/Attribute:parent_id_friendlyname+' => 'Nome amigável da organização pai',
|
||||
'Class:Organization/Attribute:overview' => 'Visão geral',
|
||||
'Organization:Overview:FunctionalCIs' => 'Itens de configuração associadas à esta organização',
|
||||
'Organization:Overview:FunctionalCIs' => 'Itens de Configuração (ICs) associados à esta Organização',
|
||||
'Organization:Overview:FunctionalCIs:subtitle' => 'por tipo',
|
||||
'Organization:Overview:Users' => 'Usuários do '.ITOP_APPLICATION_SHORT.' associados à esta organização',
|
||||
'Organization:Overview:Users' => 'Usuários do '.ITOP_APPLICATION_SHORT.' associados à esta Organização',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -67,9 +67,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Location/Attribute:country' => 'País',
|
||||
'Class:Location/Attribute:country+' => '',
|
||||
'Class:Location/Attribute:physicaldevice_list' => 'Dispositivos',
|
||||
'Class:Location/Attribute:physicaldevice_list+' => 'Todos os dispositivos associados à esta localização',
|
||||
'Class:Location/Attribute:physicaldevice_list+' => 'Todos os Dispositivos associados à esta Localização',
|
||||
'Class:Location/Attribute:person_list' => 'Contatos',
|
||||
'Class:Location/Attribute:person_list+' => 'Todos os contatos associados à esta localização',
|
||||
'Class:Location/Attribute:person_list+' => 'Todos os Contatos associados à esta Localização',
|
||||
));
|
||||
|
||||
//
|
||||
@@ -105,7 +105,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Contact/Attribute:function' => 'Função',
|
||||
'Class:Contact/Attribute:function+' => '',
|
||||
'Class:Contact/Attribute:cis_list' => 'ICs',
|
||||
'Class:Contact/Attribute:cis_list+' => 'Todos os itens de configuração associados a este contato',
|
||||
'Class:Contact/Attribute:cis_list+' => 'Todos os Itens de Configuração (ICs) associados à este Contato',
|
||||
'Class:Contact/Attribute:finalclass' => 'Tipo de contato',
|
||||
'Class:Contact/Attribute:finalclass+' => '',
|
||||
));
|
||||
@@ -118,11 +118,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Person' => 'Pessoa',
|
||||
'Class:Person+' => '',
|
||||
'Class:Person/ComplementaryName' => '%1$s - %2$s~~',
|
||||
'Class:Person/Attribute:name' => 'Último nome',
|
||||
'Class:Person/Attribute:name' => 'Sobrenome',
|
||||
'Class:Person/Attribute:name+' => '',
|
||||
'Class:Person/Attribute:first_name' => 'Primeiro nome',
|
||||
'Class:Person/Attribute:first_name' => 'Nome',
|
||||
'Class:Person/Attribute:first_name+' => '',
|
||||
'Class:Person/Attribute:employee_number' => 'Número de colaborador',
|
||||
'Class:Person/Attribute:employee_number' => 'Matrícula do colaborador',
|
||||
'Class:Person/Attribute:employee_number+' => '',
|
||||
'Class:Person/Attribute:mobile_phone' => 'Celular',
|
||||
'Class:Person/Attribute:mobile_phone+' => '',
|
||||
@@ -135,9 +135,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Person/Attribute:manager_name' => 'Nome do gerente',
|
||||
'Class:Person/Attribute:manager_name+' => '',
|
||||
'Class:Person/Attribute:team_list' => 'Equipes',
|
||||
'Class:Person/Attribute:team_list+' => 'Todas as equipes que essa pessoa pertence',
|
||||
'Class:Person/Attribute:team_list+' => 'Todas as Equipes que esta Pessoa pertence',
|
||||
'Class:Person/Attribute:tickets_list' => 'Solicitações',
|
||||
'Class:Person/Attribute:tickets_list+' => 'Todos as solicitações que essa pessoa solicitou',
|
||||
'Class:Person/Attribute:tickets_list+' => 'Todas as Solicitações que esta Pessoa solicitou',
|
||||
'Class:Person/Attribute:user_list' => 'Users~~',
|
||||
'Class:Person/Attribute:user_list+' => 'All the Users associated to this person~~',
|
||||
'Class:Person/Attribute:manager_id_friendlyname' => 'Nome amigável do gerente',
|
||||
@@ -195,9 +195,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Document/Attribute:status/Value:obsolete+' => '',
|
||||
'Class:Document/Attribute:status/Value:published' => 'Publicado',
|
||||
'Class:Document/Attribute:status/Value:published+' => '',
|
||||
'Class:Document/Attribute:cis_list' => 'CIs',
|
||||
'Class:Document/Attribute:cis_list+' => 'Todos os itens de configuração associados a este documento',
|
||||
'Class:Document/Attribute:finalclass' => 'Tipo documento',
|
||||
'Class:Document/Attribute:cis_list' => 'ICs',
|
||||
'Class:Document/Attribute:cis_list+' => 'Todos os Itens de Configuração (IC) associados à este Documento',
|
||||
'Class:Document/Attribute:finalclass' => 'Tipo de documento',
|
||||
'Class:Document/Attribute:finalclass+' => '',
|
||||
));
|
||||
|
||||
@@ -270,7 +270,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkPersonToTeam' => 'Link Pessoa / Equipe',
|
||||
'Class:lnkPersonToTeam' => 'Relação entre Pessoa / Equipe',
|
||||
'Class:lnkPersonToTeam+' => '',
|
||||
'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkPersonToTeam/Name+' => '~~',
|
||||
@@ -302,24 +302,24 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:CSVImport' => 'Importar CSV',
|
||||
'Menu:CSVImport+' => 'Criação ou atualização em massa',
|
||||
'Menu:Organization' => 'Organizações',
|
||||
'Menu:Organization+' => 'Lista de organizações',
|
||||
'Menu:Organization+' => 'Lista de Organizações',
|
||||
'Menu:ConfigManagement' => 'Gerenciamento configuração',
|
||||
'Menu:ConfigManagement+' => 'Gerenciamento de configuração',
|
||||
'Menu:ConfigManagementCI' => 'Itens de configuração',
|
||||
'Menu:ConfigManagementCI+' => 'Lista de itens de configuração',
|
||||
'Menu:ConfigManagement+' => '',
|
||||
'Menu:ConfigManagementCI' => 'Itens de Configuração (ICs)',
|
||||
'Menu:ConfigManagementCI+' => 'Lista de Itens de Configuração (ICs)',
|
||||
'Menu:ConfigManagementOverview' => 'Visão geral',
|
||||
'Menu:ConfigManagementOverview+' => '',
|
||||
'Menu:Contact' => 'Contatos',
|
||||
'Menu:Contact+' => 'Lista de contatos',
|
||||
'Menu:Contact+' => 'Lista de Contatos',
|
||||
'Menu:Contact:Count' => '%1$d contato(s)',
|
||||
'Menu:Person' => 'Pessoas',
|
||||
'Menu:Person+' => 'Lista de pessoas',
|
||||
'Menu:Person+' => 'Lista de Pessoas',
|
||||
'Menu:Team' => 'Equipes',
|
||||
'Menu:Team+' => 'Lista de equipes',
|
||||
'Menu:Team+' => 'Lista de Equipes',
|
||||
'Menu:Document' => 'Documentos',
|
||||
'Menu:Document+' => 'Lista de documentos',
|
||||
'Menu:Document+' => 'Lista de Documentos',
|
||||
'Menu:Location' => 'Localizações',
|
||||
'Menu:Location+' => 'Lista de localizações',
|
||||
'Menu:Location+' => 'Lista de Localizações',
|
||||
'Menu:NewContact' => 'Novo contato',
|
||||
'Menu:NewContact+' => '',
|
||||
'Menu:SearchContacts' => 'Pesquisar por contatos',
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
*
|
||||
*/
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'theme:light-grey' => 'Light Grey (deprecated)~~',
|
||||
'theme:light-grey' => 'Light Grey (depreciado)',
|
||||
));
|
||||
|
||||
@@ -45,11 +45,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Ticket/Attribute:private_log' => 'Log privado',
|
||||
'Class:Ticket/Attribute:private_log+' => '',
|
||||
'Class:Ticket/Attribute:contacts_list' => 'Contatos',
|
||||
'Class:Ticket/Attribute:contacts_list+' => 'Todos os contatos associados à esta solicitação',
|
||||
'Class:Ticket/Attribute:contacts_list+' => 'Todos os Contatos associados à esta Solicitação',
|
||||
'Class:Ticket/Attribute:functionalcis_list' => 'ICs',
|
||||
'Class:Ticket/Attribute:functionalcis_list+' => 'Todos os itens de configuração afetados por essa solicitação',
|
||||
'Class:Ticket/Attribute:functionalcis_list+' => 'Todos os Itens de Configuração (ICs) afetados por esta Solicitação',
|
||||
'Class:Ticket/Attribute:workorders_list' => 'Ordens de serviço',
|
||||
'Class:Ticket/Attribute:workorders_list+' => 'Todos as ordens de serviço para essa solicitação',
|
||||
'Class:Ticket/Attribute:workorders_list+' => 'Todos as Ordens de serviço associadas à esta Solicitação',
|
||||
'Class:Ticket/Attribute:finalclass' => 'Tipo',
|
||||
'Class:Ticket/Attribute:finalclass+' => '',
|
||||
'Class:Ticket/Attribute:operational_status' => 'Status operacional',
|
||||
@@ -69,7 +69,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkContactToTicket' => 'Link Contato / Solicitação',
|
||||
'Class:lnkContactToTicket' => 'Relação entre Contato / Solicitação',
|
||||
'Class:lnkContactToTicket+' => '',
|
||||
'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~',
|
||||
'Class:lnkContactToTicket/Attribute:ticket_id' => 'Solicitação',
|
||||
@@ -109,7 +109,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:WorkOrder/Attribute:description+' => '',
|
||||
'Class:WorkOrder/Attribute:ticket_id' => 'Solicitação',
|
||||
'Class:WorkOrder/Attribute:ticket_id+' => '',
|
||||
'Class:WorkOrder/Attribute:ticket_ref' => 'Ref. Solicitação',
|
||||
'Class:WorkOrder/Attribute:ticket_ref' => 'Ref. solicitação',
|
||||
'Class:WorkOrder/Attribute:ticket_ref+' => '',
|
||||
'Class:WorkOrder/Attribute:team_id' => 'Equipe',
|
||||
'Class:WorkOrder/Attribute:team_id+' => '',
|
||||
|
||||
@@ -192,7 +192,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:CMDBChangeOp' => 'Operações de alteração',
|
||||
'Class:CMDBChangeOp+' => 'Operações de controle de alteração',
|
||||
'Class:CMDBChangeOp+' => 'Controle de operações de alteração',
|
||||
'Class:CMDBChangeOp/Attribute:change' => 'Alteração',
|
||||
'Class:CMDBChangeOp/Attribute:change+' => '',
|
||||
'Class:CMDBChangeOp/Attribute:date' => 'Data',
|
||||
@@ -296,7 +296,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Event' => 'Registro de evento',
|
||||
'Class:Event+' => 'Um evento interno do aplicativo',
|
||||
'Class:Event+' => 'Um evento interno da aplicação',
|
||||
'Class:Event/Attribute:message' => 'Mensagem',
|
||||
'Class:Event/Attribute:message+' => 'Descrição curta deste evento',
|
||||
'Class:Event/Attribute:date' => 'Data',
|
||||
@@ -514,13 +514,13 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ActionEmail/Attribute:status/Value:disabled+' => 'A notificação de e-mail não será enviada',
|
||||
'Class:ActionEmail/Attribute:test_recipient' => 'Destinatário de teste',
|
||||
'Class:ActionEmail/Attribute:test_recipient+' => 'Destinatário caso o status esteja definido como "teste"',
|
||||
'Class:ActionEmail/Attribute:from' => 'De',
|
||||
'Class:ActionEmail/Attribute:from' => 'De (e-mail)',
|
||||
'Class:ActionEmail/Attribute:from+' => 'Endereço de e-mail do remetente enviado no cabeçalho do e-mail',
|
||||
'Class:ActionEmail/Attribute:from_label' => 'De (campo)',
|
||||
'Class:ActionEmail/Attribute:from_label' => 'De (nome)',
|
||||
'Class:ActionEmail/Attribute:from_label+' => 'Nome de exibição enviado no cabeçalho do e-mail',
|
||||
'Class:ActionEmail/Attribute:reply_to' => 'Responder para',
|
||||
'Class:ActionEmail/Attribute:reply_to' => 'Responder para (e-mail)',
|
||||
'Class:ActionEmail/Attribute:reply_to+' => 'Endereço de e-mail enviado no cabeçalho do e-mail',
|
||||
'Class:ActionEmail/Attribute:reply_to_label' => 'Responder para (campo)',
|
||||
'Class:ActionEmail/Attribute:reply_to_label' => 'Responder para (nome)',
|
||||
'Class:ActionEmail/Attribute:reply_to_label+' => 'Nome de exibição enviado no cabeçalho do e-mail',
|
||||
'Class:ActionEmail/Attribute:to' => 'Para',
|
||||
'Class:ActionEmail/Attribute:to+' => 'Endereço(s) de e-mail do(s) destinatário(s)',
|
||||
@@ -748,7 +748,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:lnkTriggerAction' => 'Ação/Gatilho',
|
||||
'Class:lnkTriggerAction+' => 'Link Gatilho / Ação',
|
||||
'Class:lnkTriggerAction+' => 'Relação entre Gatilho / Ação',
|
||||
'Class:lnkTriggerAction/Attribute:action_id' => 'Ação',
|
||||
'Class:lnkTriggerAction/Attribute:action_id+' => 'Ação a ser executada',
|
||||
'Class:lnkTriggerAction/Attribute:action_name' => 'Ação',
|
||||
@@ -1193,7 +1193,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:ResourceSystemMenu' => 'Menu de Recursos do Sistema',
|
||||
'Class:ResourceSystemMenu' => 'Recurso Menu do Sistema',
|
||||
'Class:ResourceSystemMenu+' => '',
|
||||
'Class:EventNotification/Attribute:object_class' => 'Object class~~',
|
||||
'Class:EventNotification/Attribute:object_class+' => 'Object class (Same as trigger)~~',
|
||||
|
||||
@@ -98,7 +98,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:Query/Attribute:name' => 'Nome',
|
||||
'Class:Query/Attribute:name+' => 'Identificação da consulta',
|
||||
'Class:Query/Attribute:description' => 'Descrição',
|
||||
'Class:Query/Attribute:description+' => 'Descrição longa para a consulta (finalidade, uso, etc.)',
|
||||
'Class:Query/Attribute:description+' => 'Descrição longa para a consulta (finalidade, uso etc.)',
|
||||
'Class:Query/Attribute:is_template' => 'Template para campos OQL',
|
||||
'Class:Query/Attribute:is_template+' => 'Utilizável como origem para o Destinatário OQL em Notificações',
|
||||
'Class:Query/Attribute:is_template/Value:yes' => 'Sim',
|
||||
@@ -141,7 +141,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:User/Attribute:org_id+' => 'Organização à qual esse usuário pertence',
|
||||
'Class:User/Attribute:last_name' => 'Sobrenome',
|
||||
'Class:User/Attribute:last_name+' => 'Último nome do usuário correspondente',
|
||||
'Class:User/Attribute:first_name' => 'Primeiro nome',
|
||||
'Class:User/Attribute:first_name' => 'Nome',
|
||||
'Class:User/Attribute:first_name+' => 'Primeiro nome do usuário correspondente',
|
||||
'Class:User/Attribute:email' => 'E-mail',
|
||||
'Class:User/Attribute:email+' => 'Endereço de e-mail do usuário correspondente',
|
||||
@@ -153,17 +153,17 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:User/Attribute:language/Value:EN US+' => 'Inglês (E.U.A.)',
|
||||
'Class:User/Attribute:language/Value:FR FR' => 'Francês',
|
||||
'Class:User/Attribute:language/Value:FR FR+' => 'Francês (França)',
|
||||
'Class:User/Attribute:profile_list' => 'Perfil',
|
||||
'Class:User/Attribute:profile_list' => 'Perfis',
|
||||
'Class:User/Attribute:profile_list+' => 'Permissões de acesso para esse usuário',
|
||||
'Class:User/Attribute:allowed_org_list' => 'Organizações permitidas',
|
||||
'Class:User/Attribute:allowed_org_list+' => 'O usuário tem permissão de ver as informações para a(s) organização(ões) abaixo. Se nenhuma organização for especificada, não há restrição',
|
||||
'Class:User/Attribute:status' => 'Status',
|
||||
'Class:User/Attribute:status+' => 'Se a conta de usuário está habilitada ou desabilitada',
|
||||
'Class:User/Attribute:status/Value:enabled' => 'Ativa',
|
||||
'Class:User/Attribute:status/Value:disabled' => 'Desativada',
|
||||
'Class:User/Error:LoginMustBeUnique' => 'Login é único - "%1s" já está ativo',
|
||||
'Class:User/Attribute:status/Value:disabled' => 'Inativa',
|
||||
'Class:User/Error:LoginMustBeUnique' => 'Login deve ser único - "%1s" já existe',
|
||||
'Class:User/Error:AtLeastOneProfileIsNeeded' => 'Pelo menos um perfil deve ser atribuído a esse usuário',
|
||||
'Class:User/Error:ProfileNotAllowed' => 'O perfil "%1$s" não pode ser adicionado, ele negará o acesso ao backoffice',
|
||||
'Class:User/Error:ProfileNotAllowed' => 'O perfil "%1$s" não pôde ser adicionado, ele negará o acesso ao backoffice',
|
||||
'Class:User/Error:StatusChangeIsNotAllowed' => 'Alterar o status da conta não é permitido para o seu próprio usuário',
|
||||
'Class:User/Error:AllowedOrgsMustContainUserOrg' => 'As organizações permitidas devem conter apenas usuários pertencentes a organização',
|
||||
'Class:User/Error:CurrentProfilesHaveInsufficientRights' => 'A lista atual de perfis não fornece permissões de acesso suficientes (os usuários não são mais modificáveis)',
|
||||
@@ -213,9 +213,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
//
|
||||
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:URP_UserProfile' => 'Perfil de Usuário',
|
||||
'Class:URP_UserProfile+' => 'Perfil de Usuário',
|
||||
'Class:URP_UserProfile/Name' => 'Link entre %1$s e %2$s',
|
||||
'Class:URP_UserProfile' => 'Perfil de usuário',
|
||||
'Class:URP_UserProfile+' => '',
|
||||
'Class:URP_UserProfile/Name' => 'Relação entre %1$s e %2$s',
|
||||
'Class:URP_UserProfile/Attribute:userid' => 'Usuário',
|
||||
'Class:URP_UserProfile/Attribute:userid+' => 'Conta de usuário',
|
||||
'Class:URP_UserProfile/Attribute:userlogin' => 'Login',
|
||||
@@ -236,7 +236,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:URP_UserOrg' => 'Organização do usuário',
|
||||
'Class:URP_UserOrg+' => 'Organizações permitidas',
|
||||
'Class:URP_UserOrg/Name' => 'Link entre %1$s e %2$s',
|
||||
'Class:URP_UserOrg/Name' => 'Relação entre %1$s e %2$s',
|
||||
'Class:URP_UserOrg/Attribute:userid' => 'Usuário',
|
||||
'Class:URP_UserOrg/Attribute:userid+' => 'Conta de usuário',
|
||||
'Class:URP_UserOrg/Attribute:userlogin' => 'Login',
|
||||
@@ -278,9 +278,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Class:URP_ClassProjection' => 'class_projection',
|
||||
'Class:URP_ClassProjection+' => 'class projections',
|
||||
'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimensão',
|
||||
'Class:URP_ClassProjection/Attribute:dimensionid+' => 'Dimensão aplicação',
|
||||
'Class:URP_ClassProjection/Attribute:dimensionid+' => 'Dimensão de aplicação',
|
||||
'Class:URP_ClassProjection/Attribute:dimension' => 'Dimensão',
|
||||
'Class:URP_ClassProjection/Attribute:dimension+' => 'Dimensão aplicação',
|
||||
'Class:URP_ClassProjection/Attribute:dimension+' => 'Dimensão de aplicação',
|
||||
'Class:URP_ClassProjection/Attribute:class' => 'Classe',
|
||||
'Class:URP_ClassProjection/Attribute:class+' => 'Classe alvo',
|
||||
'Class:URP_ClassProjection/Attribute:value' => 'Expressão de valor',
|
||||
@@ -390,7 +390,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'BooleanLabel:yes' => 'Sim',
|
||||
'BooleanLabel:no' => 'Não',
|
||||
'UI:Login:Title' => 'Login no '.ITOP_APPLICATION_SHORT, 'UI:WelcomeMenu:Title' => 'Bem-vindo ao '.ITOP_APPLICATION_SHORT, 'UI:WelcomeMenu:AllOpenRequests' => 'Solicitações abertas: %1$d',
|
||||
'UI:Login:Title' => 'Login no '.ITOP_APPLICATION_SHORT,
|
||||
'UI:WelcomeMenu:Title' => 'Bem-vindo ao '.ITOP_APPLICATION_SHORT,
|
||||
'UI:WelcomeMenu:AllOpenRequests' => 'Solicitações abertas: %1$d',
|
||||
'UI:WelcomeMenu:MyCalls' => 'Minhas solicitações',
|
||||
'UI:WelcomeMenu:OpenIncidents' => 'Incidentes abertos: %1$d',
|
||||
'UI:WelcomeMenu:AllConfigItems' => 'Itens de Configuração: %1$d',
|
||||
@@ -484,7 +486,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI:Error:MaintenanceMode' => 'A aplicação está em manutenção',
|
||||
'UI:Error:MaintenanceTitle' => 'Manutenção',
|
||||
'UI:Error:InvalidToken' => 'Erro: A operação solicitada já foi executada (token CSRF não encontrado)',
|
||||
'UI:Error:SMTP:UnknownVendor' => 'OAuth SMTP provider %1$s does not exist (email_transport_smtp.oauth.provider)~~',
|
||||
'UI:Error:SMTP:UnknownVendor' => 'O provedor de autenticação SMTP OAuth %1$s não existe (email_transport_smtp.oauth.provider)',
|
||||
'UI:GroupBy:Count' => 'Número',
|
||||
'UI:GroupBy:Count+' => 'Número de elementos',
|
||||
'UI:CountOfObjects' => '%1$d objeto(s) correspondem aos critérios',
|
||||
@@ -526,7 +528,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI:Menu:BulkDelete_Class' => 'Delete %1$s objects...~~',
|
||||
'UI:Menu:BulkDelete_Link' => 'Delete %1$s...~~',
|
||||
'UI:Menu:BulkDelete_Remote' => 'Delete %1$s...~~',
|
||||
'UI:UndefinedObject' => '(n/a)',
|
||||
'UI:UndefinedObject' => '(objeto indefinido)',
|
||||
'UI:Document:OpenInNewWindow:Download' => 'Abrir em uma nova janela: %1$s, Download: %2$s',
|
||||
'UI:SplitDateTime-Date' => 'data',
|
||||
'UI:SplitDateTime-Time' => 'hora',
|
||||
@@ -569,7 +571,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI:ResetPwd-EmailSubject' => 'Alterar a senha',
|
||||
'UI:ResetPwd-EmailBody' => '<body><p>Você solicitou a alteração da senha do '.ITOP_APPLICATION_SHORT.'.</p><p>Por favor, siga este link (passo simples) para <a href="%1$s">digitar a nova senha</a></p>.',
|
||||
'UI:ResetPwd-Title' => 'Alterar senha',
|
||||
'UI:ResetPwd-Error-InvalidToken' => 'Desculpe, a senha já foi alterada, ou você deve ter recebido múltiplos e-mails. Por favor, certifique-se que você acessou o link fornecido no último e-mail recebido',
|
||||
'UI:ResetPwd-Error-InvalidToken' => 'Desculpe, a senha já foi alterada ou você deve ter recebido múltiplos e-mails. Por favor, certifique-se que você acessou o link fornecido no último e-mail recebido',
|
||||
'UI:ResetPwd-Error-EnterPassword' => 'Digite a nova senha para a conta \'%1$s\'',
|
||||
'UI:ResetPwd-Ready' => 'A senha foi alterada com sucesso',
|
||||
'UI:ResetPwd-Login' => 'Clique para entrar...',
|
||||
@@ -853,7 +855,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI:ManageObjectsOf_Class_LinkedWith_Class_Instance' => 'Gerenciar vínculo de objetos de %1$s com %2$s: %3$s',
|
||||
'UI:AddLinkedObjectsOf_Class' => 'Associar %1$s',
|
||||
'UI:RemoveLinkedObjectsOf_Class' => 'Desassociar objeto(s) selecionado(s)',
|
||||
'UI:Message:EmptyList:UseAdd' => 'A lista está vazia, use o botão "Associar..." para adicionar elementos',
|
||||
'UI:Message:EmptyList:UseAdd' => 'A lista está vazia. Use o botão "Associar..." para adicionar elementos',
|
||||
'UI:Message:EmptyList:UseSearchForm' => 'Use o formulário de busca acima para procurar objeto(s) a ser(em) adicionado(s)',
|
||||
'UI:Wizard:FinalStepTitle' => 'Passo final: confirmação',
|
||||
'UI:Title:DeletionOf_Object' => 'Excluindo de %1$s',
|
||||
@@ -905,8 +907,8 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI:SearchResultsTitle' => 'Resultados da pesquisa',
|
||||
'UI:SearchResultsTitle+' => 'Resultados da pesquisa de texto completo',
|
||||
'UI:Search:NoSearch' => 'Nada a pesquisar',
|
||||
'UI:Search:NeedleTooShort' => 'A string de pesquisa \\"%1$s\\" é muito curta. Por favor, digite pelo menos %2$d caracteres.',
|
||||
'UI:Search:Ongoing' => 'Procurando por \\"%1$s\\"',
|
||||
'UI:Search:NeedleTooShort' => 'A string de pesquisa \"%1$s\" é muito curta. Por favor, digite pelo menos %2$d caracteres.',
|
||||
'UI:Search:Ongoing' => 'Procurando por \"%1$s\"',
|
||||
'UI:Search:Enlarge' => 'Amplie a pesquisa',
|
||||
'UI:FullTextSearchTitle_Text' => 'Resultados da pesquisa para "%1$s":',
|
||||
'UI:Search:Count_ObjectsOf_Class_Found' => '%1$d objeto(s) da classe %2$s encontrado(s).',
|
||||
@@ -923,7 +925,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI:BulkDeletePageTitle' => 'Exclusão em massa',
|
||||
'UI:BulkDeleteTitle' => 'Selecione o(s) objeto(s) que você deseja excluir:',
|
||||
'UI:PageTitle:ObjectCreated' => 'Objeto criado',
|
||||
'UI:Title:Object_Of_Class_Created' => '%1$s - %2$s criado(a)',
|
||||
'UI:Title:Object_Of_Class_Created' => '%1$s - %2$s criado(a) com sucesso',
|
||||
'UI:Toggle:CustomDashboard' => 'Customizado',
|
||||
'UI:Toggle:StandardDashboard' => 'Padrão',
|
||||
'UI:Apply_Stimulus_On_Object_In_State_ToTarget_State' => 'Aplicando %1$s no objeto: %2$s com status %3$s para o status alvo: %4$s',
|
||||
@@ -1424,7 +1426,9 @@ Quando associada a um gatilho, cada ação recebe um número de "ordem", especif
|
||||
'ExcelExport:AutoDownload' => 'Inicie o download automaticamente quando a exportação estiver pronta',
|
||||
'ExcelExport:PreparingExport' => 'Preparando a exportação...',
|
||||
'ExcelExport:Statistics' => 'Estatísticas',
|
||||
'portal:legacy_portal' => 'Portal do usuário (legado) do '.ITOP_APPLICATION_SHORT, 'portal:backoffice' => 'Interface de usuário back-office do '.ITOP_APPLICATION_SHORT, 'UI:CurrentObjectIsLockedBy_User' => 'O objeto está bloqueado, pois está sendo modificado por %1$s',
|
||||
'portal:legacy_portal' => 'Portal do usuário (legado) do '.ITOP_APPLICATION_SHORT,
|
||||
'portal:backoffice' => 'Interface de usuário back-office do '.ITOP_APPLICATION_SHORT,
|
||||
'UI:CurrentObjectIsLockedBy_User' => 'O objeto está bloqueado, pois está sendo modificado por %1$s',
|
||||
'UI:CurrentObjectIsLockedBy_User_Explanation' => 'O objeto está sendo modificado por %1$s. Suas modificações não podem ser enviadas, pois seriam sobrescritas',
|
||||
'UI:CurrentObjectIsSoftLockedBy_User' => 'O objeto está sendo modificado por %1$s. Você será capaz de enviar suas modificações quando terminarem',
|
||||
'UI:CurrentObjectLockExpired' => 'O bloqueio para impedir modificações simultâneas do objeto expirou',
|
||||
@@ -1587,11 +1591,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'Menu:UniversalSearchMenu+' => 'Pesquisar por todo o aplicativo...',
|
||||
'Menu:UserManagementMenu' => 'Gerenciamento de Usuários',
|
||||
'Menu:UserManagementMenu+' => '',
|
||||
'Menu:ProfilesMenu' => 'Perfis de Usuário',
|
||||
'Menu:ProfilesMenu+' => 'Lista de Perfis de Usuário',
|
||||
'Menu:ProfilesMenu:Title' => 'Perfis de Usuário',
|
||||
'Menu:ProfilesMenu' => 'Perfis de usuário',
|
||||
'Menu:ProfilesMenu+' => 'Lista de perfis de usuário',
|
||||
'Menu:ProfilesMenu:Title' => 'Perfis de usuário',
|
||||
'Menu:UserAccountsMenu' => 'Contas de Usuários',
|
||||
'Menu:UserAccountsMenu+' => 'Lista de Contas de Usuário',
|
||||
'Menu:UserAccountsMenu+' => 'Lista de contas de usuário',
|
||||
'Menu:UserAccountsMenu:Title' => 'Contas de Usuários',
|
||||
'Menu:UserManagement' => 'Gerenciamento de Usuários',
|
||||
'Menu:Queries' => 'Consultas',
|
||||
|
||||
@@ -28,7 +28,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI:Layout:ActivityPanel:Tab:Toolbar:Action:CloseAll:Tooltip' => 'Recolher todas as entradas',
|
||||
'UI:Layout:ActivityPanel:Tab:Toolbar:Info:AuthorsCount:Tooltip' => 'Número de pessoas que contribuíram para as entradas exibidas',
|
||||
'UI:Layout:ActivityPanel:Tab:Toolbar:Info:MessagesCount:Tooltip' => 'Número de entradas no(s) log(s) exibido(s)',
|
||||
'UI:Layout:ActivityPanel:ComposeButton:Tooltip' => 'Adicionar uma nova entrada no log',
|
||||
'UI:Layout:ActivityPanel:ComposeButton:Tooltip' => 'Criar uma nova entrada no log',
|
||||
'UI:Layout:ActivityPanel:MultipleEntriesSaveConfirmation:Title' => 'Salvar múltiplos logs',
|
||||
'UI:Layout:ActivityPanel:MultipleEntriesSaveConfirmation:Explanation' => 'Ao clicar no botão de "salvar", você enviará entradas para todos os logs alterados de uma só vez.',
|
||||
'UI:Layout:ActivityPanel:NotificationEntry:MessageLink:Tooltip' => 'Clique para abrir a guia de notificações e obter mais informações',
|
||||
|
||||
@@ -25,7 +25,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
|
||||
'UI:Preferences:ActivityPanel:Title' => 'Painel de atividades',
|
||||
'UI:Preferences:ActivityPanel:EntryFormOpened' => 'Formulário de adicionar nova entrada aberto por padrão',
|
||||
'UI:Preferences:ActivityPanel:EntryFormOpened+' => 'Se o formulário de adicionar nova entrada será aberto automaticamente ao abrir o Painel de Atividades. Se desmarcado, você ainda poderá abri-lo clicando no botão de "adicionar"',
|
||||
'UI:Preferences:PersonalizeKeyboardShortcuts:Title' => 'Atalhos de teclado de aplicativo',
|
||||
'UI:Preferences:PersonalizeKeyboardShortcuts:Title' => 'Atalhos de teclado do aplicativo',
|
||||
'UI:Preferences:PersonalizeKeyboardShortcuts:Input:Hint' => 'Pressione um atalho de teclado',
|
||||
'UI:Preferences:PersonalizeKeyboardShortcuts:Button:Tooltip' => 'Grave um atalho de teclado',
|
||||
'UI:Preferences:PersonalizeKeyboardShortcuts:Button:Reset' => 'Redefinir',
|
||||
|
||||
467
js/date.js
467
js/date.js
@@ -1,467 +0,0 @@
|
||||
/*
|
||||
* Date prototype extensions. Doesn't depend on any
|
||||
* other code. Doens't overwrite existing methods.
|
||||
*
|
||||
* Adds dayNames, abbrDayNames, monthNames and abbrMonthNames static properties and isLeapYear,
|
||||
* isWeekend, isWeekDay, getDaysInMonth, getDayName, getMonthName, getDayOfYear, getWeekOfYear,
|
||||
* setDayOfYear, addYears, addMonths, addDays, addHours, addMinutes, addSeconds methods
|
||||
*
|
||||
* Copyright (c) 2006 Jörn Zaefferer and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
|
||||
*
|
||||
* Additional methods and properties added by Kelvin Luck: firstDayOfWeek, dateFormat, zeroTime, asString, fromString -
|
||||
* I've added my name to these methods so you know who to blame if they are broken!
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* An Array of day names starting with Sunday.
|
||||
*
|
||||
* @example dayNames[0]
|
||||
* @result 'Sunday'
|
||||
*
|
||||
* @name dayNames
|
||||
* @type Array
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
Date.dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
||||
|
||||
/**
|
||||
* An Array of abbreviated day names starting with Sun.
|
||||
*
|
||||
* @example abbrDayNames[0]
|
||||
* @result 'Sun'
|
||||
*
|
||||
* @name abbrDayNames
|
||||
* @type Array
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
Date.abbrDayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
||||
|
||||
/**
|
||||
* An Array of month names starting with Janurary.
|
||||
*
|
||||
* @example monthNames[0]
|
||||
* @result 'January'
|
||||
*
|
||||
* @name monthNames
|
||||
* @type Array
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
Date.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
||||
|
||||
/**
|
||||
* An Array of abbreviated month names starting with Jan.
|
||||
*
|
||||
* @example abbrMonthNames[0]
|
||||
* @result 'Jan'
|
||||
*
|
||||
* @name monthNames
|
||||
* @type Array
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
Date.abbrMonthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
||||
|
||||
/**
|
||||
* The first day of the week for this locale.
|
||||
*
|
||||
* @name firstDayOfWeek
|
||||
* @type Number
|
||||
* @cat Plugins/Methods/Date
|
||||
* @author Kelvin Luck
|
||||
*/
|
||||
Date.firstDayOfWeek = 1;
|
||||
|
||||
/**
|
||||
* The format that string dates should be represented as (e.g. 'dd/mm/yyyy' for UK, 'mm/dd/yyyy' for US, 'yyyy-mm-dd' for Unicode etc).
|
||||
*
|
||||
* @name format
|
||||
* @type String
|
||||
* @cat Plugins/Methods/Date
|
||||
* @author Kelvin Luck
|
||||
*/
|
||||
//Date.format = 'dd/mm/yyyy';
|
||||
//Date.format = 'mm/dd/yyyy';
|
||||
Date.format = 'yyyy-mm-dd';
|
||||
//Date.format = 'dd mmm yy';
|
||||
|
||||
/**
|
||||
* The first two numbers in the century to be used when decoding a two digit year. Since a two digit year is ambiguous (and date.setYear
|
||||
* only works with numbers < 99 and so doesn't allow you to set years after 2000) we need to use this to disambiguate the two digit year codes.
|
||||
*
|
||||
* @name format
|
||||
* @type String
|
||||
* @cat Plugins/Methods/Date
|
||||
* @author Kelvin Luck
|
||||
*/
|
||||
Date.fullYearStart = '20';
|
||||
|
||||
(function() {
|
||||
|
||||
/**
|
||||
* Adds a given method under the given name
|
||||
* to the Date prototype if it doesn't
|
||||
* currently exist.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function add(name, method) {
|
||||
if( !Date.prototype[name] ) {
|
||||
Date.prototype[name] = method;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Checks if the year is a leap year.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.isLeapYear();
|
||||
* @result true
|
||||
*
|
||||
* @name isLeapYear
|
||||
* @type Boolean
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("isLeapYear", function() {
|
||||
var y = this.getFullYear();
|
||||
return (y%4==0 && y%100!=0) || y%400==0;
|
||||
});
|
||||
|
||||
/**
|
||||
* Checks if the day is a weekend day (Sat or Sun).
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.isWeekend();
|
||||
* @result false
|
||||
*
|
||||
* @name isWeekend
|
||||
* @type Boolean
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("isWeekend", function() {
|
||||
return this.getDay()==0 || this.getDay()==6;
|
||||
});
|
||||
|
||||
/**
|
||||
* Check if the day is a day of the week (Mon-Fri)
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.isWeekDay();
|
||||
* @result false
|
||||
*
|
||||
* @name isWeekDay
|
||||
* @type Boolean
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("isWeekDay", function() {
|
||||
return !this.isWeekend();
|
||||
});
|
||||
|
||||
/**
|
||||
* Gets the number of days in the month.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.getDaysInMonth();
|
||||
* @result 31
|
||||
*
|
||||
* @name getDaysInMonth
|
||||
* @type Number
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("getDaysInMonth", function() {
|
||||
return [31,(this.isLeapYear() ? 29:28),31,30,31,30,31,31,30,31,30,31][this.getMonth()];
|
||||
});
|
||||
|
||||
/**
|
||||
* Gets the name of the day.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.getDayName();
|
||||
* @result 'Saturday'
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.getDayName(true);
|
||||
* @result 'Sat'
|
||||
*
|
||||
* @param abbreviated Boolean When set to true the name will be abbreviated.
|
||||
* @name getDayName
|
||||
* @type String
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("getDayName", function(abbreviated) {
|
||||
return abbreviated ? Date.abbrDayNames[this.getDay()] : Date.dayNames[this.getDay()];
|
||||
});
|
||||
|
||||
/**
|
||||
* Gets the name of the month.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.getMonthName();
|
||||
* @result 'Janurary'
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.getMonthName(true);
|
||||
* @result 'Jan'
|
||||
*
|
||||
* @param abbreviated Boolean When set to true the name will be abbreviated.
|
||||
* @name getDayName
|
||||
* @type String
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("getMonthName", function(abbreviated) {
|
||||
return abbreviated ? Date.abbrMonthNames[this.getMonth()] : Date.monthNames[this.getMonth()];
|
||||
});
|
||||
|
||||
/**
|
||||
* Get the number of the day of the year.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.getDayOfYear();
|
||||
* @result 11
|
||||
*
|
||||
* @name getDayOfYear
|
||||
* @type Number
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("getDayOfYear", function() {
|
||||
var tmpdtm = new Date("1/1/" + this.getFullYear());
|
||||
return Math.floor((this.getTime() - tmpdtm.getTime()) / 86400000);
|
||||
});
|
||||
|
||||
/**
|
||||
* Get the number of the week of the year.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.getWeekOfYear();
|
||||
* @result 2
|
||||
*
|
||||
* @name getWeekOfYear
|
||||
* @type Number
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("getWeekOfYear", function() {
|
||||
return Math.ceil(this.getDayOfYear() / 7);
|
||||
});
|
||||
|
||||
/**
|
||||
* Set the day of the year.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.setDayOfYear(1);
|
||||
* dtm.toString();
|
||||
* @result 'Tue Jan 01 2008 00:00:00'
|
||||
*
|
||||
* @name setDayOfYear
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("setDayOfYear", function(day) {
|
||||
this.setMonth(0);
|
||||
this.setDate(day);
|
||||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Add a number of years to the date object.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.addYears(1);
|
||||
* dtm.toString();
|
||||
* @result 'Mon Jan 12 2009 00:00:00'
|
||||
*
|
||||
* @name addYears
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("addYears", function(num) {
|
||||
this.setFullYear(this.getFullYear() + num);
|
||||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Add a number of months to the date object.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.addMonths(1);
|
||||
* dtm.toString();
|
||||
* @result 'Tue Feb 12 2008 00:00:00'
|
||||
*
|
||||
* @name addMonths
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("addMonths", function(num) {
|
||||
var tmpdtm = this.getDate();
|
||||
|
||||
this.setMonth(this.getMonth() + num);
|
||||
|
||||
if (tmpdtm > this.getDate())
|
||||
this.addDays(-this.getDate());
|
||||
|
||||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Add a number of days to the date object.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.addDays(1);
|
||||
* dtm.toString();
|
||||
* @result 'Sun Jan 13 2008 00:00:00'
|
||||
*
|
||||
* @name addDays
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("addDays", function(num) {
|
||||
this.setDate(this.getDate() + num);
|
||||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Add a number of hours to the date object.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.addHours(24);
|
||||
* dtm.toString();
|
||||
* @result 'Sun Jan 13 2008 00:00:00'
|
||||
*
|
||||
* @name addHours
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("addHours", function(num) {
|
||||
this.setHours(this.getHours() + num);
|
||||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Add a number of minutes to the date object.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.addMinutes(60);
|
||||
* dtm.toString();
|
||||
* @result 'Sat Jan 12 2008 01:00:00'
|
||||
*
|
||||
* @name addMinutes
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("addMinutes", function(num) {
|
||||
this.setMinutes(this.getMinutes() + num);
|
||||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Add a number of seconds to the date object.
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.addSeconds(60);
|
||||
* dtm.toString();
|
||||
* @result 'Sat Jan 12 2008 00:01:00'
|
||||
*
|
||||
* @name addSeconds
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
*/
|
||||
add("addSeconds", function(num) {
|
||||
this.setSeconds(this.getSeconds() + num);
|
||||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Sets the time component of this Date to zero for cleaner, easier comparison of dates where time is not relevant.
|
||||
*
|
||||
* @example var dtm = new Date();
|
||||
* dtm.zeroTime();
|
||||
* dtm.toString();
|
||||
* @result 'Sat Jan 12 2008 00:01:00'
|
||||
*
|
||||
* @name zeroTime
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
* @author Kelvin Luck
|
||||
*/
|
||||
add("zeroTime", function() {
|
||||
this.setMilliseconds(0);
|
||||
this.setSeconds(0);
|
||||
this.setMinutes(0);
|
||||
this.setHours(0);
|
||||
return this;
|
||||
});
|
||||
|
||||
/**
|
||||
* Returns a string representation of the date object according to Date.format.
|
||||
* (Date.toString may be used in other places so I purposefully didn't overwrite it)
|
||||
*
|
||||
* @example var dtm = new Date("01/12/2008");
|
||||
* dtm.asString();
|
||||
* @result '12/01/2008' // (where Date.format == 'dd/mm/yyyy'
|
||||
*
|
||||
* @name asString
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
* @author Kelvin Luck
|
||||
*/
|
||||
add("asString", function() {
|
||||
var r = Date.format;
|
||||
return r
|
||||
.split('yyyy').join(this.getFullYear())
|
||||
.split('yy').join((this.getFullYear() + '').substring(2))
|
||||
.split('mmm').join(this.getMonthName(true))
|
||||
.split('mm').join(_zeroPad(this.getMonth()+1))
|
||||
.split('dd').join(_zeroPad(this.getDate()));
|
||||
});
|
||||
|
||||
/**
|
||||
* Returns a new date object created from the passed String according to Date.format or false if the attempt to do this results in an invalid date object
|
||||
* (We can't simple use Date.parse as it's not aware of locale and I chose not to overwrite it incase it's functionality is being relied on elsewhere)
|
||||
*
|
||||
* @example var dtm = Date.fromString("12/01/2008");
|
||||
* dtm.toString();
|
||||
* @result 'Sat Jan 12 2008 00:00:00' // (where Date.format == 'dd/mm/yyyy'
|
||||
*
|
||||
* @name fromString
|
||||
* @type Date
|
||||
* @cat Plugins/Methods/Date
|
||||
* @author Kelvin Luck
|
||||
*/
|
||||
Date.fromString = function(s)
|
||||
{
|
||||
var f = Date.format;
|
||||
var d = new Date('01/01/1977');
|
||||
var iY = f.indexOf('yyyy');
|
||||
if (iY > -1) {
|
||||
d.setFullYear(Number(s.substr(iY, 4)));
|
||||
} else {
|
||||
// TODO - this doesn't work very well - are there any rules for what is meant by a two digit year?
|
||||
d.setFullYear(Number(Date.fullYearStart + s.substr(f.indexOf('yy'), 2)));
|
||||
}
|
||||
var iM = f.indexOf('mmm');
|
||||
if (iM > -1) {
|
||||
var mStr = s.substr(iM, 3);
|
||||
for (var i=0; i<Date.abbrMonthNames.length; i++) {
|
||||
if (Date.abbrMonthNames[i] == mStr) break;
|
||||
}
|
||||
d.setMonth(i);
|
||||
} else {
|
||||
d.setMonth(Number(s.substr(f.indexOf('mm'), 2)) - 1);
|
||||
}
|
||||
d.setDate(Number(s.substr(f.indexOf('dd'), 2)));
|
||||
if (isNaN(d.getTime())) {
|
||||
return false;
|
||||
}
|
||||
return d;
|
||||
};
|
||||
|
||||
// utility method
|
||||
var _zeroPad = function(num) {
|
||||
var s = '0'+num;
|
||||
return s.substring(s.length-2)
|
||||
//return ('0'+num).substring(-2); // doesn't work on IE :(
|
||||
};
|
||||
|
||||
})();
|
||||
@@ -2,6 +2,5 @@
|
||||
# The following source files are not re-distributed with the "build" of the application
|
||||
# since they are used solely for debugging. The minified version is normally used instead.
|
||||
#
|
||||
jquery.layout.js
|
||||
jquery.ba-bbq.js
|
||||
README.md
|
||||
458
js/hovertip.js
458
js/hovertip.js
@@ -1,458 +0,0 @@
|
||||
/**
|
||||
* Hovertip - easy and elegant tooltips
|
||||
*
|
||||
* By Dave Cohen <http://dave-cohen.com>
|
||||
* With ideas and and javascript code borrowed from many folks.
|
||||
* (See URLS in the comments)
|
||||
*
|
||||
* Licensed under GPL.
|
||||
* Requires jQuery.js. <http://jquery.com>,
|
||||
* which may be distributed under a different licence.
|
||||
*
|
||||
* $Date: 2006-09-15 12:49:19 -0700 (Fri, 15 Sep 2006) $
|
||||
* $Rev: $
|
||||
* $Id:$
|
||||
*
|
||||
* This plugin helps you create tooltips. It supports:
|
||||
*
|
||||
* hovertips - these appear under the mouse when mouse is over the target
|
||||
* element.
|
||||
*
|
||||
* clicktips - these appear in the document when the target element is
|
||||
* clicked.
|
||||
*
|
||||
* You may define behaviors for additional types of tooltips.
|
||||
*
|
||||
* There are a variety of ways to add tooltips. Each of the following is
|
||||
* supported:
|
||||
*
|
||||
* <p>blah blah blah
|
||||
* <span>important term</span>
|
||||
* <span class="tooltip">text that appears.</span>
|
||||
* blah blah blah</p>
|
||||
*
|
||||
* or,
|
||||
*
|
||||
* <p>blah blah blah
|
||||
* <span hovertip="termdefinition">important term</span>
|
||||
* blah blah blah</p>
|
||||
* <div id="termdefinition" class="hovertip"><h1>term definition</h1><p>the term means...</p></div>
|
||||
*
|
||||
* or,
|
||||
*
|
||||
* <p>blah blah blah
|
||||
* <span id="term">important term</span>
|
||||
* blah blah blah</p>
|
||||
* <div target="term" class="hovertip"><h1>term definition</h1><p>the term means...</p></div>
|
||||
*
|
||||
*
|
||||
* Hooks are available to customize both the behavior of activated tooltips,
|
||||
* and the syntax used to mark them up.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
//// mouse events ////
|
||||
/**
|
||||
* To make hovertips appear correctly we need the exact mouse position.
|
||||
* These functions make that possible.
|
||||
*/
|
||||
|
||||
// use globals to track mouse position
|
||||
var hovertipMouseX;
|
||||
var hovertipMouseY;
|
||||
function hovertipMouseUpdate(e) {
|
||||
var mouse = hovertipMouseXY(e);
|
||||
hovertipMouseX = mouse[0];
|
||||
hovertipMouseY = mouse[1];
|
||||
}
|
||||
|
||||
// http://www.howtocreate.co.uk/tutorials/javascript/eventinfo
|
||||
function hovertipMouseXY(e) {
|
||||
if( !e ) {
|
||||
if( window.event ) {
|
||||
//Internet Explorer
|
||||
e = window.event;
|
||||
} else {
|
||||
//total failure, we have no way of referencing the event
|
||||
return;
|
||||
}
|
||||
}
|
||||
if( typeof( e.pageX ) == 'number' ) {
|
||||
//most browsers
|
||||
var xcoord = e.pageX;
|
||||
var ycoord = e.pageY;
|
||||
} else if( typeof( e.clientX ) == 'number' ) {
|
||||
//Internet Explorer and older browsers
|
||||
//other browsers provide this, but follow the pageX/Y branch
|
||||
var xcoord = e.clientX;
|
||||
var ycoord = e.clientY;
|
||||
var badOldBrowser = ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) ||
|
||||
( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) ||
|
||||
( navigator.vendor == 'KDE' );
|
||||
if( !badOldBrowser ) {
|
||||
if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
|
||||
//IE 4, 5 & 6 (in non-standards compliant mode)
|
||||
xcoord += document.body.scrollLeft;
|
||||
ycoord += document.body.scrollTop;
|
||||
} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
|
||||
//IE 6 (in standards compliant mode)
|
||||
xcoord += document.documentElement.scrollLeft;
|
||||
ycoord += document.documentElement.scrollTop;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//total failure, we have no way of obtaining the mouse coordinates
|
||||
return;
|
||||
}
|
||||
return [xcoord, ycoord];
|
||||
}
|
||||
|
||||
|
||||
|
||||
//// target selectors ////
|
||||
|
||||
/**
|
||||
* These selectors find the targets for a given tooltip element.
|
||||
* Several methods are supported.
|
||||
*
|
||||
* You may write your own selector functions to customize.
|
||||
*/
|
||||
|
||||
/**
|
||||
* For this model:
|
||||
* <span hovertip="ht1">target term</span>...
|
||||
* <div class="hovertip" id="ht1">tooltip text</div>
|
||||
*/
|
||||
targetSelectById = function(el, config) {
|
||||
var id;
|
||||
var selector;
|
||||
if (id = el.getAttribute('id')) {
|
||||
selector = '*[@'+config.attribute+'=\''+id+'\']';
|
||||
return $(selector);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* For this model:
|
||||
* <span id="ht1">target term</span>...
|
||||
* <div class="hovertip" target="ht1">tooltip text</div>
|
||||
*/
|
||||
targetSelectByTargetAttribute = function(el, config) {
|
||||
target_list = el.getAttribute('target');
|
||||
if (target_list) {
|
||||
// use for attribute to specify targets
|
||||
target_ids = target_list.split(' ');
|
||||
var selector = '#' + target_ids.join(',#');
|
||||
return $(selector);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* For this model:
|
||||
* <span>target term</span><span class="hovertip">tooltip text</span>
|
||||
*/
|
||||
targetSelectByPrevious = function(el, config) {
|
||||
return $(el.previousSibling);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make all siblings targets. Experimental.
|
||||
*/
|
||||
targetSelectBySiblings = function(el, config) {
|
||||
return $(el).siblings();
|
||||
}
|
||||
|
||||
//// prepare tip elements ////
|
||||
|
||||
/**
|
||||
* The tooltip element needs special preparation. You may define your own
|
||||
* prepare functions to cusomize the behavior.
|
||||
*/
|
||||
|
||||
// adds a close link to clicktips
|
||||
clicktipPrepareWithCloseLink = function(o, config) {
|
||||
return o.append("<a class='clicktip_close'><span>close</span></a>")
|
||||
.find('a.clicktip_close').click(function(e) {
|
||||
o.hide();
|
||||
return false;
|
||||
}).end();
|
||||
};
|
||||
|
||||
// ensure that hovertips do not disappear when the mouse is over them.
|
||||
// also position the hovertip as an absolutely positioned child of body.
|
||||
hovertipPrepare = function(o, config) {
|
||||
return o.hover(function() {
|
||||
hovertipHideCancel(this);
|
||||
}, function() {
|
||||
hovertipHideLater(this);
|
||||
}).css('position', 'absolute').each(hovertipPosition);
|
||||
};
|
||||
|
||||
// do not modify tooltips when preparing
|
||||
hovertipPrepareNoOp = function(o, config) {
|
||||
return o;
|
||||
}
|
||||
|
||||
//// manipulate tip elements /////
|
||||
/**
|
||||
* A variety of functions to modify tooltip elements
|
||||
*/
|
||||
|
||||
// move tooltips to body, so they are not descended from other absolutely
|
||||
// positioned elements.
|
||||
hovertipPosition = function(i) {
|
||||
document.body.appendChild(this);
|
||||
}
|
||||
|
||||
hovertipIsVisible = function(el) {
|
||||
return (jQuery.css(el, 'display') != 'none');
|
||||
}
|
||||
|
||||
// show the tooltip under the mouse.
|
||||
// Introduce a delay, so tip appears only if cursor rests on target for more than an instant.
|
||||
hovertipShowUnderMouse = function(el) {
|
||||
hovertipHideCancel(el);
|
||||
if (!hovertipIsVisible(el)) {
|
||||
el.ht.showing = // keep reference to timer
|
||||
window.setTimeout(function() {
|
||||
el.ht.tip.css({
|
||||
'position':'absolute',
|
||||
'top': hovertipMouseY + 'px',
|
||||
'left': hovertipMouseX + 'px'})
|
||||
.show();
|
||||
}, el.ht.config.showDelay);
|
||||
}
|
||||
};
|
||||
|
||||
// do not hide
|
||||
hovertipHideCancel = function(el) {
|
||||
if (el.ht.hiding) {
|
||||
window.clearTimeout(el.ht.hiding);
|
||||
el.ht.hiding = null;
|
||||
}
|
||||
};
|
||||
|
||||
// Hide a tooltip, but only after a delay.
|
||||
// The delay allow the tip to remain when user moves mouse from target to tooltip
|
||||
hovertipHideLater = function(el) {
|
||||
if (el.ht.showing) {
|
||||
window.clearTimeout(el.ht.showing);
|
||||
el.ht.showing = null;
|
||||
}
|
||||
if (el.ht.hiding) {
|
||||
window.clearTimeout(el.ht.hiding);
|
||||
el.ht.hiding = null;
|
||||
}
|
||||
el.ht.hiding =
|
||||
window.setTimeout(function() {
|
||||
if (el.ht.hiding) {
|
||||
// fadeOut, slideUp do not work on Konqueror
|
||||
el.ht.tip.hide();
|
||||
}
|
||||
}, el.ht.config.hideDelay);
|
||||
};
|
||||
|
||||
|
||||
//// prepare target elements ////
|
||||
/**
|
||||
* As we prepared the tooltip elements, the targets also need preparation.
|
||||
*
|
||||
* You may define your own custom behavior.
|
||||
*/
|
||||
|
||||
// when clicked on target, toggle visibilty of tooltip
|
||||
clicktipTargetPrepare = function(o, el, config) {
|
||||
return o.addClass(config.attribute + '_target')
|
||||
.click(function() {
|
||||
el.ht.tip.toggle();
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
// when hover over target, make tooltip appear
|
||||
hovertipTargetPrepare = function(o, el, config) {
|
||||
return o.addClass(config.attribute + '_target')
|
||||
.hover(function() {
|
||||
// show tip when mouse over target
|
||||
hovertipShowUnderMouse(el);
|
||||
},
|
||||
function() {
|
||||
// hide the tip
|
||||
// add a delay so user can move mouse from the target to the tip
|
||||
hovertipHideLater(el);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* hovertipActivate() is our jQuery plugin function. It turns on hovertip or
|
||||
* clicktip behavior for a set of elements.
|
||||
*
|
||||
* @param config
|
||||
* controls aspects of tooltip behavior. Be sure to define
|
||||
* 'attribute', 'showDelay' and 'hideDelay'.
|
||||
*
|
||||
* @param targetSelect
|
||||
* function finds the targets of a given tooltip element.
|
||||
*
|
||||
* @param tipPrepare
|
||||
* function alters the tooltip to display and behave properly
|
||||
*
|
||||
* @param targetPrepare
|
||||
* function alters the target to display and behave properly.
|
||||
*/
|
||||
jQuery.fn.hovertipActivate = function(config, targetSelect, tipPrepare, targetPrepare) {
|
||||
//alert('activating ' + this.size());
|
||||
// unhide so jquery show/hide will work.
|
||||
return this.css('display', 'block')
|
||||
.hide() // don't show it until click
|
||||
.each(function() {
|
||||
if (!this.ht)
|
||||
this.ht = new Object();
|
||||
this.ht.config = config;
|
||||
|
||||
// find our targets
|
||||
var targets = targetSelect(this, config);
|
||||
if (targets && targets.size()) {
|
||||
if (!this.ht.targets)
|
||||
this.ht.targets = targetPrepare(targets, this, config);
|
||||
else
|
||||
this.ht.targets.add(targetPrepare(targets, this, config));
|
||||
|
||||
// listen to mouse move events so we know exatly where to place hovetips
|
||||
targets.mousemove(hovertipMouseUpdate);
|
||||
|
||||
// prepare the tooltip element
|
||||
// is it bad form to call $(this) here?
|
||||
if (!this.ht.tip)
|
||||
this.ht.tip = tipPrepare($(this), config);
|
||||
}
|
||||
|
||||
})
|
||||
;
|
||||
};
|
||||
|
||||
/**
|
||||
* Here's an example ready function which shows how to enable tooltips.
|
||||
*
|
||||
* You can make this considerably shorter by choosing only the markup style(s)
|
||||
* you will use.
|
||||
*
|
||||
* You may also remove the code that wraps hovertips to produce drop-shadow FX
|
||||
*
|
||||
* Invoke this function or one like it from your $(document).ready().
|
||||
*
|
||||
* Here, we break the action up into several timout callbacks, to avoid
|
||||
* locking up browsers.
|
||||
*/
|
||||
function hovertipInit() {
|
||||
// specify the attribute name we use for our clicktips
|
||||
var clicktipConfig = {'attribute':'clicktip'};
|
||||
|
||||
/**
|
||||
* To enable this style of markup (id on tooltip):
|
||||
* <span clicktip="foo">target</span>...
|
||||
* <div id="foo" class="clicktip">blah blah</div>
|
||||
*/
|
||||
window.setTimeout(function() {
|
||||
$('.clicktip').hovertipActivate(clicktipConfig,
|
||||
targetSelectById,
|
||||
clicktipPrepareWithCloseLink,
|
||||
clicktipTargetPrepare);
|
||||
}, 0);
|
||||
|
||||
/**
|
||||
* To enable this style of markup (id on target):
|
||||
* <span id="foo">target</span>...
|
||||
* <div target="foo" class="clicktip">blah blah</div>
|
||||
*/
|
||||
window.setTimeout(function() {
|
||||
$('.clicktip').hovertipActivate(clicktipConfig,
|
||||
targetSelectByTargetAttribute,
|
||||
clicktipPrepareWithCloseLink,
|
||||
clicktipTargetPrepare);
|
||||
}, 0);
|
||||
|
||||
// specify our configuration for hovertips, including delay times (millisec)
|
||||
var hovertipConfig = {'attribute':'hovertip',
|
||||
'showDelay': 300,
|
||||
'hideDelay': 700};
|
||||
|
||||
// use <div class='hovertip'>blah blah</div>
|
||||
var hovertipSelect = 'div.hovertip';
|
||||
|
||||
// OPTIONAL: here we wrap each hovertip to apply special effect. (i.e. drop shadow):
|
||||
$(hovertipSelect).css('display', 'block').addClass('hovertip_wrap3').
|
||||
wrap("<div class='hovertip_wrap0'><div class='hovertip_wrap1'><div class='hovertip_wrap2'>" +
|
||||
"</div></div></div>").each(function() {
|
||||
// fix class and attributes for newly wrapped elements
|
||||
var tooltip = this.parentNode.parentNode.parentNode;
|
||||
if (this.getAttribute('target'))
|
||||
tooltip.setAttribute('target', this.getAttribute('target'));
|
||||
if (this.getAttribute('id')) {
|
||||
var id = this.getAttribute('id');
|
||||
this.removeAttribute('id');
|
||||
tooltip.setAttribute('id', id);
|
||||
}
|
||||
});
|
||||
hovertipSelect = 'div.hovertip_wrap0';
|
||||
|
||||
// end optional FX section
|
||||
|
||||
/**
|
||||
* To enable this style of markup (id on tooltip):
|
||||
* <span hovertip="foo">target</span>...
|
||||
* <div id="foo" class="hovertip">blah blah</div>
|
||||
*/
|
||||
window.setTimeout(function() {
|
||||
$(hovertipSelect).hovertipActivate(hovertipConfig,
|
||||
targetSelectById,
|
||||
hovertipPrepare,
|
||||
hovertipTargetPrepare);
|
||||
}, 0);
|
||||
|
||||
/**
|
||||
* To enable this style of markup (id on target):
|
||||
* <span id="foo">target</span>...
|
||||
* <div target="foo" class="hovertip">blah blah</div>
|
||||
*/
|
||||
window.setTimeout(function() {
|
||||
$(hovertipSelect).hovertipActivate(hovertipConfig,
|
||||
targetSelectByTargetAttribute,
|
||||
hovertipPrepare,
|
||||
hovertipTargetPrepare);
|
||||
}, 0);
|
||||
|
||||
/**
|
||||
* This next section enables this style of markup:
|
||||
* <foo><span>target</span><span class="hovertip">blah blah</span></foo>
|
||||
*
|
||||
* With drop shadow effect.
|
||||
*
|
||||
*/
|
||||
var hovertipSpanSelect = 'span.hovertip';
|
||||
// activate hovertips with wrappers for FX (drop shadow):
|
||||
$(hovertipSpanSelect).css('display', 'block').addClass('hovertip_wrap3').
|
||||
wrap("<span class='hovertip_wrap0'><span class='hovertip_wrap1'><span class='hovertip_wrap2'>" +
|
||||
"</span></span></span>").each(function() {
|
||||
// fix class and attributes for newly wrapped elements
|
||||
var tooltip = this.parentNode.parentNode.parentNode;
|
||||
if (this.getAttribute('target'))
|
||||
tooltip.setAttribute('target', this.getAttribute('target'));
|
||||
if (this.getAttribute('id')) {
|
||||
var id = this.getAttribute('id');
|
||||
this.removeAttribute('id');
|
||||
tooltip.setAttribute('id', id);
|
||||
}
|
||||
});
|
||||
hovertipSpanSelect = 'span.hovertip_wrap0';
|
||||
|
||||
window.setTimeout(function() {
|
||||
$(hovertipSpanSelect)
|
||||
.hovertipActivate(hovertipConfig,
|
||||
targetSelectByPrevious,
|
||||
hovertipPrepare,
|
||||
hovertipTargetPrepare);
|
||||
}, 0);
|
||||
}
|
||||
20
js/jquery-ui-timepicker-addon.js
vendored
20
js/jquery-ui-timepicker-addon.js
vendored
@@ -187,14 +187,14 @@
|
||||
|
||||
overrides = {
|
||||
beforeShow: function (input, dp_inst) {
|
||||
if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) {
|
||||
if (typeof tp_inst._defaults.evnts.beforeShow === 'function') {
|
||||
return tp_inst._defaults.evnts.beforeShow.call($input[0], input, dp_inst, tp_inst);
|
||||
}
|
||||
},
|
||||
onChangeMonthYear: function (year, month, dp_inst) {
|
||||
// Update the time as well : this prevents the time from disappearing from the $input field.
|
||||
// tp_inst._updateDateTime(dp_inst);
|
||||
if ($.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)) {
|
||||
if (typeof tp_inst._defaults.evnts.onChangeMonthYear === 'function') {
|
||||
tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst);
|
||||
}
|
||||
},
|
||||
@@ -202,7 +202,7 @@
|
||||
if (tp_inst.timeDefined === true && $input.val() !== '') {
|
||||
tp_inst._updateDateTime(dp_inst);
|
||||
}
|
||||
if ($.isFunction(tp_inst._defaults.evnts.onClose)) {
|
||||
if (typeof tp_inst._defaults.evnts.onClose === 'function') {
|
||||
tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst, tp_inst);
|
||||
}
|
||||
}
|
||||
@@ -304,7 +304,7 @@
|
||||
if (tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date) {
|
||||
tp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime());
|
||||
}
|
||||
tp_inst.$input.bind('focus', function () {
|
||||
tp_inst.$input.on('focus', function () {
|
||||
tp_inst._onFocus();
|
||||
});
|
||||
|
||||
@@ -315,7 +315,7 @@
|
||||
* add our sliders to the calendar
|
||||
*/
|
||||
_addTimePicker: function (dp_inst) {
|
||||
var currDT = $.trim((this.$altInput && this._defaults.altFieldTimeOnly) ? this.$input.val() + ' ' + this.$altInput.val() : this.$input.val());
|
||||
var currDT = ((this.$altInput && this._defaults.altFieldTimeOnly) ? this.$input.val() + ' ' + this.$altInput.val() : this.$input.val()).trim();
|
||||
|
||||
this.timeDefined = this._parseTime(currDT);
|
||||
this._limitMinMaxDateTime(dp_inst, false);
|
||||
@@ -362,7 +362,7 @@
|
||||
*/
|
||||
_afterInject: function() {
|
||||
var o = this.inst.settings;
|
||||
if ($.isFunction(o.afterInject)) {
|
||||
if (typeof o.afterInject === 'function') {
|
||||
o.afterInject.call(this);
|
||||
}
|
||||
},
|
||||
@@ -509,7 +509,7 @@
|
||||
selectLocalTimezone(tp_inst);
|
||||
}
|
||||
}
|
||||
this.timezone_select.change(function () {
|
||||
this.timezone_select.on('change',function () {
|
||||
tp_inst._onTimeChange();
|
||||
tp_inst._onSelectHandler();
|
||||
tp_inst._afterInject();
|
||||
@@ -525,7 +525,7 @@
|
||||
}
|
||||
|
||||
this.$timeObj = $tp.find('.ui_tpicker_time_input');
|
||||
this.$timeObj.change(function () {
|
||||
this.$timeObj.on('change',function () {
|
||||
var timeFormat = tp_inst.inst.settings.timeFormat;
|
||||
var parsedTime = $.datepicker.parseTime(timeFormat, this.value);
|
||||
var update = new Date();
|
||||
@@ -1077,7 +1077,7 @@
|
||||
for (var i = min; i <= max; i += step) {
|
||||
sel += '<option value="' + i + '"' + (i === val ? ' selected' : '') + '>';
|
||||
if (unit === 'hour') {
|
||||
sel += $.datepicker.formatTime($.trim(format.replace(/[^ht ]/ig, '')), {hour: i}, tp_inst._defaults);
|
||||
sel += $.datepicker.formatTime(format.replace(/[^ht ]/ig, '').trim(), {hour: i}, tp_inst._defaults);
|
||||
}
|
||||
else if (unit === 'millisec' || unit === 'microsec' || i >= 10) { sel += i; }
|
||||
else {sel += '0' + i.toString(); }
|
||||
@@ -1087,7 +1087,7 @@
|
||||
|
||||
obj.children('select').remove();
|
||||
|
||||
$(sel).appendTo(obj).change(function (e) {
|
||||
$(sel).appendTo(obj).on('change',function (e) {
|
||||
tp_inst._onTimeChange();
|
||||
tp_inst._onSelectHandler();
|
||||
tp_inst._afterInject();
|
||||
|
||||
6
js/jquery-ui-timepicker-addon.min.js
vendored
6
js/jquery-ui-timepicker-addon.min.js
vendored
File diff suppressed because one or more lines are too long
5939
js/jquery.layout.js
5939
js/jquery.layout.js
File diff suppressed because it is too large
Load Diff
142
js/jquery.layout.min.js
vendored
142
js/jquery.layout.min.js
vendored
@@ -1,142 +0,0 @@
|
||||
/*
|
||||
jquery.layout 1.3.0 - Release Candidate 30.79
|
||||
$Date: 2013-01-01 08:00:00 (Tue, 1 Jan 2013) $
|
||||
$Rev: 303007 $
|
||||
|
||||
Copyright (c) 2013 Kevin Dalman (http://allpro.net)
|
||||
Based on work by Fabrizio Balliano (http://www.fabrizioballiano.net)
|
||||
|
||||
Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
|
||||
and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
|
||||
|
||||
SEE: http://layout.jquery-dev.net/LICENSE.txt
|
||||
|
||||
Changelog: http://layout.jquery-dev.net/changelog.cfm#1.3.0.rc30.79
|
||||
|
||||
Docs: http://layout.jquery-dev.net/documentation.html
|
||||
Tips: http://layout.jquery-dev.net/tips.html
|
||||
Help: http://groups.google.com/group/jquery-ui-layout
|
||||
*/
|
||||
(function(b){var a=Math.min,d=Math.max,c=Math.floor,f=function(a){return"string"===b.type(a)},j=function(a,d){if(b.isArray(d))for(var c=0,j=d.length;c<j;c++){var h=d[c];try{f(h)&&(h=eval(h)),b.isFunction(h)&&h(a)}catch(k){}}};b.layout={version:"1.3.rc30.79",revision:0.033007,browser:{},effects:{slide:{all:{duration:"fast"},north:{direction:"up"},south:{direction:"down"},east:{direction:"right"},west:{direction:"left"}},drop:{all:{duration:"slow"},north:{direction:"up"},south:{direction:"down"},east:{direction:"right"},
|
||||
west:{direction:"left"}},scale:{all:{duration:"fast"}},blind:{},clip:{},explode:{},fade:{},fold:{},puff:{},size:{all:{easing:"swing"}}},config:{optionRootKeys:"effects panes north south west east center".split(" "),allPanes:["north","south","west","east","center"],borderPanes:["north","south","west","east"],oppositeEdge:{north:"south",south:"north",east:"west",west:"east"},offscreenCSS:{left:"-99999px",right:"auto"},offscreenReset:"offscreenReset",hidden:{visibility:"hidden"},visible:{visibility:"visible"},
|
||||
resizers:{cssReq:{position:"absolute",padding:0,margin:0,fontSize:"1px",textAlign:"left",overflow:"hidden"},cssDemo:{background:"#DDD",border:"none"}},togglers:{cssReq:{position:"absolute",display:"block",padding:0,margin:0,overflow:"hidden",textAlign:"center",fontSize:"1px",cursor:"pointer",zIndex:1},cssDemo:{background:"#AAA"}},content:{cssReq:{position:"relative"},cssDemo:{overflow:"auto",padding:"10px"},cssDemoPane:{overflow:"hidden",padding:0}},panes:{cssReq:{position:"absolute",margin:0},cssDemo:{padding:"10px",
|
||||
background:"#FFF",border:"1px solid #BBB",overflow:"auto"}},north:{side:"top",sizeType:"Height",dir:"horz",cssReq:{top:0,bottom:"auto",left:0,right:0,width:"auto"}},south:{side:"bottom",sizeType:"Height",dir:"horz",cssReq:{top:"auto",bottom:0,left:0,right:0,width:"auto"}},east:{side:"right",sizeType:"Width",dir:"vert",cssReq:{left:"auto",right:0,top:"auto",bottom:"auto",height:"auto"}},west:{side:"left",sizeType:"Width",dir:"vert",cssReq:{left:0,right:"auto",top:"auto",bottom:"auto",height:"auto"}},
|
||||
center:{dir:"center",cssReq:{left:"auto",right:"auto",top:"auto",bottom:"auto",height:"auto",width:"auto"}}},callbacks:{},getParentPaneElem:function(a){a=b(a);if(a=a.data("layout")||a.data("parentLayout")){a=a.container;if(a.data("layoutPane"))return a;a=a.closest("."+b.layout.defaults.panes.paneClass);if(a.data("layoutPane"))return a}return null},getParentPaneInstance:function(a){return(a=b.layout.getParentPaneElem(a))?a.data("layoutPane"):null},getParentLayoutInstance:function(a){return(a=b.layout.getParentPaneElem(a))?
|
||||
a.data("parentLayout"):null},getEventObject:function(b){return"object"===typeof b&&b.stopPropagation?b:null},parsePaneName:function(a){var d=b.layout.getEventObject(a);d&&(d.stopPropagation(),a=b(this).data("layoutEdge"));a&&!/^(west|east|north|south|center)$/.test(a)&&(b.layout.msg('LAYOUT ERROR - Invalid pane-name: "'+a+'"'),a="error");return a},plugins:{draggable:!!b.fn.draggable,effects:{core:!!b.effects,slide:b.effects&&(b.effects.slide||b.effects.effect&&b.effects.effect.slide)}},onCreate:[],
|
||||
onLoad:[],onReady:[],onDestroy:[],onUnload:[],afterOpen:[],afterClose:[],scrollbarWidth:function(){return window.scrollbarWidth||b.layout.getScrollbarSize("width")},scrollbarHeight:function(){return window.scrollbarHeight||b.layout.getScrollbarSize("height")},getScrollbarSize:function(a){var d=b('<div style="position: absolute; top: -10000px; left: -10000px; width: 100px; height: 100px; overflow: scroll;"></div>').appendTo("body"),c={width:d.css("width")-d[0].clientWidth,height:d.height()-d[0].clientHeight};
|
||||
d.remove();window.scrollbarWidth=c.width;window.scrollbarHeight=c.height;return a.match(/^(width|height)$/)?c[a]:c},showInvisibly:function(b,a){if(b&&b.length&&(a||"none"===b.css("display"))){var d=b[0].style,d={display:d.display||"",visibility:d.visibility||""};b.css({display:"block",visibility:"hidden"});return d}return{}},getElementDimensions:function(a,c){var f={css:{},inset:{}},j=f.css,h={bottom:0},k=b.layout.cssNum,p=a.offset(),O,R,D;f.offsetLeft=p.left;f.offsetTop=p.top;c||(c={});b.each(["Left",
|
||||
"Right","Top","Bottom"],function(d,k){O=j["border"+k]=b.layout.borderWidth(a,k);R=j["padding"+k]=b.layout.cssNum(a,"padding"+k);D=k.toLowerCase();f.inset[D]=0<=c[D]?c[D]:R;h[D]=f.inset[D]+O});j.width=a.width();j.height=a.height();j.top=k(a,"top",!0);j.bottom=k(a,"bottom",!0);j.left=k(a,"left",!0);j.right=k(a,"right",!0);f.outerWidth=a.outerWidth();f.outerHeight=a.outerHeight();f.innerWidth=d(0,f.outerWidth-h.left-h.right);f.innerHeight=d(0,f.outerHeight-h.top-h.bottom);f.layoutWidth=a.innerWidth();
|
||||
f.layoutHeight=a.innerHeight();return f},getElementStyles:function(b,a){var d={},c=b[0].style,f=a.split(","),k=["Top","Bottom","Left","Right"],j=["Color","Style","Width"],h,p,D,x,A,r;for(x=0;x<f.length;x++)if(h=f[x],h.match(/(border|padding|margin)$/))for(A=0;4>A;A++)if(p=k[A],"border"===h)for(r=0;3>r;r++)D=j[r],d[h+p+D]=c[h+p+D];else d[h+p]=c[h+p];else d[h]=c[h];return d},cssWidth:function(a,c){if(0>=c)return 0;var f=!b.layout.browser.boxModel?"border-box":b.support.boxSizing?a.css("boxSizing"):
|
||||
"content-box",j=b.layout.borderWidth,h=b.layout.cssNum,k=c;"border-box"!==f&&(k-=j(a,"Left")+j(a,"Right"));"content-box"===f&&(k-=h(a,"paddingLeft")+h(a,"paddingRight"));return d(0,k)},cssHeight:function(a,c){if(0>=c)return 0;var f=!b.layout.browser.boxModel?"border-box":b.support.boxSizing?a.css("boxSizing"):"content-box",j=b.layout.borderWidth,h=b.layout.cssNum,k=c;"border-box"!==f&&(k-=j(a,"Top")+j(a,"Bottom"));"content-box"===f&&(k-=h(a,"paddingTop")+h(a,"paddingBottom"));return d(0,k)},cssNum:function(a,
|
||||
d,c){a.jquery||(a=b(a));var f=b.layout.showInvisibly(a);d=b.css(a[0],d,!0);c=c&&"auto"==d?d:Math.round(parseFloat(d)||0);a.css(f);return c},borderWidth:function(a,d){a.jquery&&(a=a[0]);var c="border"+d.substr(0,1).toUpperCase()+d.substr(1);return"none"===b.css(a,c+"Style",!0)?0:Math.round(parseFloat(b.css(a,c+"Width",!0))||0)},isMouseOverElem:function(a,d){var c=b(d||this),f=c.offset(),j=f.top,f=f.left,k=f+c.outerWidth(),c=j+c.outerHeight(),h=a.pageX,p=a.pageY;return b.layout.browser.msie&&0>h&&0>
|
||||
p||h>=f&&h<=k&&p>=j&&p<=c},msg:function(a,d,c,f){b.isPlainObject(a)&&window.debugData?("string"===typeof d?(f=c,c=d):"object"===typeof c&&(f=c,c=null),c=c||"log( <object> )",f=b.extend({sort:!1,returnHTML:!1,display:!1},f),!0===d||f.display?debugData(a,c,f):window.console&&console.log(debugData(a,c,f))):d?alert(a):window.console?console.log(a):(d=b("#layoutLogger"),d.length||(d=b('<div id="layoutLogger" style="position: '+(b.support.fixedPosition?"fixed":"absolute")+'; top: 5px; z-index: 999999; max-width: 25%; overflow: hidden; border: 1px solid #000; border-radius: 5px; background: #FBFBFB; box-shadow: 0 2px 10px rgba(0,0,0,0.3);"><div style="font-size: 13px; font-weight: bold; padding: 5px 10px; background: #F6F6F6; border-radius: 5px 5px 0 0; cursor: move;"><span style="float: right; padding-left: 7px; cursor: pointer;" title="Remove Console" onclick="$(this).closest(\'#layoutLogger\').remove()">X</span>Layout console.log</div><ul style="font-size: 13px; font-weight: none; list-style: none; margin: 0; padding: 0 0 2px;"></ul></div>').appendTo("body"),
|
||||
d.css("left",b(window).width()-d.outerWidth()-5),b.ui.draggable&&d.draggable({handle:":first-child"})),d.children("ul").append('<li style="padding: 4px 10px; margin: 0; border-top: 1px solid #CCC;">'+a.replace(/\</g,"<").replace(/\>/g,">")+"</li>"))}};var h=navigator.userAgent.toLowerCase(),p=/(chrome)[ \/]([\w.]+)/.exec(h)||/(webkit)[ \/]([\w.]+)/.exec(h)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(h)||/(msie) ([\w.]+)/.exec(h)||0>h.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(h)||
|
||||
[],h=p[1]||"",p=p[2]||0,x="msie"===h;b.layout.browser={version:p,safari:"webkit"===h,webkit:"chrome"===h,msie:x,isIE6:x&&6==p,boxModel:!x||!1!==b.support.boxModel};h&&(b.layout.browser[h]=!0);x&&b(function(){b.layout.browser.boxModel=b.support.boxModel});b.layout.defaults={name:"",containerClass:"ui-layout-container",inset:null,scrollToBookmarkOnLoad:!0,resizeWithWindow:!0,resizeWithWindowDelay:200,resizeWithWindowMaxDelay:0,maskPanesEarly:!1,onresizeall_start:null,onresizeall_end:null,onload_start:null,
|
||||
onload_end:null,onunload_start:null,onunload_end:null,initPanes:!0,showErrorMessages:!0,showDebugMessages:!1,zIndex:null,zIndexes:{pane_normal:0,content_mask:1,resizer_normal:2,pane_sliding:100,pane_animate:1E3,resizer_drag:1E4},errors:{pane:"pane",selector:"selector",addButtonError:"Error Adding Button\nInvalid ",containerMissing:"UI Layout Initialization Error\nThe specified layout-container does not exist.",centerPaneMissing:"UI Layout Initialization Error\nThe center-pane element does not exist.\nThe center-pane is a required element.",
|
||||
noContainerHeight:"UI Layout Initialization Warning\nThe layout-container \"CONTAINER\" has no height.\nTherefore the layout is 0-height and hence 'invisible'!",callbackError:"UI Layout Callback Error\nThe EVENT callback is not a valid function."},panes:{applyDemoStyles:!1,closable:!0,resizable:!0,slidable:!0,initClosed:!1,initHidden:!1,contentSelector:".ui-layout-content",contentIgnoreSelector:".ui-layout-ignore",findNestedContent:!1,paneClass:"ui-layout-pane",resizerClass:"ui-layout-resizer",togglerClass:"ui-layout-toggler",
|
||||
buttonClass:"ui-layout-button",minSize:0,maxSize:0,spacing_open:6,spacing_closed:6,togglerLength_open:50,togglerLength_closed:50,togglerAlign_open:"center",togglerAlign_closed:"center",togglerContent_open:"",togglerContent_closed:"",resizerDblClickToggle:!0,autoResize:!0,autoReopen:!0,resizerDragOpacity:1,maskContents:!1,maskObjects:!1,maskZindex:null,resizingGrid:!1,livePaneResizing:!1,liveContentResizing:!1,liveResizingTolerance:1,sliderCursor:"pointer",slideTrigger_open:"click",slideTrigger_close:"mouseleave",
|
||||
slideDelay_open:300,slideDelay_close:300,hideTogglerOnSlide:!1,preventQuickSlideClose:b.layout.browser.webkit,preventPrematureSlideClose:!1,tips:{Open:"Open",Close:"Close",Resize:"Resize",Slide:"Slide Open",Pin:"Pin",Unpin:"Un-Pin",noRoomToOpen:"Not enough room to show this panel.",minSizeWarning:"Panel has reached its minimum size",maxSizeWarning:"Panel has reached its maximum size"},showOverflowOnHover:!1,enableCursorHotkey:!0,customHotkeyModifier:"SHIFT",fxName:"slide",fxSpeed:null,fxSettings:{},
|
||||
fxOpacityFix:!0,animatePaneSizing:!1,children:null,containerSelector:"",initChildren:!0,destroyChildren:!0,resizeChildren:!0,triggerEventsOnLoad:!1,triggerEventsDuringLiveResize:!0,onshow_start:null,onshow_end:null,onhide_start:null,onhide_end:null,onopen_start:null,onopen_end:null,onclose_start:null,onclose_end:null,onresize_start:null,onresize_end:null,onsizecontent_start:null,onsizecontent_end:null,onswap_start:null,onswap_end:null,ondrag_start:null,ondrag_end:null},north:{paneSelector:".ui-layout-north",
|
||||
size:"auto",resizerCursor:"n-resize",customHotkey:""},south:{paneSelector:".ui-layout-south",size:"auto",resizerCursor:"s-resize",customHotkey:""},east:{paneSelector:".ui-layout-east",size:200,resizerCursor:"e-resize",customHotkey:""},west:{paneSelector:".ui-layout-west",size:200,resizerCursor:"w-resize",customHotkey:""},center:{paneSelector:".ui-layout-center",minWidth:0,minHeight:0}};b.layout.optionsMap={layout:"name instanceKey stateManagement effects inset zIndexes errors zIndex scrollToBookmarkOnLoad showErrorMessages maskPanesEarly outset resizeWithWindow resizeWithWindowDelay resizeWithWindowMaxDelay onresizeall onresizeall_start onresizeall_end onload onload_start onload_end onunload onunload_start onunload_end".split(" "),
|
||||
center:"paneClass contentSelector contentIgnoreSelector findNestedContent applyDemoStyles triggerEventsOnLoad showOverflowOnHover maskContents maskObjects liveContentResizing containerSelector children initChildren resizeChildren destroyChildren onresize onresize_start onresize_end onsizecontent onsizecontent_start onsizecontent_end".split(" "),noDefault:["paneSelector","resizerCursor","customHotkey"]};b.layout.transformData=function(a,d){var c=d?{panes:{},center:{}}:{},f,j,k,h,p,x,D;if("object"!==
|
||||
typeof a)return c;for(j in a){f=c;p=a[j];k=j.split("__");D=k.length-1;for(x=0;x<=D;x++)h=k[x],x===D?f[h]=b.isPlainObject(p)?b.layout.transformData(p):p:(f[h]||(f[h]={}),f=f[h])}return c};b.layout.backwardCompatibility={map:{applyDefaultStyles:"applyDemoStyles",childOptions:"children",initChildLayout:"initChildren",destroyChildLayout:"destroyChildren",resizeChildLayout:"resizeChildren",resizeNestedLayout:"resizeChildren",resizeWhileDragging:"livePaneResizing",resizeContentWhileDragging:"liveContentResizing",
|
||||
triggerEventsWhileDragging:"triggerEventsDuringLiveResize",maskIframesOnResize:"maskContents",useStateCookie:"stateManagement.enabled","cookie.autoLoad":"stateManagement.autoLoad","cookie.autoSave":"stateManagement.autoSave","cookie.keys":"stateManagement.stateKeys","cookie.name":"stateManagement.cookie.name","cookie.domain":"stateManagement.cookie.domain","cookie.path":"stateManagement.cookie.path","cookie.expires":"stateManagement.cookie.expires","cookie.secure":"stateManagement.cookie.secure",
|
||||
noRoomToOpenTip:"tips.noRoomToOpen",togglerTip_open:"tips.Close",togglerTip_closed:"tips.Open",resizerTip:"tips.Resize",sliderTip:"tips.Slide"},renameOptions:function(a){function d(b,c){for(var f=b.split("."),k=f.length-1,j={branch:a,key:f[k]},r=0,q;r<k;r++)q=f[r],j.branch=void 0==j.branch[q]?c?j.branch[q]={}:{}:j.branch[q];return j}var c=b.layout.backwardCompatibility.map,f,j,k,h;for(h in c)f=d(h),k=f.branch[f.key],void 0!==k&&(j=d(c[h],!0),j.branch[j.key]=k,delete f.branch[f.key])},renameAllOptions:function(a){var d=
|
||||
b.layout.backwardCompatibility.renameOptions;d(a);a.defaults&&("object"!==typeof a.panes&&(a.panes={}),b.extend(!0,a.panes,a.defaults),delete a.defaults);a.panes&&d(a.panes);b.each(b.layout.config.allPanes,function(b,c){a[c]&&d(a[c])});return a}};b.fn.layout=function(h){function p(e){if(!e)return!0;var w=e.keyCode;if(33>w)return!0;var m={38:"north",40:"south",37:"west",39:"east"},a=e.shiftKey,g=e.ctrlKey,t,n,d,c;g&&(37<=w&&40>=w)&&r[m[w]].enableCursorHotkey?c=m[w]:(g||a)&&b.each(k.borderPanes,function(e,
|
||||
b){t=r[b];n=t.customHotkey;d=t.customHotkeyModifier;if(a&&"SHIFT"==d||g&&"CTRL"==d||g&&a)if(n&&w===(isNaN(n)||9>=n?n.toUpperCase().charCodeAt(0):n))return c=b,!1});if(!c||!y[c]||!r[c].closable||q[c].isHidden)return!0;na(c);e.stopPropagation();return e.returnValue=!1}function x(e){if(H()){this&&this.tagName&&(e=this);var w;f(e)?w=y[e]:b(e).data("layoutRole")?w=b(e):b(e).parents().each(function(){if(b(this).data("layoutRole"))return w=b(this),!1});if(w&&w.length){var m=w.data("layoutEdge");e=q[m];e.cssSaved&&
|
||||
X(m);if(e.isSliding||e.isResizing||e.isClosed)e.cssSaved=!1;else{var a={zIndex:r.zIndexes.resizer_normal+1},g={},t=w.css("overflow"),n=w.css("overflowX"),d=w.css("overflowY");"visible"!=t&&(g.overflow=t,a.overflow="visible");n&&!n.match(/(visible|auto)/)&&(g.overflowX=n,a.overflowX="visible");d&&!d.match(/(visible|auto)/)&&(g.overflowY=n,a.overflowY="visible");e.cssSaved=g;w.css(a);b.each(k.allPanes,function(e,b){b!=m&&X(b)})}}}}function X(e){if(H()){this&&this.tagName&&(e=this);var w;f(e)?w=y[e]:
|
||||
b(e).data("layoutRole")?w=b(e):b(e).parents().each(function(){if(b(this).data("layoutRole"))return w=b(this),!1});if(w&&w.length){e=w.data("layoutEdge");e=q[e];var m=e.cssSaved||{};!e.isSliding&&!e.isResizing&&w.css("zIndex",r.zIndexes.pane_normal);w.css(m);e.cssSaved=!1}}}var G=b.layout.browser,k=b.layout.config,Q=b.layout.cssWidth,O=b.layout.cssHeight,R=b.layout.getElementDimensions,D=b.layout.getElementStyles,Ma=b.layout.getEventObject,A=b.layout.parsePaneName,r=b.extend(!0,{},b.layout.defaults);
|
||||
r.effects=b.extend(!0,{},b.layout.effects);var q={id:"layout"+b.now(),initialized:!1,paneResizing:!1,panesSliding:{},container:{innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0,layoutWidth:0,layoutHeight:0},north:{childIdx:0},south:{childIdx:0},east:{childIdx:0},west:{childIdx:0},center:{childIdx:0}},ba={north:null,south:null,east:null,west:null,center:null},M={data:{},set:function(e,b,m){M.clear(e);M.data[e]=setTimeout(b,m)},clear:function(e){var b=M.data;b[e]&&(clearTimeout(b[e]),delete b[e])}},
|
||||
ca=function(e,w,m){var a=r;(a.showErrorMessages&&!m||m&&a.showDebugMessages)&&b.layout.msg(a.name+" / "+e,!1!==w);return!1},C=function(e,w,m){var a=w&&f(w),g=a?q[w]:q,t=a?r[w]:r,n=r.name,d=e+(e.match(/_/)?"":"_end"),c=d.match(/_end$/)?d.substr(0,d.length-4):"",l=t[d]||t[c],h="NC",k=[];!a&&"boolean"===b.type(w)&&(m=w,w="");if(l)try{f(l)&&(l.match(/,/)?(k=l.split(","),l=eval(k[0])):l=eval(l)),b.isFunction(l)&&(h=k.length?l(k[1]):a?l(w,y[w],g,t,n):l(z,g,t,n))}catch(j){ca(r.errors.callbackError.replace(/EVENT/,
|
||||
b.trim((w||"")+" "+d)),!1),"string"===b.type(j)&&string.length&&ca("Exception: "+j,!1)}!m&&!1!==h&&(a?(m=y[w],t=r[w],g=q[w],m.triggerHandler("layoutpane"+d,[w,m,g,t,n]),c&&m.triggerHandler("layoutpane"+c,[w,m,g,t,n])):(u.triggerHandler("layout"+d,[z,g,t,n]),c&&u.triggerHandler("layout"+c,[z,g,t,n])));a&&"onresize_end"===e&&db(w+"",!0);return h},eb=function(e){if(!G.mozilla){var b=y[e];"IFRAME"===q[e].tagName?b.css(k.hidden).css(k.visible):b.find("IFRAME").css(k.hidden).css(k.visible)}},ya=function(e){var b=
|
||||
y[e];e=k[e].dir;b={minWidth:1001-Q(b,1E3),minHeight:1001-O(b,1E3)};"horz"===e&&(b.minSize=b.minHeight);"vert"===e&&(b.minSize=b.minWidth);return b},fa=function(e,w,m){m||(m=k[e].dir);f(w)&&w.match(/%/)&&(w="100%"===w?-1:parseInt(w,10)/100);if(0===w)return 0;if(1<=w)return parseInt(w,10);var a=r,g=0;"horz"==m?g=v.innerHeight-(y.north?a.north.spacing_open:0)-(y.south?a.south.spacing_open:0):"vert"==m&&(g=v.innerWidth-(y.west?a.west.spacing_open:0)-(y.east?a.east.spacing_open:0));if(-1===w)return g;
|
||||
if(0<w)return c(g*w);if("center"==e)return 0;m="horz"===m?"height":"width";a=y[e];e="height"===m?U[e]:!1;var g=b.layout.showInvisibly(a),t=a.css(m),n=e?e.css(m):0;a.css(m,"auto");e&&e.css(m,"auto");w="height"===m?a.outerHeight():a.outerWidth();a.css(m,t).css(g);e&&e.css(m,n);return w},ga=function(e,b){var a=y[e],E=r[e],g=q[e],t=b?E.spacing_open:0,E=b?E.spacing_closed:0;return!a||g.isHidden?0:g.isClosed||g.isSliding&&b?E:"horz"===k[e].dir?a.outerHeight()+t:a.outerWidth()+t},Y=function(e,b){if(H()){var m=
|
||||
r[e],E=q[e],g=k[e],t=g.dir;g.sizeType.toLowerCase();var g=void 0!=b?b:E.isSliding,n=m.spacing_open,c=k.oppositeEdge[e],f=q[c],l=y[c],h=!l||!1===f.isVisible||f.isSliding?0:"horz"==t?l.outerHeight():l.outerWidth(),c=(!l||f.isHidden?0:r[c][!1!==f.isClosed?"spacing_closed":"spacing_open"])||0,f="horz"==t?v.innerHeight:v.innerWidth,l=ya("center"),l="horz"==t?d(r.center.minHeight,l.minHeight):d(r.center.minWidth,l.minWidth),g=f-n-(g?0:fa("center",l,t)+h+c),t=E.minSize=d(fa(e,m.minSize),ya(e).minSize),g=
|
||||
E.maxSize=a(m.maxSize?fa(e,m.maxSize):1E5,g),E=E.resizerPosition={},n=v.inset.top,h=v.inset.left,c=v.innerWidth,f=v.innerHeight,m=m.spacing_open;switch(e){case "north":E.min=n+t;E.max=n+g;break;case "west":E.min=h+t;E.max=h+g;break;case "south":E.min=n+f-g-m;E.max=n+f-t-m;break;case "east":E.min=h+c-g-m,E.max=h+c-t-m}}},Na=function(e,a){var m=b(e),E=m.data("layoutRole"),g=m.data("layoutEdge"),t=r[g][E+"Class"],g="-"+g,n=m.hasClass(t+"-closed")?"-closed":"-open",d="-closed"===n?"-open":"-closed",n=
|
||||
t+"-hover "+(t+g+"-hover ")+(t+n+"-hover ")+(t+g+n+"-hover ");a&&(n+=t+d+"-hover "+(t+g+d+"-hover "));"resizer"==E&&m.hasClass(t+"-sliding")&&(n+=t+"-sliding-hover "+(t+g+"-sliding-hover "));return b.trim(n)},Oa=function(e,a){var m=b(a||this);e&&"toggler"===m.data("layoutRole")&&e.stopPropagation();m.addClass(Na(m))},da=function(e,a){var m=b(a||this);m.removeClass(Na(m,!0))},fb=function(){var e=b(this).data("layoutEdge"),a=q[e];!a.isClosed&&(!a.isResizing&&!q.paneResizing)&&(b.fn.disableSelection&&
|
||||
b("body").disableSelection(),r.maskPanesEarly&&va(e,{resizing:!0}))},gb=function(e,a){var m=a||this,E=b(m).data("layoutEdge"),g=E+"ResizerLeave";M.clear(E+"_openSlider");M.clear(g);a?q.paneResizing||(b.fn.enableSelection&&b("body").enableSelection(),r.maskPanesEarly&&za()):M.set(g,function(){gb(e,m)},200)},H=function(){return q.initialized||q.creatingLayout?!0:Aa()},Aa=function(e){var a=r;if(!u.is(":visible"))return!e&&(G.webkit&&"BODY"===u[0].tagName)&&setTimeout(function(){Aa(!0)},50),!1;if(!hb("center").length)return ca(a.errors.centerPaneMissing);
|
||||
q.creatingLayout=!0;b.extend(v,R(u,a.inset));A(void 0);b.each(k.allPanes,function(e,b){ib(b,!0)});Pa();b.each(k.borderPanes,function(e,b){y[b]&&q[b].isVisible&&(Y(b),ha(b))});ia("center");b.each(k.allPanes,function(e,b){jb(b)});a.scrollToBookmarkOnLoad&&(e=self.location,e.hash&&e.replace(e.hash));z.hasParentLayout?a.resizeWithWindow=!1:a.resizeWithWindow&&b(window).bind("resize."+K,Ab);delete q.creatingLayout;q.initialized=!0;j(z,b.layout.onReady);C("onload_end");return!0},Qa=function(e,a){var m=
|
||||
A.call(this,e),d=y[m];if(d){var g=U[m],t=q[m],n=r[m],c=r.stateManagement||{},n=a?n.children=a:n.children;if(b.isPlainObject(n))n=[n];else if(!n||!b.isArray(n))return;b.each(n,function(e,a){b.isPlainObject(a)&&(a.containerSelector?d.find(a.containerSelector):g||d).each(function(){var e=b(this),g=e.data("layout");if(!g){kb({container:e,options:a},t);if(c.includeChildren&&q.stateData[m]){var g=(q.stateData[m].children||{})[a.instanceKey],w=a.stateManagement||(a.stateManagement={autoLoad:!0});!0===w.autoLoad&&
|
||||
g&&(w.autoSave=!1,w.includeChildren=!0,w.autoLoad=b.extend(!0,{},g))}(g=e.layout(a))&&Ba(m,g)}})})}},kb=function(e,b){var a=e.container,d=e.options,g=d.stateManagement,t=d.instanceKey||a.data("layoutInstanceKey");t||(t=(g&&g.cookie?g.cookie.name:"")||d.name);t=t?t.replace(/[^\w-]/gi,"_").replace(/_{2,}/g,"_"):"layout"+ ++b.childIdx;d.instanceKey=t;a.data("layoutInstanceKey",t);return t},Ba=function(e,a){var m=y[e],d=ba[e],g=q[e];b.isPlainObject(d)&&(b.each(d,function(e,b){b.destroyed&&delete d[e]}),
|
||||
b.isEmptyObject(d)&&(d=ba[e]=null));!a&&!d&&(a=m.data("layout"));a&&(a.hasParentLayout=!0,m=a.options,kb(a,g),d||(d=ba[e]={}),d[m.instanceKey]=a.container.data("layout"));z[e].children=ba[e];a||Qa(e)},Ab=function(){var e=r,b=Number(e.resizeWithWindowDelay);10>b&&(b=100);M.clear("winResize");M.set("winResize",function(){M.clear("winResize");M.clear("winResizeRepeater");var b=R(u,e.inset);(b.innerWidth!==v.innerWidth||b.innerHeight!==v.innerHeight)&&oa()},b);M.data.winResizeRepeater||lb()},lb=function(){var e=
|
||||
Number(r.resizeWithWindowMaxDelay);0<e&&M.set("winResizeRepeater",function(){lb();oa()},e)},mb=function(){C("onunload_start");j(z,b.layout.onUnload);C("onunload_end")},nb=function(e){e=e?e.split(","):k.borderPanes;b.each(e,function(e,a){var d=r[a];if(d.enableCursorHotkey||d.customHotkey)return b(document).bind("keydown."+K,p),!1})},hb=function(e){e=r[e].paneSelector;if("#"===e.substr(0,1))return u.find(e).eq(0);var b=u.children(e).eq(0);return b.length?b:u.children("form:first").children(e).eq(0)},
|
||||
ib=function(e,b){if(b||H()){var m=r[e],c=q[e],g=k[e],t=g.dir,n="center"===e,f={},h=y[e],l,j;h?Ra(e,!1,!0,!1):U[e]=!1;h=y[e]=hb(e);if(h.length){h.data("layoutCSS")||h.data("layoutCSS",D(h,"position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border"));z[e]={name:e,pane:y[e],content:U[e],options:r[e],state:q[e],children:ba[e]};h.data({parentLayout:z,layoutPane:z[e],layoutEdge:e,layoutRole:"pane"}).css(g.cssReq).css("zIndex",r.zIndexes.pane_normal).css(m.applyDemoStyles?
|
||||
g.cssDemo:{}).addClass(m.paneClass+" "+m.paneClass+"-"+e).bind("mouseenter."+K,Oa).bind("mouseleave."+K,da);g={hide:"",show:"",toggle:"",close:"",open:"",slideOpen:"",slideClose:"",slideToggle:"",size:"sizePane",sizePane:"sizePane",sizeContent:"",sizeHandles:"",enableClosable:"",disableClosable:"",enableSlideable:"",disableSlideable:"",enableResizable:"",disableResizable:"",swapPanes:"swapPanes",swap:"swapPanes",move:"swapPanes",removePane:"removePane",remove:"removePane",createChildren:"",resizeChildren:"",
|
||||
resizeAll:"resizeAll",resizeLayout:"resizeAll"};for(j in g)h.bind("layoutpane"+j.toLowerCase()+"."+K,z[g[j]||j]);Sa(e,!1);n||(l=c.size=fa(e,m.size),n=fa(e,m.minSize)||1,j=fa(e,m.maxSize)||1E5,0<l&&(l=d(a(l,j),n)),c.autoResize=m.autoResize,c.isClosed=!1,c.isSliding=!1,c.isResizing=!1,c.isHidden=!1,c.pins||(c.pins=[]));c.tagName=h[0].tagName;c.edge=e;c.noRoom=!1;c.isVisible=!0;ob(e);"horz"===t?f.height=O(h,l):"vert"===t&&(f.width=Q(h,l));h.css(f);"horz"!=t&&ia(e,!0);q.initialized&&(Pa(e),nb(e));m.initClosed&&
|
||||
m.closable&&!m.initHidden?ja(e,!0,!0):m.initHidden||m.initClosed?Ta(e):c.noRoom||h.css("display","block");h.css("visibility","visible");m.showOverflowOnHover&&h.hover(x,X);q.initialized&&jb(e)}else y[e]=!1}},jb=function(e){var b=y[e],a=q[e],d=r[e];b&&(b.data("layout")&&Ba(e,b.data("layout")),a.isVisible&&(q.initialized?oa():pa(e),d.triggerEventsOnLoad?C("onresize_end",e):db(e,!0)),d.initChildren&&d.children&&Qa(e))},ob=function(e){e=e?e.split(","):k.borderPanes;b.each(e,function(e,b){var a=y[b],g=
|
||||
F[b],d=q[b],c=k[b].side,f={};if(a){switch(b){case "north":f.top=v.inset.top;f.left=v.inset.left;f.right=v.inset.right;break;case "south":f.bottom=v.inset.bottom;f.left=v.inset.left;f.right=v.inset.right;break;case "west":f.left=v.inset.left;break;case "east":f.right=v.inset.right}a.css(f);g&&d.isClosed?g.css(c,v.inset[c]):g&&!d.isHidden&&g.css(c,v.inset[c]+ga(b))}})},Pa=function(e){e=e?e.split(","):k.borderPanes;b.each(e,function(e,a){var d=y[a];F[a]=!1;P[a]=!1;if(d){var g=r[a],d=q[a],c="#"===g.paneSelector.substr(0,
|
||||
1)?g.paneSelector.substr(1):"",n=g.resizerClass,f=g.togglerClass,h="-"+a,l=z[a],j=l.resizer=F[a]=b("<div></div>"),l=l.toggler=g.closable?P[a]=b("<div></div>"):!1;!d.isVisible&&g.slidable&&j.attr("title",g.tips.Slide).css("cursor",g.sliderCursor);j.attr("id",c?c+"-resizer":"").data({parentLayout:z,layoutPane:z[a],layoutEdge:a,layoutRole:"resizer"}).css(k.resizers.cssReq).css("zIndex",r.zIndexes.resizer_normal).css(g.applyDemoStyles?k.resizers.cssDemo:{}).addClass(n+" "+n+h).hover(Oa,da).hover(fb,gb).appendTo(u);
|
||||
g.resizerDblClickToggle&&j.bind("dblclick."+K,na);l&&(l.attr("id",c?c+"-toggler":"").data({parentLayout:z,layoutPane:z[a],layoutEdge:a,layoutRole:"toggler"}).css(k.togglers.cssReq).css(g.applyDemoStyles?k.togglers.cssDemo:{}).addClass(f+" "+f+h).hover(Oa,da).bind("mouseenter",fb).appendTo(j),g.togglerContent_open&&b("<span>"+g.togglerContent_open+"</span>").data({layoutEdge:a,layoutRole:"togglerContent"}).data("layoutRole","togglerContent").data("layoutEdge",a).addClass("content content-open").css("display",
|
||||
"none").appendTo(l),g.togglerContent_closed&&b("<span>"+g.togglerContent_closed+"</span>").data({layoutEdge:a,layoutRole:"togglerContent"}).addClass("content content-closed").css("display","none").appendTo(l),pb(a));var g=a,B=b.layout.plugins.draggable,g=g?g.split(","):k.borderPanes;b.each(g,function(e,a){var g=r[a];if(!B||!y[a]||!g.resizable)return g.resizable=!1,!0;var m=q[a],w=r.zIndexes,d=k[a],c="horz"==d.dir?"top":"left",t=F[a],n=g.resizerClass,f=0,l,h,E=n+"-drag",j=n+"-"+a+"-drag",J=n+"-dragging",
|
||||
zb=n+"-"+a+"-dragging",cb=n+"-dragging-limit",v=n+"-"+a+"-dragging-limit",x=!1;m.isClosed||t.attr("title",g.tips.Resize).css("cursor",g.resizerCursor);t.draggable({containment:u[0],axis:"horz"==d.dir?"y":"x",delay:0,distance:1,grid:g.resizingGrid,helper:"clone",opacity:g.resizerDragOpacity,addClasses:!1,zIndex:w.resizer_drag,start:function(e,w){g=r[a];m=q[a];h=g.livePaneResizing;if(!1===C("ondrag_start",a))return!1;m.isResizing=!0;q.paneResizing=a;M.clear(a+"_closeSlider");Y(a);l=m.resizerPosition;
|
||||
f=w.position[c];t.addClass(E+" "+j);x=!1;b("body").disableSelection();va(a,{resizing:!0})},drag:function(e,b){x||(b.helper.addClass(J+" "+zb).css({right:"auto",bottom:"auto"}).children().css("visibility","hidden"),x=!0,m.isSliding&&y[a].css("zIndex",w.pane_sliding));var d=0;b.position[c]<l.min?(b.position[c]=l.min,d=-1):b.position[c]>l.max&&(b.position[c]=l.max,d=1);d?(b.helper.addClass(cb+" "+v),window.defaultStatus=0<d&&a.match(/(north|west)/)||0>d&&a.match(/(south|east)/)?g.tips.maxSizeWarning:
|
||||
g.tips.minSizeWarning):(b.helper.removeClass(cb+" "+v),window.defaultStatus="");h&&Math.abs(b.position[c]-f)>=g.liveResizingTolerance&&(f=b.position[c],p(e,b,a))},stop:function(e,g){b("body").enableSelection();window.defaultStatus="";t.removeClass(E+" "+j);m.isResizing=!1;q.paneResizing=!1;p(e,g,a,!0)}})});var p=function(b,e,a,g){var m=e.position,w=k[a];b=r[a];e=q[a];var d;switch(a){case "north":d=m.top;break;case "west":d=m.left;break;case "south":d=v.layoutHeight-m.top-b.spacing_open;break;case "east":d=
|
||||
v.layoutWidth-m.left-b.spacing_open}d-=v.inset[w.side];g?(!1!==C("ondrag_end",a)&&Ca(a,d,!1,!0),za(!0),e.isSliding&&va(a,{resizing:!0})):Math.abs(d-e.size)<b.liveResizingTolerance||(Ca(a,d,!1,!0),ea.each(qb))};d.isVisible?Ua(a):(Da(a),ma(a,!0))}});qa()},Sa=function(b,a){if(H()){var m=r[b],d=m.contentSelector,g=z[b],c=y[b],n;d&&(n=g.content=U[b]=m.findNestedContent?c.find(d).eq(0):c.children(d).eq(0));n&&n.length?(n.data("layoutRole","content"),n.data("layoutCSS")||n.data("layoutCSS",D(n,"height")),
|
||||
n.css(k.content.cssReq),m.applyDemoStyles&&(n.css(k.content.cssDemo),c.css(k.content.cssDemoPane)),c.css("overflowX").match(/(scroll|auto)/)&&c.css("overflow","hidden"),q[b].content={},!1!==a&&pa(b)):g.content=U[b]=!1}},qb=function(){var e=b(this),a=e.data("layoutMask"),a=q[a];"IFRAME"==a.tagName&&a.isVisible&&e.css({top:a.offsetTop,left:a.offsetLeft,width:a.outerWidth,height:a.outerHeight})},va=function(e,a){var m=k[e],d=["center"],g=r.zIndexes,c=b.extend({objectsOnly:!1,animation:!1,resizing:!0,
|
||||
sliding:q[e].isSliding},a),n,f;c.resizing&&d.push(e);c.sliding&&d.push(k.oppositeEdge[e]);"horz"===m.dir&&(d.push("west"),d.push("east"));b.each(d,function(e,a){f=q[a];n=r[a];if(f.isVisible&&(n.maskObjects||!c.objectsOnly&&n.maskContents)){for(var m=b([]),d,w=0,h=ea.length;w<h;w++)d=ea.eq(w),d.data("layoutMask")===a&&(m=m.add(d));if(!m.length){m=y[a];d=q[a];var w=r[a],h=r.zIndexes,j=b([]),E,k,v,p,x;if(w.maskContents||w.maskObjects)for(x=0;x<(w.maskObjects?2:1);x++)E=w.maskObjects&&0==x,k=document.createElement(E?
|
||||
"iframe":"div"),v=b(k).data("layoutMask",a),k.className="ui-layout-mask ui-layout-mask-"+a,p=k.style,p.display="block",p.position="absolute",p.background="#FFF",E&&(k.frameborder=0,k.src="about:blank",p.opacity=0,p.filter="Alpha(Opacity='0')",p.border=0),"IFRAME"==d.tagName?(p.zIndex=h.pane_normal+1,u.append(k)):(v.addClass("ui-layout-mask-inside-pane"),p.zIndex=w.maskZindex||h.content_mask,p.top=0,p.left=0,p.width="100%",p.height="100%",m.append(k)),j=j.add(k),ea=ea.add(k);m=j}m.each(function(){qb.call(this);
|
||||
this.style.zIndex=f.isSliding?g.pane_sliding+1:g.pane_normal+1;this.style.display="block"})}})},za=function(a){if(a||!q.paneResizing)ea.hide();else if(!a&&!b.isEmptyObject(q.panesSliding)){a=ea.length-1;for(var d,m;0<=a;a--)m=ea.eq(a),d=m.data("layoutMask"),r[d].maskObjects||m.hide()}},Ra=function(a,d,m,c){if(H()){a=A.call(this,a);var g=y[a],t=U[a],n=F[a],f=P[a];g&&b.isEmptyObject(g.data())&&(g=!1);t&&b.isEmptyObject(t.data())&&(t=!1);n&&b.isEmptyObject(n.data())&&(n=!1);f&&b.isEmptyObject(f.data())&&
|
||||
(f=!1);g&&g.stop(!0,!0);var h=r[a],l=ba[a],j=b.isPlainObject(l)&&!b.isEmptyObject(l);c=void 0!==c?c:h.destroyChildren;j&&c&&(b.each(l,function(a,b){b.destroyed||b.destroy(!0);b.destroyed&&delete l[a]}),b.isEmptyObject(l)&&(l=ba[a]=null,j=!1));g&&d&&!j?g.remove():g&&g[0]&&(d=h.paneClass,c=d+"-"+a,d=[d,d+"-open",d+"-closed",d+"-sliding",c,c+"-open",c+"-closed",c+"-sliding"],b.merge(d,Na(g,!0)),g.removeClass(d.join(" ")).removeData("parentLayout").removeData("layoutPane").removeData("layoutRole").removeData("layoutEdge").removeData("autoHidden").unbind("."+
|
||||
K),j&&t?(t.width(t.width()),b.each(l,function(a,b){b.resizeAll()})):t&&t.css(t.data("layoutCSS")).removeData("layoutCSS").removeData("layoutRole"),g.data("layout")||g.css(g.data("layoutCSS")).removeData("layoutCSS"));f&&f.remove();n&&n.remove();z[a]=y[a]=U[a]=F[a]=P[a]=!1;m||oa()}},Ea=function(a){var b=y[a],d=b[0].style;r[a].useOffscreenClose?(b.data(k.offscreenReset)||b.data(k.offscreenReset,{left:d.left,right:d.right}),b.css(k.offscreenCSS)):b.hide().removeData(k.offscreenReset)},rb=function(a){var b=
|
||||
y[a];a=r[a];var d=k.offscreenCSS,c=b.data(k.offscreenReset),g=b[0].style;b.show().removeData(k.offscreenReset);a.useOffscreenClose&&c&&(g.left==d.left&&(g.left=c.left),g.right==d.right&&(g.right=c.right))},Ta=function(a,b){if(H()){var d=A.call(this,a),c=r[d],g=q[d],t=F[d];y[d]&&!g.isHidden&&!(q.initialized&&!1===C("onhide_start",d))&&(g.isSliding=!1,delete q.panesSliding[d],t&&t.hide(),!q.initialized||g.isClosed?(g.isClosed=!0,g.isHidden=!0,g.isVisible=!1,q.initialized||Ea(d),ia("horz"===k[d].dir?
|
||||
"":"center"),(q.initialized||c.triggerEventsOnLoad)&&C("onhide_end",d)):(g.isHiding=!0,ja(d,!1,b)))}},Fa=function(a,b,d,c){if(H()){a=A.call(this,a);var g=q[a];y[a]&&g.isHidden&&!1!==C("onshow_start",a)&&(g.isShowing=!0,g.isSliding=!1,delete q.panesSliding[a],!1===b?ja(a,!0):ra(a,!1,d,c))}},na=function(a,b){if(H()){var d=Ma(a),c=A.call(this,a),g=q[c];d&&d.stopImmediatePropagation();g.isHidden?Fa(c):g.isClosed?ra(c,!!b):ja(c)}},ja=function(a,b,d,c){function g(){l.isMoving=!1;ma(t,!0);var a=k.oppositeEdge[t];
|
||||
q[a].noRoom&&(Y(a),ha(a));if(!c&&(q.initialized||h.triggerEventsOnLoad))p||C("onclose_end",t),p&&C("onshow_end",t),v&&C("onhide_end",t)}var t=A.call(this,a);if(!q.initialized&&y[t]){a=t;var n=q[a];Ea(a);n.isClosed=!0;n.isVisible=!1;Da(a)}else if(H()){var f=y[t],h=r[t],l=q[t],j,p,v;u.queue(function(a){if(!f||!h.closable&&!l.isShowing&&!l.isHiding||!b&&l.isClosed&&!l.isShowing)return a();var e=!l.isShowing&&!1===C("onclose_start",t);p=l.isShowing;v=l.isHiding;delete l.isShowing;delete l.isHiding;if(e)return a();
|
||||
j=!d&&!l.isClosed&&"none"!=h.fxName_close;l.isMoving=!0;l.isClosed=!0;l.isVisible=!1;v?l.isHidden=!0:p&&(l.isHidden=!1);l.isSliding?wa(t,!1):ia("horz"===k[t].dir?"":"center",!1);Da(t);j?(Ga(t,!0),f.hide(h.fxName_close,h.fxSettings_close,h.fxSpeed_close,function(){Ga(t,!1);l.isClosed&&g();a()})):(Ea(t),g(),a())})}},Da=function(a){if(F[a]){var d=F[a],c=P[a],f=r[a],g=k[a].side,t=f.resizerClass,n=f.togglerClass,h="-"+a;d.css(g,v.inset[g]).removeClass(t+"-open "+t+h+"-open").removeClass(t+"-sliding "+
|
||||
t+h+"-sliding").addClass(t+"-closed "+t+h+"-closed");f.resizable&&b.layout.plugins.draggable&&d.draggable("disable").removeClass("ui-state-disabled").css("cursor","default").attr("title","");c&&(c.removeClass(n+"-open "+n+h+"-open").addClass(n+"-closed "+n+h+"-closed").attr("title",f.tips.Open),c.children(".content-open").hide(),c.children(".content-closed").css("display","block"));Va(a,!1);q.initialized&&qa()}},ra=function(a,b,d,c){function g(){j.isMoving=!1;eb(f);j.isSliding||ia("vert"==k[f].dir?
|
||||
"center":"",!1);Ua(f)}if(H()){var f=A.call(this,a),n=y[f],h=r[f],j=q[f],l,p;u.queue(function(a){if(!n||!h.resizable&&!h.closable&&!j.isShowing||j.isVisible&&!j.isSliding)return a();if(j.isHidden&&!j.isShowing)a(),Fa(f,!0);else{j.autoResize&&j.size!=h.size?ka(f,h.size,!0,!0,!0):Y(f,b);var e=C("onopen_start",f);if("abort"===e)return a();"NC"!==e&&Y(f,b);if(j.minSize>j.maxSize)return Va(f,!1),!c&&h.tips.noRoomToOpen&&alert(h.tips.noRoomToOpen),a();b?wa(f,!0):j.isSliding?wa(f,!1):h.slidable&&ma(f,!1);
|
||||
j.noRoom=!1;ha(f);p=j.isShowing;delete j.isShowing;l=!d&&j.isClosed&&"none"!=h.fxName_open;j.isMoving=!0;j.isVisible=!0;j.isClosed=!1;p&&(j.isHidden=!1);l?(Ga(f,!0),n.show(h.fxName_open,h.fxSettings_open,h.fxSpeed_open,function(){Ga(f,!1);j.isVisible&&g();a()})):(rb(f),g(),a())}})}},Ua=function(a,d){var c=y[a],f=F[a],g=P[a],h=r[a],n=q[a],j=k[a].side,p=h.resizerClass,l=h.togglerClass,u="-"+a;f.css(j,v.inset[j]+ga(a)).removeClass(p+"-closed "+p+u+"-closed").addClass(p+"-open "+p+u+"-open");n.isSliding?
|
||||
f.addClass(p+"-sliding "+p+u+"-sliding"):f.removeClass(p+"-sliding "+p+u+"-sliding");da(0,f);h.resizable&&b.layout.plugins.draggable?f.draggable("enable").css("cursor",h.resizerCursor).attr("title",h.tips.Resize):n.isSliding||f.css("cursor","default");g&&(g.removeClass(l+"-closed "+l+u+"-closed").addClass(l+"-open "+l+u+"-open").attr("title",h.tips.Close),da(0,g),g.children(".content-closed").hide(),g.children(".content-open").css("display","block"));Va(a,!n.isSliding);b.extend(n,R(c));q.initialized&&
|
||||
(qa(),pa(a,!0));if(!d&&(q.initialized||h.triggerEventsOnLoad)&&c.is(":visible"))C("onopen_end",a),n.isShowing&&C("onshow_end",a),q.initialized&&C("onresize_end",a)},sb=function(a){function b(){g.isClosed?g.isMoving||ra(c,!0):wa(c,!0)}if(H()){var d=Ma(a),c=A.call(this,a),g=q[c];a=r[c].slideDelay_open;d&&d.stopImmediatePropagation();g.isClosed&&d&&"mouseenter"===d.type&&0<a?M.set(c+"_openSlider",b,a):b()}},Wa=function(a){function c(){g.isClosed?wa(f,!1):g.isMoving||ja(f)}if(H()){var m=Ma(a),f=A.call(this,
|
||||
a);a=r[f];var g=q[f],h=g.isMoving?1E3:300;!g.isClosed&&!g.isResizing&&("click"===a.slideTrigger_close?c():a.preventQuickSlideClose&&g.isMoving||a.preventPrematureSlideClose&&m&&b.layout.isMouseOverElem(m,y[f])||(m?M.set(f+"_closeSlider",c,d(a.slideDelay_close,h)):c()))}},Ga=function(a,b){var d=y[a],c=q[a],g=r[a],f=r.zIndexes;b?(va(a,{animation:!0,objectsOnly:!0}),d.css({zIndex:f.pane_animate}),"south"==a?d.css({top:v.inset.top+v.innerHeight-d.outerHeight()}):"east"==a&&d.css({left:v.inset.left+v.innerWidth-
|
||||
d.outerWidth()})):(za(),d.css({zIndex:c.isSliding?f.pane_sliding:f.pane_normal}),"south"==a?d.css({top:"auto"}):"east"==a&&!d.css("left").match(/\-99999/)&&d.css({left:"auto"}),G.msie&&(g.fxOpacityFix&&"slide"!=g.fxName_open&&d.css("filter")&&1==d.css("opacity"))&&d[0].style.removeAttribute("filter"))},ma=function(a,b){var d=r[a],c=F[a],g=d.slideTrigger_open.toLowerCase();if(c&&(!b||d.slidable)){g.match(/mouseover/)?g=d.slideTrigger_open="mouseenter":g.match(/(click|dblclick|mouseenter)/)||(g=d.slideTrigger_open=
|
||||
"click");if(d.resizerDblClickToggle&&g.match(/click/))c[b?"unbind":"bind"]("dblclick."+K,na);c[b?"bind":"unbind"](g+"."+K,sb).css("cursor",b?d.sliderCursor:"default").attr("title",b?d.tips.Slide:"")}},wa=function(a,b){function d(b){M.clear(a+"_closeSlider");b.stopPropagation()}var c=r[a],g=q[a],f=r.zIndexes,h=c.slideTrigger_close.toLowerCase(),j=b?"bind":"unbind",k=y[a],l=F[a];M.clear(a+"_closeSlider");b?(g.isSliding=!0,q.panesSliding[a]=!0,ma(a,!1)):(g.isSliding=!1,delete q.panesSliding[a]);k.css("zIndex",
|
||||
b?f.pane_sliding:f.pane_normal);l.css("zIndex",b?f.pane_sliding+2:f.resizer_normal);h.match(/(click|mouseleave)/)||(h=c.slideTrigger_close="mouseleave");l[j](h,Wa);"mouseleave"===h&&(k[j]("mouseleave."+K,Wa),l[j]("mouseenter."+K,d),k[j]("mouseenter."+K,d));b?"click"===h&&!c.resizable&&(l.css("cursor",b?c.sliderCursor:"default"),l.attr("title",b?c.tips.Close:"")):M.clear(a+"_closeSlider")},ha=function(a,d,c,f){d=r[a];var g=q[a],h=k[a],n=y[a],j=F[a],p="vert"===h.dir,l=!1;if("center"===a||p&&g.noVerticalRoom)(l=
|
||||
0<=g.maxHeight)&&g.noRoom?(rb(a),j&&j.show(),g.isVisible=!0,g.noRoom=!1,p&&(g.noVerticalRoom=!1),eb(a)):!l&&!g.noRoom&&(Ea(a),j&&j.hide(),g.isVisible=!1,g.noRoom=!0);"center"!==a&&(g.minSize<=g.maxSize?(g.size>g.maxSize?ka(a,g.maxSize,c,!0,f):g.size<g.minSize?ka(a,g.minSize,c,!0,f):j&&(g.isVisible&&n.is(":visible"))&&(c=g.size+v.inset[h.side],b.layout.cssNum(j,h.side)!=c&&j.css(h.side,c)),g.noRoom&&(g.wasOpen&&d.closable?d.autoReopen?ra(a,!1,!0,!0):g.noRoom=!1:Fa(a,g.wasOpen,!0,!0))):g.noRoom||(g.noRoom=
|
||||
!0,g.wasOpen=!g.isClosed&&!g.isSliding,g.isClosed||(d.closable?ja(a,!0,!0):Ta(a,!0))))},Ca=function(a,b,d,c,g){if(H()){a=A.call(this,a);var f=r[a],h=q[a];g=g||f.livePaneResizing&&!h.isResizing;h.autoResize=!1;ka(a,b,d,c,g)}},ka=function(e,c,f,h,g){function j(){for(var a="width"===ua?l.outerWidth():l.outerHeight(),a=[{pane:n,count:1,target:c,actual:a,correct:c===a,attempt:c,cssSize:D}],e=a[0],h={},t="Inaccurate size after resizing the "+n+"-pane.";!e.correct;){h={pane:n,count:e.count+1,target:c};h.attempt=
|
||||
e.actual>c?d(0,e.attempt-(e.actual-c)):d(0,e.attempt+(c-e.actual));h.cssSize=("horz"==k[n].dir?O:Q)(y[n],h.attempt);l.css(ua,h.cssSize);h.actual="width"==ua?l.outerWidth():l.outerHeight();h.correct=c===h.actual;1===a.length&&(ca(t,!1,!0),ca(e,!1,!0));ca(h,!1,!0);if(3<a.length)break;a.push(h);e=a[a.length-1]}J.size=c;b.extend(J,R(l));J.isVisible&&l.is(":visible")&&(x&&x.css(B,c+v.inset[B]),pa(n));!f&&(!Z&&q.initialized&&J.isVisible)&&C("onresize_end",n);f||(J.isSliding||ia("horz"==k[n].dir?"":"center",
|
||||
Z,g),qa());e=k.oppositeEdge[n];c<G&&q[e].noRoom&&(Y(e),ha(e,!1,f));1<a.length&&ca(t+"\nSee the Error Console for details.",!0,!0)}if(H()){var n=A.call(this,e),p=r[n],J=q[n],l=y[n],x=F[n],B=k[n].side,ua=k[n].sizeType.toLowerCase(),Z=J.isResizing&&!p.triggerEventsDuringLiveResize,z=!0!==h&&p.animatePaneSizing,G,D;u.queue(function(e){Y(n);G=J.size;c=fa(n,c);c=d(c,fa(n,p.minSize));c=a(c,J.maxSize);if(c<J.minSize)e(),ha(n,!1,f);else{if(!g&&c===G)return e();J.newSize=c;!f&&(q.initialized&&J.isVisible)&&
|
||||
C("onresize_start",n);D=("horz"==k[n].dir?O:Q)(y[n],c);if(z&&l.is(":visible")){var h=b.layout.effects.size[n]||b.layout.effects.size.all,h=p.fxSettings_size.easing||h.easing,v=r.zIndexes,u={};u[ua]=D+"px";J.isMoving=!0;l.css({zIndex:v.pane_animate}).show().animate(u,p.fxSpeed_size,h,function(){l.css({zIndex:J.isSliding?v.pane_sliding:v.pane_normal});J.isMoving=!1;delete J.newSize;j();e()})}else l.css(ua,D),delete J.newSize,l.is(":visible")?j():(J.size=c,b.extend(J,R(l))),e()}})}},ia=function(a,c,
|
||||
f){a=(a?a:"east,west,center").split(",");b.each(a,function(a,e){if(y[e]){var h=r[e],j=q[e],k=y[e],p=!0,l={},u=b.layout.showInvisibly(k),B={top:ga("north",!0),bottom:ga("south",!0),left:ga("west",!0),right:ga("east",!0),width:0,height:0};B.width=v.innerWidth-B.left-B.right;B.height=v.innerHeight-B.bottom-B.top;B.top+=v.inset.top;B.bottom+=v.inset.bottom;B.left+=v.inset.left;B.right+=v.inset.right;b.extend(j,R(k));if("center"===e){if(!f&&j.isVisible&&B.width===j.outerWidth&&B.height===j.outerHeight)return k.css(u),
|
||||
!0;b.extend(j,ya(e),{maxWidth:B.width,maxHeight:B.height});l=B;j.newWidth=l.width;j.newHeight=l.height;l.width=Q(k,l.width);l.height=O(k,l.height);p=0<=l.width&&0<=l.height;if(!q.initialized&&h.minWidth>B.width){var h=h.minWidth-j.outerWidth,B=r.east.minSize||0,x=r.west.minSize||0,Z=q.east.size,z=q.west.size,A=Z,D=z;0<h&&(q.east.isVisible&&Z>B)&&(A=d(Z-B,Z-h),h-=Z-A);0<h&&(q.west.isVisible&&z>x)&&(D=d(z-x,z-h),h-=z-D);if(0===h){Z&&Z!=B&&ka("east",A,!0,!0,f);z&&z!=x&&ka("west",D,!0,!0,f);ia("center",
|
||||
c,f);k.css(u);return}}}else{j.isVisible&&!j.noVerticalRoom&&b.extend(j,R(k),ya(e));if(!f&&!j.noVerticalRoom&&B.height===j.outerHeight)return k.css(u),!0;l.top=B.top;l.bottom=B.bottom;j.newSize=B.height;l.height=O(k,B.height);j.maxHeight=l.height;p=0<=j.maxHeight;p||(j.noVerticalRoom=!0)}p?(!c&&q.initialized&&C("onresize_start",e),k.css(l),"center"!==e&&qa(e),j.noRoom&&(!j.isClosed&&!j.isHidden)&&ha(e),j.isVisible&&(b.extend(j,R(k)),q.initialized&&pa(e))):!j.noRoom&&j.isVisible&&ha(e);k.css(u);delete j.newSize;
|
||||
delete j.newWidth;delete j.newHeight;if(!j.isVisible)return!0;"center"===e&&(j=G.isIE6||!G.boxModel,y.north&&(j||"IFRAME"==q.north.tagName)&&y.north.css("width",Q(y.north,v.innerWidth)),y.south&&(j||"IFRAME"==q.south.tagName)&&y.south.css("width",Q(y.south,v.innerWidth)));!c&&q.initialized&&C("onresize_end",e)}})},oa=function(a){A(a);if(u.is(":visible"))if(q.initialized){if(!0===a&&b.isPlainObject(r.outset)&&u.css(r.outset),b.extend(v,R(u,r.inset)),v.outerHeight){!0===a&&ob();if(!1===C("onresizeall_start"))return!1;
|
||||
var d,c,f;b.each(["south","north","east","west"],function(a,b){y[b]&&(c=r[b],f=q[b],f.autoResize&&f.size!=c.size?ka(b,c.size,!0,!0,!0):(Y(b),ha(b,!1,!0,!0)))});ia("",!0,!0);qa();b.each(k.allPanes,function(a,b){(d=y[b])&&q[b].isVisible&&C("onresize_end",b)});C("onresizeall_end")}}else Aa()},db=function(a,d){var c=A.call(this,a);r[c].resizeChildren&&(d||Ba(c),c=ba[c],b.isPlainObject(c)&&b.each(c,function(a,b){b.destroyed||b.resizeAll()}))},pa=function(a,c){if(H()){var h=A.call(this,a),h=h?h.split(","):
|
||||
k.allPanes;b.each(h,function(a,e){function h(a){return d(u.css.paddingBottom,parseInt(a.css("marginBottom"),10)||0)}function j(){var a=r[e].contentIgnoreSelector,a=p.nextAll().not(".ui-layout-mask").not(a||":lt(0)"),b=a.filter(":visible"),d=b.filter(":last");v={top:p[0].offsetTop,height:p.outerHeight(),numFooters:a.length,hiddenFooters:a.length-b.length,spaceBelow:0};v.spaceAbove=v.top;v.bottom=v.top+v.height;v.spaceBelow=d.length?d[0].offsetTop+d.outerHeight()-v.bottom+h(d):h(p)}var m=y[e],p=U[e],
|
||||
l=r[e],u=q[e],v=u.content;if(!m||!p||!m.is(":visible"))return!0;if(!p.length&&(Sa(e,!1),!p))return;if(!1!==C("onsizecontent_start",e)){if(!u.isMoving&&!u.isResizing||l.liveContentResizing||c||void 0==v.top)j(),0<v.hiddenFooters&&"hidden"===m.css("overflow")&&(m.css("overflow","visible"),j(),m.css("overflow","hidden"));m=u.innerHeight-(v.spaceAbove-u.css.paddingTop)-(v.spaceBelow-u.css.paddingBottom);if(!p.is(":visible")||v.height!=m){var x=p,l=x;f(x)?l=y[x]:x.jquery||(l=b(x));x=O(l,m);l.css({height:x,
|
||||
visibility:"visible"});0<x&&0<l.innerWidth()?l.data("autoHidden")&&(l.show().data("autoHidden",!1),G.mozilla||l.css(k.hidden).css(k.visible)):l.data("autoHidden")||l.hide().data("autoHidden",!0);v.height=m}q.initialized&&C("onsizecontent_end",e)}})}},qa=function(a){a=(a=A.call(this,a))?a.split(","):k.borderPanes;b.each(a,function(a,d){var e=r[d],g=q[d],h=y[d],j=F[d],p=P[d],u;if(h&&j){var l=k[d].dir,x=g.isClosed?"_closed":"_open",B=e["spacing"+x],z=e["togglerAlign"+x],x=e["togglerLength"+x],A;if(0===
|
||||
B)j.hide();else{!g.noRoom&&!g.isHidden&&j.show();"horz"===l?(A=v.innerWidth,g.resizerLength=A,h=b.layout.cssNum(h,"left"),j.css({width:Q(j,A),height:O(j,B),left:-9999<h?h:v.inset.left})):(A=h.outerHeight(),g.resizerLength=A,j.css({height:O(j,A),width:Q(j,B),top:v.inset.top+ga("north",!0)}));da(e,j);if(p){if(0===x||g.isSliding&&e.hideTogglerOnSlide){p.hide();return}p.show();if(!(0<x)||"100%"===x||x>A)x=A,z=0;else if(f(z))switch(z){case "top":case "left":z=0;break;case "bottom":case "right":z=A-x;break;
|
||||
default:z=c((A-x)/2)}else h=parseInt(z,10),z=0<=z?h:A-x+h;if("horz"===l){var D=Q(p,x);p.css({width:D,height:O(p,B),left:z,top:0});p.children(".content").each(function(){u=b(this);u.css("marginLeft",c((D-u.outerWidth())/2))})}else{var C=O(p,x);p.css({height:C,width:Q(p,B),top:z,left:0});p.children(".content").each(function(){u=b(this);u.css("marginTop",c((C-u.outerHeight())/2))})}da(0,p)}if(!q.initialized&&(e.initHidden||g.isHidden))j.hide(),p&&p.hide()}}})},pb=function(a){if(H()){var b=A.call(this,
|
||||
a);a=P[b];var d=r[b];a&&(d.closable=!0,a.bind("click."+K,function(a){a.stopPropagation();na(b)}).css("visibility","visible").css("cursor","pointer").attr("title",q[b].isClosed?d.tips.Open:d.tips.Close).show())}},Va=function(a,d){b.layout.plugins.buttons&&b.each(q[a].pins,function(c,f){b.layout.buttons.setPinState(z,b(f),a,d)})},u=b(this).eq(0);if(!u.length)return ca(r.errors.containerMissing);if(u.data("layoutContainer")&&u.data("layout"))return u.data("layout");var y={},U={},F={},P={},ea=b([]),v=
|
||||
q.container,K=q.id,z={options:r,state:q,container:u,panes:y,contents:U,resizers:F,togglers:P,hide:Ta,show:Fa,toggle:na,open:ra,close:ja,slideOpen:sb,slideClose:Wa,slideToggle:function(a){a=A.call(this,a);na(a,!0)},setSizeLimits:Y,_sizePane:ka,sizePane:Ca,sizeContent:pa,swapPanes:function(a,c){function f(a){var d=y[a],c=U[a];return!d?!1:{pane:a,P:d?d[0]:!1,C:c?c[0]:!1,state:b.extend(!0,{},q[a]),options:b.extend(!0,{},r[a])}}function h(a,c){if(a){var e=a.P,f=a.C,g=a.pane,j=k[c],m=b.extend(!0,{},q[c]),
|
||||
n=r[c],w={resizerCursor:n.resizerCursor};b.each(["fxName","fxSpeed","fxSettings"],function(a,b){w[b+"_open"]=n[b+"_open"];w[b+"_close"]=n[b+"_close"];w[b+"_size"]=n[b+"_size"]});y[c]=b(e).data({layoutPane:z[c],layoutEdge:c}).css(k.hidden).css(j.cssReq);U[c]=f?b(f):!1;r[c]=b.extend(!0,{},a.options,w);q[c]=b.extend(!0,{},a.state);e.className=e.className.replace(RegExp(n.paneClass+"-"+g,"g"),n.paneClass+"-"+c);Pa(c);j.dir!=k[g].dir?(e=p[c]||0,Y(c),e=d(e,q[c].minSize),Ca(c,e,!0,!0)):F[c].css(j.side,v.inset[j.side]+
|
||||
(q[c].isVisible?ga(c):0));a.state.isVisible&&!m.isVisible?Ua(c,!0):(Da(c),ma(c,!0));a=null}}if(H()){var g=A.call(this,a);q[g].edge=c;q[c].edge=g;if(!1===C("onswap_start",g)||!1===C("onswap_start",c))q[g].edge=g,q[c].edge=c;else{var j=f(g),n=f(c),p={};p[g]=j?j.state.size:0;p[c]=n?n.state.size:0;y[g]=!1;y[c]=!1;q[g]={};q[c]={};P[g]&&P[g].remove();P[c]&&P[c].remove();F[g]&&F[g].remove();F[c]&&F[c].remove();F[g]=F[c]=P[g]=P[c]=!1;h(j,c);h(n,g);j=n=p=null;y[g]&&y[g].css(k.visible);y[c]&&y[c].css(k.visible);
|
||||
oa();C("onswap_end",g);C("onswap_end",c)}}},showMasks:va,hideMasks:za,initContent:Sa,addPane:ib,removePane:Ra,createChildren:Qa,refreshChildren:Ba,enableClosable:pb,disableClosable:function(a,b){if(H()){var c=A.call(this,a),d=P[c];d&&(r[c].closable=!1,q[c].isClosed&&ra(c,!1,!0),d.unbind("."+K).css("visibility",b?"hidden":"visible").css("cursor","default").attr("title",""))}},enableSlidable:function(a){if(H()){a=A.call(this,a);var b=F[a];b&&b.data("draggable")&&(r[a].slidable=!0,q[a].isClosed&&ma(a,
|
||||
!0))}},disableSlidable:function(a){if(H()){a=A.call(this,a);var b=F[a];b&&(r[a].slidable=!1,q[a].isSliding?ja(a,!1,!0):(ma(a,!1),b.css("cursor","default").attr("title",""),da(null,b[0])))}},enableResizable:function(a){if(H()){a=A.call(this,a);var b=F[a],c=r[a];b&&b.data("draggable")&&(c.resizable=!0,b.draggable("enable"),q[a].isClosed||b.css("cursor",c.resizerCursor).attr("title",c.tips.Resize))}},disableResizable:function(a){if(H()){a=A.call(this,a);var b=F[a];b&&b.data("draggable")&&(r[a].resizable=
|
||||
!1,b.draggable("disable").css("cursor","default").attr("title",""),da(null,b[0]))}},allowOverflow:x,resetOverflow:X,destroy:function(a,c){b(window).unbind("."+K);b(document).unbind("."+K);"object"===typeof a?A(a):c=a;u.clearQueue().removeData("layout").removeData("layoutContainer").removeClass(r.containerClass).unbind("."+K);ea.remove();b.each(k.allPanes,function(a,b){Ra(b,!1,!0,c)});u.data("layoutCSS")&&!u.data("layoutRole")&&u.css(u.data("layoutCSS")).removeData("layoutCSS");"BODY"===v.tagName&&
|
||||
(u=b("html")).data("layoutCSS")&&u.css(u.data("layoutCSS")).removeData("layoutCSS");j(z,b.layout.onDestroy);mb();for(var d in z)d.match(/^(container|options)$/)||delete z[d];z.destroyed=!0;return z},initPanes:H,resizeAll:oa,runCallbacks:C,hasParentLayout:!1,children:ba,north:!1,south:!1,west:!1,east:!1,center:!1},Xa;var V,Ya,N,Ha,la,sa,W;h=b.layout.transformData(h,!0);h=b.layout.backwardCompatibility.renameAllOptions(h);if(!b.isEmptyObject(h.panes)){V=b.layout.optionsMap.noDefault;la=0;for(sa=V.length;la<
|
||||
sa;la++)N=V[la],delete h.panes[N];V=b.layout.optionsMap.layout;la=0;for(sa=V.length;la<sa;la++)N=V[la],delete h.panes[N]}V=b.layout.optionsMap.layout;var Bb=b.layout.config.optionRootKeys;for(N in h)Ha=h[N],0>b.inArray(N,Bb)&&0>b.inArray(N,V)&&(h.panes[N]||(h.panes[N]=b.isPlainObject(Ha)?b.extend(!0,{},Ha):Ha),delete h[N]);b.extend(!0,r,h);b.each(k.allPanes,function(a,c){k[c]=b.extend(!0,{},k.panes,k[c]);Ya=r.panes;W=r[c];if("center"===c){V=b.layout.optionsMap.center;a=0;for(sa=V.length;a<sa;a++)if(N=
|
||||
V[a],!h.center[N]&&(h.panes[N]||!W[N]))W[N]=Ya[N]}else{W=r[c]=b.extend(!0,{},Ya,W);var d=r[c],f=r.panes;d.fxSettings||(d.fxSettings={});f.fxSettings||(f.fxSettings={});b.each(["_open","_close","_size"],function(a,e){var h="fxName"+e,j="fxSpeed"+e,k="fxSettings"+e,l=d[h]=d[h]||f[h]||d.fxName||f.fxName||"none",p=b.effects&&(b.effects[l]||b.effects.effect&&b.effects.effect[l]);if("none"===l||!r.effects[l]||!p)l=d[h]="none";l=r.effects[l]||{};h=l.all||null;l=l[c]||null;d[j]=d[j]||f[j]||d.fxSpeed||f.fxSpeed||
|
||||
null;d[k]=b.extend(!0,{},h,l,f.fxSettings,d.fxSettings,f[k],d[k])});delete d.fxName;delete d.fxSpeed;delete d.fxSettings;W.resizerClass||(W.resizerClass="ui-layout-resizer");W.togglerClass||(W.togglerClass="ui-layout-toggler")}W.paneClass||(W.paneClass="ui-layout-pane")});var Ia=h.zIndex,xa=r.zIndexes;0<Ia&&(xa.pane_normal=Ia,xa.content_mask=d(Ia+1,xa.content_mask),xa.resizer_normal=d(Ia+2,xa.resizer_normal));delete r.panes;var Cb=r,tb=q;tb.creatingLayout=!0;j(z,b.layout.onCreate);if(!1===C("onload_start"))Xa=
|
||||
"cancel";else{var Za=u[0],$=b("html"),ub=v.tagName=Za.tagName,vb=v.id=Za.id,wb=v.className=Za.className,L=r,Ja=L.name,$a={},Ka=u.data("parentLayout"),La=u.data("layoutEdge"),ab=Ka&&La,ta=b.layout.cssNum,bb,aa;v.ref=(L.name?L.name+" layout / ":"")+ub+(vb?"#"+vb:wb?".["+wb+"]":"");v.isBody="BODY"===ub;!ab&&!v.isBody&&(bb=u.closest("."+b.layout.defaults.panes.paneClass),Ka=bb.data("parentLayout"),La=bb.data("layoutEdge"),ab=Ka&&La);u.data({layout:z,layoutContainer:K}).addClass(L.containerClass);
|
||||
var xb={destroy:"",initPanes:"",resizeAll:"resizeAll",resize:"resizeAll"};for(Ja in xb)u.bind("layout"+Ja.toLowerCase()+"."+K,z[xb[Ja]||Ja]);ab&&(z.hasParentLayout=!0,Ka.refreshChildren(La,z));u.data("layoutCSS")||(v.isBody?(u.data("layoutCSS",b.extend(D(u,"position,margin,padding,border"),{height:u.css("height"),overflow:u.css("overflow"),overflowX:u.css("overflowX"),overflowY:u.css("overflowY")})),$.data("layoutCSS",b.extend(D($,"padding"),{height:"auto",overflow:$.css("overflow"),overflowX:$.css("overflowX"),
|
||||
overflowY:$.css("overflowY")}))):u.data("layoutCSS",D(u,"position,margin,padding,border,top,bottom,left,right,width,height,overflow,overflowX,overflowY")));try{$a={overflow:"hidden",overflowX:"hidden",overflowY:"hidden"};u.css($a);L.inset&&!b.isPlainObject(L.inset)&&(aa=parseInt(L.inset,10)||0,L.inset={top:aa,bottom:aa,left:aa,right:aa});if(v.isBody)L.outset?b.isPlainObject(L.outset)||(aa=parseInt(L.outset,10)||0,L.outset={top:aa,bottom:aa,left:aa,right:aa}):L.outset={top:ta($,"paddingTop"),bottom:ta($,
|
||||
"paddingBottom"),left:ta($,"paddingLeft"),right:ta($,"paddingRight")},$.css($a).css({height:"100%",border:"none",padding:0,margin:0}),G.isIE6?(u.css({width:"100%",height:"100%",border:"none",padding:0,margin:0,position:"relative"}),L.inset||(L.inset=R(u).inset)):(u.css({width:"auto",height:"auto",margin:0,position:"absolute"}),u.css(L.outset)),b.extend(v,R(u,L.inset));else{var yb=u.css("position");(!yb||!yb.match(/(fixed|absolute|relative)/))&&u.css("position","relative");u.is(":visible")&&(b.extend(v,
|
||||
R(u,L.inset)),1>v.innerHeight&&ca(L.errors.noContainerHeight.replace(/CONTAINER/,v.ref)))}ta(u,"minWidth")&&u.parent().css("overflowX","auto");ta(u,"minHeight")&&u.parent().css("overflowY","auto")}catch(Db){}nb();b(window).bind("unload."+K,mb);j(z,b.layout.onLoad);Cb.initPanes&&Aa();delete tb.creatingLayout;Xa=q.initialized}return"cancel"===Xa?null:z}})(jQuery);
|
||||
(function(b){b.ui||(b.ui={});b.ui.cookie={acceptsCookies:!!navigator.cookieEnabled,read:function(a){for(var d=document.cookie,d=d?d.split(";"):[],c,f=0,j=d.length;f<j;f++)if(c=b.trim(d[f]).split("="),c[0]==a)return decodeURIComponent(c[1]);return null},write:function(a,d,c){var f="",j="",h=!1;c=c||{};var p=c.expires||null,x=b.type(p);"date"===x?j=p:"string"===x&&0<p&&(p=parseInt(p,10),x="number");"number"===x&&(j=new Date,0<p?j.setDate(j.getDate()+p):(j.setFullYear(1970),h=!0));j&&(f+=";expires="+
|
||||
j.toUTCString());c.path&&(f+=";path="+c.path);c.domain&&(f+=";domain="+c.domain);c.secure&&(f+=";secure");document.cookie=a+"="+(h?"":encodeURIComponent(d))+f},clear:function(a){b.ui.cookie.write(a,"",{expires:-1})}};b.cookie||(b.cookie=function(a,d,c){var f=b.ui.cookie;if(null===d)f.clear(a);else{if(void 0===d)return f.read(a);f.write(a,d,c)}});b.layout.plugins.stateManagement=!0;b.layout.config.optionRootKeys.push("stateManagement");b.layout.defaults.stateManagement={enabled:!1,autoSave:!0,autoLoad:!0,
|
||||
animateLoad:!0,includeChildren:!0,stateKeys:"north.size,south.size,east.size,west.size,north.isClosed,south.isClosed,east.isClosed,west.isClosed,north.isHidden,south.isHidden,east.isHidden,west.isHidden",cookie:{name:"",domain:"",path:"",expires:"",secure:!1}};b.layout.optionsMap.layout.push("stateManagement");b.layout.state={saveCookie:function(a,d,c){var f=a.options,j=f.stateManagement;c=b.extend(!0,{},j.cookie,c||null);a=a.state.stateData=a.readState(d||j.stateKeys);b.ui.cookie.write(c.name||f.name||
|
||||
"Layout",b.layout.state.encodeJSON(a),c);return b.extend(!0,{},a)},deleteCookie:function(a){a=a.options;b.ui.cookie.clear(a.stateManagement.cookie.name||a.name||"Layout")},readCookie:function(a){a=a.options;return(a=b.ui.cookie.read(a.stateManagement.cookie.name||a.name||"Layout"))?b.layout.state.decodeJSON(a):{}},loadCookie:function(a){var d=b.layout.state.readCookie(a);d&&(a.state.stateData=b.extend(!0,{},d),a.loadState(d));return d},loadState:function(a,d,c){if(b.isPlainObject(d)&&!b.isEmptyObject(d))if(d=
|
||||
a.state.stateData=b.layout.transformData(d),c=b.extend({animateLoad:!1,includeChildren:a.options.stateManagement.includeChildren},c),a.state.initialized){var f=!c.animateLoad,j,h,p,x;b.each(b.layout.config.borderPanes,function(c,G){S=d[G];b.isPlainObject(S)&&(s=S.size,j=S.initClosed,h=S.initHidden,ar=S.autoResize,p=a.state[G],x=p.isVisible,ar&&(p.autoResize=ar),x||a._sizePane(G,s,!1,!1,!1),!0===h?a.hide(G,f):!0===j?a.close(G,!1,f):!1===j?a.open(G,!1,f):!1===h&&a.show(G,!1,f),x&&a._sizePane(G,s,!1,
|
||||
!1,f))});if(c.includeChildren){var I,T;b.each(a.children,function(a,c){(I=d[a]?d[a].children:0)&&c&&b.each(c,function(a,b){T=I[a];b&&T&&b.loadState(T)})})}}else{var S=b.extend(!0,{},d);b.each(b.layout.config.allPanes,function(a,b){S[b]&&delete S[b].children});b.extend(!0,a.options,S)}},readState:function(a,d){"string"===b.type(d)&&(d={keys:d});d||(d={});var c=a.options.stateManagement,f=d.includeChildren,f=void 0!==f?f:c.includeChildren,c=d.stateKeys||c.stateKeys,j={isClosed:"initClosed",isHidden:"initHidden"},
|
||||
h=a.state,p=b.layout.config.allPanes,x={},I,T,S,X,G,k;b.isArray(c)&&(c=c.join(","));for(var c=c.replace(/__/g,".").split(","),Q=0,O=c.length;Q<O;Q++)I=c[Q].split("."),T=I[0],I=I[1],0>b.inArray(T,p)||(S=h[T][I],void 0!=S&&("isClosed"==I&&h[T].isSliding&&(S=!0),(x[T]||(x[T]={}))[j[I]?j[I]:I]=S));f&&b.each(p,function(c,d){G=a.children[d];X=h.stateData[d];b.isPlainObject(G)&&!b.isEmptyObject(G)&&(k=x[d]||(x[d]={}),k.children||(k.children={}),b.each(G,function(a,c){c.state.initialized?k.children[a]=b.layout.state.readState(c):
|
||||
X&&(X.children&&X.children[a])&&(k.children[a]=b.extend(!0,{},X.children[a]))}))});return x},encodeJSON:function(a){function d(a){var f=[],j=0,h,p,x,I=b.isArray(a);for(h in a)p=a[h],x=typeof p,"string"==x?p='"'+p+'"':"object"==x&&(p=d(p)),f[j++]=(!I?'"'+h+'":':"")+p;return(I?"[":"{")+f.join(",")+(I?"]":"}")}return d(a)},decodeJSON:function(a){try{return b.parseJSON?b.parseJSON(a):window.eval("("+a+")")||{}}catch(d){return{}}},_create:function(a){var d=b.layout.state,c=a.options.stateManagement;b.extend(a,
|
||||
{readCookie:function(){return d.readCookie(a)},deleteCookie:function(){d.deleteCookie(a)},saveCookie:function(b,c){return d.saveCookie(a,b,c)},loadCookie:function(){return d.loadCookie(a)},loadState:function(b,c){d.loadState(a,b,c)},readState:function(b){return d.readState(a,b)},encodeJSON:d.encodeJSON,decodeJSON:d.decodeJSON});a.state.stateData={};if(c.autoLoad)if(b.isPlainObject(c.autoLoad))b.isEmptyObject(c.autoLoad)||a.loadState(c.autoLoad);else if(c.enabled)if(b.isFunction(c.autoLoad)){var f=
|
||||
{};try{f=c.autoLoad(a,a.state,a.options,a.options.name||"")}catch(j){}f&&(b.isPlainObject(f)&&!b.isEmptyObject(f))&&a.loadState(f)}else a.loadCookie()},_unload:function(a){var d=a.options.stateManagement;if(d.enabled&&d.autoSave)if(b.isFunction(d.autoSave))try{d.autoSave(a,a.state,a.options,a.options.name||"")}catch(c){}else a.saveCookie()}};b.layout.onCreate.push(b.layout.state._create);b.layout.onUnload.push(b.layout.state._unload);b.layout.plugins.buttons=!0;b.layout.defaults.autoBindCustomButtons=
|
||||
!1;b.layout.optionsMap.layout.push("autoBindCustomButtons");b.layout.buttons={init:function(a){var d=a.options.name||"",c;b.each("toggle open close pin toggle-slide open-slide".split(" "),function(f,j){b.each(b.layout.config.borderPanes,function(f,p){b(".ui-layout-button-"+j+"-"+p).each(function(){c=b(this).data("layoutName")||b(this).attr("layoutName");(void 0==c||c===d)&&a.bindButton(this,j,p)})})})},get:function(a,d,c,f){var j=b(d);a=a.options;var h=a.errors.addButtonError;j.length?0>b.inArray(c,
|
||||
b.layout.config.borderPanes)?(b.layout.msg(h+" "+a.errors.pane+": "+c,!0),j=b("")):(d=a[c].buttonClass+"-"+f,j.addClass(d+" "+d+"-"+c).data("layoutName",a.name)):b.layout.msg(h+" "+a.errors.selector+": "+d,!0);return j},bind:function(a,d,c,f){var j=b.layout.buttons;switch(c.toLowerCase()){case "toggle":j.addToggle(a,d,f);break;case "open":j.addOpen(a,d,f);break;case "close":j.addClose(a,d,f);break;case "pin":j.addPin(a,d,f);break;case "toggle-slide":j.addToggle(a,d,f,!0);break;case "open-slide":j.addOpen(a,
|
||||
d,f,!0)}return a},addToggle:function(a,d,c,f){b.layout.buttons.get(a,d,c,"toggle").click(function(b){a.toggle(c,!!f);b.stopPropagation()});return a},addOpen:function(a,d,c,f){b.layout.buttons.get(a,d,c,"open").attr("title",a.options[c].tips.Open).click(function(b){a.open(c,!!f);b.stopPropagation()});return a},addClose:function(a,d,c){b.layout.buttons.get(a,d,c,"close").attr("title",a.options[c].tips.Close).click(function(b){a.close(c);b.stopPropagation()});return a},addPin:function(a,d,c){var f=b.layout.buttons,
|
||||
j=f.get(a,d,c,"pin");if(j.length){var h=a.state[c];j.click(function(d){f.setPinState(a,b(this),c,h.isSliding||h.isClosed);h.isSliding||h.isClosed?a.open(c):a.close(c);d.stopPropagation()});f.setPinState(a,j,c,!h.isClosed&&!h.isSliding);h.pins.push(d)}return a},setPinState:function(a,b,c,f){var j=b.attr("pin");if(!(j&&f===("down"==j))){a=a.options[c];var j=a.buttonClass+"-pin",h=j+"-"+c;c=j+"-up "+h+"-up";j=j+"-down "+h+"-down";b.attr("pin",f?"down":"up").attr("title",f?a.tips.Unpin:a.tips.Pin).removeClass(f?
|
||||
c:j).addClass(f?j:c)}},syncPinBtns:function(a,d,c){b.each(a.state[d].pins,function(f,j){b.layout.buttons.setPinState(a,b(j),d,c)})},_load:function(a){var d=b.layout.buttons;b.extend(a,{bindButton:function(b,c,h){return d.bind(a,b,c,h)},addToggleBtn:function(b,c,h){return d.addToggle(a,b,c,h)},addOpenBtn:function(b,c,h){return d.addOpen(a,b,c,h)},addCloseBtn:function(b,c){return d.addClose(a,b,c)},addPinBtn:function(b,c){return d.addPin(a,b,c)}});for(var c=0;4>c;c++)a.state[b.layout.config.borderPanes[c]].pins=
|
||||
[];a.options.autoBindCustomButtons&&d.init(a)},_unload:function(){}};b.layout.onLoad.push(b.layout.buttons._load);b.layout.plugins.browserZoom=!0;b.layout.defaults.browserZoomCheckInterval=1E3;b.layout.optionsMap.layout.push("browserZoomCheckInterval");b.layout.browserZoom={_init:function(a){!1!==b.layout.browserZoom.ratio()&&b.layout.browserZoom._setTimer(a)},_setTimer:function(a){if(!a.destroyed){var d=a.options,c=a.state,f=a.hasParentLayout?5E3:Math.max(d.browserZoomCheckInterval,100);setTimeout(function(){if(!a.destroyed&&
|
||||
d.resizeWithWindow){var f=b.layout.browserZoom.ratio();f!==c.browserZoom&&(c.browserZoom=f,a.resizeAll());b.layout.browserZoom._setTimer(a)}},f)}},ratio:function(){function a(a,b){return(100*(parseInt(a,10)/parseInt(b,10))).toFixed()}var d=window,c=screen,f=document,j=f.documentElement||f.body,h=b.layout.browser,p=h.version,x,I,T;return h.msie&&8<p||!h.msie?!1:c.deviceXDPI&&c.systemXDPI?a(c.deviceXDPI,c.systemXDPI):h.webkit&&(x=f.body.getBoundingClientRect)?a(x.left-x.right,f.body.offsetWidth):h.webkit&&
|
||||
(I=d.outerWidth)?a(I,d.innerWidth):(I=c.width)&&(T=j.clientWidth)?a(I,T):!1}};b.layout.onReady.push(b.layout.browserZoom._init)})(jQuery);
|
||||
23
js/jquery.qtip-1.0.min.js
vendored
23
js/jquery.qtip-1.0.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -122,6 +122,9 @@ $(function()
|
||||
_create: function () {
|
||||
this.element.addClass('ibo-activity-panel');
|
||||
|
||||
// Should be initialized globally, but as we don't actually do it
|
||||
moment.locale(GetUserLanguage());
|
||||
|
||||
this._bindEvents();
|
||||
|
||||
// Lock
|
||||
|
||||
@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
|
||||
echo $err;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
$err,
|
||||
E_USER_ERROR
|
||||
);
|
||||
throw new RuntimeException($err);
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
@@ -1,119 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../laminas/laminas-servicemanager/bin/generate-deps-for-config-factory)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||
) {
|
||||
return include("phpvfscomposer://" . __DIR__ . '/..'.'/laminas/laminas-servicemanager/bin/generate-deps-for-config-factory');
|
||||
}
|
||||
}
|
||||
|
||||
return include __DIR__ . '/..'.'/laminas/laminas-servicemanager/bin/generate-deps-for-config-factory';
|
||||
@@ -1,5 +0,0 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/generate-deps-for-config-factory
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user