Clean files

This commit is contained in:
Laurent Destailleur 2026-01-07 19:01:54 +01:00
parent 807db03167
commit 578a1ef568
717 changed files with 3379 additions and 3674 deletions

View file

@ -30,5 +30,3 @@ services:
networks: networks:
- internal-pod - internal-pod
- external-pod - external-pod

View file

@ -250,7 +250,7 @@ if ($upgrade) {
&copy_source_dest_as_domain_user($d, $oldcfile, $cfile); &copy_source_dest_as_domain_user($d, $oldcfile, $cfile);
&copy_source_dest_as_domain_user($d, $olddocdir, $docdir); &copy_source_dest_as_domain_user($d, $olddocdir, $docdir);
&copy_source_dest_as_domain_user($d, $oldaltdir, $altdir); &copy_source_dest_as_domain_user($d, $oldaltdir, $altdir);
# First page (Update database schema) # First page (Update database schema)
local @params = ( [ "action", "upgrade" ], local @params = ( [ "action", "upgrade" ],
[ "versionfrom", $upgrade->{'version'} ], [ "versionfrom", $upgrade->{'version'} ],
@ -258,7 +258,7 @@ if ($upgrade) {
); );
local $err = &call_dolibarr_wizard_page(\@params, "upgrade", $d, $opts); local $err = &call_dolibarr_wizard_page(\@params, "upgrade", $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err); return (-1, "Dolibarr wizard failed : $err") if ($err);
# Second page (Migrate some data) # Second page (Migrate some data)
local @params = ( [ "action", "upgrade" ], local @params = ( [ "action", "upgrade" ],
[ "versionfrom", $upgrade->{'version'} ], [ "versionfrom", $upgrade->{'version'} ],
@ -266,7 +266,7 @@ if ($upgrade) {
); );
local $err = &call_dolibarr_wizard_page(\@params, "upgrade2", $d, $opts); local $err = &call_dolibarr_wizard_page(\@params, "upgrade2", $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err); return (-1, "Dolibarr wizard failed : $err") if ($err);
# Third page (Update version number) # Third page (Update version number)
local @params = ( [ "action", "upgrade" ], local @params = ( [ "action", "upgrade" ],
[ "versionfrom", $upgrade->{'version'} ], [ "versionfrom", $upgrade->{'version'} ],
@ -276,12 +276,12 @@ if ($upgrade) {
local $p = $ver >= 3.8 ? "step5" : "etape5"; local $p = $ver >= 3.8 ? "step5" : "etape5";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts); local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err); return (-1, "Dolibarr wizard failed : $err") if ($err);
# Remove the installation directory. (deprecated) # Remove the installation directory. (deprecated)
# local $dinstall = "$opts->{'dir'}/install"; # local $dinstall = "$opts->{'dir'}/install";
# $dinstall =~ s/\/$//; # $dinstall =~ s/\/$//;
# $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall)); # $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
} }
else { else {
# First page (Db connection and config file creation) # First page (Db connection and config file creation)
@ -306,13 +306,13 @@ else {
local $p = $ver >= 3.8 ? "step1" : "etape1"; local $p = $ver >= 3.8 ? "step1" : "etape1";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts); local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err); return (-1, "Dolibarr wizard failed : $err") if ($err);
# Second page (Populate database) # Second page (Populate database)
local @params = ( [ "action", "set" ] ); local @params = ( [ "action", "set" ] );
local $p = $ver >= 3.8 ? "step2" : "etape2"; local $p = $ver >= 3.8 ? "step2" : "etape2";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts); local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err); return (-1, "Dolibarr wizard failed : $err") if ($err);
# Third page (Add administrator account) # Third page (Add administrator account)
local @params = ( [ "action", "set" ], local @params = ( [ "action", "set" ],
[ "login", "admin" ], [ "login", "admin" ],
@ -323,17 +323,17 @@ else {
local $p = $ver >= 3.8 ? "step5" : "etape5"; local $p = $ver >= 3.8 ? "step5" : "etape5";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts); local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err); return (-1, "Dolibarr wizard failed : $err") if ($err);
# Remove the installation directory (deprecated) # Remove the installation directory (deprecated)
# local $dinstall = "$opts->{'dir'}/install"; # local $dinstall = "$opts->{'dir'}/install";
# $dinstall =~ s/\/$//; # $dinstall =~ s/\/$//;
# $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall)); # $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
# Protect config file # Protect config file
&set_permissions_as_domain_user($d, 0644, $cfile); &set_permissions_as_domain_user($d, 0644, $cfile);
&set_permissions_as_domain_user($d, 0755, $cfiledir); &set_permissions_as_domain_user($d, 0755, $cfiledir);
} }
# Return a URL for the user # Return a URL for the user
local $rp = $opts->{'dir'}; local $rp = $opts->{'dir'};
$rp =~ s/^$d->{'home'}\///; $rp =~ s/^$d->{'home'}\///;
@ -443,7 +443,7 @@ return 2;
sub script_dolibarr_db_conn_desc sub script_dolibarr_db_conn_desc
{ {
my $db_conn_desc = my $db_conn_desc =
{ 'conf/conf.php' => { 'conf/conf.php' =>
{ {
'dbpass' => 'dbpass' =>

View file

@ -1,4 +1,4 @@
README (english) README (english)
-------------------------------- --------------------------------
This directory contains some sample files to test ldap command on command line. This directory contains some sample files to test ldap command on command line.
They are used to help developmement and debugging of Dolibarr LDAP features. They are used to help developmement and debugging of Dolibarr LDAP features.

View file

@ -8,4 +8,4 @@
dn: ou=contacts,dc=my-domain,dc=com dn: ou=contacts,dc=my-domain,dc=com
objectClass: organizationalUnit objectClass: organizationalUnit
ou: contacts ou: contacts

View file

@ -24,6 +24,5 @@
# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "ou=people,dc=teclib,dc=infra" # ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "ou=people,dc=teclib,dc=infra"
# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "o=somecompany.com" "(objectclass=*)" # ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "o=somecompany.com" "(objectclass=*)"
# #
# Example to test a ldap search: # Example to test a ldap search:
# ldapsearch -h hostname -p 389 -x -z 5 -b 'OU=Collaborateurs,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -D 'CN=UserAdmin,OU=Informatique,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -w password # ldapsearch -h hostname -p 389 -x -z 5 -b 'OU=Collaborateurs,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -D 'CN=UserAdmin,OU=Informatique,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -w password

View file

@ -65,4 +65,4 @@ o9CFUO94RUiiEpmahN6IfgQXpQJUft9yuDseAluyCkKif5QkQA3IvwVYD2mv0R1uc9gY
fZt0uru+Tc93cnQQ82A5KVrVVvvahsyxtQFRMOgFLl8ct3wu6NVPyQPby9YUk2J4dpQr fZt0uru+Tc93cnQQ82A5KVrVVvvahsyxtQFRMOgFLl8ct3wu6NVPyQPby9YUk2J4dpQr
R5X+bCaMew5mDNsdjMV95GesdhT3n3y32Az+XZsuecMoxePVX5S+GRSu/9XVL9Z+w7Ki R5X+bCaMew5mDNsdjMV95GesdhT3n3y32Az+XZsuecMoxePVX5S+GRSu/9XVL9Z+w7Ki
--468358388441498ebb24096bfda88a45-- --468358388441498ebb24096bfda88a45--

View file

@ -46,4 +46,4 @@ Content-Transfer-Encoding: quoted-printable
... attach-file ... ... attach-file ...
--------------090104020208060008040809-- (end multipart/mixed) --------------090104020208060008040809-- (end multipart/mixed)

View file

@ -45,4 +45,4 @@ VEImZGI9b2Rvb192OCc+UGFydG5lciBBZ3JvbGFpdDwvYT48L3NtYWxsPjwvc3Bhbj4K
--===============8764907306434163361==-- --===============8764907306434163361==--
--===============4543832834454763172==-- --===============4543832834454763172==--

View file

@ -71,7 +71,7 @@ Content-Type: text/plain; charset="UTF-8"
adfsdfsdfds adfsdfsdfds
-- --
Laurent. Laurent.
------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------
Twitter: https://www.twitter.com/eldy10 Twitter: https://www.twitter.com/eldy10

View file

@ -3,4 +3,3 @@
Take a look at the dolibarr wiki page of Zapier module: Take a look at the dolibarr wiki page of Zapier module:
https://wiki.dolibarr.org/index.php?title=Module_Zapier https://wiki.dolibarr.org/index.php?title=Module_Zapier

View file

@ -1,56 +1,25 @@
{ {
"table_rowid": "id", "table_rowid" : "id",
"id": 6764, "id" : 6764,
"ref": null, "type_id" : "5",
"type_id": "5", "type_code" : "AC_RDV",
"type_code": "AC_RDV", "label" : "azerty",
"type": null, "datep" : 1555365600,
"type_color": null, "datef" : 1555538399,
"code": null, "durationp" : 172799,
"label": "azerty", "fulldayevent" : 1,
"datec": null, "punctual" : 1,
"datem": null, "percentage" : "-1",
"authorid": null, "transparency" : 1,
"usermodid": null, "priority" : 0,
"datep": 1555365600, "userassigned" : {
"datef": 1555538399, "1" : {
"durationp": 172799, "id" : "1",
"fulldayevent": 1, "transparency" : 1
"punctual": 1, }
"percentage": "-1", },
"location": "", "userownerid" : "1",
"transparency": 1, "fk_project" : 0,
"priority": 0, "note" : "wxcvbn",
"userassigned": { "duree" : 0
"1": { }
"id": "1",
"transparency": 1
}
},
"userownerid": "1",
"userdoneid": null,
"usertodo": null,
"userdone": null,
"socid": null,
"contactid": null,
"elementtype": "",
"icalname": null,
"icalcolor": null,
"actions": [],
"email_msgid": null,
"email_from": null,
"email_sender": null,
"email_to": null,
"email_tocc": null,
"email_tobcc": null,
"email_subject": null,
"errors_to": null,
"import_key": null,
"linkedObjectsIds": null,
"fk_project": 0,
"modelpdf": null,
"note_public": null,
"note_private": null,
"note": "wxcvbn",
"duree": 0
}

View file

@ -1,2 +1,2 @@
This directory contains the file with the graphical database structure. This directory contains the file with the graphical database structure.
It can be read with MySQL Workbench software. It can be read with MySQL Workbench software.

View file

@ -2,5 +2,5 @@ EORI
https://en.wikipedia.org/wiki/EORI_number https://en.wikipedia.org/wiki/EORI_number
in Dolibarr avaiable since v13 in Dolibarr avaiable since v13
- it is set to field 'profid5' - it is set to field 'profid5'

View file

@ -18,5 +18,3 @@ Et ça marche à linverse avec un fournisseur sauf que lon est en 775000 a
Un compte comptable de Tiers vente = Acount Receivable Un compte comptable de Tiers vente = Acount Receivable
Un compte comptable de Tiers achat = Acount Payable Un compte comptable de Tiers achat = Acount Payable

View file

@ -3,4 +3,3 @@ Address format
https://bitboost.com/ref/international-address-formats.html#Formats https://bitboost.com/ref/international-address-formats.html#Formats
https://www.upu.int/en/Postal-Solutions/Programmes-Services/Addressing-Solutions https://www.upu.int/en/Postal-Solutions/Programmes-Services/Addressing-Solutions

View file

@ -117,5 +117,3 @@ IBAN : FR54 3000 4031 2800 032T 56H9 125
Division : Division :
3000403128000322956179125152754 / 97 = 3000403128000322956179125152754 / 97 =
3000403128000322956179125152753 reste 1. 3000403128000322956179125152753 reste 1.

View file

@ -1,4 +1,4 @@
NACE NACE
https://ec.europa.eu/eurostat/ramon/nomenclatures/index.cfm?TargetUrl=LST_CLS_DLD&StrNom=NACE_REV2&StrLanguageCode=EN&StrLayoutCode= https://ec.europa.eu/eurostat/ramon/nomenclatures/index.cfm?TargetUrl=LST_CLS_DLD&StrNom=NACE_REV2&StrLanguageCode=EN&StrLayoutCode=

View file

@ -3,7 +3,7 @@
# The list is updated whenever a change to the official code list in ISO 3166-1 is effected by the ISO 3166/MA. # The list is updated whenever a change to the official code list in ISO 3166-1 is effected by the ISO 3166/MA.
# It lists 240 official short names and code elements. One line of text contains one entry. # It lists 240 official short names and code elements. One line of text contains one entry.
# A country name and its code element are separated by a semicolon (;). # A country name and its code element are separated by a semicolon (;).
# https://www.iso.org/iso-3166-country-codes.html # https://www.iso.org/iso-3166-country-codes.html
# https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes # https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
# ISO-3166: https://en.wikipedia.org/wiki/ISO_3166-1 # ISO-3166: https://en.wikipedia.org/wiki/ISO_3166-1

View file

@ -136,4 +136,4 @@
<xsd:element name="regionCode" type="xsd:string"/> <xsd:element name="regionCode" type="xsd:string"/>
<xsd:element name="date" type="xsd:date"/> <xsd:element name="date" type="xsd:date"/>
<xsd:element name="time" type="xsd:time"/> <xsd:element name="time" type="xsd:time"/>
</xsd:schema> </xsd:schema>

View file

@ -52,12 +52,12 @@ GUARANI GN AMERINDIAN
GUJARATI GU INDIAN GUJARATI GU INDIAN
HAUSA HA NEGRO-AFRICAN HAUSA HA NEGRO-AFRICAN
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW] HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
HINDI HI INDIAN HINDI HI INDIAN
HUNGARIAN HU FINNO-UGRIC HUNGARIAN HU FINNO-UGRIC
ICELANDIC IS GERMANIC ICELANDIC IS GERMANIC
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN] INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
INTERLINGUA IA INTERNATIONAL AUX. INTERLINGUA IA INTERNATIONAL AUX.
INTERLINGUE IE INTERNATIONAL AUX. INTERLINGUE IE INTERNATIONAL AUX.
INUKTITUT IU [ ] INUKTITUT IU [ ]
@ -159,7 +159,7 @@ WOLOF WO NEGRO-AFRICAN
XHOSA XH NEGRO-AFRICAN XHOSA XH NEGRO-AFRICAN
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI] YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
YORUBA YO NEGRO-AFRICAN YORUBA YO NEGRO-AFRICAN
ZHUANG ZA [ ] ZHUANG ZA [ ]
@ -211,7 +211,7 @@ GALICIAN GL ROMANCE
GUARANI GN AMERINDIAN GUARANI GN AMERINDIAN
GUJARATI GU INDIAN GUJARATI GU INDIAN
HAUSA HA NEGRO-AFRICAN HAUSA HA NEGRO-AFRICAN
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW] HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
HINDI HI INDIAN HINDI HI INDIAN
CROATIAN HR SLAVIC CROATIAN HR SLAVIC
HUNGARIAN HU FINNO-UGRIC HUNGARIAN HU FINNO-UGRIC
@ -219,7 +219,7 @@ ARMENIAN HY INDO-EUROPEAN (OTHER)
INTERLINGUA IA INTERNATIONAL AUX. INTERLINGUA IA INTERNATIONAL AUX.
INTERLINGUE IE INTERNATIONAL AUX. INTERLINGUE IE INTERNATIONAL AUX.
INUPIAK IK ESKIMO INUPIAK IK ESKIMO
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN] INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
ICELANDIC IS GERMANIC ICELANDIC IS GERMANIC
ITALIAN IT ROMANCE ITALIAN IT ROMANCE
INUKTITUT IU [ ] INUKTITUT IU [ ]
@ -304,7 +304,7 @@ VIETNAMESE VI ASIAN
VOLAPUK VO INTERNATIONAL AUX. VOLAPUK VO INTERNATIONAL AUX.
WOLOF WO NEGRO-AFRICAN WOLOF WO NEGRO-AFRICAN
XHOSA XH NEGRO-AFRICAN XHOSA XH NEGRO-AFRICAN
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI] YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
YORUBA YO NEGRO-AFRICAN YORUBA YO NEGRO-AFRICAN
ZHUANG ZA [ ] ZHUANG ZA [ ]
CHINESE ZH ASIAN CHINESE ZH ASIAN
@ -362,7 +362,7 @@ GERMAN DE GERMANIC
ICELANDIC IS GERMANIC ICELANDIC IS GERMANIC
NORWEGIAN NO GERMANIC NORWEGIAN NO GERMANIC
SWEDISH SV GERMANIC SWEDISH SV GERMANIC
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI] YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
AFAN (OROMO) OM HAMITIC AFAN (OROMO) OM HAMITIC
AFAR AA HAMITIC AFAR AA HAMITIC
@ -420,7 +420,7 @@ YORUBA YO NEGRO-AFRICAN
ZULU ZU NEGRO-AFRICAN ZULU ZU NEGRO-AFRICAN
FIJI FJ OCEANIC/INDONESIAN FIJI FJ OCEANIC/INDONESIAN
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN] INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
JAVANESE JV OCEANIC/INDONESIAN JAVANESE JV OCEANIC/INDONESIAN
MALAGASY MG OCEANIC/INDONESIAN MALAGASY MG OCEANIC/INDONESIAN
MALAY MS OCEANIC/INDONESIAN MALAY MS OCEANIC/INDONESIAN
@ -444,7 +444,7 @@ SPANISH ES ROMANCE
AMHARIC AM SEMITIC AMHARIC AM SEMITIC
ARABIC AR SEMITIC ARABIC AR SEMITIC
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW] HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
MALTESE MT SEMITIC MALTESE MT SEMITIC
TIGRINYA TI SEMITIC TIGRINYA TI SEMITIC

View file

@ -5,4 +5,4 @@ terms
(fr) TVA = Taxe sur la Valeur Ajouté (fr) TVA = Taxe sur la Valeur Ajouté
(es) NIF / CIF (es) NIF / CIF
(de) USt / MwSt = UmsatzSteuer / Mehrwertsteuer (de) USt / MwSt = UmsatzSteuer / Mehrwertsteuer
(it) IVA (it) IVA

View file

@ -5,6 +5,6 @@ https://www.taxrates.cc/index.html
https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates
For India: VAT=IGST / CGST=Localtax1 / SGST=Localtax2 For India: VAT=IGST / CGST=Localtax1 / SGST=Localtax2
see: see:
https://cleartax.in/s/what-is-sgst-cgst-igst https://cleartax.in/s/what-is-sgst-cgst-igst
https://www.mastersindia.co/blog/what-is-cgst-sgst-igst-and-ugst/ https://www.mastersindia.co/blog/what-is-cgst-sgst-igst-and-ugst/

View file

@ -3,4 +3,4 @@ README (English)
If your web hosting does not allow you to place the folder "documents" outside If your web hosting does not allow you to place the folder "documents" outside
the site root, add the htaccess.txt in the root directory of the site root, add the htaccess.txt in the root directory of
folder "documents" by renaming it into .htaccess folder "documents" by renaming it into .htaccess

View file

@ -1,7 +1,7 @@
[PHP] [PHP]
; ************************ ; ************************
: Need a special php.ini to allow usage of : Need a special php.ini to allow usage of
; ************************ ; ************************
;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;

View file

@ -7,7 +7,7 @@
*/</template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.constructorcomment" name="constructorcomment">/** */</template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.constructorcomment" name="constructorcomment">/**
* ${tags} * ${tags}
*/</template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created PHP files" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.filecomment" name="filecomment">/** */</template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created PHP files" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.filecomment" name="filecomment">/**
* *
*/ */
</template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.typecomment" name="typecomment">/** </template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.typecomment" name="typecomment">/**
* @author ${user} * @author ${user}
@ -47,7 +47,7 @@ ${cursor}</template><template autoinsert="false" context="php" deleted="false" d
case ${value}: case ${value}:
${cursor}; ${cursor};
break; break;
default: default:
; ;
break; break;
@ -66,21 +66,21 @@ ${cursor}</template><template autoinsert="false" context="php" deleted="false" d
</template><template autoinsert="false" context="php" deleted="false" description="lambda function statement (closure)" enabled="true" id="org.eclipse.php.ui.editor.templates.php.closure" name="closure">function (${parameters}) use (${lexical_variables}) { </template><template autoinsert="false" context="php" deleted="false" description="lambda function statement (closure)" enabled="true" id="org.eclipse.php.ui.editor.templates.php.closure" name="closure">function (${parameters}) use (${lexical_variables}) {
${cursor}; ${cursor};
} }
</template><template autoinsert="false" context="php" deleted="false" description="class statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.cls" name="cls">class ${class_name} </template><template autoinsert="false" context="php" deleted="false" description="class statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.cls" name="cls">class ${class_name}
{ {
function ${function_name}() function ${function_name}()
{ {
${cursor}; ${cursor};
} }
} }
</template><template autoinsert="false" context="php" deleted="false" description="class statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.class" name="class">class ${class_name} </template><template autoinsert="false" context="php" deleted="false" description="class statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.class" name="class">class ${class_name}
{ {
function ${function_name}() function ${function_name}()
{ {
${cursor}; ${cursor};
} }
} }
</template><template autoinsert="false" context="php" deleted="false" description="if statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.if" name="if">if (${condition}) </template><template autoinsert="false" context="php" deleted="false" description="if statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.if" name="if">if (${condition})
{ {
${cursor}; ${cursor};
} }
@ -115,7 +115,7 @@ if (${dollar}${dirh}) {
${cursor}; ${cursor};
} }
</template><template autoinsert="false" context="php" deleted="false" description="Trap code output" enabled="true" id="org.eclipse.php.ui.editor.templates.php.my_gc" name="my_gc">ob_start(); </template><template autoinsert="false" context="php" deleted="false" description="Trap code output" enabled="true" id="org.eclipse.php.ui.editor.templates.php.my_gc" name="my_gc">ob_start();
${cursor}; ${cursor};
${dollar}${contents} = ob_get_contents(); ${dollar}${contents} = ob_get_contents();
@ -142,4 +142,4 @@ ${cursor}
&lt;/body&gt; &lt;/body&gt;
&lt;/noframes&gt; &lt;/noframes&gt;
&lt;/frameset&gt; &lt;/frameset&gt;
&lt;/html&gt;</template></templates> &lt;/html&gt;</template></templates>

View file

@ -9,4 +9,4 @@ cs_re:red:.*ERR.*
cs_re:white,yellow:.*WARNING.* cs_re:white,yellow:.*WARNING.*
cs_re:green,yellow:.*NOTICE.* cs_re:green,yellow:.*NOTICE.*
cs_re:green:.*INFO.* cs_re:green:.*INFO.*
cs_re:white:.*DEBUG.* cs_re:white:.*DEBUG.*

View file

@ -16,4 +16,4 @@ xdebug.show_local_vars=off
xdebug.profiler_output_dir=/var/tmp xdebug.profiler_output_dir=/var/tmp
xdebug.profiler_append=0 xdebug.profiler_append=0
Then xdebug profiling can be enabled by adding XDEBUG_PROFILE=1 on URL. Then xdebug profiling can be enabled by adding XDEBUG_PROFILE=1 on URL.

View file

@ -1 +1 @@
Files and tools of a skeleton to build a module were moved into htdocs/modulebuilder/template Files and tools of a skeleton to build a module were moved into htdocs/modulebuilder/template

View file

@ -5,29 +5,27 @@ README (English)
RapidAPI RapidAPI
############## ##############
RapidAPI for Mac is a full-featured HTTP client that let's you test and describe the APIs you build or consume. RapidAPI for Mac is a full-featured HTTP client that let's you test and describe the APIs you build or consume.
It has a beautiful native macOS interface to compose requests, inspect server responses, generate client code and export API definitions. It has a beautiful native macOS interface to compose requests, inspect server responses, generate client code and export API definitions.
https://paw.cloud/ https://paw.cloud/
@@@ @@@
(@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@% (@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@, @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@, @@@@@@, @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,
@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
(@@@@@@( @@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (@@@@@@( @@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@@@@@. /@@@@@@@@@@@@@@@@@( @@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@@@@@. /@@@@@@@@@@@@@@@@@(
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@@@@@. @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@@@@@. @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ /@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ /@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@# @@@@@@@@@@@ @@@@@@@@@@@@& @@@@@@@@@@@@@@@@@@@@@@@@@@@@# @@@@@@@@@@@ @@@@@@@@@@@@&
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@@@/ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@@@/
@@@@@@@@@@@@@@@@@@@@@@@@@@& .@@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@/ @@@@@@@@@@@@@@@@@@@@@@@@@@& .@@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@/
(@@@@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@ &@@@@@@@@@@@@@@@( (@@@@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@ &@@@@@@@@@@@@@@@(
@@@@@ @@@@@ .@@@@@@@@@@@ @@@@@@@@@@@* @@@@@ @@@@@ .@@@@@@@@@@@ @@@@@@@@@@@*

View file

@ -128,5 +128,3 @@ for f in ${TFile[@]}; do
done done
done done

View file

@ -1,2 +1,2 @@
/test.php /test.php
/vendor /vendor

View file

@ -36,4 +36,3 @@ then
wmctrl -i -r $1 -e 0,0,0,$width,$height wmctrl -i -r $1 -e 0,0,0,$width,$height
echo Size of windows $1 modified to $width x $height echo Size of windows $1 modified to $width x $height
fi fi

View file

@ -93,5 +93,3 @@ if __name__ == '__main__':
options, arguments = parser.parse_args() options, arguments = parser.parse_args()
sys.argv[:] = arguments sys.argv[:] = arguments
main(options, arguments) main(options, arguments)

View file

@ -1,4 +1,4 @@
Test to migrate Dolibarr to namespace "Dolibarr". Test to migrate Dolibarr to namespace "Dolibarr".
Script bbb.php is a script of an external module with current code writing. Script bbb.php is a script of an external module with current code writing.
It must works after migration. It must works after migration.

View file

@ -14,7 +14,7 @@ https://www.transifex.com/dolibarr-association/dolibarr/dashboard/
Installation of Transifex Client: Installation of Transifex Client:
--------------------------------- ---------------------------------
for Linux OS for Linux OS
to install or to update transifex client: to install or to update transifex client:
sudo pip install --upgrade transifex-client sudo pip install --upgrade transifex-client

View file

@ -65,4 +65,3 @@ fi
echo Think to launch also: echo Think to launch also:
echo "> dev/tools/fixaltlanguages.sh fix all" echo "> dev/tools/fixaltlanguages.sh fix all"
#echo "For v11: Replace also regex \(.*(sponge|cornas|eratosthene|cyan).*\) with '' on *.lang files" #echo "For v11: Replace also regex \(.*(sponge|cornas|eratosthene|cyan).*\) with '' on *.lang files"

View file

@ -19,4 +19,4 @@ But if you are looking for other resources (downloads, documentation, addons, ..
* <a href="https://www.dolistore.com">DoliStore (official addons/plugins market place)</a><br> * <a href="https://www.dolistore.com">DoliStore (official addons/plugins market place)</a><br>
</body> </body>
</html> </html>

View file

@ -8,14 +8,14 @@ Download / Herunterladen
* Dolibarr ERP/CRM kann man über die offizielle Dolibarr Website * Dolibarr ERP/CRM kann man über die offizielle Dolibarr Website
https://www.dolibarr.org/downloads https://www.dolibarr.org/downloads
oder direkt bei Sourceforge oder direkt bei Sourceforge
https://sourceforge.net/projects/dolibarr/files/ https://sourceforge.net/projects/dolibarr/files/
herunterladen. herunterladen.
@ -26,10 +26,10 @@ Installation / Hilfe
* Für eine kurze Einleitung schau in die README.md Datei im Hauptverzeichnis. * Für eine kurze Einleitung schau in die README.md Datei im Hauptverzeichnis.
* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden: * Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
https://wiki.dolibarr.org/index.php/Hauptseite https://wiki.dolibarr.org/index.php/Hauptseite
* eine Deutsche Community bietet der Dolibarr e.V. unter * eine Deutsche Community bietet der Dolibarr e.V. unter
https://www.dolibarr.de/ https://www.dolibarr.de/
@ -38,8 +38,6 @@ Installation / Hilfe
Zusatzmodule Zusatzmodule
------------------------------------ ------------------------------------
* Die meisten externen Module/Themen sind über den offiziellen DoliStore verfügbar: * Die meisten externen Module/Themen sind über den offiziellen DoliStore verfügbar:
https://www.dolistore.com/de/ https://www.dolistore.com/de/

View file

@ -1,7 +1,7 @@
// MENU // MENU
let navmenu = document.querySelector('.doc-sidebar nav ul'); let navmenu = document.querySelector('.doc-sidebar nav ul');
let navmenulinks = navmenu.querySelectorAll('a.link-withsubmenu'); let navmenulinks = navmenu.querySelectorAll('a.link-withsubmenu');
if(navmenulinks.length > 0) { if(navmenulinks.length > 0) {
navmenulinks.forEach( navmenulinks.forEach(
function (menulink) { function (menulink) {
menulink.addEventListener( menulink.addEventListener(
@ -28,4 +28,4 @@ function showscroll()
var height = document.documentElement.scrollHeight - document.documentElement.clientHeight; var height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
var scrolled = (winScroll / height) * 100; var scrolled = (winScroll / height) * 100;
document.getElementById("documentation-scroll").style.width = scrolled + "%"; document.getElementById("documentation-scroll").style.width = scrolled + "%";
} }

View file

@ -68,5 +68,3 @@ It is possible to specify url for API methods by simply use the PHPDoc tag **@ur
Other annotations are used, you are encouraged to read them : https://github.com/Luracast/Restler/blob/master/ANNOTATIONS.md Other annotations are used, you are encouraged to read them : https://github.com/Luracast/Restler/blob/master/ANNOTATIONS.md
PHPDoc tags can also be used to specify variables information for API. Again, rtfm : https://github.com/Luracast/Restler/blob/master/PARAM.md PHPDoc tags can also be used to specify variables information for API. Again, rtfm : https://github.com/Luracast/Restler/blob/master/PARAM.md

View file

@ -20,4 +20,3 @@ Vous pouvez aussi lire et faire des recherches au sein de la log inaltérable.
Tous les enregistrements de la logs inaltérable sont liés avec le précédent dans une Blockchain, et leur contenu fait parti de la signature include dans ce lien, Tous les enregistrements de la logs inaltérable sont liés avec le précédent dans une Blockchain, et leur contenu fait parti de la signature include dans ce lien,
aussi, une fois le module activé et le premier enregistrement réalisé, il ne sera plus possible d'effacer ni modifier un enregistrement dans la log aussi, une fois le module activé et le premier enregistrement réalisé, il ne sera plus possible d'effacer ni modifier un enregistrement dans la log
inaltérable sans corrompre toute la chaine. Dès lors qu'un enregistrement est invalid, tous les suivants pourront également être considérés invalides par votre administration. inaltérable sans corrompre toute la chaine. Dès lors qu'un enregistrement est invalid, tous les suivants pourront également être considérés invalides par votre administration.

View file

@ -1,3 +1,3 @@
# DO NOT DELETE THIS FILE MANUALLY # DO NOT DELETE THIS FILE MANUALLY
# File to flag module built using official module template. # File to flag module built using official module template.
# When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module. # When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module.

View file

@ -1,3 +1,3 @@
# DO NOT DELETE THIS FILE MANUALLY # DO NOT DELETE THIS FILE MANUALLY
# File to flag module built using official module template. # File to flag module built using official module template.
# When this file is present into a module directory, you can edit it with the module builder tool. # When this file is present into a module directory, you can edit it with the module builder tool.

View file

@ -1,4 +1,4 @@
## This file is a list of predefined URLs to block when trying to access them from the application, ## This file is a list of predefined URLs to block when trying to access them from the application,
## for example when using the grab website feature of module website ## for example when using the grab website feature of module website
## Allowing grabbing local url allow to get metadata. ## Allowing grabbing local url allow to get metadata.

View file

@ -25,8 +25,8 @@ $(document).ready(function() {
var element = $('#jeditable_element').html(); var element = $('#jeditable_element').html();
var table_element = $('#jeditable_table_element').html(); var table_element = $('#jeditable_table_element').html();
var fk_element = $('#jeditable_fk_element').html(); var fk_element = $('#jeditable_fk_element').html();
if ($('.editval_string').length > 0) { if ($('.editval_string').length > 0) {
$('.editval_string').editable(urlSaveInPlace, { $('.editval_string').editable(urlSaveInPlace, {
type : 'text', type : 'text',
@ -69,7 +69,7 @@ $(document).ready(function() {
$('#editval_' + $(this).attr('id').substr(8)).show().click(); $('#editval_' + $(this).attr('id').substr(8)).show().click();
}); });
} }
if ($('.editval_textarea').length > 0) { if ($('.editval_textarea').length > 0) {
$('.editval_textarea').editable(urlSaveInPlace, { $('.editval_textarea').editable(urlSaveInPlace, {
type : 'textarea', type : 'textarea',
@ -117,7 +117,7 @@ $(document).ready(function() {
$('#editval_' + $(this).attr('id')).show().click(); $('#editval_' + $(this).attr('id')).show().click();
}); });
} }
if (typeof ckeditorConfig != 'undefined') { if (typeof ckeditorConfig != 'undefined') {
$('.editval_ckeditor').editable(urlSaveInPlace, { $('.editval_ckeditor').editable(urlSaveInPlace, {
type : 'ckeditor', type : 'ckeditor',
@ -170,7 +170,7 @@ $(document).ready(function() {
$('#editval_' + $(this).attr('id')).show().click(); $('#editval_' + $(this).attr('id')).show().click();
}); });
} }
if ($('.editval_numeric').length > 0) { if ($('.editval_numeric').length > 0) {
$('.editval_numeric').editable(urlSaveInPlace, { $('.editval_numeric').editable(urlSaveInPlace, {
type : 'text', type : 'text',
@ -213,7 +213,7 @@ $(document).ready(function() {
$('#editval_' + $(this).attr('id')).show().click(); $('#editval_' + $(this).attr('id')).show().click();
}); });
} }
if ($('.editval_datepicker').length > 0) { if ($('.editval_datepicker').length > 0) {
$('.editval_datepicker').editable(urlSaveInPlace, { $('.editval_datepicker').editable(urlSaveInPlace, {
type : 'datepicker', type : 'datepicker',
@ -253,7 +253,7 @@ $(document).ready(function() {
$('#editval_' + $(this).attr('id')).show().click(); $('#editval_' + $(this).attr('id')).show().click();
}); });
} }
if ($('.editval_select').length > 0) { if ($('.editval_select').length > 0) {
$('.editval_select').editable(urlSaveInPlace, { $('.editval_select').editable(urlSaveInPlace, {
type : 'select', type : 'select',
@ -298,7 +298,7 @@ $(document).ready(function() {
$('#editval_' + $(this).attr('id')).show().click(); $('#editval_' + $(this).attr('id')).show().click();
}); });
} }
// for test only (not stable) // for test only (not stable)
if ($('.editval_autocomplete').length > 0) { if ($('.editval_autocomplete').length > 0) {
$('.editval_autocomplete').editable(urlSaveInPlace, { $('.editval_autocomplete').editable(urlSaveInPlace, {
@ -345,7 +345,7 @@ $(document).ready(function() {
$('#editval_' + $(this).attr('id')).show().click(); $('#editval_' + $(this).attr('id')).show().click();
}); });
} }
function getParameters(obj, type) { function getParameters(obj, type) {
var htmlname = $(obj).attr('id').substr(8); var htmlname = $(obj).attr('id').substr(8);
var element = $('#element_' + htmlname).val(); var element = $('#element_' + htmlname).val();
@ -355,7 +355,7 @@ $(document).ready(function() {
var savemethod = $('#savemethod_' + htmlname).val(); var savemethod = $('#savemethod_' + htmlname).val();
var ext_element = $('#ext_element_' + htmlname).val(); var ext_element = $('#ext_element_' + htmlname).val();
var timestamp = $('#timestamp').val(); var timestamp = $('#timestamp').val();
return { return {
type: type, type: type,
element: element, element: element,
@ -367,7 +367,7 @@ $(document).ready(function() {
ext_element: ext_element ext_element: ext_element
}; };
} }
function getResult(obj, result) { function getResult(obj, result) {
var res = $.parseJSON(result); var res = $.parseJSON(result);
if (res.error) { if (res.error) {
@ -379,7 +379,7 @@ $(document).ready(function() {
} else { } else {
$.jnotify(res.error, "error", true); $.jnotify(res.error, "error", true);
} }
} else { } else {
var htmlname = $(obj).attr('id').substr(8); var htmlname = $(obj).attr('id').substr(8);
var successmsg = $( '#successmsg_' + htmlname ).val(); var successmsg = $( '#successmsg_' + htmlname ).val();
@ -392,7 +392,7 @@ $(document).ready(function() {
$('#viewval_' + htmlname).show(); $('#viewval_' + htmlname).show();
} }
} }
function getDefault(settings) { function getDefault(settings) {
var htmlname = $(settings).attr('id').substr(8); var htmlname = $(settings).attr('id').substr(8);
$('#editval_' + htmlname).hide(); $('#editval_' + htmlname).hide();

View file

@ -34,7 +34,7 @@ function updateCoords(c)
ratio=1; ratio=1;
imagewidth=0; imagewidth=0;
imageheight=0; imageheight=0;
console.log(c); console.log(c);
if (parseInt(jQuery("#ratioforcrop").val()) > 1) { if (parseInt(jQuery("#ratioforcrop").val()) > 1) {
@ -42,7 +42,7 @@ function updateCoords(c)
if (parseInt(jQuery("#imagewidth").val()) > 0) imagewidth = parseInt(jQuery("#imagewidth").val()); if (parseInt(jQuery("#imagewidth").val()) > 0) imagewidth = parseInt(jQuery("#imagewidth").val());
if (parseInt(jQuery("#imageheight").val()) > 0) imageheight = parseInt(jQuery("#imageheight").val()); if (parseInt(jQuery("#imageheight").val()) > 0) imageheight = parseInt(jQuery("#imageheight").val());
} }
x = Math.floor(c.x * ratio); x = Math.floor(c.x * ratio);
y = Math.floor(c.y * ratio); y = Math.floor(c.y * ratio);
x2 = Math.ceil(c.x2 * ratio); x2 = Math.ceil(c.x2 * ratio);
@ -60,7 +60,7 @@ function updateCoords(c)
if (imageheight > 0 && y2 > imageheight) { if (imageheight > 0 && y2 > imageheight) {
y2 = imageheight; y2 = imageheight;
} }
//console.log(ratio); //console.log(ratio);
jQuery('#x').val(x); jQuery('#x').val(x);
jQuery('#y').val(y); jQuery('#y').val(y);

View file

@ -127,7 +127,7 @@ function updateTotal(days,mode)
for (var i=-1; i < nbline; i++) for (var i=-1; i < nbline; i++)
{ {
/* get value into timespent cell */ /* get value into timespent cell */
var id='timespent['+i+']['+days+']'; var id='timespent['+i+']['+days+']';
var taskTime = new Date(0); var taskTime = new Date(0);
var element = document.getElementById(id); var element = document.getElementById(id);
@ -152,9 +152,9 @@ function updateTotal(days,mode)
//console.log("i="+i+" nbextradays cumul="+nbextradays+" h="+total.getHours()+" "+taskTime.getHours()); //console.log("i="+i+" nbextradays cumul="+nbextradays+" h="+total.getHours()+" "+taskTime.getHours());
} }
} }
/* get value into timeadded cell */ /* get value into timeadded cell */
var id='timeadded['+i+']['+days+']'; var id='timeadded['+i+']['+days+']';
var taskTime= new Date(0); var taskTime= new Date(0);
var element=document.getElementById(id); var element=document.getElementById(id);
@ -229,21 +229,21 @@ function updateTotal(days,mode)
console.log(total.getMinutes()) console.log(total.getMinutes())
} }
}); });
var stringdays = days; var stringdays = days;
if (startline >= 1 && startline <= 9 && stringdays < 10) { if (startline >= 1 && startline <= 9 && stringdays < 10) {
stringdays = '0'+stringdays; stringdays = '0'+stringdays;
} }
/* Output total in top of column */ /* Output total in top of column */
if (total.getHours() || total.getMinutes()) jQuery('.totalDay'+stringdays).addClass("bold"); if (total.getHours() || total.getMinutes()) jQuery('.totalDay'+stringdays).addClass("bold");
else jQuery('.totalDay'+stringdays).removeClass("bold"); else jQuery('.totalDay'+stringdays).removeClass("bold");
var texttoshow = pad(nbextradays * 24 + total.getHours())+':'+pad(total.getMinutes()); var texttoshow = pad(nbextradays * 24 + total.getHours())+':'+pad(total.getMinutes());
jQuery('.totalDay'+stringdays).text(texttoshow); jQuery('.totalDay'+stringdays).text(texttoshow);
/* Output total of all total */ /* Output total of all total */
var totalhour = 0; var totalhour = 0;
var totalmin = 0; var totalmin = 0;
for (var i=0; i<7; i++) for (var i=0; i<7; i++)
@ -309,7 +309,7 @@ function updateTotal(days,mode)
stringdays = '0'+stringdays; stringdays = '0'+stringdays;
console.log(stringdays); console.log(stringdays);
} }
if (total) jQuery('.totalDay'+stringdays).addClass("bold"); if (total) jQuery('.totalDay'+stringdays).addClass("bold");
else jQuery('.totalDay'+stringdays).removeClass("bold"); else jQuery('.totalDay'+stringdays).removeClass("bold");
jQuery('.totalDay'+stringdays).text(total); jQuery('.totalDay'+stringdays).text(total);

View file

@ -6,7 +6,7 @@ Description of htdocs/core/login directory
This directory contains files that handle the way to validate passwords. This directory contains files that handle the way to validate passwords.
If you want to add a new password checker function, just add a file in this directory that follow an example of an already existing files. If you want to add a new password checker function, just add a file in this directory that follow an example of an already existing files.
This file must be called for example : This file must be called for example :
functions_mypasschecker.php functions_mypasschecker.php
Edit the function name to call it: Edit the function name to call it:
@ -19,11 +19,10 @@ Then, you must edit you conf.php file to change the value of
parameter to set it to : parameter to set it to :
mypasschecker mypasschecker
Once this is done, when you log in to Dolibarr, the function Once this is done, when you log in to Dolibarr, the function
check_user_mypasschecker in this file is called. check_user_mypasschecker in this file is called.
If the function return true and login exists, login is accepted. If the function return true and login exists, login is accepted.
See page https://wiki.dolibarr.org/index.php?title=Authentication,_SSO_and_SSL for more information. See page https://wiki.dolibarr.org/index.php?title=Authentication,_SSO_and_SSL for more information.

View file

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Reçu au titre des dons à certains organismes dintérêt général</title> <title>Reçu au titre des dons à certains organismes dintérêt général</title>
<style type="text/css"> <style type="text/css">
.tdtop { .tdtop {
vertical-align: top; vertical-align: top;
@ -35,7 +35,7 @@
</td> </td>
<td width="20%" class="nowrap" align="center" valign="middle"> <td width="20%" class="nowrap" align="center" valign="middle">
Numéro d'ordre du reçu<br> Numéro d'ordre du reçu<br>
__REF__ __REF__
</td> </td>
</tr> </tr>
</table> </table>
@ -189,7 +189,7 @@
<td width="50%"> <td width="50%">
<font size="+1"><b>Prénoms :</b></font><br> <font size="+1"><b>Prénoms :</b></font><br>
__DONATOR_FIRSTNAME__ __DONATOR_FIRSTNAME__
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
@ -282,11 +282,11 @@
</tr> </tr>
</table> </table>
</font> </font>
<br> <br>
<br> <br>
<table width="100%"> <table width="100%">
<tr> <tr>
<td class="right"> <td class="right">
@ -312,4 +312,3 @@
</div> </div>
</body> </body>
</html> </html>

View file

@ -22,7 +22,7 @@
</div> </div>
<p><span class="label">__DonationDatePayment__:</span> __DATE__</p> <p><span class="label">__DonationDatePayment__:</span> __DATE__</p>
<p><span class="label">__Donor__:</span> __DONOR_FULL_NAME__, __DONOR_FULL_ADDRESS__</p> <p><span class="label">__Donor__:</span> __DONOR_FULL_NAME__, __DONOR_FULL_ADDRESS__</p>
<p><span class="label">__PaymentMode__:</span> __PAYMENTMODE_LABEL__</p> <p><span class="label">__PaymentMode__:</span> __PAYMENTMODE_LABEL__</p>
<p><span class="label">__Amount__:</span> __AMOUNT__ __CURRENCY_CODE__</p> <p><span class="label">__Amount__:</span> __AMOUNT__ __CURRENCY_CODE__</p>
__NOTE_PUBLIC__ __NOTE_PUBLIC__

View file

@ -43,7 +43,7 @@ $target[0]=array('email'=>'email_0','name'=>'name_0','firstname'=>'firstname_0',
$target[n]=array('email'=>'email_n','name'=>'name_n','firstname'=>'firstname_n', 'other'=>'other_n'); $target[n]=array('email'=>'email_n','name'=>'name_n','firstname'=>'firstname_n', 'other'=>'other_n');
// ----- Your code end here ----- // ----- Your code end here -----
and call the method and call the method
parent::addTargetsToDatabase($mailing_id, $target); parent::addTargetsToDatabase($mailing_id, $target);
@ -52,4 +52,3 @@ parent::addTargetsToDatabase($mailing_id, $target);
Once this file has been edited, you can go to the Dolibarr emailing feature, Once this file has been edited, you can go to the Dolibarr emailing feature,
you will see a new line selector in the "targets" editor of emailing tool. you will see a new line selector in the "targets" editor of emailing tool.

View file

@ -1,3 +1,3 @@
README (english) README (english)
This directory is used for storing the common default templates of the system core. (outside any modules) This directory is used for storing the common default templates of the system core. (outside any modules)

View file

@ -10,6 +10,5 @@ where:
directory or value 'all' if not enabled by a particular module. directory or value 'all' if not enabled by a particular module.
> Mytrigger is name of the trigger. The PHP class inside the trigger file > Mytrigger is name of the trigger. The PHP class inside the trigger file
would be named InterfaceMytrigger. would be named InterfaceMytrigger.
> -NORUN is optional and disable completely a trigger file if set. To use > -NORUN is optional and disable completely a trigger file if set. To use
a trigger with such a name, rename file to remove the -NORUN part. a trigger with such a name, rename file to remove the -NORUN part.

View file

@ -12,7 +12,6 @@ où:
module particulier. module particulier.
> Mytrigger est le nom du trigger. La classe PHP dans le fichier trigger > Mytrigger est le nom du trigger. La classe PHP dans le fichier trigger
aura pour nom InterfaceMytrigger. aura pour nom InterfaceMytrigger.
> -NORUN est optionnel et désactive le fichier trigger si défini. Pour > -NORUN est optionnel et désactive le fichier trigger si défini. Pour
utiliser un tel fichier trigger, renommer le fichier afin utiliser un tel fichier trigger, renommer le fichier afin
d'enlever la partie -NORUN. d'enlever la partie -NORUN.

View file

@ -1,3 +1,3 @@
# DO NOT DELETE THIS FILE MANUALLY # DO NOT DELETE THIS FILE MANUALLY
# File to flag module built using official module template. # File to flag module built using official module template.
# When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module. # When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module.

View file

@ -1,3 +1,3 @@
# DO NOT DELETE THIS FILE MANUALLY # DO NOT DELETE THIS FILE MANUALLY
# File to flag module built using official module template. # File to flag module built using official module template.
# When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module. # When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module.

View file

@ -1,3 +1,3 @@
# DO NOT DELETE THIS FILE MANUALLY # DO NOT DELETE THIS FILE MANUALLY
# File to flag module built using official module template. # File to flag module built using official module template.
# When this file is present into a module directory, you can edit it with the module builder tool. # When this file is present into a module directory, you can edit it with the module builder tool.

View file

@ -1,3 +1,3 @@
# DO NOT DELETE THIS FILE MANUALLY # DO NOT DELETE THIS FILE MANUALLY
# File to flag module built using official module template. # File to flag module built using official module template.
# When this file is present into a module directory, you can edit it with the module builder tool. # When this file is present into a module directory, you can edit it with the module builder tool.

View file

@ -70,7 +70,7 @@ class Yahoo extends AbstractService
); );
$headers = array_merge($authorizationHeader, $this->getExtraOAuthHeaders(), array()); $headers = array_merge($authorizationHeader, $this->getExtraOAuthHeaders(), array());
$responseBody = $this->httpClient->retrieveResponse($this->getAccessTokenEndpoint(), $bodyParams, $headers); $responseBody = $this->httpClient->retrieveResponse($this->getAccessTokenEndpoint(), $bodyParams, $headers);

View file

@ -169,7 +169,7 @@ class Facebook extends AbstractService
$token = new StdOAuth2Token(); $token = new StdOAuth2Token();
$token->setAccessToken($data['access_token']); $token->setAccessToken($data['access_token']);
if (isset($data['expires'])) { if (isset($data['expires'])) {
$token->setLifeTime($data['expires']); $token->setLifeTime($data['expires']);
} }

View file

@ -24,22 +24,22 @@ class Pocket extends AbstractService
$this->baseApiUri = new Uri('https://getpocket.com/v3/'); $this->baseApiUri = new Uri('https://getpocket.com/v3/');
} }
} }
public function getRequestTokenEndpoint() public function getRequestTokenEndpoint()
{ {
return new Uri('https://getpocket.com/v3/oauth/request'); return new Uri('https://getpocket.com/v3/oauth/request');
} }
public function getAuthorizationEndpoint() public function getAuthorizationEndpoint()
{ {
return new Uri('https://getpocket.com/auth/authorize'); return new Uri('https://getpocket.com/auth/authorize');
} }
public function getAccessTokenEndpoint() public function getAccessTokenEndpoint()
{ {
return new Uri('https://getpocket.com/v3/oauth/authorize'); return new Uri('https://getpocket.com/v3/oauth/authorize');
} }
public function getAuthorizationUri(array $additionalParameters = array()) public function getAuthorizationUri(array $additionalParameters = array())
{ {
$parameters = array_merge( $parameters = array_merge(
@ -48,7 +48,7 @@ class Pocket extends AbstractService
'redirect_uri' => $this->credentials->getCallbackUrl(), 'redirect_uri' => $this->credentials->getCallbackUrl(),
) )
); );
// Build the url // Build the url
$url = clone $this->getAuthorizationEndpoint(); $url = clone $this->getAuthorizationEndpoint();
foreach ($parameters as $key => $val) { foreach ($parameters as $key => $val) {
@ -57,7 +57,7 @@ class Pocket extends AbstractService
return $url; return $url;
} }
public function requestRequestToken() public function requestRequestToken()
{ {
$responseBody = $this->httpClient->retrieveResponse( $responseBody = $this->httpClient->retrieveResponse(
@ -67,16 +67,16 @@ class Pocket extends AbstractService
'redirect_uri' => $this->credentials->getCallbackUrl(), 'redirect_uri' => $this->credentials->getCallbackUrl(),
) )
); );
$code = $this->parseRequestTokenResponse($responseBody); $code = $this->parseRequestTokenResponse($responseBody);
return $code; return $code;
} }
protected function parseRequestTokenResponse($responseBody) protected function parseRequestTokenResponse($responseBody)
{ {
parse_str($responseBody, $data); parse_str($responseBody, $data);
if (null === $data || !is_array($data)) { if (null === $data || !is_array($data)) {
throw new TokenResponseException('Unable to parse response.'); throw new TokenResponseException('Unable to parse response.');
} elseif (!isset($data['code'])) { } elseif (!isset($data['code'])) {
@ -84,7 +84,7 @@ class Pocket extends AbstractService
} }
return $data['code']; return $data['code'];
} }
public function requestAccessToken($code) public function requestAccessToken($code)
{ {
$bodyParams = array( $bodyParams = array(
@ -102,24 +102,24 @@ class Pocket extends AbstractService
return $token; return $token;
} }
protected function parseAccessTokenResponse($responseBody) protected function parseAccessTokenResponse($responseBody)
{ {
parse_str($responseBody, $data); parse_str($responseBody, $data);
if ($data === null || !is_array($data)) { if ($data === null || !is_array($data)) {
throw new TokenResponseException('Unable to parse response.'); throw new TokenResponseException('Unable to parse response.');
} elseif (isset($data['error'])) { } elseif (isset($data['error'])) {
throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"'); throw new TokenResponseException('Error in retrieving token: "' . $data['error'] . '"');
} }
$token = new StdOAuth2Token(); $token = new StdOAuth2Token();
#$token->setRequestToken($data['access_token']); #$token->setRequestToken($data['access_token']);
$token->setAccessToken($data['access_token']); $token->setAccessToken($data['access_token']);
$token->setEndOfLife(StdOAuth2Token::EOL_NEVER_EXPIRES); $token->setEndOfLife(StdOAuth2Token::EOL_NEVER_EXPIRES);
unset($data['access_token']); unset($data['access_token']);
$token->setExtraParams($data); $token->setExtraParams($data);
return $token; return $token;
} }
} }

View file

@ -98,7 +98,7 @@ class Vkontakte extends AbstractService
return $token; return $token;
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */

View file

@ -7,4 +7,4 @@ spl_autoload_register(function ($class_name) {
$class_name = preg_replace('/^Psr\\/SimpleCache\\//', '', $class_name); $class_name = preg_replace('/^Psr\\/SimpleCache\\//', '', $class_name);
require_once(__DIR__ . '/simple-cache/src/' . $class_name . '.php'); require_once(__DIR__ . '/simple-cache/src/' . $class_name . '.php');
} }
}); });

View file

@ -1,3 +1,3 @@
demo/ demo/
kitchen-sink.html kitchen-sink.html
* * * *

View file

@ -5,7 +5,7 @@
2021.09.30 Version 1.4.13 2021.09.30 Version 1.4.13
* added useStrictCSP global option to use in environments where dynamic style creation is disabled * added useStrictCSP global option to use in environments where dynamic style creation is disabled
see demo/csp.html for an example of a page which loads external css files instead of generating styles with javascript see demo/csp.html for an example of a page which loads external css files instead of generating styles with javascript
* updated vim mode, added support for gqq command * updated vim mode, added support for gqq command
2020.07.06 Version 1.4.12 2020.07.06 Version 1.4.12
* removed unused es5-shim * removed unused es5-shim
@ -17,7 +17,7 @@
* added code folding support for vbscript mode * added code folding support for vbscript mode
2020.04.01 Version 1.4.9 2020.04.01 Version 1.4.9
* added option to disable autoindent * added option to disable autoindent
* added new language modes * added new language modes
* fixed backspace not working with some mobile keyboards * fixed backspace not working with some mobile keyboards
@ -36,7 +36,7 @@
* fix backspace handling on mobile * fix backspace handling on mobile
2019.06.17 Version 1.4.5 2019.06.17 Version 1.4.5
* improve scrolling and selection on mobile * improve scrolling and selection on mobile
* improve type definitions * improve type definitions
2019.04.24 Version 1.4.4 2019.04.24 Version 1.4.4
@ -62,7 +62,7 @@
* remove usage of innerHTML * remove usage of innerHTML
* improved handling of textinput for IME and mobile * improved handling of textinput for IME and mobile
* add support for relative line numbers * add support for relative line numbers
* improve autocompletion popup * improve autocompletion popup
2018.03.26 Version 1.3.3 2018.03.26 Version 1.3.3
* fix regession in static-highlight extension * fix regession in static-highlight extension
@ -78,7 +78,7 @@
2018.01.31 Version 1.3.0 2018.01.31 Version 1.3.0
* added copy copyWithEmptySelection option * added copy copyWithEmptySelection option
* improved undoManager * improved undoManager
* improved settings_menu plugin * improved settings_menu plugin
* improved handling of files with very long lines * improved handling of files with very long lines
@ -126,7 +126,7 @@
* Bugfixes * Bugfixes
- fix memory leak in setSession (Tyler Stalder) - fix memory leak in setSession (Tyler Stalder)
- double click not working on linux/mac - double click not working on linux/mac
* new language modes * new language modes
- reStructuredText (Robin Jarry) - reStructuredText (Robin Jarry)
- NSIS (Jan T. Sott) - NSIS (Jan T. Sott)
@ -150,7 +150,7 @@
* new language modes * new language modes
- SQLServer (Morgan Yarbrough) - SQLServer (Morgan Yarbrough)
2015.04.03 Version 1.1.9 2015.04.03 Version 1.1.9
- Small Enhancements and Bugfixes - Small Enhancements and Bugfixes
@ -159,14 +159,14 @@
* API Changes * API Changes
- `editor.commands.commandKeyBinding` now contains direct map from keys to commands instead of grouping them by hashid - `editor.commands.commandKeyBinding` now contains direct map from keys to commands instead of grouping them by hashid
* New Features * New Features
- Improved autoindent for html and php modes (Adam Jimenez) - Improved autoindent for html and php modes (Adam Jimenez)
- Find All from searchbox (Colton Voege) - Find All from searchbox (Colton Voege)
* new language modes * new language modes
- Elixir, Elm - Elixir, Elm
2014.09.21 Version 1.1.7 2014.09.21 Version 1.1.7
* Bugfixes * Bugfixes
@ -176,9 +176,9 @@
2014.08.17 Version 1.1.6 2014.08.17 Version 1.1.6
* Bugfixes * Bugfixes
- fix regression in double tap to highlight - fix regression in double tap to highlight
- Improved Latex Mode (Daniel Felder) - Improved Latex Mode (Daniel Felder)
* API Changes * API Changes
- editor.destroy destroys editor.session too (call editor.setSession(null) to prevent that) - editor.destroy destroys editor.session too (call editor.setSession(null) to prevent that)
@ -186,7 +186,7 @@
- Praat (José Joaquín Atria) - Praat (José Joaquín Atria)
- Eiffel (Victorien Elvinger) - Eiffel (Victorien Elvinger)
- G-code (Adam Joseph Cook) - G-code (Adam Joseph Cook)
2014.07.09 Version 1.1.5 2014.07.09 Version 1.1.5
* Bugfixes * Bugfixes
@ -194,7 +194,7 @@
* new language modes * new language modes
- gitignore (Devon Carew) - gitignore (Devon Carew)
2014.07.01 Version 1.1.4 2014.07.01 Version 1.1.4
* New Features * New Features
@ -212,7 +212,7 @@
- Add ColdFusion behavior (Abram Adams) - Add ColdFusion behavior (Abram Adams)
- add showLineNumbers option - add showLineNumbers option
- Add html syntax checker (danyaPostfactum) - Add html syntax checker (danyaPostfactum)
* new language modes * new language modes
- Gherkin (Patrick Nevels) - Gherkin (Patrick Nevels)
- Smarty - Smarty
@ -231,7 +231,7 @@
- add option to merge similar changes in undo history - add option to merge similar changes in undo history
- add scrollPastEnd option - add scrollPastEnd option
- use html5 dragndrop for text dragging (danyaPostfactum) - use html5 dragndrop for text dragging (danyaPostfactum)
* API Changes * API Changes
- fixed typo in HashHandler commmandManager - fixed typo in HashHandler commmandManager
@ -289,10 +289,10 @@
- Added suppoert for Delete and SelectAll from context menu (danyaPostfactum) - Added suppoert for Delete and SelectAll from context menu (danyaPostfactum)
- Make wrapping behavior optional - Make wrapping behavior optional
- Selective bracket insertion/skipping - Selective bracket insertion/skipping
- Added commands for increase/decrease numbers, sort lines (Vlad Zinculescu) - Added commands for increase/decrease numbers, sort lines (Vlad Zinculescu)
- Folding for Markdown, Lua, LaTeX - Folding for Markdown, Lua, LaTeX
- Selective bracket insertion/skipping for C-like languages - Selective bracket insertion/skipping for C-like languages
* Many new languages * Many new languages
@ -301,19 +301,19 @@
- FreeMarker (nguillaumin) - FreeMarker (nguillaumin)
- Tiny Mushcode (h3rb) - Tiny Mushcode (h3rb)
- Velocity (Ryan Griffith) - Velocity (Ryan Griffith)
- TOML (Garen Torikian) - TOML (Garen Torikian)
- LSL (Nemurimasu Neiro, Builders Brewery) - LSL (Nemurimasu Neiro, Builders Brewery)
- Curly (Libo Cannici) - Curly (Libo Cannici)
- vbScript (Jan Jongboom) - vbScript (Jan Jongboom)
- R (RStudio) - R (RStudio)
- ABAP - ABAP
- Lucene (Graham Scott) - Lucene (Graham Scott)
- Haml (Garen Torikian) - Haml (Garen Torikian)
- Objective-C (Garen Torikian) - Objective-C (Garen Torikian)
- Makefile (Garen Torikian) - Makefile (Garen Torikian)
- TypeScript (Garen Torikian) - TypeScript (Garen Torikian)
- Lisp (Garen Torikian) - Lisp (Garen Torikian)
- Stylus (Garen Torikian) - Stylus (Garen Torikian)
- Dart (Garen Torikian) - Dart (Garen Torikian)
* Live syntax checks * Live syntax checks
@ -321,9 +321,9 @@
- Lua - Lua
* New Themes * New Themes
- Chaos - Chaos
- Terminal - Terminal
2012.09.17, Version 1.0.0 2012.09.17, Version 1.0.0
* New Features * New Features
@ -367,7 +367,7 @@
- XCode - XCode
* Many Small Enhancements and Bugfixes * Many Small Enhancements and Bugfixes
2011.08.02, Version 0.2.0 2011.08.02, Version 0.2.0
* Split view (Julian Viereck) * Split view (Julian Viereck)
@ -395,7 +395,7 @@
- SVG - SVG
- Textile (Kelley van Evert) - Textile (Kelley van Evert)
- SCAD (Jacob Hansson) - SCAD (Jacob Hansson)
* Live syntax checks * Live syntax checks
- Lint for CSS using CSS Lint <http://csslint.net/> - Lint for CSS using CSS Lint <http://csslint.net/>
- CoffeeScript - CoffeeScript
@ -431,7 +431,7 @@
2011.02.14, Version 0.1.6 2011.02.14, Version 0.1.6
* Floating Anchors * Floating Anchors
- An Anchor is a floating pointer in the document. - An Anchor is a floating pointer in the document.
- Whenever text is inserted or deleted before the cursor, the position of - Whenever text is inserted or deleted before the cursor, the position of
the cursor is updated the cursor is updated
- Usesd for the cursor and selection - Usesd for the cursor and selection
@ -442,7 +442,7 @@
- remove to end/start of line - remove to end/start of line
- split line - split line
- transpose letters - transpose letters
* Refator markers * Refator markers
- Custom code can be used to render markers - Custom code can be used to render markers
- Markers can be in front or behind the text - Markers can be in front or behind the text
- Markers are now stored in the session (was in the renderer) - Markers are now stored in the session (was in the renderer)

View file

@ -71,8 +71,8 @@ Copyright FAQ
2. I want to package these fonts separately for distribution and 2. I want to package these fonts separately for distribution and
sale as part of a larger software package or system. Can I do so? sale as part of a larger software package or system. Can I do so?
Yes. A RPM or Debian package is a "larger software package" to begin Yes. A RPM or Debian package is a "larger software package" to begin
with, and you aren't selling them independently by themselves. with, and you aren't selling them independently by themselves.
See 1. above. See 1. above.
3. Are derivative works allowed? 3. Are derivative works allowed?
@ -91,7 +91,7 @@ Copyright FAQ
opening). You must include the Bitstream copyright. Additional opening). You must include the Bitstream copyright. Additional
copyrights can be added, as per copyright law. Happy Font Hacking! copyrights can be added, as per copyright law. Happy Font Hacking!
6. If I have improvements for Bitstream Vera, is it possible they might get 6. If I have improvements for Bitstream Vera, is it possible they might get
adopted in future versions? adopted in future versions?
Yes. The contract between the Gnome Foundation and Bitstream has Yes. The contract between the Gnome Foundation and Bitstream has
@ -110,7 +110,7 @@ Copyright FAQ
Sure. Bundle the fonts with your software and sell your software Sure. Bundle the fonts with your software and sell your software
with the fonts. That is the intent of the copyright. with the fonts. That is the intent of the copyright.
8. If applications have built the names "Bitstream Vera" into them, 8. If applications have built the names "Bitstream Vera" into them,
can I override this somehow to use fonts of my choosing? can I override this somehow to use fonts of my choosing?
This depends on exact details of the software. Most open source This depends on exact details of the software. Most open source
@ -121,4 +121,3 @@ Copyright FAQ
supplied local.conf file, which chooses the family Bitstream Vera for supplied local.conf file, which chooses the family Bitstream Vera for
"sans", "serif" and "monospace". Other software (e.g., the XFree86 "sans", "serif" and "monospace". Other software (e.g., the XFree86
core server) has other mechanisms for font substitution. core server) has other mechanisms for font substitution.

File diff suppressed because one or more lines are too long

View file

@ -2642,4 +2642,3 @@ a.ui-button:active,
-webkit-box-shadow: -8px -8px 8px #aaaaaa; -webkit-box-shadow: -8px -8px 8px #aaaaaa;
box-shadow: -8px -8px 8px #aaaaaa; box-shadow: -8px -8px 8px #aaaaaa;
} }

File diff suppressed because one or more lines are too long

View file

@ -5,7 +5,7 @@
( function( factory ) { ( function( factory ) {
"use strict"; "use strict";
if ( typeof define === "function" && define.amd ) { if ( typeof define === "function" && define.amd ) {
// AMD. Register as an anonymous module. // AMD. Register as an anonymous module.
@ -19059,4 +19059,4 @@ var widgetsTooltip = $.ui.tooltip;
} ); } );

File diff suppressed because one or more lines are too long

View file

@ -55,4 +55,4 @@
.colorpicker-label { .colorpicker-label {
float: left; float: left;
margin-right: 2px; margin-right: 2px;
} }

View file

@ -48,7 +48,7 @@
var clear = $('<div style="clear:both;"></div>'); var clear = $('<div style="clear:both;"></div>');
var clickcount=0; var clickcount=0;
return this.each(function() { return this.each(function() {
obj = this; obj = this;
@ -98,7 +98,7 @@
var offset = $(this).position(); var offset = $(this).position();
var top = offset.top; var top = offset.top;
var left = offset.left + $(this).width() + 5; var left = offset.left + $(this).width() + 5;
if ((left + (options.size + 4) * options.count) > $(window).width()) if ((left + (options.size + 4) * options.count) > $(window).width())
{ {
left = offset.left - (options.size + 4) * options.count - 15; left = offset.left - (options.size + 4) * options.count - 15;
} }
@ -134,4 +134,4 @@
} }
} }
}); });
})(jQuery); })(jQuery);

View file

@ -1,8 +1,8 @@
/** @preserve /** @preserve
jSignature v2 "${buildDate}" "${commitID}" jSignature v2 "${buildDate}" "${commitID}"
Copyright (c) 2012 Willow Systems Corp http://willow-systems.com Copyright (c) 2012 Willow Systems Corp http://willow-systems.com
Copyright (c) 2010 Brinley Ang http://www.unbolt.net Copyright (c) 2010 Brinley Ang http://www.unbolt.net
MIT License <http://www.opensource.org/licenses/mit-license.php> MIT License <http://www.opensource.org/licenses/mit-license.php>
*/ */
;(function() { ;(function() {
@ -25,7 +25,7 @@ var KickTimerClass = function(time, callback) {
timer = setTimeout( timer = setTimeout(
callback callback
, time , time
) )
} }
this.clear = function() { this.clear = function() {
clearTimeout(timer) clearTimeout(timer)
@ -35,7 +35,7 @@ var KickTimerClass = function(time, callback) {
var PubSubClass = function(context){ var PubSubClass = function(context){
'use strict' 'use strict'
/* @preserve /* @preserve
----------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------
JavaScript PubSub library JavaScript PubSub library
2012 (c) Willow Systems Corp (www.willow-systems.com) 2012 (c) Willow Systems Corp (www.willow-systems.com)
@ -68,7 +68,7 @@ var PubSubClass = function(context){
for (i = 0, l = currentTopic.length; i < l; i++) { for (i = 0, l = currentTopic.length; i < l; i++) {
pair = currentTopic[i] // this is a [function, once_flag] array pair = currentTopic[i] // this is a [function, once_flag] array
fn = pair[0] fn = pair[0]
if (pair[1] /* 'run once' flag set */){ if (pair[1] /* 'run once' flag set */){
pair[0] = function(){} pair[0] = function(){}
toremove.push(i) toremove.push(i)
@ -81,13 +81,13 @@ var PubSubClass = function(context){
} }
} }
/** /**
* Allows listener code to subscribe to channel and be called when data is available * Allows listener code to subscribe to channel and be called when data is available
* @public * @public
* @function * @function
* @param topic {String} Name of the channel on which to voice this event * @param topic {String} Name of the channel on which to voice this event
* @param callback {Function} Executable (function pointer) that will be ran when event is voiced on this channel. * @param callback {Function} Executable (function pointer) that will be ran when event is voiced on this channel.
* @param once {Boolean} (optional. False by default) Flag indicating if the function is to be triggered only once. * @param once {Boolean} (optional. False by default) Flag indicating if the function is to be triggered only once.
* @returns {Object} A token object that cen be used for unsubscribing. * @returns {Object} A token object that cen be used for unsubscribing.
*/ */
this.subscribe = function(topic, callback, once) { this.subscribe = function(topic, callback, once) {
'use strict' 'use strict'
@ -102,15 +102,15 @@ var PubSubClass = function(context){
}; };
}; };
/** /**
* Allows listener code to unsubscribe from a channel * Allows listener code to unsubscribe from a channel
* @public * @public
* @function * @function
* @param token {Object} A token object that was returned by `subscribe` method * @param token {Object} A token object that was returned by `subscribe` method
*/ */
this.unsubscribe = function(token) { this.unsubscribe = function(token) {
if (this.topics[token.topic]) { if (this.topics[token.topic]) {
var currentTopic = this.topics[token.topic] var currentTopic = this.topics[token.topic]
for (var i = 0, l = currentTopic.length; i < l; i++) { for (var i = 0, l = currentTopic.length; i < l; i++) {
if (currentTopic[i][0] === token.callback) { if (currentTopic[i][0] === token.callback) {
currentTopic.splice(i, 1) currentTopic.splice(i, 1)
@ -127,7 +127,7 @@ function getColors($e){
, frontcolor = $e.css('color') , frontcolor = $e.css('color')
, backcolor , backcolor
, e = $e[0] , e = $e[0]
var toOfDOM = false var toOfDOM = false
while(e && !backcolor && !toOfDOM){ while(e && !backcolor && !toOfDOM){
try{ try{
@ -192,18 +192,18 @@ function getColors($e){
// backcolorcomponents = {'r':0,'g':0,'b':0} // backcolorcomponents = {'r':0,'g':0,'b':0}
// } // }
} }
// Deriving Decor color // Deriving Decor color
// THis is LAZY!!!! Better way would be to use HSL and adjust luminocity. However, that could be an overkill. // THis is LAZY!!!! Better way would be to use HSL and adjust luminocity. However, that could be an overkill.
var toRGBfn = function(o){return 'rgb(' + [o.r, o.g, o.b].join(', ') + ')'} var toRGBfn = function(o){return 'rgb(' + [o.r, o.g, o.b].join(', ') + ')'}
, decorcolorcomponents , decorcolorcomponents
, frontcolorbrightness , frontcolorbrightness
, adjusted , adjusted
if (frontcolorcomponents && backcolorcomponents){ if (frontcolorcomponents && backcolorcomponents){
var backcolorbrightness = Math.max.apply(null, [frontcolorcomponents.r, frontcolorcomponents.g, frontcolorcomponents.b]) var backcolorbrightness = Math.max.apply(null, [frontcolorcomponents.r, frontcolorcomponents.g, frontcolorcomponents.b])
frontcolorbrightness = Math.max.apply(null, [backcolorcomponents.r, backcolorcomponents.g, backcolorcomponents.b]) frontcolorbrightness = Math.max.apply(null, [backcolorcomponents.r, backcolorcomponents.g, backcolorcomponents.b])
adjusted = Math.round(frontcolorbrightness + (-1 * (frontcolorbrightness - backcolorbrightness) * 0.75)) // "dimming" the difference between pen and back. adjusted = Math.round(frontcolorbrightness + (-1 * (frontcolorbrightness - backcolorbrightness) * 0.75)) // "dimming" the difference between pen and back.
decorcolorcomponents = {'r':adjusted,'g':adjusted,'b':adjusted} // always shade of gray decorcolorcomponents = {'r':adjusted,'g':adjusted,'b':adjusted} // always shade of gray
@ -231,7 +231,7 @@ function Vector(x,y){
this.x = x this.x = x
this.y = y this.y = y
this.reverse = function(){ this.reverse = function(){
return new this.constructor( return new this.constructor(
this.x * -1 this.x * -1
, this.y * -1 , this.y * -1
) )
@ -243,7 +243,7 @@ function Vector(x,y){
} }
return this._length return this._length
} }
var polarity = function (e){ var polarity = function (e){
return Math.round(e / Math.abs(e)) return Math.round(e / Math.abs(e))
} }
@ -267,12 +267,12 @@ function Vector(x,y){
} }
return this return this
} }
/** /**
* Calculates the angle between 'this' vector and another. * Calculates the angle between 'this' vector and another.
* @public * @public
* @function * @function
* @returns {Number} The angle between the two vectors as measured in PI. * @returns {Number} The angle between the two vectors as measured in PI.
*/ */
this.angleTo = function(vectorB) { this.angleTo = function(vectorB) {
var divisor = this.getLength() * vectorB.getLength() var divisor = this.getLength() * vectorB.getLength()
@ -283,8 +283,8 @@ function Vector(x,y){
// because of it, the core of the formula can, on occasion, have values // because of it, the core of the formula can, on occasion, have values
// over 1.0 and below -1.0. // over 1.0 and below -1.0.
return Math.acos( return Math.acos(
Math.min( Math.min(
Math.max( Math.max(
( this.x * vectorB.x + this.y * vectorB.y ) / divisor ( this.x * vectorB.x + this.y * vectorB.y ) / divisor
, -1.0 , -1.0
) )
@ -298,7 +298,7 @@ function Vector(x,y){
function Point(x,y){ function Point(x,y){
this.x = x this.x = x
this.y = y this.y = y
this.getVectorToCoordinates = function (x, y) { this.getVectorToCoordinates = function (x, y) {
return new Vector(x - this.x, y - this.y) return new Vector(x - this.x, y - this.y)
} }
@ -316,17 +316,17 @@ function Point(x,y){
/* /*
* About data structure: * About data structure:
* We don't store / deal with "pictures" this signature capture code captures "vectors" * We don't store / deal with "pictures" this signature capture code captures "vectors"
* *
* We don't store bitmaps. We store "strokes" as arrays of arrays. (Actually, arrays of objects containing arrays of coordinates. * We don't store bitmaps. We store "strokes" as arrays of arrays. (Actually, arrays of objects containing arrays of coordinates.
* *
* Stroke = mousedown + mousemoved * n (+ mouseup but we don't record that as that was the "end / lack of movement" indicator) * Stroke = mousedown + mousemoved * n (+ mouseup but we don't record that as that was the "end / lack of movement" indicator)
* *
* Vectors = not classical vectors where numbers indicated shift relative last position. Our vectors are actually coordinates against top left of canvas. * Vectors = not classical vectors where numbers indicated shift relative last position. Our vectors are actually coordinates against top left of canvas.
* we could calc the classical vectors, but keeping the the actual coordinates allows us (through Math.max / min) * we could calc the classical vectors, but keeping the the actual coordinates allows us (through Math.max / min)
* to calc the size of resulting drawing very quickly. If we want classical vectors later, we can always get them in backend code. * to calc the size of resulting drawing very quickly. If we want classical vectors later, we can always get them in backend code.
* *
* So, the data structure: * So, the data structure:
* *
* var data = [ * var data = [
* { // stroke starts * { // stroke starts
* x : [101, 98, 57, 43] // x points * x : [101, 98, 57, 43] // x points
@ -341,9 +341,9 @@ function Point(x,y){
* , y : [151] // y points * , y : [151] // y points
* } // stroke ends * } // stroke ends
* ] * ]
* *
* we don't care or store stroke width (it's canvas-size-relative), color, shadow values. These can be added / changed on whim post-capture. * we don't care or store stroke width (it's canvas-size-relative), color, shadow values. These can be added / changed on whim post-capture.
* *
*/ */
function DataEngine(storageObject, context, startStrokeFn, addToStrokeFn, endStrokeFn){ function DataEngine(storageObject, context, startStrokeFn, addToStrokeFn, endStrokeFn){
this.data = storageObject // we expect this to be an instance of Array this.data = storageObject // we expect this to be an instance of Array
@ -354,7 +354,7 @@ function DataEngine(storageObject, context, startStrokeFn, addToStrokeFn, endStr
var numofstrokes = storageObject.length var numofstrokes = storageObject.length
, stroke , stroke
, numofpoints , numofpoints
for (var i = 0; i < numofstrokes; i++){ for (var i = 0; i < numofstrokes; i++){
stroke = storageObject[i] stroke = storageObject[i]
numofpoints = stroke.x.length numofpoints = stroke.x.length
@ -367,13 +367,13 @@ function DataEngine(storageObject, context, startStrokeFn, addToStrokeFn, endStr
} }
this.changed = function(){} this.changed = function(){}
this.startStrokeFn = startStrokeFn this.startStrokeFn = startStrokeFn
this.addToStrokeFn = addToStrokeFn this.addToStrokeFn = addToStrokeFn
this.endStrokeFn = endStrokeFn this.endStrokeFn = endStrokeFn
this.inStroke = false this.inStroke = false
this._lastPoint = null this._lastPoint = null
this._stroke = null this._stroke = null
this.startStroke = function(point){ this.startStroke = function(point){
@ -383,7 +383,7 @@ function DataEngine(storageObject, context, startStrokeFn, addToStrokeFn, endStr
this._lastPoint = point this._lastPoint = point
this.inStroke = true this.inStroke = true
// 'this' does not work same inside setTimeout( // 'this' does not work same inside setTimeout(
var stroke = this._stroke var stroke = this._stroke
, fn = this.startStrokeFn , fn = this.startStrokeFn
, context = this.context , context = this.context
setTimeout( setTimeout(
@ -402,8 +402,8 @@ function DataEngine(storageObject, context, startStrokeFn, addToStrokeFn, endStr
// when clustering of these is too tight, it produces noise on the line, which, because of smoothing, makes lines too curvy. // when clustering of these is too tight, it produces noise on the line, which, because of smoothing, makes lines too curvy.
// maybe, later, we can expose this as a configurable setting of some sort. // maybe, later, we can expose this as a configurable setting of some sort.
this.addToStroke = function(point){ this.addToStroke = function(point){
if (this.inStroke && if (this.inStroke &&
typeof(point.x) === "number" && typeof(point.x) === "number" &&
typeof(point.y) === "number" && typeof(point.y) === "number" &&
// calculates absolute shift in diagonal pixels away from original point // calculates absolute shift in diagonal pixels away from original point
(Math.abs(point.x - this._lastPoint.x) + Math.abs(point.y - this._lastPoint.y)) > 4 (Math.abs(point.x - this._lastPoint.x) + Math.abs(point.y - this._lastPoint.y)) > 4
@ -412,7 +412,7 @@ function DataEngine(storageObject, context, startStrokeFn, addToStrokeFn, endStr
this._stroke.x.push(point.x) this._stroke.x.push(point.x)
this._stroke.y.push(point.y) this._stroke.y.push(point.y)
this._lastPoint = point this._lastPoint = point
var stroke = this._stroke var stroke = this._stroke
, fn = this.addToStrokeFn , fn = this.addToStrokeFn
, context = this.context , context = this.context
@ -478,7 +478,7 @@ var basicDot = function(ctx, x, y, size){
// Because we are funky this way, here we draw TWO curves. // Because we are funky this way, here we draw TWO curves.
// 1. POSSIBLY "this line" - spanning from point right before us, to this latest point. // 1. POSSIBLY "this line" - spanning from point right before us, to this latest point.
// 2. POSSIBLY "prior curve" - spanning from "latest point" to the one before it. // 2. POSSIBLY "prior curve" - spanning from "latest point" to the one before it.
// Why you ask? // Why you ask?
// long lines (ones with many pixels between them) do not look good when they are part of a large curvy stroke. // long lines (ones with many pixels between them) do not look good when they are part of a large curvy stroke.
// You know, the jaggedy crocodile spine instead of a pretty, smooth curve. Yuck! // You know, the jaggedy crocodile spine instead of a pretty, smooth curve. Yuck!
@ -486,23 +486,23 @@ var basicDot = function(ctx, x, y, size){
// To approximate a very nice curve we need to know the direction of line before and after. // To approximate a very nice curve we need to know the direction of line before and after.
// Hence, on long lines we actually wait for another point beyond it to come back from // Hence, on long lines we actually wait for another point beyond it to come back from
// mousemoved before we draw this curve. // mousemoved before we draw this curve.
// So for "prior curve" to be calc'ed we need 4 points // So for "prior curve" to be calc'ed we need 4 points
// A, B, C, D (we are on D now, A is 3 points in the past.) // A, B, C, D (we are on D now, A is 3 points in the past.)
// and 3 lines: // and 3 lines:
// pre-line (from points A to B), // pre-line (from points A to B),
// this line (from points B to C), (we call it "this" because if it was not yet, it's the only one we can draw for sure.) // this line (from points B to C), (we call it "this" because if it was not yet, it's the only one we can draw for sure.)
// post-line (from points C to D) (even through D point is 'current' we don't know how we can draw it yet) // post-line (from points C to D) (even through D point is 'current' we don't know how we can draw it yet)
// //
// Well, actually, we don't need to *know* the point A, just the vector A->B // Well, actually, we don't need to *know* the point A, just the vector A->B
var Cpoint = new Point(stroke.x[positionInStroke-1], stroke.y[positionInStroke-1]) var Cpoint = new Point(stroke.x[positionInStroke-1], stroke.y[positionInStroke-1])
, Dpoint = new Point(stroke.x[positionInStroke], stroke.y[positionInStroke]) , Dpoint = new Point(stroke.x[positionInStroke], stroke.y[positionInStroke])
, CDvector = Cpoint.getVectorToPoint(Dpoint) , CDvector = Cpoint.getVectorToPoint(Dpoint)
// Again, we have a chance here to draw TWO things: // Again, we have a chance here to draw TWO things:
// BC Curve (only if it's long, because if it was short, it was drawn by previous callback) and // BC Curve (only if it's long, because if it was short, it was drawn by previous callback) and
// CD Line (only if it's short) // CD Line (only if it's short)
// So, let's start with BC curve. // So, let's start with BC curve.
// if there is only 2 points in stroke array, we don't have "history" long enough to have point B, let alone point A. // if there is only 2 points in stroke array, we don't have "history" long enough to have point B, let alone point A.
// Falling through to drawing line CD is proper, as that's the only line we have points for. // Falling through to drawing line CD is proper, as that's the only line we have points for.
@ -530,7 +530,7 @@ var basicDot = function(ctx, x, y, size){
, CCP2vector = (new Vector(BCvector.x + CDvector.x, BCvector.y + CDvector.y)).reverse().resizeTo( , CCP2vector = (new Vector(BCvector.x + CDvector.x, BCvector.y + CDvector.y)).reverse().resizeTo(
Math.max(minlenfraction, BCDangle) * maxlen Math.max(minlenfraction, BCDangle) * maxlen
) )
basicCurve( basicCurve(
this.canvasContext this.canvasContext
, Bpoint.x , Bpoint.x
@ -558,23 +558,23 @@ var basicDot = function(ctx, x, y, size){
// this = jSignatureClass instance // this = jSignatureClass instance
// Here we tidy up things left unfinished in last strokeAddCallback run. // Here we tidy up things left unfinished in last strokeAddCallback run.
// What's POTENTIALLY left unfinished there is the curve between the last points // What's POTENTIALLY left unfinished there is the curve between the last points
// in the stroke, if the len of that line is more than lineCurveThreshold // in the stroke, if the len of that line is more than lineCurveThreshold
// If the last line was shorter than lineCurveThreshold, it was drawn there, and there // If the last line was shorter than lineCurveThreshold, it was drawn there, and there
// is nothing for us here to do. // is nothing for us here to do.
// We can also be called when there is only one point in the stroke (meaning, the // We can also be called when there is only one point in the stroke (meaning, the
// stroke was just a dot), in which case, again, there is nothing for us to do. // stroke was just a dot), in which case, again, there is nothing for us to do.
// So for "this curve" to be calc'ed we need 3 points // So for "this curve" to be calc'ed we need 3 points
// A, B, C // A, B, C
// and 2 lines: // and 2 lines:
// pre-line (from points A to B), // pre-line (from points A to B),
// this line (from points B to C) // this line (from points B to C)
// Well, actually, we don't need to *know* the point A, just the vector A->B // Well, actually, we don't need to *know* the point A, just the vector A->B
// so, we really need points B, C and AB vector. // so, we really need points B, C and AB vector.
var positionInStroke = stroke.x.length - 1 var positionInStroke = stroke.x.length - 1
if (positionInStroke > 0){ if (positionInStroke > 0){
// there are at least 2 points in the stroke.we are in business. // there are at least 2 points in the stroke.we are in business.
var Cpoint = new Point(stroke.x[positionInStroke], stroke.y[positionInStroke]) var Cpoint = new Point(stroke.x[positionInStroke], stroke.y[positionInStroke])
@ -649,7 +649,7 @@ var getDataStats = function(){
function conditionallyLinkCanvasResizeToWindowResize(jSignatureInstance, settingsWidth, apinamespace, globalEvents){ function conditionallyLinkCanvasResizeToWindowResize(jSignatureInstance, settingsWidth, apinamespace, globalEvents){
'use strict' 'use strict'
if ( settingsWidth === 'ratio' || settingsWidth.split('')[settingsWidth.length - 1] === '%' ) { if ( settingsWidth === 'ratio' || settingsWidth.split('')[settingsWidth.length - 1] === '%' ) {
this.eventTokens[apinamespace + '.parentresized'] = globalEvents.subscribe( this.eventTokens[apinamespace + '.parentresized'] = globalEvents.subscribe(
apinamespace + '.parentresized' apinamespace + '.parentresized'
, (function(eventTokens, $parent, originalParentWidth, sizeRatio){ , (function(eventTokens, $parent, originalParentWidth, sizeRatio){
@ -660,9 +660,9 @@ function conditionallyLinkCanvasResizeToWindowResize(jSignatureInstance, setting
var w = $parent.width() var w = $parent.width()
if (w !== originalParentWidth) { if (w !== originalParentWidth) {
// UNsubscribing this particular instance of signature pad only. // UNsubscribing this particular instance of signature pad only.
// there is a separate `eventTokens` per each instance of signature pad // there is a separate `eventTokens` per each instance of signature pad
for (var key in eventTokens){ for (var key in eventTokens){
if (eventTokens.hasOwnProperty(key)) { if (eventTokens.hasOwnProperty(key)) {
globalEvents.unsubscribe(eventTokens[key]) globalEvents.unsubscribe(eventTokens[key])
@ -677,21 +677,21 @@ function conditionallyLinkCanvasResizeToWindowResize(jSignatureInstance, setting
delete jSignatureInstance[key] delete jSignatureInstance[key]
} }
} }
// scale data to new signature pad size // scale data to new signature pad size
settings.data = (function(data, scale){ settings.data = (function(data, scale){
var newData = [] var newData = []
var o, i, l, j, m, stroke var o, i, l, j, m, stroke
for ( i = 0, l = data.length; i < l; i++) { for ( i = 0, l = data.length; i < l; i++) {
stroke = data[i] stroke = data[i]
o = {'x':[],'y':[]} o = {'x':[],'y':[]}
for ( j = 0, m = stroke.x.length; j < m; j++) { for ( j = 0, m = stroke.x.length; j < m; j++) {
o.x.push(stroke.x[j] * scale) o.x.push(stroke.x[j] * scale)
o.y.push(stroke.y[j] * scale) o.y.push(stroke.y[j] * scale)
} }
newData.push(o) newData.push(o)
} }
return newData return newData
@ -699,7 +699,7 @@ function conditionallyLinkCanvasResizeToWindowResize(jSignatureInstance, setting
settings.data settings.data
, w * 1.0 / originalParentWidth , w * 1.0 / originalParentWidth
) )
$parent[apinamespace](settings) $parent[apinamespace](settings)
} }
} }
@ -732,7 +732,7 @@ function jSignatureClass(parent, options, instanceExtensions) {
,'showUndoButton': false ,'showUndoButton': false
,'data': [] ,'data': []
} }
$.extend(settings, getColors($parent)) $.extend(settings, getColors($parent))
if (options) { if (options) {
$.extend(settings, options) $.extend(settings, options)
@ -776,7 +776,7 @@ function jSignatureClass(parent, options, instanceExtensions) {
return Math.max( return Math.max(
Math.round(canvasWidth / 400) /*+1 pixel for every extra 300px of width.*/ Math.round(canvasWidth / 400) /*+1 pixel for every extra 300px of width.*/
, 2 /* minimum line width */ , 2 /* minimum line width */
) )
} else { } else {
return defaultLineWidth return defaultLineWidth
} }
@ -830,7 +830,7 @@ function jSignatureClass(parent, options, instanceExtensions) {
this.drawStartHandler = function(e) { this.drawStartHandler = function(e) {
e.preventDefault() e.preventDefault()
// for performance we cache the offsets // for performance we cache the offsets
// we recalc these only at the beginning the stroke // we recalc these only at the beginning the stroke
setStartValues() setStartValues()
jSignatureInstance.dataEngine.startStroke( getPointFromEvent(e) ) jSignatureInstance.dataEngine.startStroke( getPointFromEvent(e) )
timer.kick() timer.kick()
@ -839,7 +839,7 @@ function jSignatureClass(parent, options, instanceExtensions) {
e.preventDefault() e.preventDefault()
if (!jSignatureInstance.dataEngine.inStroke){ if (!jSignatureInstance.dataEngine.inStroke){
return return
} }
jSignatureInstance.dataEngine.addToStroke( getPointFromEvent(e) ) jSignatureInstance.dataEngine.addToStroke( getPointFromEvent(e) )
timer.kick() timer.kick()
} }
@ -866,7 +866,7 @@ function jSignatureClass(parent, options, instanceExtensions) {
canvas.onmousemove = undef canvas.onmousemove = undef
this.fatFingerCompensation = ( this.fatFingerCompensation = (
settings.minFatFingerCompensation && settings.minFatFingerCompensation &&
settings.lineWidth * -3 > settings.minFatFingerCompensation settings.lineWidth * -3 > settings.minFatFingerCompensation
) ? settings.lineWidth * -3 : settings.minFatFingerCompensation ) ? settings.lineWidth * -3 : settings.minFatFingerCompensation
@ -888,7 +888,7 @@ function jSignatureClass(parent, options, instanceExtensions) {
canvas.onmousemove = drawMoveHandler canvas.onmousemove = drawMoveHandler
} }
} }
}).call( }).call(
this this
, movementHandlers.drawEndHandler , movementHandlers.drawEndHandler
, movementHandlers.drawStartHandler , movementHandlers.drawStartHandler
@ -918,7 +918,7 @@ function jSignatureClass(parent, options, instanceExtensions) {
, settings.width.toString(10) , settings.width.toString(10)
, apinamespace, globalEvents , apinamespace, globalEvents
) )
// end of event handlers. // end of event handlers.
// =============================== // ===============================
@ -944,7 +944,7 @@ jSignatureClass.prototype.resetCanvas = function(data){
, cw = canvas.width , cw = canvas.width
, ch = canvas.height , ch = canvas.height
// preparing colors, drawing area // preparing colors, drawing area
ctx.clearRect(0, 0, cw + 30, ch + 30) ctx.clearRect(0, 0, cw + 30, ch + 30)
@ -952,13 +952,13 @@ jSignatureClass.prototype.resetCanvas = function(data){
ctx.shadowColor = ctx.fillStyle = settings['background-color'] ctx.shadowColor = ctx.fillStyle = settings['background-color']
if (isCanvasEmulator){ if (isCanvasEmulator){
// FLashCanvas fills with Black by default, covering up the parent div's background // FLashCanvas fills with Black by default, covering up the parent div's background
// hence we refill // hence we refill
ctx.fillRect(0,0,cw + 30, ch + 30) ctx.fillRect(0,0,cw + 30, ch + 30)
} }
ctx.lineWidth = Math.ceil(parseInt(settings.lineWidth, 10)) ctx.lineWidth = Math.ceil(parseInt(settings.lineWidth, 10))
ctx.lineCap = ctx.lineJoin = "round" ctx.lineCap = ctx.lineJoin = "round"
// signature line // signature line
ctx.strokeStyle = settings['decor-color'] ctx.strokeStyle = settings['decor-color']
ctx.shadowOffsetX = 0 ctx.shadowOffsetX = 0
@ -971,13 +971,13 @@ jSignatureClass.prototype.resetCanvas = function(data){
ctx.shadowColor = ctx.strokeStyle ctx.shadowColor = ctx.strokeStyle
ctx.shadowOffsetX = ctx.lineWidth * 0.5 ctx.shadowOffsetX = ctx.lineWidth * 0.5
ctx.shadowOffsetY = ctx.lineWidth * -0.6 ctx.shadowOffsetY = ctx.lineWidth * -0.6
ctx.shadowBlur = 0 ctx.shadowBlur = 0
} }
// setting up new dataEngine // setting up new dataEngine
if (!data) { data = [] } if (!data) { data = [] }
var dataEngine = this.dataEngine = new DataEngine( var dataEngine = this.dataEngine = new DataEngine(
data data
, this , this
@ -996,7 +996,7 @@ jSignatureClass.prototype.resetCanvas = function(data){
'use strict' 'use strict'
return function() { return function() {
events.publish(apinamespace+'.change') events.publish(apinamespace+'.change')
target.trigger('change') target.trigger('change')
} }
})(this.$parent, this.events, apinamespace) })(this.$parent, this.events, apinamespace)
// let's trigger change on all data reloads // let's trigger change on all data reloads
@ -1026,9 +1026,9 @@ function initializeCanvasEmulator(canvas){
if (FC) { if (FC) {
canvas = FC.initElement(canvas) canvas = FC.initElement(canvas)
var zoom = 1 var zoom = 1
// FlashCanvas uses flash which has this annoying habit of NOT scaling with page zoom. // FlashCanvas uses flash which has this annoying habit of NOT scaling with page zoom.
// It matches pixel-to-pixel to screen instead. // It matches pixel-to-pixel to screen instead.
// Since we are targeting ONLY IE 7, 8 with FlashCanvas, we will test the zoom only the IE8, IE7 way // Since we are targeting ONLY IE 7, 8 with FlashCanvas, we will test the zoom only the IE8, IE7 way
if (window && window.screen && window.screen.deviceXDPI && window.screen.logicalXDPI){ if (window && window.screen && window.screen.deviceXDPI && window.screen.logicalXDPI){
@ -1105,7 +1105,7 @@ jSignatureClass.prototype.initializeCanvas = function(settings) {
canvas.width = $canvas.width() canvas.width = $canvas.width()
canvas.height = $canvas.height() canvas.height = $canvas.height()
// Special case Sizing code // Special case Sizing code
this.isCanvasEmulator = initializeCanvasEmulator(canvas) this.isCanvasEmulator = initializeCanvasEmulator(canvas)
@ -1124,7 +1124,7 @@ jSignatureClass.prototype.initializeCanvas = function(settings) {
var GlobalJSignatureObjectInitializer = function(window){ var GlobalJSignatureObjectInitializer = function(window){
var globalEvents = new PubSubClass() var globalEvents = new PubSubClass()
// common "window resized" event listener. // common "window resized" event listener.
// jSignature instances will subscribe to this chanel. // jSignature instances will subscribe to this chanel.
// to resize themselves when needed. // to resize themselves when needed.
@ -1144,7 +1144,7 @@ var GlobalJSignatureObjectInitializer = function(window){
if (resizetimer) { if (resizetimer) {
clearTimeout(resizetimer) clearTimeout(resizetimer)
} }
resizetimer = setTimeout( resizetimer = setTimeout(
runner runner
, 500 , 500
) )
@ -1163,10 +1163,10 @@ var GlobalJSignatureObjectInitializer = function(window){
/* /*
'exampleExtension':function(extensionName){ 'exampleExtension':function(extensionName){
// we are called very early in instance's life. // we are called very early in instance's life.
// right after the settings are resolved and // right after the settings are resolved and
// jSignatureInstance.events is created // jSignatureInstance.events is created
// and right before first ("jSignature.initializing") event is called. // and right before first ("jSignature.initializing") event is called.
// You don't really need to manupilate // You don't really need to manupilate
// jSignatureInstance directly, just attach // jSignatureInstance directly, just attach
// a bunch of events to jSignatureInstance.events // a bunch of events to jSignatureInstance.events
// (look at the source of jSignatureClass to see when these fire) // (look at the source of jSignatureClass to see when these fire)
@ -1210,12 +1210,12 @@ var GlobalJSignatureObjectInitializer = function(window){
, 'image':function(data){ , 'image':function(data){
/*this = canvas elem */ /*this = canvas elem */
var imagestring = this.toDataURL() var imagestring = this.toDataURL()
if (typeof imagestring === 'string' && if (typeof imagestring === 'string' &&
imagestring.length > 4 && imagestring.length > 4 &&
imagestring.slice(0,5) === 'data:' && imagestring.slice(0,5) === 'data:' &&
imagestring.indexOf(',') !== -1){ imagestring.indexOf(',') !== -1){
var splitterpos = imagestring.indexOf(',') var splitterpos = imagestring.indexOf(',')
return [ return [
@ -1230,9 +1230,9 @@ var GlobalJSignatureObjectInitializer = function(window){
// will be part of "importplugins" // will be part of "importplugins"
function _renderImageOnCanvas( data, formattype, rerendercallable ) { function _renderImageOnCanvas( data, formattype, rerendercallable ) {
'use strict' 'use strict'
// #1. Do NOT rely on this. No worky on IE // #1. Do NOT rely on this. No worky on IE
// (url max len + lack of base64 decoder + possibly other issues) // (url max len + lack of base64 decoder + possibly other issues)
// #2. This does NOT affect what is captured as "signature" as far as vector data is // #2. This does NOT affect what is captured as "signature" as far as vector data is
// concerned. This is treated same as "signature line" - i.e. completely ignored // concerned. This is treated same as "signature line" - i.e. completely ignored
// the only time you see imported image data exported is if you export as image. // the only time you see imported image data exported is if you export as image.
@ -1240,13 +1240,13 @@ var GlobalJSignatureObjectInitializer = function(window){
// because importing image does absolutely nothing to the underlying vector data storage // because importing image does absolutely nothing to the underlying vector data storage
// This could be a way to "import" old signatures stored as images // This could be a way to "import" old signatures stored as images
// This could also be a way to import extra decor into signature area. // This could also be a way to import extra decor into signature area.
var img = new Image() var img = new Image()
// this = Canvas DOM elem. Not jQuery object. Not Canvas's parent div. // this = Canvas DOM elem. Not jQuery object. Not Canvas's parent div.
, c = this , c = this
img.onload = function() { img.onload = function() {
var ctx = c.getContext("2d").drawImage( var ctx = c.getContext("2d").drawImage(
img, 0, 0 img, 0, 0
, ( img.width < c.width) ? img.width : c.width , ( img.width < c.width) ? img.width : c.width
, ( img.height < c.height) ? img.height : c.height , ( img.height < c.height) ? img.height : c.height
@ -1281,7 +1281,7 @@ var GlobalJSignatureObjectInitializer = function(window){
if (formattype === undef && typeof data === 'string' && data.substr(0,5) === 'data:') { if (formattype === undef && typeof data === 'string' && data.substr(0,5) === 'data:') {
formattype = data.slice(5).split(',')[0] formattype = data.slice(5).split(',')[0]
// 5 chars of "data:" + mimetype len + 1 "," char = all skipped. // 5 chars of "data:" + mimetype len + 1 "," char = all skipped.
data = data.slice(6 + formattype.length) data = data.slice(6 + formattype.length)
if (formattype === data) return if (formattype === data) return
} }
@ -1294,7 +1294,7 @@ var GlobalJSignatureObjectInitializer = function(window){
$canvas[0] $canvas[0]
, data , data
, formattype , formattype
, (function(jSignatureInstance){ , (function(jSignatureInstance){
return function(){ return jSignatureInstance.resetCanvas.apply(jSignatureInstance, arguments) } return function(){ return jSignatureInstance.resetCanvas.apply(jSignatureInstance, arguments) }
})($canvas.data(apinamespace+'.this')) })($canvas.data(apinamespace+'.this'))
) )
@ -1319,7 +1319,7 @@ var GlobalJSignatureObjectInitializer = function(window){
'init' : function( options ) { 'init' : function( options ) {
return this.each( function() { return this.each( function() {
if (!elementIsOrphan(this)) { if (!elementIsOrphan(this)) {
new jSignatureClass(this, options, jSignatureInstanceExtensions) new jSignatureClass(this, options, jSignatureInstanceExtensions)
} }
}) })
} }
@ -1353,7 +1353,7 @@ var GlobalJSignatureObjectInitializer = function(window){
, 'getData' : function( formattype ) { , 'getData' : function( formattype ) {
var undef, $canvas=this.find('canvas.'+apinamespace).add(this.filter('canvas.'+apinamespace)) var undef, $canvas=this.find('canvas.'+apinamespace).add(this.filter('canvas.'+apinamespace))
if (formattype === undef) formattype = 'default' if (formattype === undef) formattype = 'default'
if ($canvas.length !== 0 && exportplugins.hasOwnProperty(formattype)){ if ($canvas.length !== 0 && exportplugins.hasOwnProperty(formattype)){
return exportplugins[formattype].call( return exportplugins[formattype].call(
$canvas.get(0) // canvas dom elem $canvas.get(0) // canvas dom elem
, $canvas.data(apinamespace+'.data') // raw signature data as array of objects of arrays , $canvas.data(apinamespace+'.data') // raw signature data as array of objects of arrays
@ -1373,7 +1373,7 @@ var GlobalJSignatureObjectInitializer = function(window){
.data(apinamespace+'.this').events .data(apinamespace+'.this').events
} }
} // end of methods declaration. } // end of methods declaration.
$.fn[apinamespace] = function(method) { $.fn[apinamespace] = function(method) {
'use strict' 'use strict'
if ( !method || typeof method === 'object' ) { if ( !method || typeof method === 'object' ) {

View file

@ -1,12 +1,12 @@
/* /*
jSignature v2 "2012-11-01T22:48" "commit ID 1c15dfafecc75925c3b7d529356a558b59220edb" jSignature v2 "2012-11-01T22:48" "commit ID 1c15dfafecc75925c3b7d529356a558b59220edb"
Copyright (c) 2012 Willow Systems Corp http://willow-systems.com Copyright (c) 2012 Willow Systems Corp http://willow-systems.com
Copyright (c) 2010 Brinley Ang http://www.unbolt.net Copyright (c) 2010 Brinley Ang http://www.unbolt.net
MIT License <http://www.opensource.org/licenses/mit-license.php> MIT License <http://www.opensource.org/licenses/mit-license.php>
Simplify.js BSD Simplify.js BSD
(c) 2012, Vladimir Agafonkin (c) 2012, Vladimir Agafonkin
mourner.github.com/simplify-js mourner.github.com/simplify-js
@ -74,4 +74,4 @@ a[d];n=[];l={x:[],y:[]};for(var m=void 0,b=void 0,m=0,b=k.x.length;m<b;m++)n.pus
c;d++)l=p[d],f.push('<path fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="'+e(l,k,n)+'"/>');f.push("</svg>");return f.join("")}function v(a){return[p,y(a)]}function z(a){return[h,x(y(a))]}var u=window;"use strict";("undefined"!=typeof exports?exports:u).simplify=function(a,e,d){e=void 0!==e?e*e:1;if(!d){for(var c=a.length,l,i=a[0],h=[i],d=1;d<c;d++){l=a[d];var k=l.x-i.x,n=l.y-i.y;k*k+n*n>e&&(h.push(l),i=l)}a=(i!==l&&h.push(l),h)}l=a;var d=l.length, c;d++)l=p[d],f.push('<path fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="'+e(l,k,n)+'"/>');f.push("</svg>");return f.join("")}function v(a){return[p,y(a)]}function z(a){return[h,x(y(a))]}var u=window;"use strict";("undefined"!=typeof exports?exports:u).simplify=function(a,e,d){e=void 0!==e?e*e:1;if(!d){for(var c=a.length,l,i=a[0],h=[i],d=1;d<c;d++){l=a[d];var k=l.x-i.x,n=l.y-i.y;k*k+n*n>e&&(h.push(l),i=l)}a=(i!==l&&h.push(l),h)}l=a;var d=l.length,
c=new ("undefined"!=typeof Uint8Array?Uint8Array:Array)(d),i=0,h=d-1,m,p,b=[],j=[],s=[];for(c[i]=c[h]=1;h;){n=0;for(k=i+1;k<h;k++){m=l[k];var g=l[i],r=l[h],q=g.x,t=g.y,g=r.x-q,u=r.y-t,v=void 0;if(0!==g||0!==u)v=((m.x-q)*g+(m.y-t)*u)/(g*g+u*u),1<v?(q=r.x,t=r.y):0<v&&(q+=g*v,t+=u*v);m=(g=m.x-q,u=m.y-t,g*g+u*u);m>n&&(p=k,n=m)}n>e&&(c[p]=1,b.push(i),j.push(p),b.push(p),j.push(h));i=b.pop();h=j.pop()}for(k=0;k<d;k++)c[k]&&s.push(l[k]);return a=s,a};if("function"!==typeof x)var x=function(a){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split(""), c=new ("undefined"!=typeof Uint8Array?Uint8Array:Array)(d),i=0,h=d-1,m,p,b=[],j=[],s=[];for(c[i]=c[h]=1;h;){n=0;for(k=i+1;k<h;k++){m=l[k];var g=l[i],r=l[h],q=g.x,t=g.y,g=r.x-q,u=r.y-t,v=void 0;if(0!==g||0!==u)v=((m.x-q)*g+(m.y-t)*u)/(g*g+u*u),1<v?(q=r.x,t=r.y):0<v&&(q+=g*v,t+=u*v);m=(g=m.x-q,u=m.y-t,g*g+u*u);m>n&&(p=k,n=m)}n>e&&(c[p]=1,b.push(i),j.push(p),b.push(p),j.push(h));i=b.pop();h=j.pop()}for(k=0;k<d;k++)c[k]&&s.push(l[k]);return a=s,a};if("function"!==typeof x)var x=function(a){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split(""),
d,c,h,i,k=0,m=0,n="",n=[];do d=a.charCodeAt(k++),c=a.charCodeAt(k++),h=a.charCodeAt(k++),i=d<<16|c<<8|h,d=i>>18&63,c=i>>12&63,h=i>>6&63,i&=63,n[m++]=e[d]+e[c]+e[h]+e[i];while(k<a.length);n=n.join("");a=a.length%3;return(a?n.slice(0,a-3):n)+"===".slice(a||3)};var p="image/svg+xml",h="image/svg+xml;base64";if("undefined"===typeof $)throw Error("We need jQuery for some of the functionality. jQuery is not detected. Failing to initialize...");u=$.fn.jSignature;u("addPlugin","export","svg",v);u("addPlugin", d,c,h,i,k=0,m=0,n="",n=[];do d=a.charCodeAt(k++),c=a.charCodeAt(k++),h=a.charCodeAt(k++),i=d<<16|c<<8|h,d=i>>18&63,c=i>>12&63,h=i>>6&63,i&=63,n[m++]=e[d]+e[c]+e[h]+e[i];while(k<a.length);n=n.join("");a=a.length%3;return(a?n.slice(0,a-3):n)+"===".slice(a||3)};var p="image/svg+xml",h="image/svg+xml;base64";if("undefined"===typeof $)throw Error("We need jQuery for some of the functionality. jQuery is not detected. Failing to initialize...");u=$.fn.jSignature;u("addPlugin","export","svg",v);u("addPlugin",
"export",p,v);u("addPlugin","export","svgbase64",z);u("addPlugin","export",h,z)})(); "export",p,v);u("addPlugin","export","svgbase64",z);u("addPlugin","export",h,z)})();

View file

@ -48,7 +48,7 @@ $.Jcrop = function(obj,opt)
if (!('keySupport' in opt)) if (!('keySupport' in opt))
opt.keySupport = true; opt.keySupport = true;
// }}} // }}}
// Extend the default options {{{ // Extend the default options {{{
var defaults = { var defaults = {
@ -122,7 +122,7 @@ $.Jcrop = function(obj,opt)
backgroundColor: options.bgColor backgroundColor: options.bgColor
}).insertAfter($origimg).append($img); }).insertAfter($origimg).append($img);
; ;
if (options.addClass) $div.addClass(options.addClass); if (options.addClass) $div.addClass(options.addClass);
//$img.wrap($div); //$img.wrap($div);
@ -156,8 +156,8 @@ $.Jcrop = function(obj,opt)
var bound = options.boundary; var bound = options.boundary;
var $trk = newTracker().width(boundx+(bound*2)).height(boundy+(bound*2)) var $trk = newTracker().width(boundx+(bound*2)).height(boundy+(bound*2))
.css({ position: 'absolute', top: px(-bound), left: px(-bound), zIndex: 290 }) .css({ position: 'absolute', top: px(-bound), left: px(-bound), zIndex: 290 })
.mousedown(newSelection); .mousedown(newSelection);
/* }}} */ /* }}} */
// Set more variables {{{ // Set more variables {{{
@ -169,7 +169,7 @@ $.Jcrop = function(obj,opt)
shift_down; shift_down;
// }}} // }}}
// }}} // }}}
// Internal Modules {{{ // Internal Modules {{{
@ -232,9 +232,9 @@ $.Jcrop = function(obj,opt)
if (!options.aspectRatio) return getRect(); if (!options.aspectRatio) return getRect();
// This function could use some optimization I think... // This function could use some optimization I think...
var aspect = options.aspectRatio, var aspect = options.aspectRatio,
min_x = options.minSize[0]/xscale, min_x = options.minSize[0]/xscale,
min_y = options.minSize[1]/yscale, min_y = options.minSize[1]/yscale,
max_x = options.maxSize[0]/xscale, max_x = options.maxSize[0]/xscale,
max_y = options.maxSize[1]/yscale, max_y = options.maxSize[1]/yscale,
rw = x2 - x1, rw = x2 - x1,
rh = y2 - y1, rh = y2 - y1,
@ -455,7 +455,7 @@ $.Jcrop = function(obj,opt)
.css({ .css({
cursor: ord+'-resize', cursor: ord+'-resize',
position: 'absolute', position: 'absolute',
zIndex: zi zIndex: zi
}) })
; ;
$hdl_holder.append(jq); $hdl_holder.append(jq);
@ -584,7 +584,7 @@ $.Jcrop = function(obj,opt)
}; };
//}}} //}}}
function enableHandles()/*{{{*/ function enableHandles()/*{{{*/
{ {
seehandles = true; seehandles = true;
if (options.allowResize) if (options.allowResize)
{ {
@ -775,7 +775,7 @@ $.Jcrop = function(obj,opt)
return nothing(e); return nothing(e);
}; };
/*}}}*/ /*}}}*/
if (options.keySupport) $keywrap.insertBefore($img); if (options.keySupport) $keywrap.insertBefore($img);
return { return {
watchKeys: watchKeys watchKeys: watchKeys
@ -860,7 +860,7 @@ $.Jcrop = function(obj,opt)
{ {
Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]); Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]);
lloc = pos; lloc = pos;
Selection.update(); Selection.update();
}; };
}; };
@ -914,8 +914,8 @@ $.Jcrop = function(obj,opt)
function unscale(c)/*{{{*/ function unscale(c)/*{{{*/
{ {
return { return {
x: parseInt(c.x * xscale), y: parseInt(c.y * yscale), x: parseInt(c.x * xscale), y: parseInt(c.y * yscale),
x2: parseInt(c.x2 * xscale), y2: parseInt(c.y2 * yscale), x2: parseInt(c.x2 * xscale), y2: parseInt(c.y2 * yscale),
w: parseInt(c.w * xscale), h: parseInt(c.h * yscale) w: parseInt(c.w * xscale), h: parseInt(c.h * yscale)
}; };
}; };
@ -968,7 +968,7 @@ $.Jcrop = function(obj,opt)
// }}} // }}}
// API methods {{{ // API methods {{{
function animateTo(a)/*{{{*/ function animateTo(a)/*{{{*/
{ {
var x1 = a[0] / xscale, var x1 = a[0] / xscale,
@ -1133,7 +1133,7 @@ $.Jcrop = function(obj,opt)
$hdl_holder.hide(); $hdl_holder.hide();
interfaceUpdate(true); interfaceUpdate(true);
var api = { var api = {
animateTo: animateTo, animateTo: animateTo,
setSelect: setSelect, setSelect: setSelect,

View file

@ -159,4 +159,4 @@ Selection.refresh();};$hdl_holder.hide();interfaceUpdate(true);var api={animateT
{var loadsrc=options.useImg||from.src;var img=new Image();img.onload=function(){$.Jcrop(from,options);};img.src=loadsrc;};if(typeof(options)!=='object')options={};this.each(function() {var loadsrc=options.useImg||from.src;var img=new Image();img.onload=function(){$.Jcrop(from,options);};img.src=loadsrc;};if(typeof(options)!=='object')options={};this.each(function()
{if($(this).data('Jcrop')) {if($(this).data('Jcrop'))
{if(options=='api')return $(this).data('Jcrop');else $(this).data('Jcrop').setOptions(options);} {if(options=='api')return $(this).data('Jcrop');else $(this).data('Jcrop').setOptions(options);}
else attachWhenDone(this);});return this;};})(jQuery); else attachWhenDone(this);});return this;};})(jQuery);

View file

@ -1,26 +1,26 @@
.jnotify-container { .jnotify-container {
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
z-index: 100000; z-index: 100000;
} }
.jnotify-container .jnotify-notification { .jnotify-container .jnotify-notification {
position: relative; position: relative;
} }
.jnotify-container .jnotify-notification .jnotify-background { .jnotify-container .jnotify-notification .jnotify-background {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #e3f0db; background-color: #e3f0db;
filter: alpha(opacity=90); filter: alpha(opacity=90);
-moz-opacity: 0.90; -moz-opacity: 0.90;
opacity: 0.90; opacity: 0.90;
z-index: 1; z-index: 1;
} }
.jnotify-container .jnotify-notification a.jnotify-close, .jnotify-container .jnotify-notification a.jnotify-close,
@ -41,13 +41,13 @@
} }
.jnotify-container .jnotify-notification .jnotify-message { .jnotify-container .jnotify-notification .jnotify-message {
position: relative; position: relative;
z-index: 2; z-index: 2;
padding: 20px; padding: 20px;
text-align: center; text-align: center;
color: #567b1b; color: #567b1b;
font: bold 1.4em Arial,Helvetica,sans-serif; font: bold 1.4em Arial,Helvetica,sans-serif;
line-height: 1.2em; line-height: 1.2em;
} }
.jnotify-container .jnotify-notification .jnotify-message * { .jnotify-container .jnotify-notification .jnotify-message * {
@ -56,7 +56,7 @@
/* notification type == "error" */ /* notification type == "error" */
.jnotify-container .jnotify-notification-error .jnotify-background { .jnotify-container .jnotify-notification-error .jnotify-background {
background-color: #d79eac; background-color: #d79eac;
} }
.jnotify-container .jnotify-notification-error .jnotify-close, .jnotify-container .jnotify-notification-error .jnotify-close,
@ -66,10 +66,10 @@
/* notification type == "warning" */ /* notification type == "warning" */
.jnotify-container .jnotify-notification-warning .jnotify-background { .jnotify-container .jnotify-notification-warning .jnotify-background {
background-color: #fff7d1; background-color: #fff7d1;
} }
.jnotify-container .jnotify-notification-warning .jnotify-close, .jnotify-container .jnotify-notification-warning .jnotify-close,
.jnotify-container .jnotify-notification-warning .jnotify-message { .jnotify-container .jnotify-notification-warning .jnotify-message {
color: #c2a928 !important; color: #c2a928 !important;
} }

View file

@ -1,14 +1,14 @@
/*! /*!
* jNotify jQuery Plug-in * jNotify jQuery Plug-in
* *
* Copyright 2010 Giva, Inc. (http://www.givainc.com/labs/) * Copyright 2010 Giva, Inc. (http://www.givainc.com/labs/)
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@ -25,8 +25,8 @@
// set the version of the plug-in // set the version of the plug-in
$.jnotify.version = "1.1.00"; $.jnotify.version = "1.1.00";
var $jnotify, queue = [], count = 0, playing = false, paused = false, queuedId, queuedNote, var $jnotify, queue = [], count = 0, playing = false, paused = false, queuedId, queuedNote,
// define default settings // define default settings
defaults = { defaults = {
// define core settings // define core settings
@ -37,14 +37,14 @@
, showClose: true // determines if the "Close" link should be shown if notification is also sticky , showClose: true // determines if the "Close" link should be shown if notification is also sticky
, fadeSpeed: 1000 // the speed to fade messages out (in milliseconds) , fadeSpeed: 1000 // the speed to fade messages out (in milliseconds)
, slideSpeed: 250 // the speed used to slide messages out (in milliseconds) , slideSpeed: 250 // the speed used to slide messages out (in milliseconds)
// define the class statements // define the class statements
, classContainer: "jnotify-container" // className to use for the outer most container--this is where all the notifications appear , classContainer: "jnotify-container" // className to use for the outer most container--this is where all the notifications appear
, classNotification: "jnotify-notification" // className of the individual notification containers , classNotification: "jnotify-notification" // className of the individual notification containers
, classBackground: "jnotify-background" // className of the background layer for each notification container , classBackground: "jnotify-background" // className of the background layer for each notification container
, classClose: "jnotify-close" // className to use for the "Close" link , classClose: "jnotify-close" // className to use for the "Close" link
, classMessage: "jnotify-message" // className to use for the actual notification text container--this is where the message is actually written , classMessage: "jnotify-message" // className to use for the actual notification text container--this is where the message is actually written
// event handlers // event handlers
, init: null // callback that occurs when the main jnotify container is created , init: null // callback that occurs when the main jnotify container is created
, create: null // callback that occurs when when the note is created (occurs just before appearing in DOM) , create: null // callback that occurs when when the note is created (occurs just before appearing in DOM)
@ -67,14 +67,14 @@
$.jnotify.play = function (f, d){ $.jnotify.play = function (f, d){
if( playing && (f !== true ) || (queue.length == 0) ) return; if( playing && (f !== true ) || (queue.length == 0) ) return;
playing = true; playing = true;
// get first note // get first note
var note = queue.shift(); var note = queue.shift();
queuedNote = note; queuedNote = note;
// determine delay to use // determine delay to use
var delay = (arguments.length >= 2) ? parseInt(d, 10) : note.options.delay; var delay = (arguments.length >= 2) ? parseInt(d, 10) : note.options.delay;
// run delay before removing message // run delay before removing message
queuedId = setTimeout(function(){ queuedId = setTimeout(function(){
// clear timeout id // clear timeout id
@ -104,7 +104,7 @@
$.jnotify.play(true, 0); $.jnotify.play(true, 0);
} }
function jNotify(message, options){ function jNotify(message, options){
// a reference to the jNotify object // a reference to the jNotify object
var self = this, TO = typeof options; var self = this, TO = typeof options;
@ -118,17 +118,17 @@
} else { } else {
options = $.extend({}, defaults, options); options = $.extend({}, defaults, options);
} }
// store the options // store the options
this.options = options; this.options = options;
// if the container doesn't exist, create it // if the container doesn't exist, create it
if( !$jnotify ){ if( !$jnotify ){
// we want to use one single container, so always use the default container class // we want to use one single container, so always use the default container class
$jnotify = $('<div class="' + defaults.classContainer + '" />').appendTo("body"); $jnotify = $('<div class="' + defaults.classContainer + '" />').appendTo("body");
if( $.isFunction(options.init) ) options.init.apply(self, [$jnotify]); if( $.isFunction(options.init) ) options.init.apply(self, [$jnotify]);
} }
// create the notification // create the notification
function create(message){ function create(message){
var html = '<div class="' + options.classNotification + (options.type.length ? (" " + options.classNotification + "-" + options.type) : "") + '">' var html = '<div class="' + options.classNotification + (options.type.length ? (" " + options.classNotification + "-" + options.type) : "") + '">'
@ -140,10 +140,10 @@
// increase the counter tracking the notification instances // increase the counter tracking the notification instances
count++; count++;
// create the note // create the note
var $note = $(html); var $note = $(html);
if( options.sticky ){ if( options.sticky ){
// add click handler to remove the sticky notification // add click handler to remove the sticky notification
$note.find("a." + options.classClose).bind("click.jnotify", function (){ $note.find("a." + options.classClose).bind("click.jnotify", function (){
@ -154,11 +154,11 @@
// run callback // run callback
if( $.isFunction(options.create) ) options.create.apply(self, [$note]); if( $.isFunction(options.create) ) options.create.apply(self, [$note]);
// return the new note // return the new note
return $note.appendTo($jnotify); return $note.appendTo($jnotify);
} }
// remove the notification // remove the notification
this.remove = function (callback){ this.remove = function (callback){
var $msg = $note.find("." + options.classMessage), $parent = $msg.parent(); var $msg = $note.find("." + options.classMessage), $parent = $msg.parent();
// remove message from counter // remove message from counter
@ -166,12 +166,12 @@
// run callback // run callback
if( $.isFunction(options.beforeRemove) ) options.beforeRemove.apply(self, [$msg]); if( $.isFunction(options.beforeRemove) ) options.beforeRemove.apply(self, [$msg]);
// cleans up notification // cleans up notification
function finished(){ function finished(){
// remove the parent container // remove the parent container
$parent.remove(); $parent.remove();
// if there's a callback, run it // if there's a callback, run it
if( $.isFunction(callback) ) callback.apply(self, [$msg]); if( $.isFunction(callback) ) callback.apply(self, [$msg]);
if( $.isFunction(options.remove) ) options.remove.apply(self, [$msg]); if( $.isFunction(options.remove) ) options.remove.apply(self, [$msg]);
@ -186,15 +186,15 @@
// slide the parent closed // slide the parent closed
else $parent.slideUp(options.slideSpeed, finished); else $parent.slideUp(options.slideSpeed, finished);
}); });
// if the last notification, fade out the container // if the last notification, fade out the container
if( count <= 0 ) $parent.fadeOut(options.fadeSpeed); if( count <= 0 ) $parent.fadeOut(options.fadeSpeed);
} }
} }
// create the note // create the note
var $note = create(message); var $note = create(message);
// if not a sticky, add to show queue // if not a sticky, add to show queue
if( !options.sticky ){ if( !options.sticky ){
// add the message to the queue // add the message to the queue

View file

@ -1 +1 @@
.jnotify-container{position:fixed;top:0;left:0;width:100%;z-index:100000;}.jnotify-container .jnotify-notification{position:relative;}.jnotify-container .jnotify-notification .jnotify-background{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#e3f0db;filter:alpha(opacity=90);-moz-opacity:.90;opacity:.90;z-index:1;}.jnotify-container .jnotify-notification a.jnotify-close,.jnotify-container .jnotify-notification a.jnotify-close:link,.jnotify-container .jnotify-notification a.jnotify-close:visited,.jnotify-container .jnotify-notification a.jnotify-close:focus,.jnotify-container .jnotify-notification a.jnotify-close:hover{position:absolute;top:2px;right:5px;padding:0 5px;font:bold 1.4em Arial,Helvetica,sans-serif;line-height:1em;color:#567b1b;text-decoration:none;z-index:3;cursor:pointer;}.jnotify-container .jnotify-notification .jnotify-message{position:relative;z-index:2;padding:20px;text-align:center;color:#567b1b;font:bold 1.4em Arial,Helvetica,sans-serif;line-height:1.2em;}.jnotify-container .jnotify-notification .jnotify-message *{font-size:1em;}.jnotify-container .jnotify-notification-error .jnotify-background{background-color:#d79eac;}.jnotify-container .jnotify-notification-error .jnotify-close,.jnotify-container .jnotify-notification-error .jnotify-message{color:#a72947!important;}.jnotify-container .jnotify-notification-warning .jnotify-background{background-color:#fff7d1;}.jnotify-container .jnotify-notification-warning .jnotify-close,.jnotify-container .jnotify-notification-warning .jnotify-message{color:#c2a928!important;} .jnotify-container{position:fixed;top:0;left:0;width:100%;z-index:100000;}.jnotify-container .jnotify-notification{position:relative;}.jnotify-container .jnotify-notification .jnotify-background{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#e3f0db;filter:alpha(opacity=90);-moz-opacity:.90;opacity:.90;z-index:1;}.jnotify-container .jnotify-notification a.jnotify-close,.jnotify-container .jnotify-notification a.jnotify-close:link,.jnotify-container .jnotify-notification a.jnotify-close:visited,.jnotify-container .jnotify-notification a.jnotify-close:focus,.jnotify-container .jnotify-notification a.jnotify-close:hover{position:absolute;top:2px;right:5px;padding:0 5px;font:bold 1.4em Arial,Helvetica,sans-serif;line-height:1em;color:#567b1b;text-decoration:none;z-index:3;cursor:pointer;}.jnotify-container .jnotify-notification .jnotify-message{position:relative;z-index:2;padding:20px;text-align:center;color:#567b1b;font:bold 1.4em Arial,Helvetica,sans-serif;line-height:1.2em;}.jnotify-container .jnotify-notification .jnotify-message *{font-size:1em;}.jnotify-container .jnotify-notification-error .jnotify-background{background-color:#d79eac;}.jnotify-container .jnotify-notification-error .jnotify-close,.jnotify-container .jnotify-notification-error .jnotify-message{color:#a72947!important;}.jnotify-container .jnotify-notification-warning .jnotify-background{background-color:#fff7d1;}.jnotify-container .jnotify-notification-warning .jnotify-close,.jnotify-container .jnotify-notification-warning .jnotify-message{color:#c2a928!important;}

View file

@ -1,14 +1,14 @@
/* /*
* jNotify jQuery Plug-in * jNotify jQuery Plug-in
* *
* Copyright 2010 Giva, Inc. (http://www.givainc.com/labs/) * Copyright 2010 Giva, Inc. (http://www.givainc.com/labs/)
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@ -18,4 +18,4 @@
* Date: 2010-09-30 * Date: 2010-09-30
* Rev: 1.1.00 * Rev: 1.1.00
*/ */
(function(B){B.jnotify=function(K,M,L){return new C(K,M,L)};B.jnotify.version="1.1.00";var J,D=[],E=0,H=false,I=false,G,F,A={type:"",delay:2000,sticky:false,closeLabel:"&times;",showClose:true,fadeSpeed:1000,slideSpeed:250,classContainer:"jnotify-container",classNotification:"jnotify-notification",classBackground:"jnotify-background",classClose:"jnotify-close",classMessage:"jnotify-message",init:null,create:null,beforeRemove:null,remove:null,transition:null};B.jnotify.setup=function(K){A=B.extend({},A,K)};B.jnotify.play=function(M,N){if(H&&(M!==true)||(D.length==0)){return }H=true;var L=D.shift();F=L;var K=(arguments.length>=2)?parseInt(N,10):L.options.delay;G=setTimeout(function(){G=0;L.remove(function(){if(D.length==0){H=false}else{if(!I){B.jnotify.play(true)}}})},K)};B.jnotify.pause=function(){clearTimeout(G);if(G){D.unshift(F)}I=H=true};B.jnotify.resume=function(){I=false;B.jnotify.play(true,0)};function C(P,N){var M=this,K=typeof N;if(K=="number"){N=B.extend({},A,{delay:N})}else{if(K=="boolean"){N=B.extend({},A,{sticky:true})}else{if(K=="string"){N=B.extend({},A,{type:N,delay:((arguments.length>2)&&(typeof arguments[2]=="number"))?arguments[2]:A.delay,sticky:((arguments.length>2)&&(typeof arguments[2]=="boolean"))?arguments[2]:A.sticky})}else{N=B.extend({},A,N)}}}this.options=N;if(!J){J=B('<div class="'+A.classContainer+'" />').appendTo("body");if(B.isFunction(N.init)){N.init.apply(M,[J])}}function O(S){var R='<div class="'+N.classNotification+(N.type.length?(" "+N.classNotification+"-"+N.type):"")+'"><div class="'+N.classBackground+'"></div>'+(N.sticky&&N.showClose?('<a class="'+N.classClose+'">'+N.closeLabel+"</a>"):"")+'<div class="'+N.classMessage+'"><div>'+S+"</div></div></div>";E++;var Q=B(R);if(N.sticky){Q.find("a."+N.classClose).bind("click.jnotify",function(){M.remove()})}if(B.isFunction(N.create)){N.create.apply(M,[Q])}return Q.appendTo(J)}this.remove=function(U){var Q=L.find("."+N.classMessage),S=Q.parent();var R=E--;if(B.isFunction(N.beforeRemove)){N.beforeRemove.apply(M,[Q])}function T(){S.remove();if(B.isFunction(U)){U.apply(M,[Q])}if(B.isFunction(N.remove)){N.remove.apply(M,[Q])}}if(B.isFunction(N.transition)){N.transition.apply(M,[S,Q,R,T,N])}else{Q.fadeTo(N.fadeSpeed,0.01,function(){if(R<=1){T()}else{S.slideUp(N.slideSpeed,T)}});if(E<=0){S.fadeOut(N.fadeSpeed)}}};var L=O(P);if(!N.sticky){D.push(this);B.jnotify.play()}return this}})(jQuery); (function(B){B.jnotify=function(K,M,L){return new C(K,M,L)};B.jnotify.version="1.1.00";var J,D=[],E=0,H=false,I=false,G,F,A={type:"",delay:2000,sticky:false,closeLabel:"&times;",showClose:true,fadeSpeed:1000,slideSpeed:250,classContainer:"jnotify-container",classNotification:"jnotify-notification",classBackground:"jnotify-background",classClose:"jnotify-close",classMessage:"jnotify-message",init:null,create:null,beforeRemove:null,remove:null,transition:null};B.jnotify.setup=function(K){A=B.extend({},A,K)};B.jnotify.play=function(M,N){if(H&&(M!==true)||(D.length==0)){return }H=true;var L=D.shift();F=L;var K=(arguments.length>=2)?parseInt(N,10):L.options.delay;G=setTimeout(function(){G=0;L.remove(function(){if(D.length==0){H=false}else{if(!I){B.jnotify.play(true)}}})},K)};B.jnotify.pause=function(){clearTimeout(G);if(G){D.unshift(F)}I=H=true};B.jnotify.resume=function(){I=false;B.jnotify.play(true,0)};function C(P,N){var M=this,K=typeof N;if(K=="number"){N=B.extend({},A,{delay:N})}else{if(K=="boolean"){N=B.extend({},A,{sticky:true})}else{if(K=="string"){N=B.extend({},A,{type:N,delay:((arguments.length>2)&&(typeof arguments[2]=="number"))?arguments[2]:A.delay,sticky:((arguments.length>2)&&(typeof arguments[2]=="boolean"))?arguments[2]:A.sticky})}else{N=B.extend({},A,N)}}}this.options=N;if(!J){J=B('<div class="'+A.classContainer+'" />').appendTo("body");if(B.isFunction(N.init)){N.init.apply(M,[J])}}function O(S){var R='<div class="'+N.classNotification+(N.type.length?(" "+N.classNotification+"-"+N.type):"")+'"><div class="'+N.classBackground+'"></div>'+(N.sticky&&N.showClose?('<a class="'+N.classClose+'">'+N.closeLabel+"</a>"):"")+'<div class="'+N.classMessage+'"><div>'+S+"</div></div></div>";E++;var Q=B(R);if(N.sticky){Q.find("a."+N.classClose).bind("click.jnotify",function(){M.remove()})}if(B.isFunction(N.create)){N.create.apply(M,[Q])}return Q.appendTo(J)}this.remove=function(U){var Q=L.find("."+N.classMessage),S=Q.parent();var R=E--;if(B.isFunction(N.beforeRemove)){N.beforeRemove.apply(M,[Q])}function T(){S.remove();if(B.isFunction(U)){U.apply(M,[Q])}if(B.isFunction(N.remove)){N.remove.apply(M,[Q])}}if(B.isFunction(N.transition)){N.transition.apply(M,[S,Q,R,T,N])}else{Q.fadeTo(N.fadeSpeed,0.01,function(){if(R<=1){T()}else{S.slideUp(N.slideSpeed,T)}});if(E<=0){S.fadeOut(N.fadeSpeed)}}};var L=O(P);if(!N.sticky){D.push(this);B.jnotify.play()}return this}})(jQuery);

View file

@ -84,7 +84,7 @@ ______________
1.0.8 1.0.8
Moved all images into a few sprites - now using backgroundPosition to change color maps and bars instead of changing the image - this should be faster to download and run. Moved all images into a few sprites - now using backgroundPosition to change color maps and bars instead of changing the image - this should be faster to download and run.
1.0.7 1.0.7
RENAMED CSS FILE TO INCLUDE VERSION NUMBER!!! YOU MUST USE THIS VERSIONED CSS FILE!!! There will be no need to do your own CSS version number increments from now on. RENAMED CSS FILE TO INCLUDE VERSION NUMBER!!! YOU MUST USE THIS VERSIONED CSS FILE!!! There will be no need to do your own CSS version number increments from now on.
Added opacity feedback to color preview boxes. Added opacity feedback to color preview boxes.
@ -118,4 +118,4 @@ ______________
Corrected closure based memeory leak - there may be others? Corrected closure based memeory leak - there may be others?
1.0.0 1.0.0
First Release. First Release.

View file

@ -43,5 +43,5 @@ ______________
- This will result in much faster operation and initialization for pages with multiple pickers. - This will result in much faster operation and initialization for pages with multiple pickers.
Add activateCallback option for calling a callback function when the jPicker is activated or its binding is switched to a different picker element. Add activateCallback option for calling a callback function when the jPicker is activated or its binding is switched to a different picker element.
Add multiple window modes for picker operation, include modal, popup, windowed, and exclusive. Add multiple window modes for picker operation, include modal, popup, windowed, and exclusive.

View file

@ -229,4 +229,4 @@ table.jPicker {
} }
.jPicker .Grid span[class="QuickColor"] { .jPicker .Grid span[class="QuickColor"] {
width: 17px; width: 17px;
} }

View file

@ -1 +1 @@
.jPicker .Icon{display:inline-block;height:24px;position:relative;text-align:left;width:25px}.jPicker .Icon span.Color,.jPicker .Icon span.Alpha{background-position:2px 2px;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker .Icon span.Image{background-repeat:no-repeat;cursor:pointer;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker.Container{color:#000;z-index:10}table.jPicker{background-color:#efefef;border:1px outset #666;font-family:Arial,Helvetica,Sans-Serif;font-size:12px!important;margin:0;padding:5px;width:545px;z-index:20}.jPicker .Move{background-color:#ddd;border-color:#fff #666 #666 #fff;border-style:solid;border-width:1px;cursor:move;height:12px;padding:0}.jPicker .Title{font-size:11px!important;font-weight:bold;margin:-2px 0 0 0;padding:10px 0 0 0;text-align:center;width:100%}.jPicker div.Map{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:crosshair;height:260px;margin:0 10px 10px 10px;overflow:hidden;padding:0;position:relative;width:260px}.jPicker div[class="Map"]{height:256px;width:256px}.jPicker div.Bar{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:n-resize;height:260px;margin:12px 10px 0 5px;overflow:hidden;padding:0;position:relative;width:24px}.jPicker div[class="Bar"]{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3,.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4,.jPicker .Bar .Map5,.jPicker .Bar .Map6{background-color:transparent;background-image:none;display:block;left:0;position:absolute;top:0}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3{height:2596px;width:256px}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{height:3896px;width:20px}.jPicker .Bar .Map5,.jPicker .Bar .Map6{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Bar .Map6{background-repeat:no-repeat}.jPicker .Map .Map3,.jPicker .Bar .Map5{background-repeat:repeat}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{background-repeat:repeat-x}.jPicker .Map .Arrow{display:block;position:absolute}.jPicker .Bar .Arrow{display:block;left:0;position:absolute}.jPicker .Preview{font-size:9px;padding:5px 0 0 0;text-align:center}.jPicker .Preview div{border:2px inset #eee;height:62px;margin:0 auto;padding:0;width:62px}.jPicker .Preview div span{border:1px solid #000;display:block;height:30px;margin:0 auto;padding:0;width:60px}.jPicker .Preview .Active{border-bottom-width:0}.jPicker .Preview .Current{border-top-width:0;cursor:pointer}.jPicker input{font-size:13px}.jPicker .Button{text-align:center;padding:0 4px;width:115px}.jPicker .Button input{padding:2px 0;width:100px}.jPicker .Button .Ok{margin:12px 0 5px 0}.jPicker td{margin:0;padding:0}.jPicker td.Radio{margin:0;padding:0;width:31px}.jPicker td.Radio input{margin:0 5px 0 0;padding:0}.jPicker td.Text{font-size:12px!important;height:22px;margin:0;padding:0;text-align:left;width:70px}.jPicker tr.Hex td.Text{width:100px}.jPicker td.Text input{background-color:#fff;border:1px inset #aaa;height:19px;margin:0 0 0 5px;text-align:left;width:30px}.jPicker td[class="Text"] input{height:15px}.jPicker tr.Hex td.Text input.Hex{width:50px}.jPicker tr.Hex td.Text input.AHex{width:20px}.jPicker .Grid{text-align:center;width:114px}.jPicker .Grid span.QuickColor{border:1px inset #aaa;cursor:pointer;display:inline-block;height:15px;line-height:15px;margin:0;padding:0;width:19px}.jPicker .Grid span[class="QuickColor"]{width:17px} .jPicker .Icon{display:inline-block;height:24px;position:relative;text-align:left;width:25px}.jPicker .Icon span.Color,.jPicker .Icon span.Alpha{background-position:2px 2px;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker .Icon span.Image{background-repeat:no-repeat;cursor:pointer;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker.Container{color:#000;z-index:10}table.jPicker{background-color:#efefef;border:1px outset #666;font-family:Arial,Helvetica,Sans-Serif;font-size:12px!important;margin:0;padding:5px;width:545px;z-index:20}.jPicker .Move{background-color:#ddd;border-color:#fff #666 #666 #fff;border-style:solid;border-width:1px;cursor:move;height:12px;padding:0}.jPicker .Title{font-size:11px!important;font-weight:bold;margin:-2px 0 0 0;padding:10px 0 0 0;text-align:center;width:100%}.jPicker div.Map{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:crosshair;height:260px;margin:0 10px 10px 10px;overflow:hidden;padding:0;position:relative;width:260px}.jPicker div[class="Map"]{height:256px;width:256px}.jPicker div.Bar{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:n-resize;height:260px;margin:12px 10px 0 5px;overflow:hidden;padding:0;position:relative;width:24px}.jPicker div[class="Bar"]{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3,.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4,.jPicker .Bar .Map5,.jPicker .Bar .Map6{background-color:transparent;background-image:none;display:block;left:0;position:absolute;top:0}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3{height:2596px;width:256px}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{height:3896px;width:20px}.jPicker .Bar .Map5,.jPicker .Bar .Map6{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Bar .Map6{background-repeat:no-repeat}.jPicker .Map .Map3,.jPicker .Bar .Map5{background-repeat:repeat}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{background-repeat:repeat-x}.jPicker .Map .Arrow{display:block;position:absolute}.jPicker .Bar .Arrow{display:block;left:0;position:absolute}.jPicker .Preview{font-size:9px;padding:5px 0 0 0;text-align:center}.jPicker .Preview div{border:2px inset #eee;height:62px;margin:0 auto;padding:0;width:62px}.jPicker .Preview div span{border:1px solid #000;display:block;height:30px;margin:0 auto;padding:0;width:60px}.jPicker .Preview .Active{border-bottom-width:0}.jPicker .Preview .Current{border-top-width:0;cursor:pointer}.jPicker input{font-size:13px}.jPicker .Button{text-align:center;padding:0 4px;width:115px}.jPicker .Button input{padding:2px 0;width:100px}.jPicker .Button .Ok{margin:12px 0 5px 0}.jPicker td{margin:0;padding:0}.jPicker td.Radio{margin:0;padding:0;width:31px}.jPicker td.Radio input{margin:0 5px 0 0;padding:0}.jPicker td.Text{font-size:12px!important;height:22px;margin:0;padding:0;text-align:left;width:70px}.jPicker tr.Hex td.Text{width:100px}.jPicker td.Text input{background-color:#fff;border:1px inset #aaa;height:19px;margin:0 0 0 5px;text-align:left;width:30px}.jPicker td[class="Text"] input{height:15px}.jPicker tr.Hex td.Text input.Hex{width:50px}.jPicker tr.Hex td.Text input.AHex{width:20px}.jPicker .Grid{text-align:center;width:114px}.jPicker .Grid span.QuickColor{border:1px inset #aaa;cursor:pointer;display:inline-block;height:15px;line-height:15px;margin:0;padding:0;width:19px}.jPicker .Grid span[class="QuickColor"]{width:17px}

View file

@ -1,4 +1,4 @@
@media all @media all
{ {
#jPicker { margin: 0px 8px; text-align: left; } #jPicker { margin: 0px 8px; text-align: left; }
#jPicker ul { font-size: 15px; margin: 0px 0px 0px 15px; padding: 0px; } #jPicker ul { font-size: 15px; margin: 0px 0px 0px 15px; padding: 0px; }
@ -14,4 +14,4 @@
#jPicker a { color: #ff8050; } #jPicker a { color: #ff8050; }
#jPicker input { font-size: 13px; padding: 2px 5px; } #jPicker input { font-size: 13px; padding: 2px 5px; }
#jPicker h2 { font-size: 16px; margin: 10px 0px; } #jPicker h2 { font-size: 16px; margin: 10px 0px; }
} }

View file

@ -566,7 +566,7 @@
s, s,
v, v,
changeEvents = new Array(), changeEvents = new Array(),
fireChangeEvents = fireChangeEvents =
function(context) function(context)
{ {
for (var i = 0; i < changeEvents.length; i++) changeEvents[i].call($this, $this, context); for (var i = 0; i < changeEvents.length; i++) changeEvents[i].call($this, $this, context);
@ -2083,4 +2083,4 @@
} }
} }
}; };
})(jQuery, '1.1.6'); })(jQuery, '1.1.6');

File diff suppressed because one or more lines are too long

View file

@ -87,4 +87,4 @@ UL.jqueryFileTree A:hover {
.jqueryFileTree LI.ext_wmv { background: url(images/film.png) left top no-repeat; } .jqueryFileTree LI.ext_wmv { background: url(images/film.png) left top no-repeat; }
.jqueryFileTree LI.ext_xls { background: url(images/xls.png) left top no-repeat; } .jqueryFileTree LI.ext_xls { background: url(images/xls.png) left top no-repeat; }
.jqueryFileTree LI.ext_xml { background: url(images/code.png) left top no-repeat; } .jqueryFileTree LI.ext_xml { background: url(images/code.png) left top no-repeat; }
.jqueryFileTree LI.ext_zip { background: url(images/zip.png) left top no-repeat; } .jqueryFileTree LI.ext_zip { background: url(images/zip.png) left top no-repeat; }

View file

@ -26,12 +26,12 @@
// 1.00 - released (24 March 2008) // 1.00 - released (24 March 2008)
// //
// TERMS OF USE // TERMS OF USE
// //
// This plugin is dual-licensed under the GNU General Public License and the MIT License and // This plugin is dual-licensed under the GNU General Public License and the MIT License and
// is copyright 2008 A Beautiful Site, LLC. // is copyright 2008 A Beautiful Site, LLC.
// //
if(jQuery) (function($){ if(jQuery) (function($){
$.extend($.fn, { $.extend($.fn, {
fileTree: function(o, h, hd) { // CHANGE DOL_LDR add hd param fileTree: function(o, h, hd) { // CHANGE DOL_LDR add hd param
// Defaults // Defaults
@ -45,9 +45,9 @@ if(jQuery) (function($){
if( o.collapseEasing == undefined ) o.collapseEasing = null; if( o.collapseEasing == undefined ) o.collapseEasing = null;
if( o.multiFolder == undefined ) o.multiFolder = true; if( o.multiFolder == undefined ) o.multiFolder = true;
if( o.loadMessage == undefined ) o.loadMessage = 'Loading...'; if( o.loadMessage == undefined ) o.loadMessage = 'Loading...';
$(this).each( function() { $(this).each( function() {
function showTree(c, t) { function showTree(c, t) {
$(c).addClass('wait'); $(c).addClass('wait');
$(".jqueryFileTree.start").remove(); $(".jqueryFileTree.start").remove();
@ -58,7 +58,7 @@ if(jQuery) (function($){
bindTree(c); bindTree(c);
}); });
} }
function bindTree(t) { function bindTree(t) {
/* @CHANGE Replace LI A by LI A.jqft */ /* @CHANGE Replace LI A by LI A.jqft */
$(t).find('LI A.jqft').bind(o.folderEvent, function() { $(t).find('LI A.jqft').bind(o.folderEvent, function() {
@ -95,5 +95,5 @@ if(jQuery) (function($){
}); });
} }
}); });
})(jQuery); })(jQuery);

View file

@ -34,4 +34,4 @@
}); });
}; };
})(jQuery); })(jQuery);

View file

@ -248,4 +248,4 @@
hitarea: "hitarea" hitarea: "hitarea"
}); });
})(jQuery); })(jQuery);

View file

@ -1,3 +1,3 @@
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Verwyders asseblief "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Voer asseblief "+(e.minimum-e.input.length)+" of meer karakters"},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var n="Kies asseblief net "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"},removeAllItems:function(){return"Verwyder alle items"}}}),e.define,e.require}(); !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Verwyders asseblief "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Voer asseblief "+(e.minimum-e.input.length)+" of meer karakters"},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var n="Kies asseblief net "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"},removeAllItems:function(){return"Verwyder alle items"}}}),e.define,e.require}();

View file

@ -1,3 +1,3 @@
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(n){return"الرجاء حذف "+(n.input.length-n.maximum)+" عناصر"},inputTooShort:function(n){return"الرجاء إضافة "+(n.minimum-n.input.length)+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(n){return"تستطيع إختيار "+n.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"},removeAllItems:function(){return"قم بإزالة كل العناصر"}}}),n.define,n.require}(); !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(n){return"الرجاء حذف "+(n.input.length-n.maximum)+" عناصر"},inputTooShort:function(n){return"الرجاء إضافة "+(n.minimum-n.input.length)+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(n){return"تستطيع إختيار "+n.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"},removeAllItems:function(){return"قم بإزالة كل العناصر"}}}),n.define,n.require}();

View file

@ -1,3 +1,3 @@
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/az",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+" simvol silin"},inputTooShort:function(n){return n.minimum-n.input.length+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(n){return"Sadəcə "+n.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"},removeAllItems:function(){return"Bütün elementləri sil"}}}),n.define,n.require}(); !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/az",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+" simvol silin"},inputTooShort:function(n){return n.minimum-n.input.length+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(n){return"Sadəcə "+n.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"},removeAllItems:function(){return"Bütün elementləri sil"}}}),n.define,n.require}();

View file

@ -1,3 +1,3 @@
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bg",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u="Моля въведете с "+e+" по-малко символ";return e>1&&(u+="a"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u="Моля въведете още "+e+" символ";return e>1&&(u+="a"),u},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(n){var e="Можете да направите до "+n.maximum+" ";return n.maximum>1?e+="избора":e+="избор",e},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"},removeAllItems:function(){return"Премахнете всички елементи"}}}),n.define,n.require}(); !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bg",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u="Моля въведете с "+e+" по-малко символ";return e>1&&(u+="a"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u="Моля въведете още "+e+" символ";return e>1&&(u+="a"),u},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(n){var e="Можете да направите до "+n.maximum+" ";return n.maximum>1?e+="избора":e+="избор",e},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"},removeAllItems:function(){return"Премахнете всички елементи"}}}),n.define,n.require}();

View file

@ -1,3 +1,3 @@
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bn",[],function(){return{errorLoading:function(){return"ফলাফলগুলি লোড করা যায়নি।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।";return 1!=e&&(u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।"),u},inputTooShort:function(n){return n.minimum-n.input.length+" টি অক্ষর অথবা অধিক অক্ষর লিখুন।"},loadingMore:function(){return"আরো ফলাফল লোড হচ্ছে ..."},maximumSelected:function(n){var e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।";return 1!=n.maximum&&(e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।"),e},noResults:function(){return"কোন ফলাফল পাওয়া যায়নি।"},searching:function(){return"অনুসন্ধান করা হচ্ছে ..."}}}),n.define,n.require}(); !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bn",[],function(){return{errorLoading:function(){return"ফলাফলগুলি লোড করা যায়নি।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।";return 1!=e&&(u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।"),u},inputTooShort:function(n){return n.minimum-n.input.length+" টি অক্ষর অথবা অধিক অক্ষর লিখুন।"},loadingMore:function(){return"আরো ফলাফল লোড হচ্ছে ..."},maximumSelected:function(n){var e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।";return 1!=n.maximum&&(e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।"),e},noResults:function(){return"কোন ফলাফল পাওয়া যায়নি।"},searching:function(){return"অনুসন্ধান করা হচ্ছে ..."}}}),n.define,n.require}();

View file

@ -1,3 +1,3 @@
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/bs",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(n){var r=n.input.length-n.maximum,t="Obrišite "+r+" simbol";return t+=e(r,"","a","a")},inputTooShort:function(n){var r=n.minimum-n.input.length,t="Ukucajte bar još "+r+" simbol";return t+=e(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(n){var r="Možete izabrati samo "+n.maximum+" stavk";return r+=e(n.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Uklonite sve stavke"}}}),e.define,e.require}(); !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/bs",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(n){var r=n.input.length-n.maximum,t="Obrišite "+r+" simbol";return t+=e(r,"","a","a")},inputTooShort:function(n){var r=n.minimum-n.input.length,t="Ukucajte bar još "+r+" simbol";return t+=e(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(n){var r="Možete izabrati samo "+n.maximum+" stavk";return r+=e(n.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Uklonite sve stavke"}}}),e.define,e.require}();

View file

@ -1,3 +1,3 @@
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Si us plau, elimina "+n+" car";return r+=1==n?"àcter":"àcters"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Si us plau, introdueix "+n+" car";return r+=1==n?"àcter":"àcters"},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var n="Només es pot seleccionar "+e.maximum+" element";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"},removeAllItems:function(){return"Treu tots els elements"}}}),e.define,e.require}(); !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Si us plau, elimina "+n+" car";return r+=1==n?"àcter":"àcters"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Si us plau, introdueix "+n+" car";return r+=1==n?"àcter":"àcters"},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var n="Només es pot seleccionar "+e.maximum+" element";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"},removeAllItems:function(){return"Treu tots els elements"}}}),e.define,e.require}();

View file

@ -1,3 +1,3 @@
/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/cs",[],function(){function e(e,n){switch(e){case 2:return n?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadejte o jeden znak méně.":t<=4?"Prosím, zadejte o "+e(t,!0)+" znaky méně.":"Prosím, zadejte o "+t+" znaků méně."},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadejte ještě jeden znak.":t<=4?"Prosím, zadejte ještě další "+e(t,!0)+" znaky.":"Prosím, zadejte ještě dalších "+t+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(n){var t=n.maximum;return 1==t?"Můžete zvolit jen jednu položku.":t<=4?"Můžete zvolit maximálně "+e(t,!1)+" položky.":"Můžete zvolit maximálně "+t+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"},removeAllItems:function(){return"Odstraňte všechny položky"}}}),e.define,e.require}(); !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/cs",[],function(){function e(e,n){switch(e){case 2:return n?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadejte o jeden znak méně.":t<=4?"Prosím, zadejte o "+e(t,!0)+" znaky méně.":"Prosím, zadejte o "+t+" znaků méně."},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadejte ještě jeden znak.":t<=4?"Prosím, zadejte ještě další "+e(t,!0)+" znaky.":"Prosím, zadejte ještě dalších "+t+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(n){var t=n.maximum;return 1==t?"Můžete zvolit jen jednu položku.":t<=4?"Můžete zvolit maximálně "+e(t,!1)+" položky.":"Můžete zvolit maximálně "+t+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"},removeAllItems:function(){return"Odstraňte všechny položky"}}}),e.define,e.require}();

Some files were not shown because too many files have changed in this diff Show more