Lemonldap::NG::Manager::Build - Static files generator of Lemonldap::NG Web-SSO system.
use Lemonldap::NG::Manager::Build; Lemonldap::NG::Manager::Build->run( structFile => "site/static/struct.json", confTreeFile => "site/static/js/conftree.js", managerConstantsFile => "lib/Lemonldap/NG/Manager/Constants.pm", managerAttributesFile => 'lib/Lemonldap/NG/Manager/Attributes.pm', defaultValuesFile => "lib/Lemonldap/NG/Common/Conf/DefaultValues.pm", firstLmConfFile => "_example/conf/lmConf-1.js", );
Lemonldap::NG::Manager::Build is used only to build javascript files and Lemonldap::NG constants Perl files. It has to be launched after each change.
To add a new parameter, you have to:
See below for details.
Set your new attribute as a key of attributes() function that points to a hash ref containing:
the type of the content. It must be declared in sub types() in the same file (except if attribute embeds its own tests) and must correspond to a form stored in the static/forms/ directory;
the relative HTML path to the help page (relative to /doc/pages/documentation/<version>/);
a default value to set if not defined;
required only if type is `select`. In this case, it must contains an array of { k => <keyName>, v => <display name> } hashref
some words for other developpers
if test is not defined for this type or if test must be more restrictive, set her a regular expression or a subroutine. Arguments passed to subroutine are (keyValue, newConf, currentKey), it returns 2 arguments: a boolean result and a message (if non empty will be displayed as warning or error depending of result);
for regexp based tests, message to display in case of error. Words to translate have to be written as so: __toTranslate__;
for keys/values attributes, test to be applied on key;
for regexp based key tests, same as msgFail for keys test;
If you decide to declare a new type, you have to declare the following properties:
The tree is now very simple: it contains nodes and leaf. Leaf are designed only by their attribute name. All description must be done in the file described above. Nodes are array member designed as this:
{ title => 'titleToTranslate', help => 'helpUrl', form => 'relativeUrl', nodes => [ ... nodes or leaf ... ] }
Explanations:
it must contain an entry of static/languages/lang.json
as above, the relative HTML path to the help page (relative to /doc/pages/documentation/<version>/);
the name of a static/forms/<name>.html file
array of sub nodes and leaf attached to this node
must never be used in conjunction with nodes. Array of leafs only to be displayed in the same form
array of sub nodes that will be displayed with a filter. Not yet documented here, see the source code of site/static/js/filterFunctions.js.
filter entry in site/static/js/filterFunctions.js for the same feature.
Lemonldap::NG::Manager, http://lemonldap-ng.org/
Use OW2 system to report bug or ask for features: http://jira.ow2.org
Lemonldap::NG is available at http://forge.objectweb.org/project/showfiles.php?group_id=274
This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
To install Lemonldap::NG::Manager, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lemonldap::NG::Manager
CPAN shell
perl -MCPAN -e shell install Lemonldap::NG::Manager
For more information on module installation, please visit the detailed CPAN module installation guide.